<?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>231489</bug_id>
          
          <creation_ts>2021-10-10 11:25:37 -0700</creation_ts>
          <short_desc>[Build-time perf] Forward-declare more things in Document.h</short_desc>
          <delta_ts>2022-01-19 02:56:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mkwst</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>tetsuharu.ohzeki</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802471</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-10 11:25:37 -0700</bug_when>
    <thetext>[Build-time perf] Forward-declare more things in Document.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802702</commentid>
    <comment_count>1</comment_count>
      <attachid>440809</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 11:15:03 -0700</bug_when>
    <thetext>Created attachment 440809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802746</commentid>
    <comment_count>2</comment_count>
      <attachid>440822</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 12:40:40 -0700</bug_when>
    <thetext>Created attachment 440822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802880</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-11 16:36:18 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802981</commentid>
    <comment_count>4</comment_count>
      <attachid>440891</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 22:26:53 -0700</bug_when>
    <thetext>Created attachment 440891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802990</commentid>
    <comment_count>5</comment_count>
      <attachid>440891</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-11 22:50:40 -0700</bug_when>
    <thetext>Comment on attachment 440891
Patch

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

Please make EWS green before landing.

&gt; Source/WebCore/dom/Node.cpp:2296
&gt; -                result.iterator-&gt;value |= deliveryOptions;
&gt; +                result.iterator-&gt;value.add(deliveryOptions);

Why? (there are other similar things in this patch, too)

&gt; Source/WebCore/page/MediaProducer.h:34
&gt; +enum class MediaProducerMediaState : uint32_t {

Is there really no better name than this?

&gt; Source/WebCore/page/MediaProducer.h:59
&gt; +enum class MediaProducerMediaCaptureKind : uint8_t {

And this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802991</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 22:57:40 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #5)
&gt; Comment on attachment 440891 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440891&amp;action=review
&gt; 
&gt; Please make EWS green before landing.
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:2296
&gt; &gt; -                result.iterator-&gt;value |= deliveryOptions;
&gt; &gt; +                result.iterator-&gt;value.add(deliveryOptions);
&gt; 
&gt; Why? (there are other similar things in this patch, too)

Because once you make something an &quot;enum class&quot; rather than an &quot;enum&quot;, you can no longer do bitwise arithmetic on them (and keep them the underlying type). OptionSet does all this for you, and adds methods for setting (add()) and clearing (remove()) bits from a bitfield.

&gt; &gt; Source/WebCore/page/MediaProducer.h:34
&gt; &gt; +enum class MediaProducerMediaState : uint32_t {
&gt; 
&gt; Is there really no better name than this?

I wasn&apos;t trying to answer any hard naming problems in these patches; but rather just move the enum declaration outside the class. So MediaProducer::MediaState -&gt; MediaProducerMediaState. Maybe there&apos;s a better name than that, but it&apos;s outside the scope (ha!) of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802993</commentid>
    <comment_count>7</comment_count>
      <attachid>440894</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 23:08:38 -0700</bug_when>
    <thetext>Created attachment 440894
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802994</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 23:10:09 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #6)
&gt; (In reply to Myles C. Maxfield from comment #5)
&gt; &gt; Comment on attachment 440891 [details]
&gt; &gt; Patch
&gt; &gt; &gt; Source/WebCore/page/MediaProducer.h:34
&gt; &gt; &gt; +enum class MediaProducerMediaState : uint32_t {
&gt; &gt; 
&gt; &gt; Is there really no better name than this?
&gt; 
&gt; I wasn&apos;t trying to answer any hard naming problems in these patches; but
&gt; rather just move the enum declaration outside the class. So
&gt; MediaProducer::MediaState -&gt; MediaProducerMediaState. Maybe there&apos;s a better
&gt; name than that, but it&apos;s outside the scope (ha!) of this patch.

(FWIW, I considered &quot;MediaProducerState&quot;, but in the end didn&apos;t think it was &quot;better&quot; because &quot;State&quot; feels too generic. Willing to kick this around in a future patch though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802999</commentid>
    <comment_count>9</comment_count>
      <attachid>440896</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 23:29:28 -0700</bug_when>
    <thetext>Created attachment 440896
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803006</commentid>
    <comment_count>10</comment_count>
      <attachid>440900</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-11 23:55:32 -0700</bug_when>
    <thetext>Created attachment 440900
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803122</commentid>
    <comment_count>11</comment_count>
      <attachid>440936</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-12 08:16:55 -0700</bug_when>
    <thetext>Created attachment 440936
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803437</commentid>
    <comment_count>12</comment_count>
      <attachid>440991</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-12 15:00:56 -0700</bug_when>
    <thetext>Created attachment 440991
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803477</commentid>
    <comment_count>13</comment_count>
      <attachid>441003</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-12 15:29:50 -0700</bug_when>
    <thetext>Created attachment 441003
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803638</commentid>
    <comment_count>14</comment_count>
      <attachid>441038</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-12 21:56:14 -0700</bug_when>
    <thetext>Created attachment 441038
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803647</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-12 22:54:56 -0700</bug_when>
    <thetext>Committed r284080 (242908@main): &lt;https://commits.webkit.org/242908@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441038.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803648</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 22:56:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/84182482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831970</commentid>
    <comment_count>17</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2022-01-19 02:56:07 -0800</bug_when>
    <thetext>*** Bug 223675 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440809</attachid>
            <date>2021-10-11 11:15:03 -0700</date>
            <delta_ts>2021-10-11 13:23:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231489-20211011111503.patch</filename>
            <type>text/plain</type>
            <size>251126</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uMWU5ODNjMjg0MmNlNjI1YjFlOGMzM2JkYzk2MWIw
ZDkzMDQ0OTBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcgZW51
bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZvcndh
cmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIC0+
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAgICAg
IC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZQor
ICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAgICAg
ICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3MsRGVs
aXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBBZGRp
dGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0byB1
c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgorCisg
ICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQYWdl
SW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAgICAg
ICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMgY29t
cGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBvZiB0
aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRhaW5l
ck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1vZHVs
ZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdl
cjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNz
aW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25m
aWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpMb2dB
cmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
OjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBk
YXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAgICAg
KiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAqIGRv
bS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RN
dXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20vQ29u
dGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVB
bGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVy
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hhcnNl
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rpbmcg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05ldHdv
cmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRh
dGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNo
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0
aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dmFs
aWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2Vy
dmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZv
ckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBjb25z
dCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2
ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5nT2Jz
ZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJlZE11
dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJp
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRl
TWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0
YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9wZW5l
clBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
dG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVk
aW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01lZGlh
Q2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxpbmVz
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdo
dENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3VzUmlu
Z0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBvcnRz
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6
c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNo
ZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50U3R5
bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVsbCBi
dWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4YTcw
Li5mYTExZjIyMzNlNmUwYzZlNThmYWQ2MjE5YmQ4MjczNDllMjMwM2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5n
cyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFz
c2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9k
dWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
IC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAg
ICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1pY3JvcGhv
bmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhvbmVDYXB0
dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRD
YW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFBhZ2VN
dXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6
CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVD
aGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3Rh
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0b3BN
ZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURp
ZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMC0w
NiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGlt
ZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgzNzkzMjgy
ZTY2NTRlNi4uNzI5MjBhZWMyN2MwNzQ4OGVjNmNmM2U1NDIwODRiOTY4YmM0MmRhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZd
IEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBNb3Zl
IHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQg
dGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAt
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2Fw
dHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZl
ODk5ZTYxNGQxNTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUx
ZWY2ZjkwZDkzOTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50
Rm9udExvYWRlci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVu
dEZ1bGxzY3JlZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVu
dE1hcmtlci5oCiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0Rv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAg
IHBhZ2UvUGFnZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1Bh
Z2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCmluZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhj
Njc4N2MzNmI0OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKQEAgLTU4LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVk
aWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAg
ICBib29sIHByZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29u
ZmlndXJhdGlvblJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxz
ZSB9OwogfTsKIAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitz
dGF0aWMgYm9vbCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVl
LCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1
ZS5jb250YWluc0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJp
bmcoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJv
ZHVjZXJTdGF0ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewog
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAg
IGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQor
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdz
ICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZs
YWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwot
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlm
IChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpS
ZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
UmVxdWlyZXNUYXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
RGlkUGxheVRvRW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpE
aWRQbGF5VG9FbmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAg
ICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8p
CisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRl
bykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChz
dHJpbmcuaXNFbXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsK
QEAgLTI1NiwxMSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdB
WVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhd
LmdldCgpKTsKIAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNl
dChtX2NsaWVudFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhh
c0FjdGl2ZVJvdXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0
Q29udGV4dCgpKTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNs
aWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwg
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmlu
ZCgmY2xpZW50LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBA
IC0yNjgsNyArMjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47
CiAKICAgICBhdXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsK
LSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xp
ZW50U3RhdGUtPmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxh
Z3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRG
bGFncykKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7
CiAKLSAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNv
bmZpZ3VyYXRpb25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxh
eWJhY2tUYXJnZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBdWRpb09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0
ZUNvbmZpZ3VyYXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZs
YWdzKSkKICAgICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmln
dXJhdGlvblRhc2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBwbGF5aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1ZpZGVvIH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mg
cGxheWluZ1RvVGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CiAgICAgaWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3Rmxh
Z3MgJiBwbGF5aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9s
ZEZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZs
YWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdW
aWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkRpZFBsYXlUb0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVT
ZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAg
ICAgICAgICAgY2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAg
IHNjaGVkdWxlRGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAg
ICB9CiAKLSAgICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhh
c0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1f
cGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwg
IWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxE
ZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5v
dCBpbnRlcnJ1cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4K
QEAgLTI5NSwxNCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50
U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYg
KHN0YXRlID09IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5m
bGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAg
ICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAg
IEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIg
cmV0dXJuaW5nIGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9
CiAKICAgICAvLyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5
YmFjayBoYXMganVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChv
bGRGbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7Cisg
ICAgaWYgKCFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lP
Tk1BTkFHRVIoX19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0
IHN0YXJ0Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9p
ZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMo
KQogICAgICAgICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc2VkKSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhP
ZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xp
ZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2Up
KQorICAgICAgICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQg
JiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFy
Z2V0ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJl
cXVlc3RlZFBpY2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZD
bGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7
CiAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGlu
ZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRl
eE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlj
a2VyOwotICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAm
JiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUpICYmICFmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2ls
bFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVT
ZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRl
cm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0
ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAg
ICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQx
NCw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJn
ZXRDbGllbnRzKCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdp
bGxQbGF5VG9UYXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2Ns
aWVudFN0YXRlW2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUt
PmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmlj
ZSkpIHsKICAgICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNf
Xywgc3RhdGUuZ2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0
cnVlKSIpOwogICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChzdGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0
MzEsMTMgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1Rh
cmdldE1vbml0b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwog
ICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBp
ZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5
YmFja1RhcmdldE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewog
ICAgICAgICAgICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAg
ICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlM
aXN0ZW5lciA9IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3Mg
JiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAg
aGF2ZUNsaWVudFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAog
ICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdl
dCgpLCAiIHBsYXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBp
ZiAoZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZs
YWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9
IHRydWU7CiAgICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQ
bGF5VG9FbmQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJw
bGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWly
cGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgw
ZDRlMTFkYjJiZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4
NzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IElu
dFJlY3QmLCBib29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAg
Ym9vbCBhbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9Owog
Ci1TdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKQEAgLTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1l
bnQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
ZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7
IH0KK3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlh
UHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNw
cAppbmRleCAzODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEz
YWU1NjlhNzg5ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5
IEBAIHZvaWQgTWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUt
PnN0b3BQcm9kdWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIE1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9j
dW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjEx
MDdhNDQzMTkyMzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTVi
YmNiNmFlNWJmYzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQg
Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcg
KzE0Myw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1fc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwog
CiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdE
YXRhIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYx
MjhiYzgyMTM3OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVl
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRp
YVN0cmVhbVRyYWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJh
Y2tzOwogfQogCi1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNh
cHR1cmVTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQw
MSw3ICs0MDEsNyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2Vy
dmVyJiBvYnNlcnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwog
fQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVk
aWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFt
VHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1
cmVUcmFjaygpKQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpA
QCAtNDEzLDMzICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlh
U3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJl
U3RhdGUoc291cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291
cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2Um
IHNvdXJjZSkKIHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3Vy
Y2UubXV0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlm
IChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAg
ICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAg
ICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11
dGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291
cmNlLmludGVycnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJl
RGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1
cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0
ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJ
bnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNl
OworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVE
aXNwbGF5Q2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6VW5rbm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
ICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1U
cmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFj
a3MoKSkgewogICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVu
dCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4
MywxMyArNDgzLDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29y
ZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVB
dWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3Vy
Y2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291
cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0
YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNN
dXRlZCk7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRh
aW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAg
ICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlk
ZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2VFbmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
VmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAg
ICAgfQogI2Vsc2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5
cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToK
LSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMo
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAg
ICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9w
cml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUt
PnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5t
dXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2Fw
dHVyZUlzTXV0ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0
YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246
CkBAIC01MjUsMjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFn
ZU11dGVkU3RhdGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hl
c0tpbmQoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpb1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvVmlkZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6Ok5vbmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAg
ICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVy
ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0
dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5
ODM2MjBlZWU4OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQy
ZTcwOGU0N2U2NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhU3RyZWFtVHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQm
LCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRD
YXB0dXJlKERvY3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAg
c3RhdGljIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3Rh
dGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9N
dXRlZFN0YXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJl
ZlB0cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0
OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0Owog
CiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2
ZXIoT2JzZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRm
MDE0NWViYTc2YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRm
NS4uODUyNWU3ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwCkBAIC0zNiw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
SlNNZWRpYVN0cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJt
aXNzaW9ucy9QZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVy
bWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdh
MmRmN2M5Njg2MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYw
Y2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJt
aXNzaW9uU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25z
L1Blcm1pc3Npb25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2Yzcz
MjJjZTkzNWY4YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1
MDFkNzIwNTk1ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4
dE9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgi
CkBAIC0zNTYsMTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJh
Y2soKQogICAgIHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2so
KTsKIH0KIAotTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVk
aWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5h
dGlvbigpLmlzUGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJ
c05vdFBsYXlpbmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6Ondp
bGxCZWdpblBsYXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFu
Z2VkKCkKIHsKICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAg
IGlmICghZG9jdW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgp
IHx8IG1lZGlhU3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8gfHwgaXNTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgp
LT5oaWRkZW4oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKaW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4u
NGFiODQ3MTY5ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBw
YWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNl
c3Npb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2
Li4yNmVlZGE0YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYg
KzQ1NDMsOCBAQAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29j
b2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZG
RTVCODI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNE
RUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRC
QkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8q
IERvY3VtZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBF
MjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJ
bmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RGMTM1MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRD
MEYyMDgwMDBDNDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMy
RTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZl
clBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUNERjJCMDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlD
MDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4
MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdp
c3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBB
RUUyNEIgLyogR3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmlkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2
OTMwMDU1NTlBNyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3Nh
Z2VUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYz
ODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgx
RjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2
Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIy
Mjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEy
MjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAw
QjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1
QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyog
UGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJ
CQlBODE4NUYzNTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJ
CTFBNDk0RUQ1MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJ
CQlDRDkyRjUxMDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJ
CQkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJ
CUVEMkJBODNCMDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNF
MDU3RkEzMTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICov
LAogCQkJCUNFMDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCAqLywKQEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1
ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMy
MjYwRkZFRTAwRjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3Vt
ZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0
QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYs
NiArMzQ1MzMsNyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFF
NiAvKiBQYWdlSGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3
MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBF
MjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
QjA1MjQxRkI1MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJENUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCmluZGV4IGY2YTNmNjIzMGNiZDk5MDVjODkzOTI1ZmFlZjgyMjYxMzczOWEx
ZmIuLjc1YzkwN2Y0YTFlNjNmYzg3NDc5NWU5ZDJlNWM0Yjc0YTcxMjkzZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgog
CiAjaWYgVVNFKEFUSykKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRl
eCA4NjBhMmNmMzJkZmEwZjNmOGRiYzY3NzQ4ZjQxZGQyYjBiN2ZkNTgyLi44YjNmNDk0ZDAyZjYw
NjY2YmI0NDU4YjI5ZGZjNWI3Njg3OTI0Y2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRl
ICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJh
dG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVu
dExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlz
dGVuZXIuY3BwCmluZGV4IDk4N2NiYTRjMzFiNzBlNThiNDFlM2E2NmFjY2YwYmEyYTZmNzU4OGUu
LjM5ZjJhMDM5YzAyNThhMTY1MzNkYjk1YTA1YWM5ODkyMzJmMThjOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0yMiw2
ICsyMiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNOb2Rl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDY2ODQ4NmZkODdmY2ZlNDRlMjhjMWM1ZDFhNzY4MmNiOWJhZTcyMzYuLjYzMjNmNWQ2
NGNiYzZiYzZiMDIyZjA1NTgzODkwNmMwM2Y3YjUzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcAppbmRleCA2YzA4NWE4MDBjZGY0
YWYzNGIyMzUyYzI1Y2FiYjEzOWViMDVlNmRlLi4wMzg2ZTM2NjA5ZTRjZThkNzQwYzc5ZjE4Njdl
NzY2N2JlZDJjNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCkBAIC0zNyw3ICszNyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ29sb3IgU3R5bGVDb2xvcjo6Y29sb3JGcm9t
S2V5d29yZChDU1NWYWx1ZUlEIGtleXdvcmQsIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zKQor
Q29sb3IgU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlEIGtleXdvcmQsIE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykKIHsKICAgICBpZiAoY29uc3QgY2hh
ciogdmFsdWVOYW1lID0gZ2V0VmFsdWVOYW1lKGtleXdvcmQpKSB7CiAgICAgICAgIGlmIChjb25z
dCBOYW1lZENvbG9yKiBuYW1lZENvbG9yID0gZmluZENvbG9yKHZhbHVlTmFtZSwgc3RybGVuKHZh
bHVlTmFtZSkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKaW5kZXggZTRlNThkZjljNWVmZTQ4NzUy
Y2U4OGYxMjQxMGNlMjM5ZjEzOTI3Ni4uMzIxNDRmNGYxZjY1YjYwZjY4NmRmMjc2ZjI1NGU5ZjIw
ZGQ2Yzc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCkBAIC0zNywxNSArMzcsMTUgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU3R5bGVDb2xvciB7Ci0gICAgZW51bSBjbGFz
cyBPcHRpb25zIDogdWludDhfdCB7Ci0gICAgICAgIEZvclZpc2l0ZWRMaW5rID0gMSA8PCAwLAot
ICAgICAgICBVc2VTeXN0ZW1BcHBlYXJhbmNlID0gMSA8PCAxLAotICAgICAgICBVc2VEYXJrQXBw
ZWFyYW5jZSA9IDEgPDwgMiwKLSAgICAgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwg
PSAxIDw8IDMKLSAgICB9OworZW51bSBjbGFzcyBTdHlsZUNvbG9yT3B0aW9ucyA6IHVpbnQ4X3Qg
eworICAgIEZvclZpc2l0ZWRMaW5rID0gMSA8PCAwLAorICAgIFVzZVN5c3RlbUFwcGVhcmFuY2Ug
PSAxIDw8IDEsCisgICAgVXNlRGFya0FwcGVhcmFuY2UgPSAxIDw8IDIsCisgICAgVXNlRWxldmF0
ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSAxIDw8IDMKK307CiAKLSAgICBzdGF0aWMgQ29sb3IgY29s
b3JGcm9tS2V5d29yZChDU1NWYWx1ZUlELCBPcHRpb25TZXQ8T3B0aW9ucz4pOworc3RydWN0IFN0
eWxlQ29sb3IgeworICAgIHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQs
IE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwogICAgIHN0YXRpYyBib29sIGlzQWJzb2x1
dGVDb2xvcktleXdvcmQoQ1NTVmFsdWVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgaXNTeXN0ZW1Db2xvcktleXdvcmQoQ1NTVmFsdWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFy
YWN0ZXJEYXRhLmNwcAppbmRleCBiYjhkNTNjY2M0NDVjNzBjZmE4MmZlY2Y2MzVkNWNiMjA0NmY2
NGE3Li4yZTY1YzYyNDQ5NzMzN2U2YjkwMGFlMzkwMGMxYTEyNmM5N2Q2Yzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChDaGFyYWN0ZXJEYXRhKTsKIHN0YXRpYyBib29sIGNhblVzZVNldERhdGFP
cHRpbWl6YXRpb24oY29uc3QgQ2hhcmFjdGVyRGF0YSYgbm9kZSkKIHsKICAgICBhdXRvJiBkb2N1
bWVudCA9IG5vZGUuZG9jdW1lbnQoKTsKLSAgICByZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVy
VHlwZShEb2N1bWVudDo6RE9NQ0hBUkFDVEVSREFUQU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9j
dW1lbnQuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFj
dGVyRGF0YSkKKyAgICByZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6
RE9NQ0hBUkFDVEVSREFUQU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRp
b25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRh
dGEpCiAgICAgICAgICYmICFkb2N1bWVudC5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTVNV
QlRSRUVNT0RJRklFRF9MSVNURU5FUik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5oCmluZGV4IDI5NjY3Njc3NjhmMGQ3MTQ3NDJlMzZiY2U1YjYxMDg2
OTc3ZjkxZmYuLjY0YzkyNDY1ZjJhMTAzYjNhOTkwZTYxYTNjZjEyOGEwOTViMmJjYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaApAQCAtMzEsNyArMzEs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBDaGlsZExpc3RNdXRhdGlvblNjb3Bl
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDaGlsZExpc3RNdXRhdGlvblNjb3BlKENvbnRhaW5l
ck5vZGUmIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAg
ICAgICBpZiAodGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlzdCkpCiAgICAgICAgICAgICBtX2FjY3Vt
dWxhdG9yID0gQ2hpbGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6Z2V0T3JDcmVhdGUodGFyZ2V0
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCAyYjU5YjM2
YmM4OWFkMmVkZjk1Mjk5NDUxNmRhOTg5N2EwN2Y0NzhlLi5hZDhhNzU0OTRmYmVkMDI5ZTgxNjJk
MGNiYTVlZTRhOGUyMGQxNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBA
IC0xMDIsNyArMTAyLDcgQEAgQUxXQVlTX0lOTElORSBOb2RlVmVjdG9yIENvbnRhaW5lck5vZGU6
OnJlbW92ZUFsbENoaWxkcmVuV2l0aFNjcmlwdEFzc2VydGlvbihDaGkKICAgICB9IGVsc2Ugewog
ICAgICAgICBBU1NFUlQoc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcik7CiAg
ICAgICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93
ZWRTY29wZTsKLSAgICAgICAgaWYgKFVOTElLRUxZKGRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNl
cnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkpIHsKKyAgICAgICAgaWYg
KFVOTElLRUxZKGRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlzdCkpKSB7CiAgICAgICAgICAgICBDaGlsZExpc3RN
dXRhdGlvblNjb3BlIG11dGF0aW9uKCp0aGlzKTsKICAgICAgICAgICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbikKICAgICAgICAgICAgICAgICBtdXRhdGlvbi53aWxsUmVtb3ZlQ2hpbGQo
Y2hpbGQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZThiYzU2ZTc2ZTZmNjRj
OTZmNzFhZmM2M2NjMmQ3NmQxMmZmMGNhNC4uYWRmNTM1NTJmZTA3ZjU1YTdmMTE5MzQ4MGY1NWNj
MmJkZTFiYTY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAj
aW5jbHVkZSAiRGVidWdQYWdlT3ZlcmxheXMuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFs
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJEb2N1bWVudEZvbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2Jq
ZWN0UG9vbC5oIgpAQCAtMTc3LDYgKzE3OCw3IEBACiAjaW5jbHVkZSAiUHNldWRvQ2xhc3NDaGFu
Z2VJbnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJR
dWlya3MuaCIKKyNpbmNsdWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJhbmdl
LmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJl
bmRlckNoaWxkSXRlcmF0b3IuaCIKQEAgLTIzOSw2ICsyNDEsNyBAQAogI2luY2x1ZGUgIlRleHRF
dmVudC5oIgogI2luY2x1ZGUgIlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgi
CiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIK
ICNpbmNsdWRlICJUcmVlV2Fsa2VyLmgiCkBAIC05NzksNyArOTgyLDcgQEAgdm9pZCBEb2N1bWVu
dDo6cmVzZXRMaW5rQ29sb3IoKQogCiB2b2lkIERvY3VtZW50OjpyZXNldFZpc2l0ZWRMaW5rQ29s
b3IoKQogewotICAgIG1fdmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtl
eXdvcmQoQ1NTVmFsdWVXZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0
eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBtX3Zpc2l0ZWRMaW5rQ29s
b3IgPSBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlV2Via2l0TGluaywgc3R5
bGVDb2xvck9wdGlvbnMobnVsbHB0cikgfCBTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExp
bmspOwogfQogCiB2b2lkIERvY3VtZW50OjpyZXNldEFjdGl2ZUxpbmtDb2xvcigpCkBAIC0zNTc4
LDYgKzM1ODEsMTMgQEAgUmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rp
b24+IERvY3VtZW50OjpjcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW8KICAgICByZXR1cm4gcGFnZS0+
bGliV2ViUlRDUHJvdmlkZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25u
ZWN0aW9uKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgRG9jdW1lbnQ6OnNldFJU
Q05ldHdvcmtNYW5hZ2VyKFJlZjxSVENOZXR3b3JrTWFuYWdlcj4mJiBydGNOZXR3b3JrTWFuYWdl
cikKK3sKKyAgICBtX3J0Y05ldHdvcmtNYW5hZ2VyID0gV1RGTW92ZShydGNOZXR3b3JrTWFuYWdl
cik7Cit9CisjZW5kaWYKKwogYm9vbCBEb2N1bWVudDo6Y2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdl
dEZyYW1lLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICghbV9mcmFtZSkK
QEAgLTQ0MDMsMTggKzQ0MTMsMTggQEAgdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlv
bldpdGhNZWRpYUVsZW1lbnQoKQogdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEo
KQogewogICAgIEFTU0VSVCghbV9hdWRpb1Byb2R1Y2Vycy5oYXNOdWxsUmVmZXJlbmNlcygpKTsK
LSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8mIGF1ZGlvUHJvZHVjZXIg
OiBtX2F1ZGlvUHJvZHVjZXJzKQogICAgICAgICBzdGF0ZS5hZGQoYXVkaW9Qcm9kdWNlci5tZWRp
YVN0YXRlKCkpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0ZS5hZGQoTWVk
aWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKCp0aGlzKSk7CiAgICAgaWYgKG1fYWN0aXZlU3Bl
ZWNoUmVjb2duaXRpb24pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpOworICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CiAjZW5k
aWYKIAogICAgIGlmIChtX3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAg
ICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVk
V2l0aE1lZGlhRWxlbWVudCk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKIAogICAgIGlmIChzdGF0
ZSA9PSBtX21lZGlhU3RhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY3MjUsNyArNjczNSw3IEBA
IHZvaWQgRG9jdW1lbnQ6OmRpc3BhdGNoUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVyc2lz
dGVuY2UgcGVyc2lzdGVkKQogICAgIGRpc3BhdGNoV2luZG93RXZlbnQoUGFnZVRyYW5zaXRpb25F
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCBwZXJzaXN0ZWQpLCB0aGlz
KTsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQg
RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIHF1ZXVlVGFza1RvRGlz
cGF0Y2hFdmVudChUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25F
dmVudCwgV1RGTW92ZShldmVudEluaXQpLCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKIH0KQEAg
LTc1MDksMTUgKzc1MTksMTUgQEAgYm9vbCBEb2N1bWVudDo6dXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUpIGNvbnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IERvY3VtZW50
OjpzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0g
ICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgIGlmICh1c2VTeXN0ZW1BcHBlYXJhbmNl
KCkpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFw
cGVhcmFuY2UpOworICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lz
dGVtQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZURhcmtBcHBlYXJhbmNlKHN0eWxlKSkKLSAgICAg
ICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwor
ICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2Up
OwogICAgIGlmICh1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpKQotICAgICAgICBvcHRp
b25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZl
bCk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRlZFVz
ZXJJbnRlcmZhY2VMZXZlbCk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKQEAgLTc2OTQsNyAr
NzcwNCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBs
YXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIGJvb2wKICAgICBwYWdlLT5zaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoaXQtPnZhbHVlLCBwb3NpdGlvbiwgaXNWaWRlbywgcm91dGVTaGFyaW5nUG9s
aWN5LCByb3V0aW5nQ29udGV4dFVJRCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYg
Y2xpZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIERvY3Vt
ZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJh
Y2tUYXJnZXRDbGllbnQmIGNsaWVudCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAg
LTgxOTksNyArODIwOSw3IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQg
b3JpZW50YXRpb24pCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lkIERvY3VtZW50
OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkK
K3ZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQga2luZCkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKCp0aGlzLCBr
aW5kKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4
MDY4MmU5NWE4NTA4OTAwNi4uYTM2ZGQ5MTlhY2JhYzA0NDk3ZmVmNDBlZTUwYjVhNmY0OTMxNDRm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJEaXNh
YmxlZEFkYXB0YXRpb25zLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFRpbWluZy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVz
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
Rm9jdXNPcHRpb25zLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yQ2xpZW50LmgiCkBAIC00Mywz
MCArNDIsMjEgQEAKICNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIk1l
ZGlhUHJvZHVjZXIuaCIKLSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
T3JpZW50YXRpb25Ob3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1FdmVudC5oIgogI2luY2x1ZGUgIlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlZmVycmVyUG9saWN5LmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVn
aXN0cmFibGVEb21haW4uaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKLSNpbmNsdWRlICJTdHls
ZUNvbG9yLmgiCi0jaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50
YWJsZS5oIgotI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50
U2V0LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJWaXNpYmls
aXR5U3RhdGUuaCIKLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50
ZWRTZXQuaD4KQEAgLTk2LDExICs4NiwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFRleHRT
dHJlYW07CiB9CiAKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBBcHBIaWdobGln
aHRTdG9yYWdlOwogY2xhc3MgQXR0cjsKK2NsYXNzIENhbnZhc0Jhc2U7CiBjbGFzcyBDREFUQVNl
Y3Rpb247CiBjbGFzcyBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ1NTRm9udFNlbGVj
dG9yOwpAQCAtMTMyLDYgKzEyNyw3IEBAIGNsYXNzIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjsK
IGNsYXNzIERvY3VtZW50UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sOwog
Y2xhc3MgRG9jdW1lbnRUaW1lbGluZTsKK2NsYXNzIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
cjsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNzIEVkaXRpbmdCZWhhdmlvcjsKIGNsYXNzIEVk
aXRvcjsKQEAgLTE4Myw2ICsxNzksNyBAQCBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlhQ2Fu
U3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBs
YXliYWNrVGFyZ2V0Q2xpZW50OworY2xhc3MgTWVkaWFQcm9kdWNlcjsKIGNsYXNzIE1lZGlhUXVl
cnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjsKQEAgLTE5Niw3ICsxOTMsOSBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7
CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xh
c3MgUXVpcmtzOworY2xhc3MgUlRDTmV0d29ya01hbmFnZXI7CiBjbGFzcyBSYW5nZTsKK2NsYXNz
IFJlZ2lvbjsKIGNsYXNzIFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgUmVuZGVyVmlldzsKIGNs
YXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwpAQCAtMjIzLDYgKzIyMiw3IEBAIGNs
YXNzIFN0eWxlU2hlZXRDb250ZW50czsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgVGV4
dDsKIGNsYXNzIFRleHRBdXRvU2l6aW5nOworY2xhc3MgVGV4dEVuY29kaW5nOwogY2xhc3MgVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xh
c3MgVHJhbnNmb3JtU291cmNlOwpAQCAtMjUwLDIwICsyNTAsMjkgQEAgc3RydWN0IEFwcGxpY2F0
aW9uTWFuaWZlc3Q7CiBzdHJ1Y3QgQm91bmRhcnlQb2ludDsKIHN0cnVjdCBIaWdobGlnaHRSYW5n
ZURhdGE7CiBzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOworc3RydWN0IFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhj
ZXB0aW9uT3I7CiAKIGVudW0gQ29sbGVjdGlvblR5cGU7CiAKK2VudW0gY2xhc3MgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGUgOiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQgOiB1aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgOiB1aW50OF90OwogZW51bSBj
bGFzcyBSZW5kZXJpbmdVcGRhdGVTdGVwIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIFN0eWxlQ29s
b3JPcHRpb25zIDogdWludDhfdDsKK2VudW0gY2xhc3MgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGUgOiB1aW50OF90OwogCit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0
aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OwogdXNpbmcg
UGxhdGZvcm1EaXNwbGF5SUQgPSB1aW50MzJfdDsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIGNsYXNz
IFJlc29sdmVyOwogY2xhc3MgU2NvcGU7CitjbGFzcyBVcGRhdGU7CiB9CiAKIGVudW0gUGFnZXNo
b3dFdmVudFBlcnNpc3RlbmNlIHsgUGFnZXNob3dFdmVudE5vdFBlcnNpc3RlZCwgUGFnZXNob3dF
dmVudFBlcnNpc3RlZCB9OwpAQCAtNDYwLDExICs0NjksMTEgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1bHRDaGFyc2V0Rm9yTGVnYWN5QmluZGluZ3MoKSBjb25z
dDsKIAotICAgIFN0cmluZyBjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29k
aW5nKCk7IH0KKyAgICBpbmxpbmUgU3RyaW5nIGNoYXJzZXQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgY2hhcmFjdGVyU2V0V2l0aFVURjhGYWxsYmFjaygpIGNvbnN0OwotICAg
IFRleHRFbmNvZGluZyB0ZXh0RW5jb2RpbmcoKSBjb25zdDsKKyAgICBpbmxpbmUgVGV4dEVuY29k
aW5nIHRleHRFbmNvZGluZygpIGNvbnN0OwogCi0gICAgQXRvbVN0cmluZyBlbmNvZGluZygpIGNv
bnN0IHsgcmV0dXJuIHRleHRFbmNvZGluZygpLmRvbU5hbWUoKTsgfQorICAgIGlubGluZSBBdG9t
U3RyaW5nIGVuY29kaW5nKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENo
YXJzZXQoY29uc3QgU3RyaW5nJik7IC8vIFVzZWQgYnkgT2JqQyAvIEdPQmplY3QgYmluZGluZ3Mg
b25seS4KIApAQCAtNTc5LDcgKzU4OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZShjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0Owog
Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKGNv
bnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OwogICAgIENvbXBv
c2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yRm9yQmFja2dyb3VuZENvbG9yKGNvbnN0IENv
bG9yJiwgY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBS
ZWY8UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CkBAIC03MTMsNyArNzIyLDcgQEAgcHVibGljOgogCiAj
aWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgUlRDTmV0d29ya01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5h
Z2VyKCkgeyByZXR1cm4gbV9ydGNOZXR3b3JrTWFuYWdlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0
UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5h
Z2VyKSB7IG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsg
fQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05l
dHdvcmtNYW5hZ2VyPiYmKTsKICNlbmRpZgogCiAgICAgYm9vbCBjYW5OYXZpZ2F0ZShGcmFtZSog
dGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBVUkwoKSk7CkBAIC04OTEs
MTIgKzkwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0xpc3RlbmVyVHlwZUZvckV2ZW50VHlw
ZShQbGF0Zm9ybUV2ZW50OjpUeXBlKSBjb25zdDsKICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZUlm
TmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSk7CiAKLSAgICBib29sIGhhc011dGF0
aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlw
ZTsKLSAgICB9Ci0gICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbXV0YXRpb25PYnNlcnZlclR5cGVzOyB9Ci0gICAgdm9pZCBhZGRNdXRhdGlvbk9ic2VydmVy
VHlwZXMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdHlwZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVy
VHlwZXMgfD0gdHlwZXM7IH0KKyAgICBpbmxpbmUgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09m
VHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSkgY29uc3Q7CisgICAgYm9vbCBoYXNNdXRh
dGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuICFtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5p
c0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9i
c2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMp
OyB9CiAKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBnZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQq
LCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExODAsNyArMTE4Niw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRh
c2tTb3VyY2UsIFJlZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChS
ZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZl
bnRQZXJzaXN0ZW5jZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJik7CiAgICAgdm9pZCBlbnF1
ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5l
d1VSTCk7CiAgICAgdm9pZCBkaXNwYXRjaFBvcHN0YXRlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBzdGF0ZU9iamVjdCk7CiAKQEAgLTEzNjUsNyArMTM3MSw3IEBAIHB1Ymxp
YzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAq
U2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4m
IHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRvcERvY3VtZW50KCkuc2VjdXJpdHlP
cmlnaW4oKTsgfQogCi0gICAgYm9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3Qg
eyByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVPcmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0K
KyAgICBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3Q7CiAgICAg
Ym9vbCBzaG91bGRGb3JjZU5vT3BlbmVyQmFzZWRPbkNPT1AoKSBjb25zdDsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjcm9zc09yaWdpbk9wZW5l
clBvbGljeSgpIGNvbnN0IGZpbmFsOwpAQCAtMTQwMiw5ICsxNDA4LDkgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXIm
KTsKICAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9u
Kik7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lk
IG5vdGVVc2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1
cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFT
dGF0ZSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICAgICB2b2lkIHBhZ2VNdXRl
ZFN0YXRlRGlkQ2hhbmdlKCk7CiAKQEAgLTE0MTIsNyArMTQxOCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGll
bnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxh
eWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihN
ZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25z
dCBTdHJpbmcmKTsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hh
bmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzKTsKIAogICAgIHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQg
cGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgYm9vbCk7CkBAIC0xNDUxLDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIHNldEhhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrKCkgeyBtX2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAg
IGJvb2wgaGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX2hh
c0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJl
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIHZvaWQgc3RvcE1lZGlhQ2Fw
dHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVh
bUNhcHR1cmVTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgogCkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAg
ICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07Ci0gICAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBib29sIG1fdXNlckhhc0ludGVyYWN0ZWRX
aXRoTWVkaWFFbGVtZW50IHsgZmFsc2UgfTsKICAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgbV9i
YWNrRm9yd2FyZENhY2hlU3RhdGUgeyBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6
Om9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5OwogICAgIFJlYWR5U3Rh
dGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKICAgICBDcm9zc09yaWdpbk9wZW5lclBvbGlj
eSBtX2Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5OwogCi0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlv
bnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgeyAwIH07CisgICAgTXV0YXRpb25PYnNlcnZlck9w
dGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7CiAKICAgICBib29sIG1fYWN0aXZlUGFyc2Vy
V2FzQWJvcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVw
IHsgZmFsc2UgfTsKQEAgLTIyMjksNDMgKzIyMzUsNiBAQCBwcml2YXRlOgogCiBFbGVtZW50KiBl
dmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwogCi1pbmxpbmUgVGV4dEVu
Y29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChhdXRvKiBk
ZWNvZGVyID0gdGhpcy0+ZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZW5jb2Rp
bmcoKTsKLSAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1
bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlRG9jdW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBt
X3RlbXBsYXRlRG9jdW1lbnRIb3N0ID8gdGhpcyA6IG1fdGVtcGxhdGVEb2N1bWVudC5nZXQoKTsK
LX0KLQotaW5saW5lIEFYT2JqZWN0Q2FjaGUqIERvY3VtZW50OjpleGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSBjb25zdAotewotICAgIGlmICghaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBleGlzdGluZ0FYT2JqZWN0Q2FjaGVT
bG93KCk7Ci19Ci0KLWlubGluZSBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVhdGUoY29uc3Qg
U2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBEb2N1bWVudChudWxscHRyLCBzZXR0aW5ncywgdXJsKSk7Ci19Ci0KLWlubGluZSB2
b2lkIERvY3VtZW50OjppbnZhbGlkYXRlQWNjZXNzS2V5Q2FjaGUoKQotewotICAgIGlmIChVTkxJ
S0VMWShtX2FjY2Vzc0tleUNhY2hlKSkKLSAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hl
U2xvd0Nhc2UoKTsKLX0KLQotLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBoZXJlIGJlY2F1c2UgdGhl
eSByZXF1aXJlIHRoZSBEb2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFuZCB3ZSB3YW50IHRvIGlu
bGluZSB0aGVtLgotCi1pbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZkb2N1bWVudCgpLmNvbnRl
eHREb2N1bWVudCgpOwotfQotCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgY29uc3QgRG9jdW1lbnQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oCmluZGV4IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYw
ZDdlYTdhNGIxMzg3MThmM2UuLmRkMjUwYWUyYzg4OWRlYjJiNjIwN2MwZDI0OThiNTZjMTE2Y2Zl
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVBy
b2R1Y2VyLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJUZXh0UmVz
b3VyY2VEZWNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNiArMzksMTAg
QEAgaW5saW5lIFRleHRFbmNvZGluZyBEb2N1bWVudDo6dGV4dEVuY29kaW5nKCkgY29uc3QKICAg
ICByZXR1cm4gVGV4dEVuY29kaW5nKCk7CiB9CiAKK2lubGluZSBBdG9tU3RyaW5nIERvY3VtZW50
OjplbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIHRleHRFbmNvZGluZygpLmRvbU5hbWUoKTsgfQor
CitpbmxpbmUgU3RyaW5nIERvY3VtZW50OjpjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gRG9jdW1l
bnQ6OmVuY29kaW5nKCk7IH0KKwogaW5saW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6dGVt
cGxhdGVEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhv
c3QgPyB0aGlzIDogbV90ZW1wbGF0ZURvY3VtZW50LmdldCgpOwpAQCAtNTksNiArNjYsMTkgQEAg
aW5saW5lIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAg
IGludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZVNsb3dDYXNlKCk7CiB9CiAKK2lubGluZSBib29sIERv
Y3VtZW50Ojppc0NhcHR1cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6
OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7Cit9CisKK2lubGluZSBib29sIERvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBl
KSBjb25zdAoreworICAgIHJldHVybiBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5jb250YWluc0Fu
eSh0eXBlKTsKK30KKworaW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRv
cE9yaWdpbigpKTsgfQorCisKIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRo
ZXkgcmVxdWlyZSB0aGUgRG9jdW1lbnQgY2xhc3MgZGVmaW5pdGlvbiBhbmQgd2Ugd2FudCB0byBp
bmxpbmUgdGhlbS4KIAogaW5saW5lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXIuY3BwCmluZGV4IDQ3NmY4ZGFiOWI2NTE2MTg4OWVmOWU4MGJiNDU4Y2I2NmRlZjRkYjUuLjI3
Y2EyMjBlYjQ5YzcyMDk2NDY4ZWQ3OTZhODUyZjIxMzdkZTUyODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5jcHAKQEAgLTcxLDM3ICs3MSwzNyBAQCBNdXRhdGlvbk9ic2Vy
dmVyOjp+TXV0YXRpb25PYnNlcnZlcigpCiAKIGJvb2wgTXV0YXRpb25PYnNlcnZlcjo6dmFsaWRh
dGVPcHRpb25zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCiB7Ci0gICAgcmV0dXJu
IChvcHRpb25zICYgKEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhIHwgQ2hpbGRMaXN0KSkKLSAg
ICAgICAgJiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRl
T2xkVmFsdWUpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlv
bnMgJiBBdHRyaWJ1dGVGaWx0ZXIpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBDaGFyYWN0ZXJE
YXRhKSB8fCAhKG9wdGlvbnMgJiBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKKyAgICByZXR1cm4g
b3B0aW9ucy5jb250YWluc0FueShNdXRhdGlvblR5cGU6OkFsbE11dGF0aW9uVHlwZXMpCisgICAg
ICAgICYmIChvcHRpb25zLmNvbnRhaW5zKE11dGF0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9w
dGlvbnMuY29udGFpbnMoRGVsaXZlcnlGbGFnczo6QXR0cmlidXRlT2xkVmFsdWUpKQorICAgICAg
ICAmJiAob3B0aW9ucy5jb250YWlucyhNdXRhdGlvblR5cGU6OkF0dHJpYnV0ZXMpIHx8ICFvcHRp
b25zLmNvbnRhaW5zKE9ic2VydmF0aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlcikpCisgICAgICAg
ICYmIChvcHRpb25zLmNvbnRhaW5zKE11dGF0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSkgfHwgIW9w
dGlvbnMuY29udGFpbnMoRGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKSk7CiB9
CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmUoTm9kZSYgbm9k
ZSwgY29uc3QgSW5pdCYgaW5pdCkKIHsKLSAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRp
b25zID0gMDsKKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zOwogCiAgICAgaWYg
KGluaXQuY2hpbGRMaXN0KQotICAgICAgICBvcHRpb25zIHw9IENoaWxkTGlzdDsKKyAgICAgICAg
b3B0aW9ucy5hZGQoTXV0YXRpb25UeXBlOjpDaGlsZExpc3QpOwogICAgIGlmIChpbml0LnN1YnRy
ZWUpCi0gICAgICAgIG9wdGlvbnMgfD0gU3VidHJlZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoT2Jz
ZXJ2YXRpb25GbGFnczo6U3VidHJlZSk7CiAgICAgaWYgKGluaXQuYXR0cmlidXRlT2xkVmFsdWUu
dmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZU9sZFZhbHVlOwor
ICAgICAgICBvcHRpb25zLmFkZChEZWxpdmVyeUZsYWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSk7CiAg
ICAgaWYgKGluaXQuY2hhcmFjdGVyRGF0YU9sZFZhbHVlLnZhbHVlX29yKGZhbHNlKSkKLSAgICAg
ICAgb3B0aW9ucyB8PSBDaGFyYWN0ZXJEYXRhT2xkVmFsdWU7CisgICAgICAgIG9wdGlvbnMuYWRk
KERlbGl2ZXJ5RmxhZ3M6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAKICAgICBIYXNoU2V0PEF0
b21TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVGaWx0ZXIp
IHsKICAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluaXQuYXR0cmlidXRlRmlsdGVyLnZhbHVl
KCkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXIuYWRkKHZhbHVlKTsKLSAgICAgICAgb3B0
aW9ucyB8PSBBdHRyaWJ1dGVGaWx0ZXI7CisgICAgICAgIG9wdGlvbnMuYWRkKE9ic2VydmF0aW9u
RmxhZ3M6OkF0dHJpYnV0ZUZpbHRlcik7CiAgICAgfQogCi0gICAgaWYgKGluaXQuYXR0cmlidXRl
cyA/IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogKG9wdGlvbnMgJiAoQXR0cmlidXRlRmlsdGVy
IHwgQXR0cmlidXRlT2xkVmFsdWUpKSkKLSAgICAgICAgb3B0aW9ucyB8PSBBdHRyaWJ1dGVzOwor
ICAgIGlmIChpbml0LmF0dHJpYnV0ZXMgPyBpbml0LmF0dHJpYnV0ZXMudmFsdWUoKSA6IG9wdGlv
bnMuY29udGFpbnNBbnkoe09ic2VydmF0aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlciwgRGVsaXZl
cnlGbGFnczo6QXR0cmlidXRlT2xkVmFsdWV9KSkKKyAgICAgICAgb3B0aW9ucy5hZGQoTXV0YXRp
b25UeXBlOjpBdHRyaWJ1dGVzKTsKIAotICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGEgPyBpbml0
LmNoYXJhY3RlckRhdGEudmFsdWUoKSA6IChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9sZFZhbHVl
KSkKLSAgICAgICAgb3B0aW9ucyB8PSBDaGFyYWN0ZXJEYXRhOworICAgIGlmIChpbml0LmNoYXJh
Y3RlckRhdGEgPyBpbml0LmNoYXJhY3RlckRhdGEudmFsdWUoKSA6IG9wdGlvbnMuY29udGFpbnMo
RGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKSkKKyAgICAgICAgb3B0aW9ucy5h
ZGQoTXV0YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKTsKIAogICAgIGlmICghdmFsaWRhdGVPcHRp
b25zKG9wdGlvbnMpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAppbmRleCAyYWYyNjNiZDRhNzI1NGEyMGEz
YjkzNTMxN2I3OTY5MWFmNGNjN2RhLi4yZDMyY2E2MjQ2MjQ2MDhiZDRjZDNjOTBhMzFkZDhhNzk1
YzgzMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAK
QEAgLTUzLDMwICs1NCwzMSBAQCBjbGFzcyBNdXRhdGlvblJlY29yZDsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBXaW5kb3dFdmVudExvb3A7CiAKLXVzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0g
dW5zaWduZWQgY2hhcjsKLXVzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zID0gdW5z
aWduZWQgY2hhcjsKK2VudW0gY2xhc3MgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgOiB1aW50
OF90IHsKKyAgICAvLyBNdXRhdGlvblR5cGUKKyAgICBDaGlsZExpc3QgPSAxIDw8IDAsCisgICAg
QXR0cmlidXRlcyA9IDEgPDwgMSwKKyAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAogCi1jbGFz
cyBNdXRhdGlvbk9ic2VydmVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNl
cnZlcj4gewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTXV0YXRpb25PYnNlcnZlcik7Ci1w
dWJsaWM6Ci0gICAgZW51bSBNdXRhdGlvblR5cGUgewotICAgICAgICBDaGlsZExpc3QgPSAxIDw8
IDAsCi0gICAgICAgIEF0dHJpYnV0ZXMgPSAxIDw8IDEsCi0gICAgICAgIENoYXJhY3RlckRhdGEg
PSAxIDw8IDIsCisgICAgQWxsTXV0YXRpb25UeXBlcyA9IENoaWxkTGlzdCB8IEF0dHJpYnV0ZXMg
fCBDaGFyYWN0ZXJEYXRhLAogCi0gICAgICAgIEFsbE11dGF0aW9uVHlwZXMgPSBDaGlsZExpc3Qg
fCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YQotICAgIH07CisgICAgLy8gT2JzZXJ2YXRpb25G
bGFncworICAgIFN1YnRyZWUgPSAxIDw8IDMsCisgICAgQXR0cmlidXRlRmlsdGVyID0gMSA8PCA0
LAorICAgIEFsbE9ic2VydmF0aW9uRmxhZ3MgPSBTdWJ0cmVlIHwgQXR0cmlidXRlRmlsdGVyLAog
Ci0gICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7Ci0gICAgICAgIFN1YnRyZWUgPSAxIDw8IDMs
Ci0gICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAotICAgIH07CisgICAgLy8gRGVsaXZl
cnlGbGFncworICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0gMSA8PCA1LAorICAgIENoYXJhY3RlckRh
dGFPbGRWYWx1ZSA9IDEgPDwgNiwKKyAgICBBbGxEZWxpdmVyeUZsYWdzID0gQXR0cmlidXRlT2xk
VmFsdWUgfCBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUsCit9OwogCi0gICAgZW51bSBEZWxpdmVyeUZs
YWdzIHsKLSAgICAgICAgQXR0cmlidXRlT2xkVmFsdWUgPSAxIDw8IDUsCi0gICAgICAgIENoYXJh
Y3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwKLSAgICB9OwordXNpbmcgTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OwordXNpbmcg
TXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU+OwogCitjbGFzcyBNdXRhdGlvbk9ic2VydmVyIGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
TXV0YXRpb25PYnNlcnZlcik7CitwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNdXRhdGlvbk9ic2Vy
dmVyPiBjcmVhdGUoUmVmPE11dGF0aW9uQ2FsbGJhY2s+JiYpOwogCiAgICAgfk11dGF0aW9uT2Jz
ZXJ2ZXIoKTsKQEAgLTExNSw2ICsxMTcsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG5v
dGlmeU11dGF0aW9uT2JzZXJ2ZXJzKFdpbmRvd0V2ZW50TG9vcCYpOwogCiBwcml2YXRlOgorICAg
IHVzaW5nIE11dGF0aW9uVHlwZSA9IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOworICAgIHVz
aW5nIE9ic2VydmF0aW9uRmxhZ3MgPSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTsKKyAgICB1
c2luZyBEZWxpdmVyeUZsYWdzID0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU7CisKICAgICBl
eHBsaWNpdCBNdXRhdGlvbk9ic2VydmVyKFJlZjxNdXRhdGlvbkNhbGxiYWNrPiYmKTsKICAgICB2
b2lkIGRlbGl2ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5jcHAKaW5kZXggMDI3NmU0MmJlNWJkODNmZjQyYTc5MzU2YmRl
OWNlNzM2MDk5Y2JkZS4uMmFlYzY1MjkwYzM4NDc3MjI2YTBmMDg4MjJmZmEzN2M1ZGY3YjBlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAuY3BwCkBAIC00NCw5ICs0NCw5IEBAIGlubGluZSBNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAoSGFzaE1hcDxSZWY8CiAgICAg
QVNTRVJUKCFtX29ic2VydmVycy5pc0VtcHR5KCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TXV0
YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
OjpjcmVhdGVJZk5lZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9u
VHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNv
bnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpj
cmVhdGVJZk5lZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5
cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKLSAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRp
b25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFt
ZSk7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRy
aWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKICAgICBhdXRvIG9i
c2VydmVycyA9IHRhcmdldC5yZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnModHlwZSwgYXR0cmli
dXRlTmFtZSk7CiAgICAgaWYgKG9ic2VydmVycy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVy
ZXN0R3JvdXAuaAppbmRleCAzYzBhZTUyMzdkNGIyZTJlZmY3MGRkZTY2MmU1ZjRlMWU1NjkyNmFk
Li4yZjQ2YzgxZThlNWU4OTMwZmZjY2MxZGI4NGRhODBiY2E5MDQxYjk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaApAQCAtMzAs
NyArMzAsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDYsMzYgKzQ2
LDM2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUmIHRhcmdl
dCkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNl
cnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkKKyAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZyA9IDA7
Ci0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6
OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKKyAgICAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVy
eU9wdGlvbnMgb2xkVmFsdWVGbGFnOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcp
OwogICAgIH0KIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlcklu
dGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbihOb2RlJiB0YXJnZXQp
CiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2
ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEpKQorICAgICAgICBpZiAo
IXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSkKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoYXJhY3RlckRhdGEsIE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRW
YWx1ZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKICAgICB9CiAKICAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JBdHRyaWJ1dGVz
TXV0YXRpb24oTm9kZSYgdGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzKSkKKyAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcykpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVy
OjpBdHRyaWJ1dGVzLCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJp
YnV0ZU5hbWUpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcywgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGU6OkF0dHJpYnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CiAgICAgfQogCiAgICAgYm9v
bCBpc09sZFZhbHVlUmVxdWVzdGVkKCkgY29uc3Q7CiAgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25S
ZWNvcmQoUmVmPE11dGF0aW9uUmVjb3JkPiYmKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRl
ZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyaWJ1dGVOYW1lID0gbnVsbHB0cik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
b2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lID0gbnVsbHB0
cik7CiAKLSAgICBib29sIGhhc09sZFZhbHVlKE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25z
IG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMgJiBtX29sZFZhbHVlRmxhZzsgfQorICAg
IGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykg
Y29uc3QgeyByZXR1cm4gb3B0aW9ucy5jb250YWluc0FueShtX29sZFZhbHVlRmxhZyk7IH0KIAog
ICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9ucz4gbV9vYnNlcnZlcnM7CiAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
bV9vbGRWYWx1ZUZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggYzZmMWZiMTVkZmY4ZDVlYmZmMmY1YzViN2I3ZWRl
M2FlM2QwZWI3OS4uZDNjMWZhNjZlZDJmNTU0N2YwYjgwOWM2OTA3YmI0NWM0ZjlmNTRhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcApAQCAtOTUsMTYgKzk1LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hh
YmxlUmVmPE5vZGU+Pj4gTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6dGFrCiAgICAgcmV0
dXJuIHJldHVyblZhbHVlOwogfQogCi1ib29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246
OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6
TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpIGNv
bnN0Citib29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRh
dGlvbkZyb20oTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgdHlwZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkgY29uc3QKIHsKLSAgICBBU1NFUlQoKHR5
cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAh
YXR0cmlidXRlTmFtZSk7Ci0gICAgaWYgKCEobV9vcHRpb25zICYgdHlwZSkpCisgICAgQVNTRVJU
KCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzICYmIGF0dHJp
YnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBpZiAoIW1fb3B0aW9ucy5jb250YWlu
cyh0eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCZtX25vZGUgIT0gJm5v
ZGUgJiYgIWlzU3VidHJlZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAodHlw
ZSAhPSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzIHx8ICEobV9vcHRpb25zICYgTXV0YXRp
b25PYnNlcnZlcjo6QXR0cmlidXRlRmlsdGVyKSkKKyAgICBpZiAodHlwZSAhPSBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyB8fCAhbV9vcHRpb25zLmNvbnRhaW5zKE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVGaWx0ZXIpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIGlmICghYXR0cmlidXRlTmFtZS0+bmFtZXNwYWNlVVJJKCkuaXNOdWxsKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
aAppbmRleCAzMTEwODQxOGYxZWQ1NjRmYWI5NWI5NmZjOGEwY2ZkYTUzNTNmM2ViLi5kNjg0YjFm
MGIxYjg3ZTgxNzA1MDY0MDA1Y2FiNzkwNTE3MDc4NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTU2LDEzICs1NiwxMyBA
QCBwdWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9k
ZT4+PiB0YWtlVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpOwogICAgIGJvb2wgaGFzVHJhbnNpZW50
UmVnaXN0cmF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9k
ZXMgJiYgIW1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMtPmlzRW1wdHkoKTsgfQogCi0gICAg
Ym9vbCBzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyOjpN
dXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpIGNvbnN0Owot
ICAgIGJvb2wgaXNTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25P
YnNlcnZlcjo6U3VidHJlZTsgfQorICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShO
b2RlJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUpIGNvbnN0OworICAgIGJvb2wgaXNTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zLmNvbnRhaW5zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpTdWJ0cmVlKTsg
fQogCiAgICAgTXV0YXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIoKSB7IHJldHVybiBtX29ic2VydmVy
LmdldCgpOyB9CiAgICAgTm9kZSYgbm9kZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQotICAgIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucyAmIChNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVPbGRWYWx1ZSB8IE11dGF0
aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7IH0KLSAgICBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgTXV0
YXRpb25PYnNlcnZlcjo6QWxsTXV0YXRpb25UeXBlczsgfQorICAgIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAm
IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBbGxEZWxpdmVyeUZsYWdzOyB9CisgICAgTXV0
YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBbGxNdXRhdGlvblR5cGVzOyB9CiAK
ICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6QWJzdHJhY3RTbG90Vmlz
aXRvciYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYTZmMTk4MzZhOWJkZDUxNjZmODgw
Y2U2MDY0MzJkYzA2MWVjNDNhZi4uNTA3MzIzNDE4M2IzYzM1NWJjZTQwMjA0YjRkMDM1YmRhOGEz
YjFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjI4Miw3ICsyMjgyLDcgQEAgSGFzaFNldDxNdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIE5vZGU6OnRyYW5zaWVudE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyeSgKICAgICByZXR1cm4gJmRhdGEtPnRyYW5zaWVudFJlZ2lzdHJ5OwogfQogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3RyeT4gc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RNYXRj
aGluZ09ic2VydmVyc0Zvck11dGF0aW9uKEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgUmVnaXN0cnkqIHJlZ2lz
dHJ5LCBOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBj
b25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQordGVtcGxhdGU8dHlwZW5hbWUgUmVn
aXN0cnk+IHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRh
dGlvbihIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVy
eU9wdGlvbnM+JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9kZSYgdGFyZ2V0LCBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
aWJ1dGVOYW1lKQogewogICAgIGlmICghcmVnaXN0cnkpCiAgICAgICAgIHJldHVybjsKQEAgLTIy
OTIsMTUgKzIyOTIsMTUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmVnaXN0cnk+IHN0YXRpYyBpbmxp
bmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGkKICAgICAgICAgICAgIGF1
dG8gZGVsaXZlcnlPcHRpb25zID0gcmVnaXN0cmF0aW9uLT5kZWxpdmVyeU9wdGlvbnMoKTsKICAg
ICAgICAgICAgIGF1dG8gcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChyZWdpc3RyYXRpb24tPm9ic2Vy
dmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0Vu
dHJ5KQotICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgfD0gZGVsaXZlcnlP
cHRpb25zOworICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKGRlbGl2
ZXJ5T3B0aW9ucyk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKLUhhc2hNYXA8UmVmPE11dGF0aW9u
T2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBj
b25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQorSGFzaE1hcDxSZWY8TXV0YXRpb25P
YnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBOb2RlOjpyZWdpc3RlcmVk
TXV0YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgdHlwZSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKICAgICBIYXNoTWFwPFJlZjxNdXRhdGlv
bk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJlc3VsdDsKLSAgICBB
U1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVO
YW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1
dGVOYW1lKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihyZXN1bHQs
IG11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpLCAqdGhpcywgdHlwZSwgYXR0cmlidXRlTmFtZSk7
CiAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCB0cmFuc2ll
bnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSwgKnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUp
OwogICAgIGZvciAoTm9kZSogbm9kZSA9IHBhcmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
PnBhcmVudE5vZGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYmRiODQyNzA1MzllMTMxNjYxNDE2OWUw
YzdmMDY2OTI3NzI0NmJhNi4uNWQ2OTNmYzI1YjQ2Y2Y0OTllNzUzMzM2MDk3ZmQ5MTY3NTUwOGRh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKLSNp
bmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFu
dHMuaCIKICNpbmNsdWRlICJTdHlsZVZhbGlkaXR5LmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgi
CkBAIC01NCw2ICs1Myw4IEBAIGNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFzcyBIVE1MUXVhbGlmaWVk
TmFtZTsKIGNsYXNzIEhUTUxTbG90RWxlbWVudDsKIGNsYXNzIE1hdGhNTFF1YWxpZmllZE5hbWU7
CitjbGFzcyBNdXRhdGlvbk9ic2VydmVyOworY2xhc3MgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbjsKIGNsYXNzIE5hbWVkTm9kZU1hcDsKIGNsYXNzIE5vZGVMaXN0OwogY2xhc3MgTm9kZUxp
c3RzTm9kZURhdGE7CkBAIC02Nyw2ICs2OCwxMCBAQCBjbGFzcyBTVkdRdWFsaWZpZWROYW1lOwog
Y2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRvdWNoRXZlbnQ7CiAKK2VudW0gY2xhc3MgTXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGUgOiB1aW50OF90OwordXNpbmcgTXV0YXRpb25PYnNlcnZlck9w
dGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OwordXNpbmcgTXV0
YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU+OworCiB1c2luZyBOb2RlT3JTdHJpbmcgPSBWYXJpYW50PFJlZlB0cjxOb2RlPiwg
U3RyaW5nPjsKIAogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CkBAIC00OTQsNyAr
NDk5LDcgQEAgcHVibGljOgogICAgIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhQ29u
Y3VycmVudGx5KCkgZmluYWw7CiAgICAgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdl
dERhdGEoKSBmaW5hbDsKIAotICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRh
dGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11
dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmli
dXRlTmFtZSk7CisgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOwog
ICAgIHZvaWQgcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImLCBNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRl
RmlsdGVyKTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25P
YnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDE3NmJjM2I0ODkyMGZlZDA4YTJh
YTk1YWEyYmFlNjY3YWVkZjQyZmQuLjNlMGY3ZTU0MzVlYTM3ZmM2YjlkY2ZiNDFmZTM2MTg1MjVm
MmRmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3Bw
CkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHls
ZVNoZWV0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiTWVkaWFMaXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXgg
ZjA0OWJkODRiMTJhYWQwY2RhM2VlNzE1ODI2MDk0MzgxZjA5MTI1My4uYzRmMjk1OTk5MzllYzE2
ODMyYzZkZjZjMGNlYzAyMGJjZDQyNTBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkN1cnJl
bnRTY3JpcHRJbmNyZW1lbnRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQuaAppbmRleCBiMTA3NjY1OTkzMTBkZjQ1NDYxNzMxZjM0YmIzYzllOWMyOGNl
MzNjLi5hYjI3ODM3Yjk4ODM3OTY0ZThiNjhkMzZkMTBmNzE4OTVkNmE2MGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKQEAgLTI5
LDMwICsyOSwzMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uIDogYm9vbCB7IEVuZm9yY2UsIFJlcG9y
dCB9OworCitzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQgOiBFdmVudElu
aXQgeworICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KCkgeyB9CisKKyAgICBT
dHJpbmcgZG9jdW1lbnRVUkk7CisgICAgU3RyaW5nIHJlZmVycmVyOworICAgIFN0cmluZyBibG9j
a2VkVVJJOworICAgIFN0cmluZyB2aW9sYXRlZERpcmVjdGl2ZTsKKyAgICBTdHJpbmcgZWZmZWN0
aXZlRGlyZWN0aXZlOworICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeTsKKyAgICBTdHJpbmcgc291
cmNlRmlsZTsKKyAgICBTdHJpbmcgc2FtcGxlOworICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiB7IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnREaXNwb3NpdGlvbjo6RW5mb3JjZSB9OworICAgIHVuc2lnbmVkIHNob3J0IHN0YXR1c0NvZGUg
eyAwIH07CisgICAgdW5zaWduZWQgbGluZU51bWJlciB7IDAgfTsKKyAgICB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIgeyAwIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudEluaXQmKTsKK307CisKIGNsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCk7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBEaXNw
b3NpdGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKLQotICAgIHN0cnVjdCBJbml0IDog
RXZlbnRJbml0IHsKLSAgICAgICAgSW5pdCgpIHsgfQotCi0gICAgICAgIFN0cmluZyBkb2N1bWVu
dFVSSTsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVyOwotICAgICAgICBTdHJpbmcgYmxvY2tlZFVS
STsKLSAgICAgICAgU3RyaW5nIHZpb2xhdGVkRGlyZWN0aXZlOwotICAgICAgICBTdHJpbmcgZWZm
ZWN0aXZlRGlyZWN0aXZlOwotICAgICAgICBTdHJpbmcgb3JpZ2luYWxQb2xpY3k7Ci0gICAgICAg
IFN0cmluZyBzb3VyY2VGaWxlOwotICAgICAgICBTdHJpbmcgc2FtcGxlOwotICAgICAgICBEaXNw
b3NpdGlvbiBkaXNwb3NpdGlvbiB7IERpc3Bvc2l0aW9uOjpFbmZvcmNlIH07Ci0gICAgICAgIHVu
c2lnbmVkIHNob3J0IHN0YXR1c0NvZGUgeyAwIH07Ci0gICAgICAgIHVuc2lnbmVkIGxpbmVOdW1i
ZXIgeyAwIH07Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbk51bWJlciB7IDAgfTsKLQotICAgICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0g
ICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIEluaXQmKTsKLSAgICB9OworICAgIHVzaW5nIERpc3Bvc2l0
aW9uID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOworICAgIHVzaW5n
IEluaXQgPSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDsKIAogICAgIHN0YXRpYyBS
ZWY8U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyID0geyB9LCBJc1RydXN0ZWQgaXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObykKICAgICB7CkBAIC0xMTEsNyArMTE0LDcgQEAgcHJpdmF0ZToKIH07
CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQ6OkluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBFdmVudEluaXQmPigqdGhpcyk7
CiAgICAgZW5jb2RlciA8PCBkb2N1bWVudFVSSTsKQEAgLTEyOSw3ICsxMzIsNyBAQCB2b2lkIFNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotYm9vbCBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYgZXZlbnRJbml0KQorYm9vbCBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50SW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0JiBldmVudEluaXQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzdGF0aWNfY2FzdDxFdmVudEluaXQmPihldmVudEluaXQpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTY0LDExICsxNjcsMTEgQEAgYm9vbCBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VjdXJpdHlQb2xpY3kKIAog
bmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb24+IHsKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERp
c3Bvc2l0aW9uPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICBXZWJDb3Jl
OjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbiwKLSAgICBXZWJDb3Jl
OjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6RW5mb3JjZSwKLSAg
ICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6UmVw
b3J0CisgICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9u
LAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjo6
RW5mb3JjZSwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9z
aXRpb246OlJlcG9ydAogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAKaW5kZXggNTZmMGM3OWQ0NWQ5Mjc2OTY5NjcyMTM4MDA1M2RmMGI0OWUxYzdmMS4u
NzRmZDQ1ZTZkYmJiNDU2YjU0NTNiMWQ0MGYzOGNmMDQ2NDBkNzdhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2lu
Y2x1ZGUgIkRlZmF1bHRSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyOTM3OWIyMGY1OTFm
ZmVmMGJkNTU3YzgwOGQ4YjQ5NDBhYWE1YTcwLi42NWViZmE3YTU0ZDhmYWQzNGE3YWUwOWM1NWJh
MzMwNWU3MzZjMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTg1LDggKzg1LDggQEAKICNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIKICNp
bmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJlZS5o
IgotI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJQ
YWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1U
ZXh0VHJhY2suaCIKQEAgLTc5NzMsNyArNzk3Myw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlh
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0gICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUo
KS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykg
JiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAgICBpZiAoaGFz
TWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3Rh
dGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlKSkgewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJl
dHVybmluZyB0cnVlIGJlY2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNrIik7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtNzk4OCw3ICs3OTg4LDcg
QEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFj
a1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01lZGlhU3Ry
ZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1
cmVEZXZpY2UpKSB7CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1l
ZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAgICAgICAg
ICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBwbGF5aW5n
IGFuIGF1ZGlvIE1lZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CkBAIC04MDQ4LDcgKzgwNDgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNj
aGVkdWxlVXBkYXRlTWVkaWFTdGF0ZSgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRl
TWVkaWFTdGF0ZSgpCiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRl
ID0gbWVkaWFTdGF0ZSgpOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUg
PSBtZWRpYVN0YXRlKCk7CiAgICAgaWYgKG1fbWVkaWFTdGF0ZSA9PSBzdGF0ZSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC04MDU5LDMxICs4MDU5LDMxIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dXBkYXRlTWVkaWFTdGF0ZSgpCiB9CiAjZW5kaWYKIAotTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAorTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QKIHsK
ICAgICBNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAKICAgICBib29sIGhhc0FjdGl2ZVZpZGVvID0g
aXNWaWRlbygpICYmIGhhc1ZpZGVvKCk7CiAgICAgYm9vbCBoYXNBdWRpbyA9IHRoaXMtPmhhc0F1
ZGlvKCk7CiAgICAgaWYgKGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSkKLSAgICAgICAgc3Rh
dGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZp
Y2UpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkKICAgICBpZiAobV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycykgewot
ICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcik7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcik7CiAg
ICAgICAgIGlmICghbWVkaWFTZXNzaW9uKCkud2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQo
KSkKLSAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1
aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKTsK
ICAgICB9CiAKICAgICBib29sIHJlcXVpcmVVc2VyR2VzdHVyZSA9IG1fbWVkaWFTZXNzaW9uICYm
IG1lZGlhU2Vzc2lvbigpLmhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lv
bjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9BdXRvcGxheVRvRXh0ZXJuYWxEZXZpY2UpOwogICAgIGlm
IChtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiAhcmVxdWlyZVVzZXJHZXN0dXJlICYm
ICFtX2ZhaWxlZFRvUGxheVRvV2lyZWxlc3NUYXJnZXQpCi0gICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKTsK
KyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyB8fCBoYXNBdWRp
bykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlv
T3JWaWRlbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QXVkaW9PclZpZGVvKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyAmJiBlbmRlZFBsYXliYWNr
KCkpCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5
VG9FbmQpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBs
YXlUb0VuZCk7CiAjZW5kaWYKIAogICAgIGlmICghaXNQbGF5aW5nKCkpCkBAIC04MDk3LDEwICs4
MDk3LDEwIEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVN0YXRlKCkgY29uc3QKICAgICBpc1BsYXlpbmdBdWRpbyA9IGlzUGxheWluZ0F1ZGlv
ICYmICFtdXRlZCgpOwogI2VuZGlmCiAgICAgaWYgKGlzUGxheWluZ0F1ZGlvKQotICAgICAgICBz
dGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOworICAg
ICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsK
IAogICAgIGlmIChoYXNBY3RpdmVWaWRlbykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyk7CiAKICAgICByZXR1cm4gc3RhdGU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGNmZDE5ZDNjMTcz
ZjEwY2U0ZWZlMGMyMGFlYjJhYmU1OTE5ZDI1OTYuLjAyZDQ4ODAxMTQ3NDYyYzkxM2VjZjk5YjZi
MDNiODAxMWQwZDFlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC01MjcsNyArNTI3LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIG1heEJ1ZmZlcmVkVGltZSgp
IGNvbnN0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlh
U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0U2l6ZUNoYW5nZWQoKTsK
ICAgICB2b2lkIHZpc2liaWxpdHlEaWRDaGFuZ2UoKTsKQEAgLTEyMTQsNyArMTIxNCw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0g
ICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBNb25vdG9uaWNUaW1l
IG1fY3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0V2ZW50RmlyZWRUaW1lOwogICAgIGJv
b2wgbV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2ZhaWxlZFRvUGxheVRvV2lyZWxlc3NUYXJnZXQgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggN2Y2ZDM5ZjNlY2Uw
Y2ZmNzU3OTRiZWQ0YWMzNGZlZDMxNjQ3ZjUxNy4uMjkxZWY5YTAyODEwMmYzMmFlYzM2Yzg5Yzg2
YWRiNGVjNzBmZTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxl
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMzg1LDcgKzM4NSw3IEBAIEV4
cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb24+IE1lZGlhRWxlbWVudFNlc3Np
b246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgaWYgKG1fZWxlbWVudC5oYXNNZWRpYVN0cmVhbVNy
Y09iamVjdCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVudC5pc0NhcHR1cmluZygpKQogICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKGRvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgICAgICBpZiAoZG9j
dW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAjZW5kaWYKQEAgLTQwMCw3ICs0
MDAsNyBAQCBFeHBlY3RlZDx2b2lkLCBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbgogICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCk7CiAg
ICAgfQogCi0gICAgaWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCAmJiB0b3BEb2N1
bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0b3BsYXlCZWhhdmlvcigpKQorICAgIGlm
ICh0b3BEb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
VXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYmIHRvcERvY3VtZW50LnF1aXJrcygpLm5l
ZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICBpZiAodG9wRG9jdW1lbnQuaGFzSGFkVXNlckludGVyYWN0aW9uKCkgJiYgZG9jdW1lbnQu
cXVpcmtzKCkuc2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSgpKQpAQCAtODA5
LDcgKzgwOSw3IEBAIHZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tUYXJnZXRQaWNr
ZXJXYXNEaXNtaXNzZWQoKQogICAgIGNsaWVudCgpLnBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlz
bWlzc2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENo
YW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIE1lZGlhRWxl
bWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKIHsKICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5wbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCmluZGV4IGRmNjE1MTBjZWM2NTAxMGMyZDZiZTVl
NGEwYjMwOWY3MDI1MjM0NTUuLmY1YmViZDI4ZGVmODg5YWUwMmEwMDZhYmRlNjkwMDc1YzQxNTA1
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCkBAIC05NSw3
ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNr
VGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIG1lZGlhU3RhdGVEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAjZW5kaWYKIAogICAgIGJvb2wg
cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI5
MjAyYTExNTY5ODBhNDg2YWFiOTY1MzBiNTViNTVhNDUwNTMxODcuLjhlNjVjNGViMTAyMzM1MjFm
NDhjN2Y0YjEyMGFkMmM4OTA5YTA3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAppbmRleCA5ZThkZjJlY2IwMTA0ODM2MWIyNDRmODUwZjliY2VjOTlh
NTE5ZTE5Li42ZDMxYzgxZmRlMTI4MGQyNDUzOWI5YzlmYjJlMDI4OTdjYWIzOTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50
LmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgogI2luY2x1
ZGUgIkRPTVBhdGNoU3VwcG9ydC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TmV0d29ya0FnZW50LmNwcAppbmRleCAzNzQ2ODQzMjU3N2Y2NGUzZDE4YmMzNjY3Y2EyOThmNDNh
M2JmNTAzLi44NGIxNjM3MDE0ZWY1NmRhZThiY2VmMGQ3MjQ5NTYyZDIwZDBkZGRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3
b3JrQWdlbnQuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0Lmgi
CiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVTdW1t
YXJ5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCmluZGV4IDk0NjQ3NGI1ODU4MTkzYjBi
MzA2YzkyZTFmNWIyZThiYzFmYWM5YmMuLjU4YzdiYjc5Mzg4YWM2ZjAzZjJjODIwZDg5NjhmYTRh
MzUyMWZmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5l
clBvbGljeS5oCkBAIC0yNSwxNSArMjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50
U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIHN0
cnVjdCBOYXZpZ2F0aW9uUmVxdWVzdGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCBmOWYzOTJjYjg0ZDgyMDJiMmI5ZWNlZjBkZTE2NDUxODAzZjM3YjYz
Li45OWM5NzhkY2IzYzY0Y2RlNjk2NTM5YmRmOWFiNWM1YjRkZjI3ODU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTI0MDAsNyArMjQwMCw3IEBAIHZvaWQg
RG9jdW1lbnRMb2FkZXI6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBS
ZWY8Rm9ybURhdGE+JiYgcmVwCiAgICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgq
bV9mcmFtZSwgV1RGTW92ZShyZXBvcnRVUkwpLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJl
cG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIERvY3VtZW50TG9hZGVyOjplbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5lbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXVEZNb3ZlKGV2ZW50SW5pdCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA5ZmM0MTM3YTY5MDBlMjRhMWE4
MmNlYzdjYzc1NzkzZDM0N2U5ODEyLi40ZmJmZDcxMjAxOTlkMjdjZmE4N2JkZDU5NjczNzEwNmJj
ZTA4ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNTIyLDcg
KzUyMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9y
dChVUkwmJiwgUmVmPEZvcm1EYXRhPiYmKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OkluaXQmJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
SW5pdCYmKSBmaW5hbDsKIAogICAgIGJvb2wgZGlzYWxsb3dXZWJBcmNoaXZlKCkgY29uc3Q7CiAg
ICAgYm9vbCBkaXNhbGxvd0RhdGFSZXF1ZXN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCA4OTA5NWZlM2RlNzMyODhlMjczMWMxMmFmM2QyNjE2
OGY3Y2MzNTMwLi40MzJiZDEyYjMyY2U4YzBmNzRiMjBmMTFmM2YyODllOGRlN2M3MWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01JbXBsZW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlz
c2lvbi5jcHAKaW5kZXggNjgzZjg0YzI1NDE1ZDNlYzM0NjdlMDgxMDhiODEzZjVhNzFhODIzOS4u
YWU5MmFkZDg3NTYwNTFkMDU2YTIzMDJkZGNiYzQ4OWIxMGU3NDg0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRl
ICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZvcm1E
YXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmY2IyMjAyZjgy
ODEwYWYyYTRmOGQ5ZTQ1MWNiNTc0ZmEwYTdmZDQzLi5jM2JiMzQ2YTM5NDdjNTg5ODNlZTlkOWY4
ZWIwNGM5OTI4MDM2MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTU1LDcgKzU1LDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5
cy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDEwN2YzMjQ2NGNkMWQzYmI5MjNjMmE5
Zjc1MzBkYWZlYjViMTc4ZTkuLjM2ZWUzMjc1ZDY5MjA3ZTQ1MDIxNjJmMGFiYWViODhlNThlYmM3
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcApAQCAtNTAsNyArNTAsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRz
LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFn
bm9zdGljTG9nZ2luZ0tleXMuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNGNmY2IxNjgxZjE3MzA5YWM0YTdmYzBiMjE5YWNlZjk1OTU3Yjc5ZC4uY2Ni
ZGZhNDk2M2U0MDM5NmM3OWVhOTYzOWNiNWEwNzliNGYzZWQyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC01MDMsNyArNTAzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVh
bCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZl
bnQsIE9wdGlvblNldDxBdXRvcGxheUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIEVOQUJMRShXRUJf
Q1JZUFRPKQpAQCAtNTM0LDcgKzUzNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRk
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllcikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0
cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4YzQzNzdjYjk1NGEwYjFhMDg5ZTUyZWZhZDhhNDFk
OTEwNThhOGY3Li5mZDMzMzY4YWQyMWRjNTU5Njc0YjNhN2E2OGQyMzM0Y2U0ZjEzMzljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUu
aCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
b2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNTRhNWFjMDAwZTI3YzkyZGE5NDBlOWYz
YTczMTJjN2I5Y2VlNmY2Yy4uNGM3NzQ4YjM2NmFmMzY4OWRmMzRhOWNiMWY4ZGI2NjEyMmVjZjcy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjA4Miw3ICsyMDgyLDcgQEAgYm9v
bCBGcmFtZVZpZXc6OnVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLU9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBGcmFtZVZpZXc6OnN0eWxlQ29s
b3JPcHRpb25zKCkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gRnJhbWVWaWV3
OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1Mp
CiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyZXJGb3JDb2xvclNjaGVtZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZDlkNDhhZjVmN2QxNDk3N2YzYTUwZGU1NjU5OTNlZGUz
ZDUyYTMxOC4uOTdhZGViMTAwNmZjNTU2Yjk5ZmU1OGFmNzAwODJjN2IyZWFkYzg1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01MzgsNyArNTM4LDcgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkU2V0Q3Vyc29yKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURh
cmtBcHBlYXJhbmNlKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFJl
bW92ZSB0aGlzIG1ldGhvZCBvbmNlIHBsdWdpbiBsb2FkaW5nIGlzIGRlY291cGxlZCBmcm9tIGxh
eW91dC4KICAgICB2b2lkIGZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOwpAQCAtOTU1
LDcgKzk1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNUcmFuc3BhcmVudCB7IGZhbHNl
IH07CiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCi0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG1fc3R5bGVDb2xvck9wdGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBtX3N0eWxlQ29sb3JPcHRpb25zOwogI2VuZGlmCiAKICAgICBib29sIG1faXNUcmFj
a2luZ1JlcGFpbnRzIHsgZmFsc2UgfTsgLy8gVXNlZCBmb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggODBhZDVhZWVmYWRmOWVjYjgzNmI5MTIzYzM4YzU0MGU2
ZjRjMTUxNy4uNGUxOWU4Y2Q3MWE2NTI5Zjk4YWY2NDgyZTZjYTVhMDUyYjFmNzM5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTMxLDMyICszMSw1MiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUgOiB1aW50
MzJfdCB7CisgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCisgICAgSXNQbGF5aW5nVmlkZW8g
PSAxIDw8IDEsCisgICAgSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSA9IDEgPDwgMiwKKyAgICBS
ZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyA9IDEgPDwgMywKKyAgICBFeHRlcm5hbERl
dmljZUF1dG9QbGF5Q2FuZGlkYXRlID0gMSA8PCA0LAorICAgIERpZFBsYXlUb0VuZCA9IDEgPDwg
NSwKKyAgICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2LAorICAgIElzTmV4dFRyYWNr
Q29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCisgICAgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJs
ZWQgPSAxIDw8IDgsCisgICAgSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IDEgPDwgOSwKKyAgICBIYXNBdWRpb09yVmlkZW8gPSAxIDw8IDEwLAorICAgIEhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTEsCisgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlID0gMSA8PCAxMiwKKyAgICBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTMs
CisgICAgSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE0LAorICAgIEhhc0ludGVy
cnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNSwKKyAgICBIYXNJbnRlcnJ1cHRlZFZp
ZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTYsCisgICAgSGFzVXNlckludGVyYWN0ZWRXaXRoTWVk
aWFFbGVtZW50ID0gMSA8PCAxNywKKyAgICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSA9
IDEgPDwgMTgsCisgICAgSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCisg
ICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMjAsCit9OwordXNp
bmcgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZT47CisKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQg
OiB1aW50OF90IHsKKyAgICBBdWRpbywKKyAgICBWaWRlbywKKyAgICBBdWRpb1ZpZGVvCit9Owor
CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdCB7CisgICAgQXVk
aW9Jc011dGVkID0gMSA8PCAwLAorICAgIEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCisg
ICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMiwKKyAgICBTY3JlZW5DYXB0dXJlSXNNdXRl
ZCA9IDEgPDwgMywKK307Cit1c2luZyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0
aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPjsKKwogY2xhc3MgTWVkaWFQcm9kdWNlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVByb2R1Y2VyPiB7CiBwdWJsaWM6Ci0gICAgZW51
bSBjbGFzcyBNZWRpYVN0YXRlIHsKLSAgICAgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCi0g
ICAgICAgIElzUGxheWluZ1ZpZGVvID0gMSA8PCAxLAotICAgICAgICBJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlID0gMSA8PCAyLAotICAgICAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRv
cmluZyA9IDEgPDwgMywKLSAgICAgICAgRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSA9
IDEgPDwgNCwKLSAgICAgICAgRGlkUGxheVRvRW5kID0gMSA8PCA1LAotICAgICAgICBJc1NvdXJj
ZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2LAotICAgICAgICBJc05leHRUcmFja0NvbnRyb2xFbmFi
bGVkID0gMSA8PCA3LAotICAgICAgICBJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCA9IDEg
PDwgOCwKLSAgICAgICAgSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEg
PDwgOSwKLSAgICAgICAgSGFzQXVkaW9PclZpZGVvID0gMSA8PCAxMCwKLSAgICAgICAgSGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMSwKLSAgICAgICAgSGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlID0gMSA8PCAxMiwKLSAgICAgICAgSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2UgPSAxIDw8IDEzLAotICAgICAgICBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTQsCi0gICAgICAgIEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNSwK
LSAgICAgICAgSGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE2LAotICAg
ICAgICBIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAotICAgICAg
ICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTgsCi0gICAgICAgIEhhc011
dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE5LAotICAgICAgICBIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAyMCwKLSAgICB9OwotICAgIHVzaW5nIE1lZGlh
U3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVN0YXRlPjsKKyAgICB1c2luZyBNZWRpYVN0YXRl
ID0gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU7CisgICAgdXNpbmcgTXV0ZWRTdGF0ZSA9IE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOworICAgIHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3M7CisgICAgdXNpbmcgTXV0ZWRTdGF0ZUZsYWdzID0gTWVkaWFQ
cm9kdWNlck11dGVkU3RhdGVGbGFnczsKKwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0
ZUZsYWdzIElzTm90UGxheWluZyA9IHsgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE1lZGlhU3Rh
dGVGbGFncyBBdWRpb0NhcHR1cmVNYXNrID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0Nh
cHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRp
YVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSB9OwogICAgIHN0YXRpYyBj
b25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIFZpZGVvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6
Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0Nh
cHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNl
IH07CkBAIC02OSwyMCArODksNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIE1lZGlhU3RhdGVG
bGFncyBtZWRpYVN0YXRlKCkgY29uc3QgPSAwOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYUNhcHR1
cmVLaW5kIHsKLSAgICAgICAgQXVkaW8sCi0gICAgICAgIFZpZGVvLAotICAgICAgICBBdWRpb1Zp
ZGVvCi0gICAgfTsKLQotICAgIGVudW0gY2xhc3MgTXV0ZWRTdGF0ZSB7Ci0gICAgICAgIEF1ZGlv
SXNNdXRlZCA9IDEgPDwgMCwKLSAgICAgICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwK
LSAgICAgICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMiwKLSAgICAgICAgU2NyZWVuQ2Fw
dHVyZUlzTXV0ZWQgPSAxIDw8IDMsCi0gICAgfTsKLQotICAgIHVzaW5nIE11dGVkU3RhdGVGbGFn
cyA9IE9wdGlvblNldDxNdXRlZFN0YXRlPjsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3Rh
dGVGbGFncyBBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlv
Q2FwdHVyZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQgfTsKICAgICBz
dGF0aWMgY29uc3RleHByIE11dGVkU3RhdGVGbGFncyBNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVk
ID0geyBNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpWaWRlb0Nh
cHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCB9OwogCkBAIC05
Niw0OSArMTAyLDQ5IEBAIHByb3RlY3RlZDoKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZD4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZD4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0g
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywKLSAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbwor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwKKyAgICAgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvCiAgICAgPjsK
IH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGUsCi0gICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKLSAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRl
cm5hbERldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCi0g
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVt
ZW50UGxheWluZywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsCi0gICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc0F1ZGlvT3JWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsCi0g
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9D
YXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlk
ZW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsCi0gICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNl
LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERp
c3BsYXlDYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVy
bmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLAorICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRy
b2xFbmFibGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVw
dGVkVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZp
Y2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERp
c3BsYXlDYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZQogICAgID47CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGU+IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9k
dWNlck11dGVkU3RhdGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlLAotICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQs
Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1
cmVJc011dGVkCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRl
ZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVy
ZUlzTXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3Jl
ZW5DYXB0dXJlSXNNdXRlZAogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4ODUz
M2IzZDJiMzcxODJlMTYwNTJmZWQxMjkzNjhhNDZlNDIyOWFmLi5jZjE3MDEzZTVkNjg2ZjAxZDUy
MmQ2ZDY3Nzk2NDgyZjU5ZWU0Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJE
b2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTIxNzAsNyAr
MjE3MSw3IEBAIHZvaWQgUGFnZTo6c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKIAogdm9p
ZCBQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSgpCiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIHN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3Rh
dGU7CiAgICAgZm9yRWFjaERvY3VtZW50KFsmXShhdXRvJiBkb2N1bWVudCkgewogICAgICAgICBz
dGF0ZS5hZGQoZG9jdW1lbnQubWVkaWFTdGF0ZSgpKTsKICAgICB9KTsKQEAgLTIyMDgsNyArMjIw
OSw3IEBAIHZvaWQgUGFnZTo6cGxheWJhY2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpCiAK
ICNlbmRpZgogCi12b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVG
bGFncyBtdXRlZCkKK3ZvaWQgUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVG
bGFncyBtdXRlZCkKIHsKICAgICBtX211dGVkU3RhdGUgPSBtdXRlZDsKIApAQCAtMjIxNyw3ICsy
MjE4LDcgQEAgdm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3MgbXV0ZWQpCiAgICAgfSk7CiB9CiAKLXZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCit2b2lkIFBhZ2U6OnN0b3BNZWRpYUNh
cHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsKICAgICBVTlVTRURf
UEFSQU0oa2luZCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTMwMTgsNyArMzAxOSw3
IEBAIHZvaWQgUGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4CiAjZW5kaWYKIH0KIAotdm9pZCBQYWdlOjpwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCit2b2lkIFBhZ2U6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgY2hyb21lKCkuY2xpZW50
KCkucGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0
YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggOTRmOGI4ZGE5MjA2OTYzNzg4YzUxNjE2NTNlNTA1
Y2NjMDA1MzgzOS4uZmE4ODlmNGM0Y2ZkYjJkZGMzYzg0MzM3YzZhYzkxN2NlMGI5Mjg0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTE3Nyw2ICsxNzcsMTIgQEAgZW51bSBjbGFzcyBDYW5XcmFwIDogYm9v
bDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1Bv
bGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6
IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlIDogdWludDMyX3Q7
CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIDogdWludDhfdDsKK2Vu
dW0gY2xhc3MgTWVkaWFQcm9kdWNlck11dGVkU3RhdGUgOiB1aW50OF90OworCit1c2luZyBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU+OwogCiBlbnVtIGNsYXNzIEV2ZW50VGhyb3R0bGluZ0JlaGF2
aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUsIFVucmVzcG9uc2l2ZSB9OwogZW51bSBjbGFzcyBNYWlu
RnJhbWVNYWluUmVzb3VyY2UgOiBib29sIHsgTm8sIFllcyB9OwpAQCAtNzI5LDE4ICs3MzUsMTgg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vz
c2lvbklEKTsKICAgICBib29sIHVzZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsgfQogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAg
ICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIHVwZGF0ZUlzUGxheWluZ01lZGlhKCk7Ci0gICAg
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX211dGVkU3RhdGU7IH0KLSAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lz
TXV0ZWQpOyB9Ci0gICAgYm9vbCBpc01lZGlhQ2FwdHVyZU11dGVkKCkgY29uc3QgeyByZXR1cm4g
bV9tdXRlZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RyZWFtQ2FwdHVy
ZUlzTXV0ZWQpOyB9OworICAgIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQorICAgIGlubGluZSBib29sIGlzQXVk
aW9NdXRlZCgpIGNvbnN0OworICAgIGlubGluZSBib29sIGlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBj
b25zdDsKICAgICB2b2lkIHNjaGVkdWxlUGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsK
ICNpZiBFTkFCTEUoVklERU8pCiAgICAgdm9pZCBwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVD
aGFuZ2VkKCk7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRN
dXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAgTWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyIG1lZGlh
U2Vzc2lvbkdyb3VwSWRlbnRpZmllcigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
bWVkaWFQbGF5YmFja0V4aXN0cygpOwpAQCAtNzYzLDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciwgY29uc3QgSW50UG9pbnQmLCBib29sLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmlu
ZyYpOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwg
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpAQCAt
OTk2LDcgKzEwMDIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbkxvd1F1YWxpdHlJbnRlcnBv
bGF0aW9uTW9kZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2Fs
bHNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGZsb2F0IG1fbWVkaWFWb2x1bWUgeyAxIH07Ci0gICAg
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKKyAgICBNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKIAogICAgIGZsb2F0IG1fcGFnZVNj
YWxlRmFjdG9yIHsgMSB9OwogICAgIGZsb2F0IG1fem9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yIHsg
MCB9OwpAQCAtMTEyMCw3ICsxMTI2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNDbG9zaW5n
IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNSZXN0b3JpbmdDYWNoZWRQYWdlIHsgZmFsc2UgfTsK
IAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CisgICAg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CiAKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgVGltZXIgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5lcy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlSW5saW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkYTkyMjYzYTcyMzI4MzY1N2Rl
ZjM5YTM4NTFlMjBkNjU2ZDA3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VJbmxpbmVzLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitpbmxpbmUgYm9vbCBQYWdlOjppc0F1ZGlvTXV0ZWQoKSBj
b25zdAoreworICAgIHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11
dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7Cit9CisKK2lubGluZSBib29sIFBhZ2U6OmlzTWVkaWFD
YXB0dXJlTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggNzYzZmY2NGJmNGU3ZTllMGZl
NDZlMTNmOGQ4MTMxNmQ4ZTNmYWE2Yy4uMWExMjEwZmE4MzM3Y2Q5NTIwZjRlMDExYTkwNzM2NzU0
ZGU1MThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVS
dWxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
CmluZGV4IDFkYmQxNTNiOTYwZWMyY2QzMjVkNzk4MjAzMzJkMjhlZWM1NjRjMTMuLjI5MDkxNjAw
Y2IxOTc3ZjlkMzM1YzFlZmFmZWIxOTI4ZGVmOTFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMzYsNyArMzYsNyBAQAog
I2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZS5oIgogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0Lmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJGb3JtRGF0YS5oIgpAQCAtNzc1LDcgKzc3NSw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjCiAgICAgdW5zaWduZWQgc2hvcnQgaHR0cFN0YXR1c0NvZGUgPSBtX3NlbGZTb3VyY2VQcm90
b2NvbCA9PSAiaHR0cCIgPyBtX2h0dHBTdGF0dXNDb2RlIDogMDsKIAogICAgIC8vIDEuIERpc3Bh
dGNoIHZpb2xhdGlvbiBldmVudC4KLSAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0IHZpb2xhdGlvbkV2ZW50SW5pdDsKKyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
SW5pdCB2aW9sYXRpb25FdmVudEluaXQ7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmRvY3VtZW50
VVJJID0gaW5mby5kb2N1bWVudFVSSTsKICAgICB2aW9sYXRpb25FdmVudEluaXQucmVmZXJyZXIg
PSBtX3JlZmVycmVyOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5ibG9ja2VkVVJJID0gYmxvY2tl
ZFVSSTsKQEAgLTc4Myw3ICs3ODMsNyBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVw
b3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIHZp
b2xhdGlvbkV2ZW50SW5pdC5lZmZlY3RpdmVEaXJlY3RpdmUgPSBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjdGl2ZTsKICAgICB2aW9sYXRpb25FdmVudEluaXQub3JpZ2luYWxQb2xpY3kgPSB2aW9sYXRl
ZERpcmVjdGl2ZUxpc3QuaGVhZGVyKCk7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnNvdXJjZUZp
bGUgPSBpbmZvLnNvdXJjZUZpbGU7Ci0gICAgdmlvbGF0aW9uRXZlbnRJbml0LmRpc3Bvc2l0aW9u
ID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LmlzUmVwb3J0T25seSgpID8gU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydCA6IFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpFbmZvcmNlOworICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5k
aXNwb3NpdGlvbiA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5pc1JlcG9ydE9ubHkoKSA/IFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjo6UmVwb3J0IDogU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpFbmZvcmNlOwogICAgIHZpb2xhdGlvbkV2ZW50
SW5pdC5zdGF0dXNDb2RlID0gaHR0cFN0YXR1c0NvZGU7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0
LmxpbmVOdW1iZXIgPSAgaW5mby5saW5lTnVtYmVyOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5j
b2x1bW5OdW1iZXIgPSBpbmZvLmNvbHVtbk51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgKaW5kZXggOGUwNTE4MjY0
MTQwNmYyY2M4Y2FhMmRjNTZhZTMzNjA2MzRlNmIxZS4uZjJmZTYzODk0NjQ5NmVkYmIzMDM4NDUz
OThmZjllNzM5N2MzNGJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IFdF
QkNPUkVfRVhQT1JUIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudCB7CiAKICAgICB2aXJ0dWFs
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+
JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAppbmRleCA3MmU0ZjY5MWI0Zjk1MjU3NWQ5MzExZTRkMGE3ZGUxN2NmZjAyMzY4Li5kMGE0ZmU0
YTIwZTBhZThkMjdkZTNkNGI5ZWU2OWU1MDdhNWEwZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAK
ICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIK
QEAgLTQxLDYgKzQwLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJh
eUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4
IGY1Mjc4M2FlOGFmN2Q1ZDYzYzViYzhlYWI2YzM2OWM2ZDRhZThhZWMuLmIyMDAyNGY3MTc3ZDI5
NjFhYTQ2ZmVkY2FmZDRiZGEyYWFlODhkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCkBAIC0xNzkzLDcgKzE3OTMsNyBAQCBib29sIFJlbmRlck9iamVjdDo6
dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudCgpLnVzZURhcmtB
cHBlYXJhbmNlKCZzdHlsZSgpKTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IFJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAorT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmc3R5bGUoKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMTI2MDAwNGY1YzJmN2Ux
ZGQwMmIyNDA4NTVkMjE1ODU1YmY2YjMzYi4uYzUzNGM5ZmRkMDVkNTg0NzBmYTdlNjYxNDg2YTZh
ZWFjY2Q2NjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAt
MTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZW5jbG9z
aW5nRnJhZ21lbnRlZEZsb3coKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNl
RGFya0FwcGVhcmFuY2UoKSBjb25zdDsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAog
ICAgIHZvaWQgc2V0SGFzQVhPYmplY3QoYm9vbCBmbGFnKSB7IG1faGFzQVhPYmplY3QgPSBmbGFn
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA3
ZWU5NDQyNmNjNTJiYWRiNDBmZmM0Y2I3Y2ZiZDEyNzc0YmNlNzNhLi4xZmU2M2IxNTc5NjlkZTgw
OWU4ZmIzYThlNDgwMjJmYmI4Mjk4NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBDb2xvciBSZW5kZXJSZXBsYWNl
ZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogICAgICAgICAgICAgICAgICAgICBp
ZiAoIWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgICAgICAgICAgICAgIE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25z
OjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGVt
ZSgpLmFwcEhpZ2hsaWdodENvbG9yKHN0eWxlQ29sb3JPcHRpb25zKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cAppbmRleCBiOTA4MmI1Njc3OTVmMmNkNWU0ZDZhNzRkNzAzM2E4NWU4NzFjMDVjLi44Y2JlYmZl
YmNiYmYzOGYyODJhYmNjYzRmNmQ1MDE1ZGY5NmM4NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTYwMyw3ICs2MDMsNyBAQCBMYXlvdXRQb2ludCBSZW5k
ZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oY29uc3QgUmVuZGVyQm94
JiBtdXRlQgogCiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNh
Y2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02MTEsNyArNjExLDcgQEAgQ29sb3IgUmVu
ZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hl
ID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTYxOSwxMiArNjE5LDEyIEBAIENvbG9yIFJl
bmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJsZW5kV2l0aFdoaXRlKGNvbG9yKTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjph
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25z
KTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlk
KCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAtNjMy
LDcgKzYzMiw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJuIGNhY2hlLmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6Omlu
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFj
YWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9y
dHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAtNjQwLDcgKzY0MCw3IEBA
IENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFj
YWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAg
LTY0OCw3ICs2NDgsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6TwogICAgIHJldHVybiBjYWNo
ZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6
OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNh
Y2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY1Niw3ICs2NTYsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRz
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02NjQsNyArNjY0
LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6Omlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25z
KTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhv
cHRpb25zKSkKQEAgLTY3Miw0NyArNjcyLDQ3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6CiAg
ICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsdWUgY29sb3IgYnkg
ZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAg
ICAgcmV0dXJuIENvbG9yOjpibHVlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
Ly8gVXNlIGEgd2hpdGUgY29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9l
c24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjp3aGl0ZTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBncmV5IGNvbG9yIGJ5IGRlZmF1
bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIC8v
IFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94J3MgaW5hY3RpdmUgY29sb3IuCiAgICAgcmV0dXJu
IFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3NiB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNrIGNvbG9yIGJ5IGRlZmF1bHQuCiAgICAgcmV0
dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3Jt
QWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1
cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0K
QEAgLTEyMzQsMTAgKzEyMzQsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6cGxhdGZvcm1Db2xvcnNE
aWRDaGFuZ2UoKQogICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENo
YW5nZUluRW52aXJvbm1lbnQoKTsKIH0KIAotYXV0byBSZW5kZXJUaGVtZTo6Y29sb3JDYWNoZShP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4gQ29sb3JDYWNo
ZSYKK2F1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xvckNhY2hlJgogewogICAgIGF1dG8gb3B0aW9uc0ln
bm9yaW5nVmlzaXRlZExpbmsgPSBvcHRpb25zOwotICAgIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRM
aW5rLnJlbW92ZShTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgb3B0
aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsucmVtb3ZlKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNp
dGVkTGluayk7CiAKICAgICByZXR1cm4gbV9jb2xvckNhY2hlTWFwLmVuc3VyZShvcHRpb25zSWdu
b3JpbmdWaXNpdGVkTGluay50b1JhdygpLCBbXSB7CiAgICAgICAgIHJldHVybiBDb2xvckNhY2hl
KCk7CkBAIC0xMjg0LDExICsxMjg0LDExIEBAIHZvaWQgUmVuZGVyVGhlbWU6OnN5c3RlbUZvbnQo
Q1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIGZvCiAgICAg
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKHN5c3RlbUZvbnRJRCwgZm9udERlc2Ny
aXB0aW9uKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQg
Y3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgc3dpdGNo
IChjc3NWYWx1ZUlkKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdExpbms6Ci0gICAgICAgIHJl
dHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5r
KSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAxMzkgfSA6IFNSR0JBPHVpbnQ4X3Q+IHsgMCwg
MCwgMjM4IH07CisgICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRp
b25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAyNiwgMTM5IH0gOiBT
UkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OwogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRBY3Rp
dmVsaW5rOgogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmV0ZXh0OgogICAgICAgICByZXR1cm4gQ29s
b3I6OnJlZDsKQEAgLTEzNjksNyArMTM2OSw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjpzeXN0ZW1D
b2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpCiAg
ICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlv
bnMpOwogICAgIGlmICghY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkK
QEAgLTEzNzcsMTMgKzEzNzcsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdo
bGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW8KICAgICByZXR1
cm4gY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhp
Z2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1D
b2xvciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFwcEhp
Z2hsaWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEzOTEsMTMgKzEzOTEsMTMgQEAgQ29sb3IgUmVu
ZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBvcHRpb25zKSBjb24KICAgICByZXR1cm4gY2FjaGUuYXBwSGlnaGxpZ2h0Q29sb3I7CiB9CiAK
LUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFw
cEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWU6
OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYg
Y2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuZGVmYXVsdEJ1dHRv
blRleHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xNDA1LDcgKzE0MDUsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucwogICAgIHJldHVybiBjYWNoZS5kZWZhdWx0QnV0dG9uVGV4dENvbG9yOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVl
QWN0aXZlYnV0dG9udGV4dCwgb3B0aW9ucyk7CiB9CkBAIC0xNDY1LDcgKzE0NjUsNyBAQCB2b2lk
IFJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYgY29sb3Ip
CiAgICAgY3VzdG9tRm9jdXNSaW5nQ29sb3IoKSA9IGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGlmIChjdXN0b21Gb2N1c1Jp
bmdDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGN1c3RvbUZvY3VzUmluZ0NvbG9y
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGU3ZTZlYmIxYjlk
MWViYjE4ODA3ZmIwYWE4OTE2ZjljODAxZjc4MzEuLjg2ZjllN2Q1OGUyMWQwNmNhMGQyMjIzYTFl
MDQ0NjQzNzQ0MzI1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBA
IC0xNDYsMzQgKzE0NiwzNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQm94
U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IC8vIFRleHQgc2VsZWN0aW9uIGNvbG9ycy4KLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBD
b2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2
aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAgIC8vIExpc3QgYm94IHNlbGVjdGlv
biBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9y
IGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAg
Q29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7Cisg
ICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgLy8gSGlnaGxpZ2h0aW5nIGNvbG9y
IGZvciBzZWFyY2ggbWF0Y2hlcy4KLSAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciB0ZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAK
ICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgLy8gRGVmYXVsdCBoaWdobGlnaHRpbmcg
Y29sb3IgZm9yIGFwcCBoaWdobGlnaHRzLgotICAgIENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgYXBwSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgQ29sb3IgZGF0ZVBsYWNlaG9sZGVy
VGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5k
Q29sb3IpIGNvbnN0OwogCiAgICAgdmlydHVhbCBDb2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25z
dCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3Vz
UmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4g
Q29sb3I6OmJsYWNrOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgZm9jdXNSaW5nQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQogICAgIHN0YXRpYyB2b2lkIHNldEN1c3RvbUZvY3Vz
UmluZ0NvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgc3RhdGljIGZsb2F0IHBsYXRmb3JtRm9jdXNS
aW5nV2lkdGgoKSB7IHJldHVybiAzOyB9CiAgICAgc3RhdGljIGZsb2F0IHBsYXRmb3JtRm9jdXNS
aW5nT2Zmc2V0KGZsb2F0IG91dGxpbmVXaWR0aCkgeyByZXR1cm4gc3RkOjptYXg8ZmxvYXQ+KG91
dGxpbmVXaWR0aCAtIHBsYXRmb3JtRm9jdXNSaW5nV2lkdGgoKSwgMCk7IH0KQEAgLTE4Nyw3ICsx
ODcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTeXN0ZW0gZm9udHMgYW5kIGNvbG9ycyBmb3IgQ1NT
LgogICAgIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9u
JikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Igc3lz
dGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtTWVudUxpc3RTaXplKGNvbnN0IFJlbmRlclN0eWxl
JikgY29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0yNzIsMjUgKzI3MiwyNSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NW
YWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0ID0gMDsK
IAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCi0gICAgdmlydHVhbCBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0
dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1J
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0OwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLSAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogI2lmICFVU0UoTkVXX1RIRU1FKQogICAg
IC8vIE1ldGhvZHMgZm9yIGVhY2ggYXBwZWFyYW5jZSB2YWx1ZS4KQEAgLTQ1MSw3ICs0NTEsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3I7CiAgICAg
fTsKIAotICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYgY29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYgY29sb3JDYWNo
ZShPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2
b2lkIGFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3Qg
RWxlbWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aAppbmRleCA0YjEwMWIzOGI1YzhlMTRkMGE2NzdmNTA3NDNkMWQ2N2I0NTEzMTRmLi5jYjVlOGQ4
ZGE4YzI5YmFlMzBhNWFjMGI1YTJkYjZmYThkN2FlNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTE1LDEwICsxMTUsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBhaW50U2VhcmNoRmllbGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBj
b25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUo
SU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQotICAgIENvbG9yIGNoZWNrYm94UmFkaW9Cb3JkZXJD
b2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KTsKLSAgICBDb2xvciBjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJv
b2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlv
Qm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pOworICAgIENvbG9yIGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29s
b3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0
ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsKICAgICBSZWZQdHI8R3JhZGllbnQ+
IGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kR3JhZGllbnQoY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9u
U2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4pOwotICAgIENvbG9yIGNoZWNrYm94UmFkaW9JbmRp
Y2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29s
b3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pOwogCiAgICAgYm9vbCBwYWludENoZWNrYm94KGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJvb2wg
cGFpbnRSYWRpbyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKQEAgLTE1NiwxMiArMTU2LDEyIEBAIHByaXZhdGU6CiAKICAg
ICBib29sIHN1cHBvcnRzQm94U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7
CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmlu
Z0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQotICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFw
cEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMTk4LDcgKzE5OCw3IEBA
IHByaXZhdGU6CiAKICAgICBGbG9hdFJlY3QgYWRkUm91bmRlZEJvcmRlckNsaXAoY29uc3QgUmVu
ZGVyT2JqZWN0JiBib3gsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKTsKIAotICAg
IENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBVU0Uo
U1lTVEVNX1BSRVZJRVcpCiAgICAgUmV0YWluUHRyPENJQ29udGV4dD4gbV9jaUNvbnRleHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNjllZTQ5NjMz
NjBlOGM2MDY1YzFmZjcxMWYxZmIxNjZkZTNiNGY1ZS4uMzIxN2Q5MWVmOTg0NWM3MzMyNDY2OGUz
OGUzMGY4ZDcxZDI4OTE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbQpAQCAtMTIzNywxMiArMTIzNywxMiBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpwYWlu
dEZpbGVVcGxvYWRJY29uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUgog
ICAgIGljb24tPnBhaW50KHBhaW50SW5mby5jb250ZXh0KCksIHRodW1ibmFpbFJlY3QpOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVJT1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3Bh
cmVudEJsYWNrOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJl
dHVybiBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKIH0KQEAgLTEyNjIsMTMgKzEyNjIsMTMgQEAg
Q29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4g
KmNhY2hlZEZvY3VzUmluZ0NvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0
Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUZvY3VzUmluZ0Nv
bG9yKCk7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVt
ZUlPUzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBleHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBVSUtpdC4KICAgICByZXR1cm4gU1JHQkE8dWlu
dDhfdD4geyAyNTUsIDIzOCwgMTkwIH07CkBAIC0xNDIzLDkgKzE0MjMsOSBAQCB2b2lkIFJlbmRl
clRoZW1lSU9TOjpzZXRGb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgY2Fj
aGVkRm9jdXNSaW5nQ29sb3IoKSA9IGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xv
cihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKLSAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgY29uc3Qg
Ym9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6
OkZvclZpc2l0ZWRMaW5rKTsKIAogICAgIC8vIFRoZSBzeXN0ZW0gY29sb3IgY2FjaGUgYmVsb3cg
Y2FuJ3QgaGFuZGxlIHZpc2l0ZWQgbGlua3MuIFRoZSBvbmx5IGNvbG9yIHZhbHVlCiAgICAgLy8g
dGhhdCBjYXJlcyBhYm91dCB2aXNpdGVkIGxpbmtzIGlzIENTU1ZhbHVlV2Via2l0TGluaywgc28g
aGFuZGxlIGl0IGhlcmUgYnkKQEAgLTE0MzcsOCArMTQzNyw4IEBAIENvbG9yIFJlbmRlclRoZW1l
SU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPCiAKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgcmV0
dXJuIGNhY2hlLnN5c3RlbVN0eWxlQ29sb3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3Nz
VmFsdWVJRCwgb3B0aW9uc10gKCkgLT4gQ29sb3IgewotICAgICAgICBjb25zdCBib29sIHVzZURh
cmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7Ci0gICAgICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZh
dGVkVXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFy
YW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKTsKKyAgICAgICAgY29uc3QgYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9
IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsKTsKICAgICAgICAgaWYgKCFnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAo
KS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGF1dG8gaXQgPSBnbG9iYWxDU1NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXAoKS5maW5kKENTU1ZhbHVlS2V5IHsgY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVh
cmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIH0pOwogICAgICAgICAgICAgaWYg
KGl0ID09IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmVuZCgpKQpAQCAtMjA0Nyw3
ICsyMDQ3LDcgQEAgY29uc3RleHByIGF1dG8gbmF0aXZlQ29udHJvbEJvcmRlcldpZHRoID0gMS4w
ZjsKIGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94UmFkaW9Cb3JkZXJXaWR0aCA9IDEuNWY7CiBjb25z
dGV4cHIgYXV0byBjaGVja2JveFJhZGlvQm9yZGVyRGlzYWJsZWRPcGFjaXR5ID0gMC4zZjsKIAot
Q29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8
Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJh
ZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGF1
dG8gZGVmYXVsdEJvcmRlckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVNl
Y29uZGFyeUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyk7CiAKQEAgLTIwNjAsNyArMjA2MCw3IEBA
IENvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0
PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4KICAgICByZXR1cm4gZGVmYXVsdEJvcmRlckNvbG9yOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihi
b29sIHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4g
c3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMp
CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29s
IHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3Rh
dGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewog
ICAgIGJvb2wgaXNFbXB0eSA9ICFzdGF0ZXMuY29udGFpbnNBbnkoeyBDb250cm9sU3RhdGVzOjpT
dGF0ZXM6OkNoZWNrZWQsIENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6SW5kZXRlcm1pbmF0ZSB9KTsK
ICAgICBib29sIGlzRW5hYmxlZCA9IHN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0
ZXM6OkVuYWJsZWQpOwpAQCAtMjEwMCwxMiArMjEwMCwxMiBAQCBSZWZQdHI8R3JhZGllbnQ+IFJl
bmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFja2dyb3VuZEdyYWRpZW50KGNvbnN0IEZsb2F0
UmVjdAogICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNo
ZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVz
PiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0
aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGlmICghc3RhdGVzLmNvbnRhaW5z
KENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBzeXN0ZW1D
b2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMp
OwogCi0gICAgQ29sb3IgZW5hYmxlZEluZGljYXRvckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFs
dWVBcHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9yQ29sb3Ig
PSBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25z
IHwgU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBpZiAoc3RhdGVz
LmNvbnRhaW5zKENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6UHJlc3NlZCkpCiAgICAgICAgIHJldHVy
biBlbmFibGVkSW5kaWNhdG9yQ29sb3IuY29sb3JXaXRoQWxwaGFNdWx0aXBsaWVkQnkocHJlc3Nl
ZFN0YXRlT3BhY2l0eSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKaW5kZXggMWU2MTY4NzYwZjExNzQ3NzYxYThhM2MzZTViMmU4ZDZkMmQxYjg4ZC4uYzQxZjc0
OTAwOTI1ZWZhMTY1ZWVlZTg5ZDY4YjhlNjY2MTA1MzU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTUzLDIzICs1MywyMyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGlzQ29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0
eWxlJiB1c2VyQWdlbnRTdHlsZSkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIHN1cHBvcnRzU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBD
b2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHRyYW5zZm9ybVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZp
bmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Cisg
ICAgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciB0
cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
QWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
KyAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2lmIEVO
QUJMRShBUFBfSElHSExJR0hUUykKLSAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3Ig
cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKICNlbmRpZgotICAgIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKIAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJh
ckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU2Nyb2xsYmFy
Q29udHJvbFNpemU6OlNtYWxsOyB9CiAKQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogcHJp
dmF0ZToKICAgICBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBj
b25zdCBGb250Q2FzY2FkZSYsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkg
Y29uc3QgZmluYWw7CiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNv
bG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwogCiAgICAgLy8gR2V0IHRoZSBjb250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSBmb250LiBVc2Vk
IGJ5IHNvbWUgb2YgdGhlIGNvbnRyb2xzIChsaWtlIGJ1dHRvbnMpLgogICAgIE5TQ29udHJvbFNp
emUgY29udHJvbFNpemVGb3JGb250KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggYTE0ZmVjY2NlYmJmN2Mx
NWFhYjk5YWQ0MDJhYWQ3MjI2ODUyMGM2MC4uZDQzN2Y0ODI2NjVjMzMzY2EyMzZlMGIzNzU4MjZh
M2YyYWE2NGM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQpAQCAtMjg0LDE2ICsyODQsMTYgQEAgTlNWaWV3ICpSZW5kZXJUaGVtZU1hYzo6ZG9jdW1lbnRW
aWV3Rm9yKGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29uc3QKICAgICByZXR1cm4gVGhlbWVNYWM6
OmVuc3VyZWRWaWV3KCZvLnZpZXcoKS5mcmFtZVZpZXcoKSwgc3RhdGVzKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihb
TlNDb2xvciBzZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01P
REVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFy
YW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uo
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsK
ICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3Rl
ZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMp
OwpAQCAtMzAxLDkgKzMwMSw5IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvCiAjZW5kaWYKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxv
Y2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFw
cGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKICAgICBpZiAobG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkg
ewogICAgICAgICAvLyBVc2UgYW4gYWxwaGEgdmFsdWUgdGhhdCBpcyBzaW1pbGFyIHRvIHJlc3Vs
dHMgZnJvbSBibGVuZFdpdGhXaGl0ZSgpIG9uIGxpZ2h0IGNvbG9ycy4KICAgICAgICAgc3RhdGlj
IGNvbnN0IGZsb2F0IGRhcmtBcHBlYXJhbmNlQWxwaGEgPSAwLjg7CkBAIC0zMTMsMjQgKzMxMywy
NCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dHJh
bnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbG9yLCBvcHRpb25zKTsKIH0KIAotYm9v
bCBSZW5kZXJUaGVtZU1hYzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorYm9vbCBSZW5kZXJUaGVt
ZU1hYzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gbG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0Fw
cGVhcmFuY2UoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBp
ZiAobG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJu
IGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1
cm4geyB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdE
YXJrQXBwZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xv
ciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRDb2xvcl0pOwogICAgIHJldHVybiB7IH07CkBAIC0z
NDAsMTAgKzM0MCwxMCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwogI2VuZGlmCiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFw
cGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpV
c2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9y
IHNlbGVjdGVkQ29udGVudEJhY2tncm91bmRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0ob3B0aW9ucyk7CkBAIC0zNTMsMTAgKzM1MywxMCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dAogI2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAg
ICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKG9wdGlvbnMpOwogI2VuZGlmCkBAIC0zNjQsMTYgKzM2NCwxNiBAQCBDb2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PAogCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRl
cm5hdGVTZWxlY3RlZENvbnRyb2xUZXh0Q29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9T
X0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9j
YWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBw
ZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXpl
ZFNlbGVjdGVkVGV4dENvbG9yXSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsK
QEAgLTM4MSwzMiArMzgxLDMyIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8CiAjZW5kaWYKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1h
Yzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKHVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yKCkpCiAg
ICAgICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3IoKTsKLSAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICAvLyBUaGUgY29sb3IgaXMgZXhwZWN0ZWQg
dG8gYmUgb3BhcXVlLCBzaW5jZSBDb3JlR3JhcGhpY3Mgd2lsbCBhcHBseSBvcGFjaXR5IHdoZW4g
ZHJhd2luZyAoYmVjYXVzZSBvcGFjaXR5IGlzIG5vcm1hbGx5IGFuaW1hdGVkKS4KICAgICByZXR1
cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBrZXlib2FyZEZvY3VzSW5kaWNhdG9yQ29sb3Jd
KS5vcGFxdWVDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewot
ICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBM
b2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBj
b2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQogCiAjaWYg
RU5BQkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFs
IHZhbHVlIGZyb20gQXBwS2l0LgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4
LCAxOTAgfTsKIH0KICNlbmRpZgogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9y
RnJvbU5TQ29sb3IoW05TQ29sb3IgYWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENvbG9yXSk7
CiB9CiAKQEAgLTQ0OSwxMSArNDQ5LDExIEBAIHN0YXRpYyBTUkdCQTx1aW50OF90PiBtZW51QmFj
a2dyb3VuZENvbG9yKCkKICAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmc8U1JH
QkE8dWludDhfdD4+KHBpeGVsWzBdLCBwaXhlbFsxXSwgcGl4ZWxbMl0sIHBpeGVsWzNdKTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJ
RCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1
c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNl
ID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5j
ZSk7Ci0gICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIGNvbnN0IGJvb2wgdXNlU3lz
dGVtQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5
c3RlbUFwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAg
Y29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9w
dGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKIAogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShv
cHRpb25zKTsKIApAQCAtMTU3MSw3ICsxNTcxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRq
dXN0TWVudUxpc3RTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGUpIGMK
ICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3IgdG8gYmxhY2sgb3IgZ3JheSB3aGVuIHdl
IGhhdmUgdGhlIGFxdWEgbG9vay4KICAgICBDb2xvciBjID0gQ29sb3I6OmRhcmtHcmF5OwogICAg
IGlmIChlKSB7Ci0gICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
ID0gZS0+ZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmc3R5bGUpOworICAgICAgICBPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29s
b3JPcHRpb25zKCZzdHlsZSk7CiAgICAgICAgIGMgPSAhZS0+aXNEaXNhYmxlZEZvcm1Db250cm9s
KCkgPyBzeXN0ZW1Db2xvcihDU1NWYWx1ZUJ1dHRvbnRleHQsIG9wdGlvbnMpIDogc3lzdGVtQ29s
b3IoQ1NTVmFsdWVHcmF5dGV4dCwgb3B0aW9ucyk7CiAgICAgfQogICAgIHN0eWxlLnNldENvbG9y
KGMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCmlu
ZGV4IGM5Y2ZjN2ZmNWRiMTAwYTQxZWU2MTE0Mzg4NjlkNGExYzdiZGVjZWYuLjA0N2YwMmExNzlm
YTU2MTNiZDgzYTZmNTc5NzliZjZiMTQwNDI2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIFN0eWxl
ZE1hcmtlZFRleHQgcmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBNYXJrZWRUZXh0JiBt
YXJrZWRUZXh0LAogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAg
ICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKLSAgICAgICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHJlbmRlcmVy
LnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJl
c29sdmVTdHlsZUZvck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAg
ICB9CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpUZXh0TWF0Y2g6IHsKICAgICAgICAgLy8gVGV4dCBt
YXRjaGVzIGFsd2F5cyB1c2UgdGhlIGxpZ2h0IHN5c3RlbSBhcHBlYXJhbmNlLgotICAgICAgICBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHN0
eWxlLnRleHRTdHlsZXMuZmlsbENvbG9yID0gcmVuZGVyZXIudGhlbWUoKS5zeXN0ZW1Db2xvcihD
U1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKaW5kZXggYmZmMjE3ZTk0
MDEyZTIxZDZjMTJjMDRlODhiODcwOWNmOWU1NzdkYi4uZmM2OGY0M2VmZGUzNmM0Y2Y4YmUxNTEx
ZWRlODY0ZmQwZmE0YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIFRleHRQYWludFN0eWxlIGNvbXB1dGVUZXh0UGFp
bnRTdHlsZShjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lCiAgICAg
aWYgKGxpbmVTdHlsZS5pbnNpZGVEZWZhdWx0QnV0dG9uKCkpIHsKICAgICAgICAgUGFnZSogcGFn
ZSA9IGZyYW1lLnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnM7CisgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnM7CiAgICAgICAgICAgICBpZiAocGFnZS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpKQot
ICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3Rl
bUFwcGVhcmFuY2UpOworICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICAgICAgICAgIHBhaW50U3R5bGUuZmlsbENv
bG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmRlZmF1bHRCdXR0b25UZXh0Q29sb3Iob3B0
aW9ucyk7CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTdHlsZTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDQ2ZGJmNWJiMzNkNWU4NWUxNTIxYWJlNzg4
YjkxN2ZlMjgxM2M3YTkuLjQzYzQ5Yzk1MGUzYjk5NWM2NWIxNTAyYzU1YjIzNjY4MjE0YTEzNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBAIC00NjMzLDE0ICs0NjM0LDE0
IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmlldyBzdGF0ZXNTdHJpbmcp
CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yIChTdHJpbmdWaWV3IHN0YXRlU3Ry
aW5nIDogc3RhdGVzU3RyaW5nLnNwbGl0KCcsJykpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5nLCAiYXVkaW8iKSkKLSAgICAgICAgICAgIHN0
YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAg
ICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwog
ICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJj
YXB0dXJlZGV2aWNlcyIpKQogICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6OkF1
ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShzdGF0ZVN0cmluZywgInNjcmVlbmNhcHR1cmUiKSkKLSAgICAgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRl
ZCk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVl
bkNhcHR1cmVJc011dGVkKTsKICAgICB9CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
LT5wYWdlKCkpCkBAIC00NjU1LDQzICs0NjU2LDQzIEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhZ2VN
ZWRpYVN0YXRlKCkKIAogICAgIGF1dG8gc3RhdGUgPSBkb2N1bWVudC0+cGFnZSgpLT5tZWRpYVN0
YXRlKCk7CiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkKKyAgICBpZiAo
c3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlv
KSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7Ci0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
KSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7
Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7Ci0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7Ci0g
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVy
bmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUs
Iik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkRpZFBsYXlUb0VuZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5
VG9FbmQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCiAgICAg
ICAgIHN0cmluZy5hcHBlbmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CiAKLSAgICBpZiAo
c3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tD
b250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkKSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVu
YWJsZWQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsKIAotICAgIGlmIChzdGF0ZS5jb250
YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUxpc3RlbmVyKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVy
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBdWRpb09yVmlkZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SGFzQXVkaW9PclZpZGVvLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChz
dGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlQXVkaW9DYXB0
dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJl
RGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNN
dXRlZFZpZGVvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChz
dGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJh
Y3RlZFdpdGhNZWRpYUVsZW1lbnQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KSkKICAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIp
OwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLCIp
OwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpKQog
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLCIpOwog
CiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCkBAIC02MTI0LDExICs2MTI1LDExIEBAIFN0cmlu
ZyBJbnRlcm5hbHM6OnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1
ZSwgYm9vbCB1c2VEYXJrTW9kCiAgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29yZElE
KGNzc1ZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9y
S2V5d29yZChpZCkpOwogCi0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgIGlmICh1
c2VEYXJrTW9kZUFwcGVhcmFuY2UpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xv
ck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRWxldmF0ZWRVc2VySW50
ZXJmYWNlTGV2ZWwpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVz
ZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVD
b2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICAKICAgICBy
ZXR1cm4gc2VyaWFsaXphdGlvbkZvckNTUyhSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3lzdGVt
Q29sb3IoaWQsIG9wdGlvbnMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhZjc2OTc2MjNjYzljZjQ0
NmNlOGRjZTNjZGQ0YzJiYTI3NDI3NzUzLi5hOGMzZTE4ZTQ3YWVjYWQwYTAyMmEwODRjNDlhMjFm
NmM3MTRjMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxE
b2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdHlsZVNjb3Bl
LmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVNvdXJjZS5oIgogI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVu
dFBhcnNlclNjb3BlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggMTUzOTkyOGJhZjRjMDU3MWQz
NTUyOTY4YTFmYmNmMWYyYzc0YmJkZi4uOGIwM2M4MWQwNzViYjljMzMzNDQ1NzY2MzM2M2MxMjMz
ZTJhYzM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJp
dmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQog
I2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDc2ZjEy
OTNlNDg0OGU0ZWY0ZTI5MDRlNTg1NzUxYzRjZjZlNGM4YTkuLjkwMjM2YWNiMWYwNDI3N2E3ODJm
NTUzZjk2ZTM2YWE0YWQxYjZkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE2MTUsNyArMTYxNSw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYm
IHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2Vu
ZENTUFZpb2xhdGlvblJlcG9ydCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKHJl
cG9ydFVSTCksIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKHJlcG9ydCkgfSB9LCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgeyBt
X3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgV1RGTW92ZShldmVudEluaXQpIH0sIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggYjJkMWRjYjdjNzY4MTU3OWExY2Y2ZmZiZDQy
NGQ0MWYxMDlkMDU4Mi4uZDE3NzZlODFmOWM3NmY4MjRkOWY0YTMyNjQyM2UxOTBkZjg5NWE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCkBAIC0yMDgsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250ZW50U2Vj
dXJpdHlQb2xpY3lDbGllbnQKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllciA9IDApIGZpbmFsOwogICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwm
JiwgUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiYmKSBmaW5hbDsKLSAgICB2b2lkIGVucXVldWVTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQ6OkluaXQmJikgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBm
aW5hbDsKIAogICAgIHZvaWQgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25zdCBOZXR3
b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjc4MWQxMGU5YzY4ZWVjY2I1NmI3NjhiMjQ1MThkOWFj
NTQxN2I4OS4uOTE2Y2EwZTMxOTQyNmQxNjZhZGRjMzY0OWE2NDI1ZTYyYjRlMDhjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MjYsNiArNzI2LDkgQEAg
ZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpMZWdhY3lDRE1T
ZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9yQ29kZSc6IFsnPFdlYkNvcmUvTGVnYWN5Q0RNU2Vz
c2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdl
YkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKKyAgICAg
ICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVBy
b2R1Y2VyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJl
S2luZCc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0
eSc6IFsnPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3knOiBbJzxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbic6IFsn
PFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oPiddLApAQCAtNzQ4LDYgKzc1MSw3IEBA
IGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5JzogWyc8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQnOiBbJzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAorICAgICAg
ICAnV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQnOiBbJzxXZWJDb3Jl
L1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNl
bGVjdGlvbkRpcmVjdGlvbic6IFsnPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnknOiBbJyJFZGl0b3JTdGF0ZS5oIiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxXZWJDb3Jl
L1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBhZDQxMWI4MDYyOThhNGI4NWU4Nzg1
YmJmNDc1ZmYyZDkzY2YxN2VmLi5jYmNhOTA4ZTM4MzYwZDFkOWM5OTQ0MmUwOTNmYTA4OTE1MWU5
NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lKSkKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzPiBtdXRlZFN0YXRlRmxhZ3M7CisgICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzPiBtdXRlZFN0YXRlRmxh
Z3M7CiAgICAgZGVjb2RlciA+PiBtdXRlZFN0YXRlRmxhZ3M7CiAgICAgaWYgKCFtdXRlZFN0YXRl
RmxhZ3MpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNGEwNWQ2MGIyYWNlMTIy
NDAxMzQ4YmJhOWFhMWRhMTc0NmI4OTI0MC4uZWIxZWUwOTU5YTUxM2RiODI1N2Q2NGFkZGNlZWE1
MDliN2EzZTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtMTE5LDcgKzExOSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQ7CiAgICAgCiAgICAgZmxvYXQg
bWVkaWFWb2x1bWU7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdz
IG11dGVkOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7
CiAgICAgYm9vbCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIGJvb2wgbWVkaWFQbGF5
YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaAppbmRleCAyZGIwZjU2OWNiMjI1MDU4OWU3ZWMxNjA1OGRhZmI1YTZhNGU3
YmYwLi41NDkxMDJlYjVmZWVhYjAwOWJmOTQ3NzUzMmQ0ZjlkNTAxZWE4ZTViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhcHR1
cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlQXV0b3BsYXlFdmVudChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5
RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAppbmRleCA3MDFmMWEyOTA4OGQ4NDIwMTYwYzczZTBjZDllZmQzMmRjYzZmMjNkLi4xZmIy
ZjI3YWQyYjkyMWE4OGVhY2FkOGM3OTY4NGI2ODUyMWU2N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI4MTYsMTQgKzI4MTYsMTQgQEAgdm9pZCBXS1Bh
Z2VTZXRNZWRpYVZvbHVtZShXS1BhZ2VSZWYgcGFnZVJlZiwgZmxvYXQgdm9sdW1lKQogdm9pZCBX
S1BhZ2VTZXRNdXRlZChXS1BhZ2VSZWYgcGFnZVJlZiwgV0tNZWRpYU11dGVkU3RhdGUgbXV0ZWRT
dGF0ZSkKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIGNvcmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZUZsYWdzIGNvcmVTdGF0ZTsKIAogICAgIGlmIChtdXRlZFN0YXRlICYga1dL
TWVkaWFBdWRpb011dGVkKQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgaWYg
KG11dGVkU3RhdGUgJiBrV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQpCiAgICAgICAgIGNvcmVT
dGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011
dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVkKQot
ICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6
OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogCiAgICAgdG9J
bXBsKHBhZ2VSZWYpLT5zZXRNdXRlZChjb3JlU3RhdGUpOwogfQpAQCAtMjk3MSwyNCArMjk3MSwy
NCBAQCBib29sIFdLUGFnZUlzUGxheWluZ0F1ZGlvKFdLUGFnZVJlZiBwYWdlKQogCiBXS01lZGlh
U3RhdGUgV0tQYWdlR2V0TWVkaWFTdGF0ZShXS1BhZ2VSZWYgcGFnZSkKIHsKLSAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9JbXBsKHBhZ2Up
LT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIGNvcmVTdGF0ZSA9IHRvSW1wbChwYWdlKS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7
CiAgICAgV0tNZWRpYVN0YXRlIHN0YXRlID0ga1dLTWVkaWFJc05vdFBsYXlpbmc7CiAKLSAgICBp
ZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFJc1BsYXlp
bmdBdWRpbzsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKICAgICAgICAgc3RhdGUgfD0g
a1dLTWVkaWFJc1BsYXlpbmdWaWRlbzsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAg
IGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlm
IChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZl
VmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZVZp
ZGVvQ2FwdHVyZURldmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNv
cmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlv
Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZEF1ZGlvQ2Fw
dHVyZURldmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVy
ZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVEaXNwbGF5Q2FwdHVy
ZURldmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWREaXNwbGF5Q2FwdHVy
ZURldmljZTsKIAogICAgIHJldHVybiBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDAwNDRhODFhMjdhOWJhNTBjOTc4ZDY3MjVk
MDY5M2RhMWZiMTA3OWMuLjU3MmVjOTZkY2E3Yzc1ZjRiMTdiNDgyZTI3YWFlNTJkMjQ0NzFhZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMTAzNyw5ICsxMDM3LDkgQEAgLSAodm9pZClyZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlV2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS01lZGlhUGxheWJhY2sKIC0gKFdLTWVkaWFD
YXB0dXJlU3RhdGUpY2FtZXJhQ2FwdHVyZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdl
LT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYg
KHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7
Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBy
ZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVy
ZVN0YXRlTm9uZTsKIH0KQEAgLTEwNDcsOSArMTA0Nyw5IEBAIC0gKFdLTWVkaWFDYXB0dXJlU3Rh
dGUpY2FtZXJhQ2FwdHVyZVN0YXRlCiAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKW1pY3JvcGhvbmVD
YXB0dXJlU3RhdGUKIHsKICAgICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0
ZSgpOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQogICAg
ICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURl
dmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVy
ZVN0YXRlTXV0ZWQ7CiAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAt
MTA2MSwxNiArMTA2MSwxNiBAQCAtICh2b2lkKXNldE1pY3JvcGhvbmVDYXB0dXJlU3RhdGU6KFdL
TWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KAogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlciA9IFtdIHsgfTsKIAogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVy
ZVN0YXRlTm9uZSkgewotICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBfcGFnZS0+c3Rv
cE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVk
aW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
IHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRl
RmxhZ3MoKTsKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSkKLSAg
ICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICBl
bHNlIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQpCi0gICAgICAgIG11dGVk
U3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVy
ZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgX3BhZ2UtPnNldE11dGVkKG11
dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFu
ZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKQEAgLTEwODMs
MTYgKzEwODMsMTYgQEAgLSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0
dXJlU3RhdGUpc3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIgPSBbXSB7IH07CiAKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0
ZU5vbmUpIHsKLSAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdz
KCk7CiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUpCi0gICAgICAg
IG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZp
ZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgZWxzZSBp
ZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQotICAgICAgICBtdXRlZFN0YXRl
LmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011
dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0
YXRlLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIp
XSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CkBAIC0yMjcxLDcgKzIy
NzEsNyBAQCAtICh2b2lkKV9jbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucwogLSAodm9pZClfc3Rv
cE1lZGlhQ2FwdHVyZQogewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKLSAgICBfcGFnZS0+c3Rv
cE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvKTsKKyAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIC0gKHZvaWQpX3N0b3BB
bGxNZWRpYVBsYXliYWNrCkBAIC0zNTk0LDE0ICszNTk0LDE0IEBAIC0gKEJPT0wpX21lZGlhQ2Fw
dHVyZUVuYWJsZWQKIC0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRlKW11
dGVkU3RhdGUKIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIGNvcmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIGNvcmVTdGF0ZTsKIAogICAgIGlmIChtdXRlZFN0YXRlICYg
X1dLTWVkaWFBdWRpb011dGVkKQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5h
ZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAg
aWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQpCiAgICAgICAgIGNv
cmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVk
KQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogCiAgICAg
X3BhZ2UtPnNldE11dGVkKGNvcmVTdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGYwOTRmNTM4OTM5NDQ5NTVm
Nzk4MzljMjVkOWRlZTkyNWRmNDcwMGUuLjRlNWQ3MzI1NzE0NGI1MWRkNDJhNGVmYWNjNzBlZWZj
Y2U4NTNlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdlYlZpZXcuY3BwCkBAIC00ODY4LDcgKzQ4NjgsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmll
d19zZXRfY29yc19hbGxvd2xpc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIq
IGNvbgogICAgIGdldFBhZ2Uod2ViVmlldykuc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFdURk1v
dmUoYWxsb3dMaXN0VmVjdG9yKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25m
aWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBjYXB0dXJlS2luZCwgV2ViS2l0TWVkaWFDYXB0dXJl
U3RhdGUgY2FwdHVyZVN0YXRlLCBib29sIGlzRnJvbURpc3BsYXlDYXB0dXJlID0gZmFsc2UpCitz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGNhcHR1
cmVLaW5kLCBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wgaXNGcm9t
RGlzcGxheUNhcHR1cmUgPSBmYWxzZSkKIHsKICAgICBhdXRvJiBwYWdlID0gZ2V0UGFnZSh3ZWJW
aWV3KTsKICAgICBhdXRvIG11dGVkU3RhdGUgPSBwYWdlLm11dGVkU3RhdGVGbGFncygpOwpAQCAt
NDg3NywxMyArNDg3NywxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVk
aWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgIGNhc2UgV0VC
S0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORToKICAgICAgICAgcGFnZS5zdG9wTWVkaWFDYXB0
dXJlKGNhcHR1cmVLaW5kLCBbd2ViVmlldywgY2FwdHVyZUtpbmRdIHsKICAgICAgICAgICAgIHN3
aXRjaCAoY2FwdHVyZUtpbmQpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgICAgICBn
X29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVz
W1BST1BfTUlDUk9QSE9ORV9DQVBUVVJFX1NUQVRFXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQ6OlZpZGVvOgorICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZDo6VmlkZW86CiAgICAgICAgICAgICAgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3Bz
cGVjKEdfT0JKRUNUKHdlYlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9QX0NBTUVSQV9DQVBUVVJF
X1NUQVRFXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAg
ICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1Zp
ZGVvOgogICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTQ4OTEsMTYgKzQ4OTEsMTYgQEAgc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJDb3JlOjoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTUVESUFf
Q0FQVFVSRV9TVEFURV9BQ1RJVkU6CiAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtpbmQpIHsKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
bzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6
QXVkaW86CiAgICAgICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6
OlZpZGVvOgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kOjpWaWRlbzoKICAgICAgICAgICAgIGlmIChpc0Zyb21EaXNwbGF5Q2FwdHVyZSkKICAgICAg
ICAgICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVv
OgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ5MDgsMTYgKzQ5MDgsMTYgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJDb3JlOjoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVS
RV9TVEFURV9NVVRFRDoKICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICBj
YXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAg
ICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoK
ICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86Cisg
ICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVv
OgogICAgICAgICAgICAgaWYgKGlzRnJvbURpc3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAg
IG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVl
bkNhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRl
ZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1
cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2Ug
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpAQCAtNDk2NSw3ICs0OTY1LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2NhbWVy
YV9jYXB0dXJlX3N0YXRlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE1lZGkKICAgICBp
ZiAod2Via2l0X3dlYl92aWV3X2dldF9jYW1lcmFfY2FwdHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBX
RUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FKQogICAgICAgICByZXR1cm47CiAKLSAgICB3
ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSk7CisgICAgd2Via2l0V2Vi
Vmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlKTsKIH0KIAogLyoqCkBAIC01MDA3LDcgKzUw
MDcsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRl
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdAogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X21pY3JvcGhvbmVfY2FwdHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQ
VFVSRV9TVEFURV9OT05FKQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29u
ZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvLCBzdGF0ZSk7CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1l
ZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZDo6QXVkaW8sIHN0YXRlKTsKIH0KIAogLyoqCkBAIC01MDQ5LDUgKzUwNDksNSBAQCB2b2lkIHdl
YmtpdF93ZWJfdmlld19zZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIFdlYktpdE1lZAogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Rpc3BsYXlfY2Fw
dHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FKQog
ICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJl
KHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVv
LCBzdGF0ZSwgdHJ1ZSk7CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3
ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0
YXRlLCB0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L01lZGlhVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0
aWxpdGllcy5oCmluZGV4IGUxZGE0NmYyNmIxOGM3N2YyYTE4OWVkODY1NDBiYTYxMzIyOWJjZmIu
LjhhMTYyMDc3OGVkZDljYmZmMTIwOTliMTUyYWQ1MGI0NzllZGYxOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMzIsNyArMzIsNyBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
IHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKTsKLV9XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CitfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKK19XS01lZGlhTXV0ZWRTdGF0ZSB0b1dL
TWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTWVkaWFVdGlsaXRpZXMubW0KaW5kZXggNTNiYmY0MjAxNDcxZDlkOGE0ZjY2ZTcwMWY2NDM4
OGVlZWQ1ZDE1YS4uOTg1MGE4ZmNhNjcwZGM3ODU1ZjQxMDA2N2IwNWMxMmY4MDg4MDZiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KQEAg
LTI4LDI5ICsyOCwyOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorX1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWQgbWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWROb25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2Up
CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011
dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0
ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYTsKIAogICAgIHJl
dHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsKIH0KIAotX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRp
YU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRl
KQorX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYU11dGVkU3RhdGUg
bWVkaWFNdXRlZFN0YXRlID0gX1dLTWVkaWFOb25lTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKQorICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpCiAg
ICAgICAgIG1lZGlhTXV0ZWRTdGF0ZSB8PSBfV0tNZWRpYUF1ZGlvTXV0ZWQ7CiAgICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVk
KQogICAgICAgICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVk
OwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNj
cmVlbkNhcHR1cmVJc011dGVkKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0
YXRlIHw9IF9XS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVkOwogICAgIHJldHVybiBtZWRpYU11dGVk
U3RhdGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5k
ZXggMzI5ZGI3OTFjZjQzMjcyNDYzNjM0MjgwMDUwNGIwOGVhODlkYjBlMy4uZTY3OTY5NWEzZmUx
YTBhZWYyOGRkNWFmMDI0OGQ2OTA2ZjM0MTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0
ZXMmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5JikgZmluYWw7CiAgICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmlu
YWw7Ci0gICAgICAgIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICAgICAgdm9pZCBtZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
KSBmaW5hbDsKICAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1l
UHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0UGFnZVNpemUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICNpZiBIQVZFKEFQUF9MSU5LUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCmluZGV4IDExYjdhNDA1OGE1YjY0MWFiODg0YTk3NjU3N2NmMjEwM2JjYjZiZGQu
LmQ3OGY0Y2MwZDU2NTU5NGMwZTg4MWE0NThiZmQyMzgyNzUxMjI0NWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTIyNyw3ICsxMjI3LDcgQEAg
dm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpIGRl
Y2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQogewogICAgIGlmICghbV91aURlbGVnYXRlKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjM5MzdhYzA0Mzc3
MzkyZDMwYjE4MzNkZWUwYzAxZTZjYTE2ODlmMy4uMmI3MjQ1ODY5MTZiZjVlMWNiYjY1M2JlMWU2
YTI0YjFhZDk5MWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAt
NDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLXN0YXRpYyBjb25zdCBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgYWN0aXZlQ2FwdHVyZU1hc2sgeyBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9Oworc3RhdGljIGNvbnN0IE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgYWN0aXZlQ2FwdHVyZU1hc2sgeyBNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCkBAIC05NSw3ICs5NSw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eShXCiAKIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKQogewotICAgIG1fcGFnZS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRpYVByb2R1
Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CisgICAgbV9wYWdl
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZSB7
IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2lu
Z2xldG9uKCkucmV2b2tlU2FuZGJveEV4dGVuc2lvbnNJZk5lZWRlZChwYWdlKCkucHJvY2Vzcygp
KTsKICAgICBwcm94aWVzKCkucmVtb3ZlKHRoaXMpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN0b3BDYXB0dXJlKCkKIHsK
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGludmFsaWRhdGVQZW5kaW5nUmVx
dWVzdHMoKTsKLSAgICBtX3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKKyAgICBtX3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShN
ZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVEZXZpY2VzQ2hhbmdl
ZCgpCkBAIC04NjMsNyArODYzLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6c3luY1dpdGhXZWJDb3JlUHJlZnMoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0ZUNo
YW5nZWQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVDaGFuZ2VkKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3Rh
dGUpCiB7CiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNjRlYmZhNWU0NTlhMTZl
NGNkMzdlNDkzNjlhOTA0YWU2MmRlYjc2MC4uNjc0YmFiNGRiN2M5YzY0ZGVkODU3ODc0MWRiZDJh
Yjk5NmRjNDA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC04OCw3ICs4
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIGNh
cHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogCi0gICAgdm9pZCBjYXB0dXJlU3RhdGVDaGFuZ2VkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKTsKKyAgICB2b2lkIGNhcHR1
cmVTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRT
dGF0ZSwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7CiAg
ICAgdm9pZCBzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBS
ZXF1ZXN0QWN0aW9uIHsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9y
PERlbmllZFJlcXVlc3Q+IG1fZGVuaWVkUmVxdWVzdHM7CiAKLSAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9jYXB0dXJlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0ZTsKICAgICBSdW5Mb29wOjpU
aW1lcjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV93YXRjaGRvZ1Rp
bWVyOwogICAgIFNlY29uZHMgbV9jdXJyZW50V2F0Y2hkb2dJbnRlcnZhbDsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDYxYzA3ZjZkZmI5YjQ2MzY1ZDc2N2U0MTMzY2JkNjhkYTBkMzJhN2MuLmQzMzFmMmNhN2Qw
M2E3MDNiNWNiNmRkMGM4ZmQ4YjU5MTI4NGZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMjExMywxMSArMjExMywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6dXBkYXRlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gZmxh
Z3NUb1VwZAogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzSW5X
aW5kb3cpOwogICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxs
eUlkbGUgJiYgcGFnZUNsaWVudCgpLmlzVmlzdWFsbHlJZGxlKCkpCiAgICAgICAgIG1fYWN0aXZp
dHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpOwotICAgIGlmIChmbGFn
c1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1fbWVkaWFTdGF0ZS5jb250
YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgIShtX211
dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVk
KSkpCisgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUgJiYg
bV9tZWRpYVN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdB
dWRpbykgJiYgIShtX211dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6
OkF1ZGlvSXNNdXRlZCkpKQogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3Rh
dGU6OklzQXVkaWJsZSk7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJ
c0xvYWRpbmcgJiYgbV9wYWdlTG9hZFN0YXRlLmlzTG9hZGluZygpKQogICAgICAgICBtX2FjdGl2
aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyk7Ci0gICAgaWYgKGZsYWdzVG9V
cGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5j
b250YWluc0FueSh7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSwgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSB9KSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6Oklz
Q2FwdHVyaW5nTWVkaWEgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfSkpCiAgICAgICAgIG1fYWN0
aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSk7CiB9CiAKQEAg
LTYyMzYsNyArNjIzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVZvbHVtZShmbG9h
dCB2b2x1bWUpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWVkaWFWb2x1bWUodm9s
dW1lKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9tdXRlZFN0YXRlID0gc3RhdGU7
CiAKQEAgLTYyNjcsNyArNjI2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNhcHR1
cmVFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtp
bmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcigpOwpAQCAtOTQ0Niw3ICs5NDQ2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5hdmlnYXRp
b25HZXN0dXJlU25hcHNob3RXYXNSZW1vdmVkKCkKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRp
ZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG5ld1N0YXRlKQordm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCiB7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoIW1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuc2hvdWxkQmVS
dW5uYWJsZSgpKQpAQCAtOTQ1Nyw3ICs5NDU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEK
ICAgICAgICAgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlLCBDYW5EZWxheU5v
dGlmaWNhdGlvbjo6WWVzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdN
ZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENh
bkRlbGF5Tm90aWZpY2F0aW9uIGNhbkRlbGF5Tm90aWZpY2F0aW9uKQordm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIG5ld1N0YXRlLCBDYW5EZWxheU5vdGlmaWNhdGlvbiBjYW5EZWxheU5vdGlmaWNhdGlvbikK
IHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGF1dG8gdXBkYXRlTWVkaWFDYXB0dXJl
U3RhdGVJbW1lZGlhdGVseUlmTmVlZGVkID0gWyZdIHsKQEAgLTk0ODYsMTQgKzk0ODYsMTQgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFD
YXB0dXJlU3RhdGUgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVNYXNrOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdNZWRpYUNhcHR1cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlTWFzazsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG9sZE1lZGlhQ2FwdHVyZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOwogI2VuZGlmCiAKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdWaWRlbyB9OwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRT
dGF0ZSA9IG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHBs
YXlpbmdNZWRpYU1hc2sgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8s
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyB9OworICAgIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUgPSBtX21lZGlhU3RhdGU7CiAKLSAgICBib29s
IHBsYXlpbmdBdWRpb0NoYW5nZXMgPSAob2xkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAhPSAobmV3U3RhdGUuY29udGFpbnMoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKTsKKyAgICBib29sIHBsYXlpbmdB
dWRpb0NoYW5nZXMgPSAob2xkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OklzUGxheWluZ0F1ZGlvKSkgIT0gKG5ld1N0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpOwogICAgIGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQog
ICAgICAgICBwYWdlQ2xpZW50KCkuaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCk7CiAgICAgbV9t
ZWRpYVN0YXRlID0gbmV3U3RhdGU7CkBAIC05NTE3LDcgKzk1MTcsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBuZQogICAgIGlmICgob2xkU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSAhPSAobV9t
ZWRpYVN0YXRlICYgcGxheWluZ01lZGlhTWFzaykpCiAgICAgICAgIG1fdWlDbGllbnQtPmlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKCp0aGlzKTsKIAotICAgIGlmICgob2xkU3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkgIT0gKG1fbWVk
aWFTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09y
VmlkZW8pKSkKKyAgICBpZiAoKG9sZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSkKICAgICAgICAgdmlkZW9D
b250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKTsKIAogICAgIG1fcHJvY2Vzcy0+dXBkYXRlQXVkaWJs
ZU1lZGlhQXNzZXJ0aW9ucygpOwpAQCAtOTcxNyw3ICs5NzE3LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWUKICAgICBwYWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBwYWdlQ2xpZW50KCkucm9vdFZpZXdU
b1NjcmVlbihJbnRSZWN0KHJlY3QpKSwgaGFzVmlkZW8sIHVzZURhcmtBcHBlYXJhbmNlKCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQ
YWdlUHJveHk6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgcGFnZUNsaWVudCgpLm1lZGlh
U2Vzc2lvbk1hbmFnZXIoKS5jbGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElkLCBz
dGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDc1MWNj
NDc5ZWM5ZmQ2OWNkMzczMDc3MzcyODAxNzUwZTc5YjJjMmQuLmRmN2RjOWRjNzRlNmZlM2RkMmY0
OWE4NzA5OGI1ZTk1ODk3NGQ0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xMzk2LDEzICsxMzk2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCByZW5kZXJU
cmVlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZVNpemU7IH0KIAogICAgIHZvaWQg
c2V0TWVkaWFWb2x1bWUoZmxvYXQpOwotICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBb
XSB7IH0pOwotICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0
YXRlLmNvbnRhaW5zKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNN
dXRlZCk7IH07CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOworICAgIGJv
b2wgaXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9OwogICAgIHZv
aWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sKTsKICAgICBib29sIG1heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3coKSBjb25zdCB7IHJldHVybiBtX21heVN0YXJ0TWVkaWFXaGVuSW5X
aW5kb3c7IH0KICAgICB2b2lkIHNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCk7CiAgICAgYm9v
bCBtZWRpYUNhcHR1cmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhcHR1cmVFbmFi
bGVkOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7
CisgICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogCiAgICAg
dm9pZCBwYXVzZUFsbE1lZGlhUGxheWJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CkBAIC0xNTA4LDE4ICsxNTA4LDE4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTaG93
aW5nTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaG93aW5n
TmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDsgfQogCi0gICAgYm9vbCBpc1BsYXlpbmdBdWRpbygp
IGNvbnN0IHsgcmV0dXJuICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsgfQotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICBi
b29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsgfQorICAgIHZv
aWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyk7CiAgICAgdm9pZCB1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKCk7CiAK
ICAgICBlbnVtIGNsYXNzIENhbkRlbGF5Tm90aWZpY2F0aW9uIHsgTm8sIFllcyB9OwotICAgIHZv
aWQgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncywgQ2FuRGVsYXlOb3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlv
bjo6Tm8pOworICAgIHZvaWQgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MsIENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2FuRGVs
YXlOb3RpZmljYXRpb246Ok5vKTsKICAgICBib29sIGlzQ2FwdHVyaW5nQXVkaW8oKSBjb25zdCB7
IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
QXVkaW9DYXB0dXJlTWFzayk7IH0KICAgICBib29sIGlzQ2FwdHVyaW5nVmlkZW8oKSBjb25zdCB7
IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
VmlkZW9DYXB0dXJlTWFzayk7IH0KLSAgICBib29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7IH0KLSAgICBib29s
IGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRh
aW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZSk7IH0KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgcmVwb3J0ZWRNZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRlZE1lZGlh
Q2FwdHVyZVN0YXRlIHwgKG1fbWVkaWFTdGF0ZSAtIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZU1hc2spOyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQor
ICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3Rh
dGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSk7IH0KKyAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpOyB9CisgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0YXRl
IC0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KKyAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0
IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQogCiAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50
KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50
RmxhZ3M+KTsKIApAQCAtMTYwMyw3ICsxNjAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2
b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBib29sIGhhc1Zp
ZGVvKTsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7
CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCk7
CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0
cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpOwog
ICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKTsKQEAg
LTI5MDQsNyArMjkwNCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6TGF5b3V0UG9pbnQgbV9t
YXhTdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbjsKIAogICAgIGZsb2F0IG1fbWVkaWFWb2x1bWUg
eyAxIH07Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG1fbXV0
ZWRTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1fbXV0
ZWRTdGF0ZTsKICAgICBib29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyB7IHRydWUgfTsK
ICAgICBib29sIG1fbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbWVkaWFDYXB0dXJlRW5hYmxlZCB7IHRydWUgfTsKQEAgLTI5NDAsMTAgKzI5NDAsMTAgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZVdhbnRzU3luY2hyb25vdXNS
ZXBseSB7IGZhbHNlIH07CiAgICAgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1f
bmV4dEFjdGl2aXR5U3RhdGVDaGFuZ2VDYWxsYmFja3M7CiAKLSAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogCiAgICAgLy8gVG8gbWFrZSBz
dXJlIGNhcHR1cmUgaW5kaWNhdG9ycyBhcmUgdmlzaWJsZSBsb25nIGVub3VnaCwgbV9yZXBvcnRl
ZE1lZGlhQ2FwdHVyZVN0YXRlIGlzIHRoZSBzYW1lIGFzIG1fbWVkaWFTdGF0ZSBleGNlcHQgdGhh
dCB3ZSBtaWdodCBkZWxheSBhIGJpdCB0cmFuc2l0aW9uIGZyb20gY2FwdHVyaW5nIHRvIG5vdC1j
YXB0dXJpbmcuCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1f
cmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZTsKICAgICBSdW5Mb29wOjpU
aW1lcjxXZWJQYWdlUHJveHk+IG1fdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZVRpbWVy
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBEZWZhdWx0TWVkaWFDYXB0dXJlUmVwb3J0
aW5nRGVsYXkgeyAzX3MgfTsKICAgICBTZWNvbmRzIG1fbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVs
YXkgeyBEZWZhdWx0TWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MmU1NmRmZmU2
ZTVmNDBiM2VhNTMyZWFkZTNmZDE5OGQ4ZGVmMGU1Li4xMThhNzFhOTc5NTZjOTFiNTZlNjI4MGM0
MjFjZjhhMzI2MzI4ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NjIsNyArNDYyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCi0gICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFu
Z2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorICAgIElz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZT4gc3RhdGUpCiAgICAgSGFuZGxlQXV0b3BsYXlFdmVudChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6QXV0b3BsYXlFdmVudCBldmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncz4gZmxhZ3MpCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC00ODEsNyArNDgxLDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBBZGRQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCkKICAgICBSZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBTaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9v
bCBoYXNWaWRlbykKLSAgICBQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElk
LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKKyAg
ICBQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBPcHRpb25TZXQ8V2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+IG1lZGlhU3RhdGUpCiAgICAgU2V0TW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBTZXRNb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0cmluZyBuYW1lLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSBwaWNrZXJTdGF0
ZSkKICAgICBNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA4ZDQ3YTYzZjZj
YTc2YjQxZWM4NmVhN2M0NDE3MmQ3MzBhMDQyYmE5Li5hZjQwOTYxZGEwZjlhOGVjNDg3NTA4YmYy
MTQxMzIwN2ZhMDdkZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTE4NDcsNyArMTg0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjptdXRl
Q2FwdHVyZUluUGFnZXNFeGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogCiAj
ZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MgZmxhZ3MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3Rh
dGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgYm9vbCBtdXRlZEZvckNh
cHR1cmUgPSBmbGFncy5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgIGlmICghbXV0ZWRGb3JDYXB0dXJlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA5Y2YyM2FkODkyOWRiZTlhODAzYzBhYzAw
NGFhMzNkYzJmMmM2NzFlLi44NzJmMDJlMTU0NzA4MTZiYzJlY2FhYzY0ZjFhZmExMmU1OGVlZDQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDA2LDcg
KzQwNiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBtdXRlQ2FwdHVyZUluUGFnZXNFeGNl
cHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQgcGFnZU11dGVk
U3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZs
YWdzKTsKICAgICB2b2lkIHBhZ2VJc0JlY29taW5nSW52aXNpYmxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBmZmRkNDMzNDU3ZWNlZmNkNmFk
ZDhkOWE0MjE0YmFiNDVkZDVlNjUwLi4xZjE3NmViZDk4OGNlMDJmZWU2ZDgyMDg0MjYyZTg0ZjFl
NTZhZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC01MCw2ICs1MCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlk
ZW9MYXllck1hbmFnZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhM2Q2Y2MzMmY2
NTQ5ZmEwZmFiNGEyNDUwOGZlMjJmMDQ3ZjlkMzM1Li5kM2FhZDZlYTI2MTY4YTIxYjgzZDUzMGU3
YWI2ZGQ0N2EyNjdmMjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcApAQCAtNTksNyArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW91
c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlubGluZXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJv
dGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGFhOWQzZWNl
M2Q2MjU4OWQ2YmJhZWM5MTRiNjM1NmQ1MDRhNGU5YmEuLjVhYmM0ODZlMGM1OTEwYWRlOGI4YzZm
YzhkOGY5MGE5Zjk2ZWI1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmgKQEAgLTE4Niw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVk
aWFDYW5TdGFydChXZWJDb3JlOjpEb2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcgotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gUGx1Z2luQ29u
dHJvbGxlcgpAQCAtMjc2LDExICsyNzYsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGx1Z2lu
SXNQbGF5aW5nQXVkaW8geyBmYWxzZSB9OwogfTsKIAotaW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBQbHVnaW5WaWV3OjptZWRpYVN0YXRlKCkgY29uc3QKK2lu
bGluZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3MgbWVkaWFTdGF0ZTsKICAgICBpZiAobV9wbHVnaW5Jc1BsYXlpbmdBdWRpbykKLSAgICAg
ICAgbWVkaWFTdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8pOworICAgICAgICBtZWRpYVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogICAgIHJldHVybiBtZWRpYVN0YXRlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDEyMGEwNGQzNmYwMzhhYzczMTkxNTUyZWNmNDVlMzIxNGUx
NWI3ZWUuLmEyMzk2Y2UyYzI5NGU4MjZlZTg2ZDNmNzZkOWY1YTcxM2I5OTYzOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC0xMjUyLDcgKzEyNTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJh
bWVWaQogICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNr
aW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3Rh
dGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2UuaXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2Uoc3RhdGUpOwogfQpAQCAtMTM4NCw3ICsxMzg0LDcgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGkKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCByZWN0LCBpc1ZpZGVvKSk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hh
bmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQ
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKGNvbnRleHRJZCwgc3RhdGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA2NDQ4MmE0MmU0ZWM3MmQ1MmFhODQ2YTU3ODQ1
YTE0Njg0NjZjNzEwLi5iOTkzOGYyYmZhNjEwMGIyOTYyM2NkMDMwNWNlMGIxNGM0MzIyMTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNTIsNyArMzUyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1l
VmlldyYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQg
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncykgZmluYWw7CiAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9w
bGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsK
IAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKQEAgLTM5MSw3ICszOTEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVQ
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tl
cihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpIGZpbmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mp
IGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9p
ZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNmVlNDIw
ZjQ1YTQyNzU5ZTA2MTRjYjUwMGNhNmVmNmI1MjRjOTA0Li5kZThjNWYzN2IwMmQxMTIxNjA4ZDI5
Nzk0YzVmNWI4MDZkYzhmZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNDM3NSw3ICs0Mzc1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVmlv
bGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShGcmFtZUlkZW50
aWYKICAgICAgICAgV2ViQ29yZTo6c2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdh
eUZyb21DT09QUmVzcG9uc2UoKmZyYW1lLT5jb3JlRnJhbWUoKSwgY29vcCwgZGlzcG9zaXRpb24s
IGNvb3BVUkwsIG5leHRSZXNwb25zZVVSTCwgY29vcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBu
ZXh0UmVzcG9uc2VPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgaXNDT09QUmVzcG9uc2VOYXZpZ2F0
aW9uU291cmNlLCB1c2VyQWdlbnQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBXZWJQYWdlOjplbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0
byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBpZiAoIWZyYW1lKQpAQCAtNTU3NSwxMyArNTU3NSwxMyBAQCB2b2lkIFdlYlBhZ2U6OnNldE1l
ZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3BhZ2UtPnNldE1lZGlhVm9sdW1lKHZvbHVt
ZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mg
c3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBtX3BhZ2UtPnNldE11dGVkKHN0YXRlKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
fQogCi12b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9wYWdlLT5zdG9wTWVk
aWFDYXB0dXJlKGtpbmQpOwpAQCAtNzQ1MSw3ICs3NDUxLDcgQEAgdm9pZCBXZWJQYWdlOjpzeW5j
aHJvbml6ZUNPUlNEaXNhYmxpbmdQYXR0ZXJuc1dpdGhOZXR3b3JrUHJvY2VzcygpCiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpT
ZXRDT1JTRGlzYWJsaW5nUGF0dGVybnMobV9pZGVudGlmaWVyLCBtX2NvcnNEaXNhYmxpbmdQYXR0
ZXJucyksIDApOwogfQogCi12b2lkIFdlYlBhZ2U6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViUGFn
ZTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKHN0YXRlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzEzODU1NzNiMGJlNWZlYzgwMTUwYTk1ZmIzOTUxOTQz
YTUwNDY2Ni4uYzI3ZDQwMGI2NmQzN2RiZTBhOWU1NGQyN2FiZjQ0MGM0OWQ0MTE3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDQ4LDcgKzQ0OCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJP
cmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJM
KTsKICAgICB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3Bv
bnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVS
TCwgY29uc3QgVVJMJiBwcmV2aW91c1Jlc3BvbnNlVVJMLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGNvb3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgcmVwb3J0VG9IZWFkZXJWYWx1ZSk7CiAg
ICAgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNw
b25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5JiwgV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BV
UkwsIGNvbnN0IFVSTCYgbmV4dFJlc3BvbnNlVVJMLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIGNvb3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
bmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpOwotICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKTsKIAogICAgIC8vIC0tIENhbGxlZCBi
eSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhl
c2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVu
ZWZpY2lhbD8KQEAgLTEwMjcsOSArMTAyNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVJl
c291cmNlUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIpOwogCiAgICAg
dm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZs
YWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyhib29sKTsKLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2
b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApAQCAtMTQyMSw3ICsx
NDIxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9u
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOwogI2VuZGlmCiAKLSAgICB2b2lkIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyk7CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAg
ICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDhhZmM0ZWE1ZTNjZDAxYzJhYzNhNGEzNDFmMzE2YTlhMjExMzMyZTEuLjc4MmZmMjgyYmFh
M2RkOGEzOGIwYThhY2EzMTkzMzJhOWEzYzgxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzMsNyArMzMsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZW5kQ09FUENPUlBW
aW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4sIFN0cmluZyBlbmRwb2ludCwgZW51
bTpib29sIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgZW51bTp1aW50OF90
IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIFVSTCBibG9j
a2VkVVJMKQogICAgIFNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3Bv
bnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6OkNPT1BEaXNwb3Np
dGlvbiBkaXNwb3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBwcmV2aW91c1Jlc3BvbnNlVVJMLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGNvb3BPcmlnaW4sIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgU3RyaW5nIHJl
ZmVycmVyLCBTdHJpbmcgdXNlckFnZW50LCBTdHJpbmcgcmVwb3J0VG9IZWFkZXJWYWx1ZSkKICAg
ICBTZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OkNyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5IGNvb3AsIGVudW06Ym9vbCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24g
ZGlzcG9zaXRpb24sIFVSTCBjb29wVVJMLCBVUkwgbmV4dFJlc3BvbnNlVVJMLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGNvb3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgbmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2
aWdhdGlvblNvdXJjZSwgU3RyaW5nIHVzZXJBZ2VudCkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCisgICAgRW5x
dWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5p
dCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldh
aXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCkBAIC00
MTcsOSArNDE3LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4
X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgTWVkaWEKICAg
ICBTZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0gICAgU2V0TXV0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKSAtPiAoKSBBc3luYworICAgIFNldE11
dGVkKE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gbXV0ZWQpIC0+
ICgpIEFzeW5jCiAgICAgU2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0
TWVkaWEpCi0gICAgU3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCisgICAgU3RvcE1lZGlhQ2FwdHVyZShlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4g
KCkgQXN5bmMKIAogICAgIFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNh
blJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNh
blJ1bk1vZGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURv
Y3VtZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCmlu
ZGV4IDhlYTQwNDNlMTYxNWUzMTk2NTc5YjA2MDBiNjAwZDU2ODZjNjZhNGUuLjYyZmE2MjIwMjg2
NWRmYWRjNTFjMjU4NTI3NjY3YjNmYmZhNzNhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9ET00vRE9NRG9jdW1lbnQubW0KQEAgLTYwLDkgKzYwLDkgQEAKICNpbXBvcnQgPFdlYkNvcmUv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db21tZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RPTVdpbmRvdy5oPgotI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudEZyYWdtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Rv
Y3VtZW50RnVsbHNjcmVlbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudElubGluZXMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRUeXBlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxDb2xsZWN0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDFjNTc2NzkzN2M2NTQ5ZmExY2U0OWM5Mzg1MmNhNGVlM2I3YWRlNmMuLjM1NTVkNTQ0Y2E3
NGI3MTE5ZDZiMDY3NjI2NjdlMmM0MTc1MWQwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNDMs
NyArMjQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGhhc1ZpZGVvICov
KSBmaW5hbDsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ckVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0OjpNb2NrU3RhdGUpIGZpbmFsOwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBh
NDZiMWFkYTYwNDk3ZGE3ZjVlZWUyN2Y4MTFlMzJlN2MwODI2ZTExLi4xNjkzZDg3NWZlMDA4NTRm
OTJkNWJhMzE2ZDVmNzMxMWQ4N2Q4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xMTI5LDcg
KzExMjksNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aQogICAgIFttX3dlYlZpZXcgX3Nob3dQ
bGF5YmFja1RhcmdldFBpY2tlcjpjb250ZXh0SWQgbG9jYXRpb246bG9jYXRpb24gaGFzVmlkZW86
aGFzVmlkZW9dOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgW21fd2ViVmlldyBfcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTpjb250ZXh0SWQgc3RhdGU6c3RhdGVd
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRleCA4Y2EzMjk0N2E1YjQ2ZTA2N2I4
ZThiYWU0NDYzOTNlYmI5MGU4NmVmLi4zOTY1NTVjZDFmOThiNmJjMTM0NDUwNTdlZGNhNTc2ZmZk
NGViNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3Jl
OjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlckRpc21pc3NQb3B1cCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCmluZGV4IDdk
YmQ1ODk0NzU0MDVhMTZlYmRkMGZhOWJjZmE2MmMzMzdlNzQxNTIuLjVjZmZiY2ZjM2Y1ZWFjNmU1
ZWI4MmVlYTAzZWM4YjBjNWE5OGU3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0K
QEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXIKICAgICBXZWJDb3JlOjpX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
KnRoaXMsIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdChyZWN0KSwgaGFzVmlkZW8sIG1fcGFn
ZSA/IG1fcGFnZS0+dXNlRGFya0FwcGVhcmFuY2UoKSA6IGZhbHNlKTsKIH0KIAotdm9pZCBXZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
Cit2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVk
KCkuY2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGMyNjRhZmE4NjJm
ZTg5Y2ZkODgwNTc5MWZhYTIyZmU0MzM1MDk5NTcuLjZkNjk3ZGQ4N2JkNzA2YmE5ZGE3NDM5ZjJk
YjJkNWMxNWE0NGRkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTkyNDEsNyArOTI0MSw3IEBAIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBp
Y2tlcjooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllCiAgICAg
W3NlbGYgX2RldmljZVBpY2tlcl0tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQs
IHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBoYXNWaWRlbyk7CiB9CiAKLS0gKHZvaWQpX3BsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKKy0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKXN0YXRlCiB7CiAgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwu
aAppbmRleCBhNDdkYTJjZjRkNzQ5NDk2MGY1YzUwOGYyMmI3ZjE1MGEyN2Q4ZGE3Li5jY2Q4Y2Q3
M2E0MWUzOWExYTczZWYxOTQxNTRmMTkyOTRkMjFlOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMzNiw3ICszMzYsNyBA
QCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNv
cmU6OkxheW91dE1pbGVzdG9uZT4pOwogLSAodm9pZClfYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29u
dGV4dElkOwogLSAodm9pZClfcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAo
dm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKWxvY2F0aW9uIGhhc1ZpZGVvOihCT09MKWhhc1ZpZGVvOwotLSAodm9pZClfcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZTsKKy0gKHZvaWQpX3BsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzKXN0YXRlOwogLSAodm9pZClfc2V0TW9ja01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJFbmFibGVkOihib29sKWVuYWJsZWQ7CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck5hbWU6KE5TU3RyaW5nICopbmFtZSBzdGF0ZTooV2ViQ29yZTo6
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSlzdGF0ZTsKIC0gKHZvaWQpX21v
Y2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwOwo=
</data>
<flag name="commit-queue"
          id="464899"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440822</attachid>
            <date>2021-10-11 12:40:40 -0700</date>
            <delta_ts>2021-10-11 22:26:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231489-20211011124039.patch</filename>
            <type>text/plain</type>
            <size>267835</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uMWU5ODNjMjg0MmNlNjI1YjFlOGMzM2JkYzk2MWIw
ZDkzMDQ0OTBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcgZW51
bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZvcndh
cmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIC0+
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAgICAg
IC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZQor
ICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAgICAg
ICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3MsRGVs
aXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBBZGRp
dGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0byB1
c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgorCisg
ICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQYWdl
SW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAgICAg
ICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMgY29t
cGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBvZiB0
aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRhaW5l
ck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1vZHVs
ZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdl
cjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNz
aW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25m
aWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpMb2dB
cmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
OjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBk
YXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAgICAg
KiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAqIGRv
bS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RN
dXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20vQ29u
dGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVB
bGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVy
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hhcnNl
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rpbmcg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05ldHdv
cmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRh
dGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNo
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0
aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dmFs
aWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2Vy
dmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZv
ckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBjb25z
dCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2
ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5nT2Jz
ZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJlZE11
dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJp
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRl
TWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0
YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9wZW5l
clBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
dG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVk
aW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01lZGlh
Q2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxpbmVz
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdo
dENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3VzUmlu
Z0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBvcnRz
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6
c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNo
ZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50U3R5
bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVsbCBi
dWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4YTcw
Li5mYTExZjIyMzNlNmUwYzZlNThmYWQ2MjE5YmQ4MjczNDllMjMwM2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5n
cyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFz
c2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9k
dWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
IC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAg
ICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1pY3JvcGhv
bmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhvbmVDYXB0
dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRD
YW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFBhZ2VN
dXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6
CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVD
aGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3Rh
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0b3BN
ZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURp
ZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMC0w
NiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGlt
ZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgzNzkzMjgy
ZTY2NTRlNi4uNzI5MjBhZWMyN2MwNzQ4OGVjNmNmM2U1NDIwODRiOTY4YmM0MmRhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZd
IEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBNb3Zl
IHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQg
dGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAt
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2Fw
dHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZl
ODk5ZTYxNGQxNTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUx
ZWY2ZjkwZDkzOTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50
Rm9udExvYWRlci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVu
dEZ1bGxzY3JlZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVu
dE1hcmtlci5oCiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0Rv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAg
IHBhZ2UvUGFnZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1Bh
Z2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCmluZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhj
Njc4N2MzNmI0OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKQEAgLTU4LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVk
aWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAg
ICBib29sIHByZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29u
ZmlndXJhdGlvblJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxz
ZSB9OwogfTsKIAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitz
dGF0aWMgYm9vbCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVl
LCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1
ZS5jb250YWluc0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJp
bmcoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJv
ZHVjZXJTdGF0ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewog
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAg
IGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQor
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdz
ICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZs
YWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwot
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlm
IChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpS
ZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
UmVxdWlyZXNUYXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
RGlkUGxheVRvRW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpE
aWRQbGF5VG9FbmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAg
ICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8p
CisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRl
bykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChz
dHJpbmcuaXNFbXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsK
QEAgLTI1NiwxMSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdB
WVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhd
LmdldCgpKTsKIAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNl
dChtX2NsaWVudFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhh
c0FjdGl2ZVJvdXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0
Q29udGV4dCgpKTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNs
aWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwg
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmlu
ZCgmY2xpZW50LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBA
IC0yNjgsNyArMjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47
CiAKICAgICBhdXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsK
LSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xp
ZW50U3RhdGUtPmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxh
Z3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRG
bGFncykKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7
CiAKLSAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNv
bmZpZ3VyYXRpb25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxh
eWJhY2tUYXJnZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBdWRpb09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0
ZUNvbmZpZ3VyYXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZs
YWdzKSkKICAgICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmln
dXJhdGlvblRhc2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBwbGF5aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1ZpZGVvIH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mg
cGxheWluZ1RvVGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CiAgICAgaWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3Rmxh
Z3MgJiBwbGF5aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9s
ZEZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZs
YWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdW
aWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkRpZFBsYXlUb0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVT
ZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAg
ICAgICAgICAgY2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAg
IHNjaGVkdWxlRGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAg
ICB9CiAKLSAgICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhh
c0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1f
cGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwg
IWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxE
ZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5v
dCBpbnRlcnJ1cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4K
QEAgLTI5NSwxNCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50
U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYg
KHN0YXRlID09IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5m
bGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAg
ICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAg
IEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIg
cmV0dXJuaW5nIGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9
CiAKICAgICAvLyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5
YmFjayBoYXMganVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChv
bGRGbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7Cisg
ICAgaWYgKCFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lP
Tk1BTkFHRVIoX19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0
IHN0YXJ0Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9p
ZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMo
KQogICAgICAgICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc2VkKSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhP
ZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xp
ZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2Up
KQorICAgICAgICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQg
JiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFy
Z2V0ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJl
cXVlc3RlZFBpY2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZD
bGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7
CiAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGlu
ZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRl
eE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlj
a2VyOwotICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAm
JiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUpICYmICFmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2ls
bFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVT
ZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRl
cm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0
ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAg
ICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQx
NCw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJn
ZXRDbGllbnRzKCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdp
bGxQbGF5VG9UYXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2Ns
aWVudFN0YXRlW2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUt
PmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmlj
ZSkpIHsKICAgICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNf
Xywgc3RhdGUuZ2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0
cnVlKSIpOwogICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChzdGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0
MzEsMTMgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1Rh
cmdldE1vbml0b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwog
ICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBp
ZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5
YmFja1RhcmdldE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewog
ICAgICAgICAgICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAg
ICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlM
aXN0ZW5lciA9IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3Mg
JiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAg
aGF2ZUNsaWVudFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAog
ICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdl
dCgpLCAiIHBsYXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBp
ZiAoZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZs
YWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9
IHRydWU7CiAgICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQ
bGF5VG9FbmQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJw
bGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWly
cGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgw
ZDRlMTFkYjJiZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4
NzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IElu
dFJlY3QmLCBib29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAg
Ym9vbCBhbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9Owog
Ci1TdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKQEAgLTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1l
bnQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
ZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7
IH0KK3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlh
UHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNw
cAppbmRleCAzODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEz
YWU1NjlhNzg5ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5
IEBAIHZvaWQgTWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUt
PnN0b3BQcm9kdWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIE1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9j
dW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjEx
MDdhNDQzMTkyMzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTVi
YmNiNmFlNWJmYzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQg
Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcg
KzE0Myw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1fc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwog
CiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdE
YXRhIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYx
MjhiYzgyMTM3OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVl
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRp
YVN0cmVhbVRyYWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJh
Y2tzOwogfQogCi1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNh
cHR1cmVTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQw
MSw3ICs0MDEsNyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2Vy
dmVyJiBvYnNlcnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwog
fQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVk
aWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFt
VHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1
cmVUcmFjaygpKQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpA
QCAtNDEzLDMzICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlh
U3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJl
U3RhdGUoc291cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291
cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2Um
IHNvdXJjZSkKIHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3Vy
Y2UubXV0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlm
IChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAg
ICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAg
ICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11
dGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291
cmNlLmludGVycnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJl
RGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1
cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0
ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJ
bnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNl
OworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVE
aXNwbGF5Q2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6VW5rbm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
ICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1U
cmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFj
a3MoKSkgewogICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVu
dCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4
MywxMyArNDgzLDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29y
ZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVB
dWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3Vy
Y2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291
cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0
YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNN
dXRlZCk7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRh
aW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAg
ICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlk
ZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2VFbmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
VmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAg
ICAgfQogI2Vsc2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5
cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToK
LSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMo
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAg
ICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9w
cml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUt
PnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5t
dXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2Fw
dHVyZUlzTXV0ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0
YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246
CkBAIC01MjUsMjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFn
ZU11dGVkU3RhdGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hl
c0tpbmQoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpb1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvVmlkZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6Ok5vbmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAg
ICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVy
ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0
dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5
ODM2MjBlZWU4OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQy
ZTcwOGU0N2U2NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhU3RyZWFtVHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQm
LCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRD
YXB0dXJlKERvY3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAg
c3RhdGljIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3Rh
dGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9N
dXRlZFN0YXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJl
ZlB0cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0
OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0Owog
CiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2
ZXIoT2JzZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRm
MDE0NWViYTc2YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRm
NS4uODUyNWU3ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwCkBAIC0zNiw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
SlNNZWRpYVN0cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJt
aXNzaW9ucy9QZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVy
bWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdh
MmRmN2M5Njg2MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYw
Y2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJt
aXNzaW9uU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25z
L1Blcm1pc3Npb25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2Yzcz
MjJjZTkzNWY4YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1
MDFkNzIwNTk1ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4
dE9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgi
CkBAIC0zNTYsMTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJh
Y2soKQogICAgIHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2so
KTsKIH0KIAotTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVk
aWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5h
dGlvbigpLmlzUGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJ
c05vdFBsYXlpbmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6Ondp
bGxCZWdpblBsYXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFu
Z2VkKCkKIHsKICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAg
IGlmICghZG9jdW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgp
IHx8IG1lZGlhU3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8gfHwgaXNTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgp
LT5oaWRkZW4oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKaW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4u
NGFiODQ3MTY5ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBw
YWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNl
c3Npb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2
Li4yNmVlZGE0YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYg
KzQ1NDMsOCBAQAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29j
b2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZG
RTVCODI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNE
RUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRC
QkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8q
IERvY3VtZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBF
MjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJ
bmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RGMTM1MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRD
MEYyMDgwMDBDNDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMy
RTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZl
clBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUNERjJCMDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlD
MDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4
MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdp
c3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBB
RUUyNEIgLyogR3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmlkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2
OTMwMDU1NTlBNyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3Nh
Z2VUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYz
ODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgx
RjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2
Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIy
Mjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEy
MjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAw
QjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1
QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyog
UGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJ
CQlBODE4NUYzNTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJ
CTFBNDk0RUQ1MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJ
CQlDRDkyRjUxMDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJ
CQkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJ
CUVEMkJBODNCMDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNF
MDU3RkEzMTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICov
LAogCQkJCUNFMDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCAqLywKQEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1
ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMy
MjYwRkZFRTAwRjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3Vt
ZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0
QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYs
NiArMzQ1MzMsNyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFF
NiAvKiBQYWdlSGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3
MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBF
MjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
QjA1MjQxRkI1MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJENUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdl
LmNwcAppbmRleCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4
ZTcxNTNlNDg2MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExv
Z2dlci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2
MjMwY2JkOTkwNWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1
ZTlkMmU1YzRiNzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3
NDhmNDFkZDJiMGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRj
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTg3Y2JhNGMz
MWI3MGU1OGI0MWUzYTY2YWNjZjBiYTJhNmY3NTg4ZS4uMzlmMmEwMzljMDI1OGExNjUzM2RiOTVh
MDVhYzk4OTIzMmYxOGM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNjY4NDg2ZmQ4N2ZjZmU0NGUy
OGMxYzVkMWE3NjgyY2I5YmFlNzIzNi4uNjMyM2Y1ZDY0Y2JjNmJjNmIwMjJmMDU1ODM4OTA2YzAz
ZjdiNTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQ29sb3IuY3BwCmluZGV4IDZjMDg1YTgwMGNkZjRhZjM0YjIzNTJjMjVjYWJiMTM5ZWIwNWU2
ZGUuLjAzODZlMzY2MDllNGNlOGQ3NDBjNzlmMTg2N2U3NjY3YmVkMmM2N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVDb2xvci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1Db2xvciBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29y
ZCwgT3B0aW9uU2V0PE9wdGlvbnM+IG9wdGlvbnMpCitDb2xvciBTdHlsZUNvbG9yOjpjb2xvckZy
b21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29yZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKQogewogICAgIGlmIChjb25zdCBjaGFyKiB2YWx1ZU5hbWUgPSBnZXRWYWx1ZU5h
bWUoa2V5d29yZCkpIHsKICAgICAgICAgaWYgKGNvbnN0IE5hbWVkQ29sb3IqIG5hbWVkQ29sb3Ig
PSBmaW5kQ29sb3IodmFsdWVOYW1lLCBzdHJsZW4odmFsdWVOYW1lKSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
Q29sb3IuaAppbmRleCBlNGU1OGRmOWM1ZWZlNDg3NTJjZTg4ZjEyNDEwY2UyMzlmMTM5Mjc2Li4z
MjE0NGY0ZjFmNjViNjBmNjg2ZGYyNzZmMjU0ZTlmMjBkZDZjNzcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUNvbG9yLmgKQEAgLTM3LDE1ICszNywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBTdHlsZUNvbG9yIHsKLSAgICBlbnVtIGNsYXNzIE9wdGlvbnMgOiB1aW50OF90IHsKLSAg
ICAgICAgRm9yVmlzaXRlZExpbmsgPSAxIDw8IDAsCi0gICAgICAgIFVzZVN5c3RlbUFwcGVhcmFu
Y2UgPSAxIDw8IDEsCi0gICAgICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAotICAgICAg
ICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEgPDwgMwotICAgIH07CitlbnVtIGNs
YXNzIFN0eWxlQ29sb3JPcHRpb25zIDogdWludDhfdCB7CisgICAgRm9yVmlzaXRlZExpbmsgPSAx
IDw8IDAsCisgICAgVXNlU3lzdGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKKyAgICBVc2VEYXJrQXBw
ZWFyYW5jZSA9IDEgPDwgMiwKKyAgICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEg
PDwgMworfTsKIAotICAgIHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQs
IE9wdGlvblNldDxPcHRpb25zPik7CitzdHJ1Y3QgU3R5bGVDb2xvciB7CisgICAgc3RhdGljIENv
bG9yIGNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPik7CiAgICAgc3RhdGljIGJvb2wgaXNBYnNvbHV0ZUNvbG9yS2V5d29yZChDU1NWYWx1ZUlE
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yS2V5d29yZChD
U1NWYWx1ZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IGJiOGQ1
M2NjYzQ0NWM3MGNmYTgyZmVjZjYzNWQ1Y2IyMDQ2ZjY0YTcuLjJlNjVjNjI0NDk3MzM3ZTZiOTAw
YWUzOTAwYzFhMTI2Yzk3ZDZjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFy
YWN0ZXJEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENoYXJhY3RlckRh
dGEpOwogc3RhdGljIGJvb2wgY2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihjb25zdCBDaGFyYWN0
ZXJEYXRhJiBub2RlKQogewogICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZS5kb2N1bWVudCgpOwot
ICAgIHJldHVybiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNU
RVJEQVRBTU9ESUZJRURfTElTVEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKQorICAgIHJldHVybiAhZG9j
dW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURf
TElTVEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSkKICAgICAgICAgJiYgIWRvY3VtZW50
Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6RE9NU1VCVFJFRU1PRElGSUVEX0xJU1RFTkVSKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXgg
Mjk2Njc2Nzc2OGYwZDcxNDc0MmUzNmJjZTViNjEwODY5NzdmOTFmZi4uNjRjOTI0NjVmMmExMDNi
M2E5OTBlNjFhM2NmMTI4YTA5NWIyYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5oCkBAIC0zMSw3ICszMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw3ICs3Niw3
IEBAIGNsYXNzIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0
IENoaWxkTGlzdE11dGF0aW9uU2NvcGUoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAg
ICAgICAgaWYgKHRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11
dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQo
KS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
Q2hpbGRMaXN0KSkKICAgICAgICAgICAgIG1fYWNjdW11bGF0b3IgPSBDaGlsZExpc3RNdXRhdGlv
bkFjY3VtdWxhdG9yOjpnZXRPckNyZWF0ZSh0YXJnZXQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDJiNTliMzZiYzg5YWQyZWRmOTUyOTk0NTE2ZGE5ODk3
YTA3ZjQ3OGUuLmFkOGE3NTQ5NGZiZWQwMjllODE2MmQwY2JhNWVlNGE4ZTIwZDE2Y2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBBTFdBWVNf
SU5MSU5FIE5vZGVWZWN0b3IgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hpbGRyZW5XaXRoU2Ny
aXB0QXNzZXJ0aW9uKENoaQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChzb3VyY2UgPT0g
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKTsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNj
b3BlOjpJbk1haW5UaHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBpZiAoVU5M
SUtFTFkoZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpDaGlsZExpc3QpKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRM
aXN0KSkpIHsKICAgICAgICAgICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRo
aXMpOwogICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQogICAgICAgICAg
ICAgICAgIG11dGF0aW9uLndpbGxSZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCBlOGJjNTZlNzZlNmY2NGM5NmY3MWFmYzYzY2MyZDc2ZDEyZmYwY2E0
Li5hZGY1MzU1MmZlMDdmNTVhN2YxMTkzNDgwZjU1Y2MyYmRlMWJhNjVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5
cy5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50Rm9udExvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCkBAIC0xNzcsNiArMTc4
LDcgQEAKICNpbmNsdWRlICJQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1
ZGUgIlB1YmxpY1N1ZmZpeC5oIgogI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1ZGUgIlJUQ05l
dHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpAQCAt
MjM5LDYgKzI0MSw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgor
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIK
QEAgLTk3OSw3ICs5ODIsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNldExpbmtDb2xvcigpCiAKIHZv
aWQgRG9jdW1lbnQ6OnJlc2V0VmlzaXRlZExpbmtDb2xvcigpCiB7Ci0gICAgbV92aXNpdGVkTGlu
a0NvbG9yID0gU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtpdExpbmss
IHN0eWxlQ29sb3JPcHRpb25zKG51bGxwdHIpIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlz
aXRlZExpbmspOworICAgIG1fdmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJv
bUtleXdvcmQoQ1NTVmFsdWVXZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8
IFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6
OnJlc2V0QWN0aXZlTGlua0NvbG9yKCkKQEAgLTM1NzgsNiArMzU4MSwxMyBAQCBSZWZQdHI8UlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0Rh
dGFDaGFubmVsUmVtbwogICAgIHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0
ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJM
RShXRUJfUlRDKQordm9pZCBEb2N1bWVudDo6c2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05l
dHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKQoreworICAgIG1fcnRjTmV0d29ya01h
bmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsKK30KKyNlbmRpZgorCiBib29sIERv
Y3VtZW50OjpjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGlu
YXRpb25VUkwpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpAQCAtNDQwMywxOCArNDQxMywxOCBAQCB2
b2lkIERvY3VtZW50Ojpub3RlVXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lk
IERvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSgpCiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlv
UHJvZHVjZXJzLmhhc051bGxSZWZlcmVuY2VzKCkpOwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRl
OwogICAgIGZvciAoYXV0byYgYXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNlcnMpCiAgICAg
ICAgIHN0YXRlLmFkZChhdWRpb1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3Rh
dGUoKnRoaXMpKTsKICAgICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAg
c3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0lu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKKyAgICAg
ICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQpOwogCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjcyNSw3ICs2NzM1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hQ
YWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAgICAgZGlz
cGF0Y2hXaW5kb3dFdmVudChQYWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnBhZ2VzaG93RXZlbnQsIHBlcnNpc3RlZCksIHRoaXMpOwogfQogCi12b2lkIERvY3VtZW50Ojpl
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBl
dmVudEluaXQpCiB7CiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OkRP
TU1hbmlwdWxhdGlvbiwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBXVEZNb3ZlKGV2ZW50SW5pdCks
IEV2ZW50OjpJc1RydXN0ZWQ6OlllcykpOwogfQpAQCAtNzUwOSwxNSArNzUxOSwxNSBAQCBib29s
IERvY3VtZW50Ojp1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1PcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6
OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK09wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnM7CiAgICAgaWYgKHVzZVN5c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlv
bnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICBpZiAo
dXNlRGFya0FwcGVhcmFuY2Uoc3R5bGUpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxl
Q29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKCkpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICBy
ZXR1cm4gb3B0aW9uczsKIH0KIApAQCAtNzY5NCw3ICs3NzA0LDcgQEAgdm9pZCBEb2N1bWVudDo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVu
dCwgYm9vbAogICAgIHBhZ2UtPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHBv
c2l0aW9uLCBpc1ZpZGVvLCByb3V0ZVNoYXJpbmdQb2xpY3ksIHJvdXRpbmdDb250ZXh0VUlEKTsK
IH0KIAotdm9pZCBEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZShNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0
aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtODE5OSw3ICs4MjA5LDcgQEAgdm9pZCBE
b2N1bWVudDo6b3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKLXZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQordm9pZCBEb2N1bWVudDo6c3RvcE1lZGlh
Q2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewogICAgIE1lZGlh
U3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoKnRoaXMsIGtpbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCAzODZlMzc4MjgwODhmM2ZkMWVhN2JmYzgwNjgyZTk1YTg1MDg5MDA2Li43ZDgzYzY2
NDUxNmRhMDMzYTZmNDY2MjllM2UwMDFiY2VkZTQ2NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMuaCIKICNpbmNs
dWRlICJEb2N1bWVudEV2ZW50VGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWxlbWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGb2N1c09wdGlvbnMuaCIKICNpbmNsdWRl
ICJGb250U2VsZWN0b3JDbGllbnQuaCIKQEAgLTQzLDMwICs0MiwyMSBAQAogI2luY2x1ZGUgIkZy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRl
ICJHcmFwaGljc1R5cGVzLmgiCi0jaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgotI2luY2x1ZGUg
Ik11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVyLmgiCiAj
aW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAj
aW5jbHVkZSAiUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgotI2luY2x1
ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKLSNp
bmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1
ZGUgIlJlbmRlclB0ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNp
bmNsdWRlICJTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5n
V2l0aERpcmVjdGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKLSNpbmNsdWRlICJTdHls
ZVVwZGF0ZS5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVGV4dFJl
c291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3Bl
LmgiCiAjaW5jbHVkZSAiVXNlckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJWaWV3cG9y
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlTdGF0ZS5oIgotI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtOTYsMTEgKzg2LDE2
IEBAIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KIAorbmFtZXNwYWNlIFBB
TCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QVhPYmplY3RDYWNoZTsKIGNsYXNzIEFwcEhpZ2hsaWdodFN0b3JhZ2U7CiBjbGFzcyBBdHRyOwor
Y2xhc3MgQ2FudmFzQmFzZTsKIGNsYXNzIENEQVRBU2VjdGlvbjsKIGNsYXNzIENTU0N1c3RvbVBy
b3BlcnR5VmFsdWU7CiBjbGFzcyBDU1NGb250U2VsZWN0b3I7CkBAIC0xMzIsNiArMTI3LDcgQEAg
Y2xhc3MgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBj
bGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lOwor
Y2xhc3MgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRUeXBlOwog
Y2xhc3MgRWRpdGluZ0JlaGF2aW9yOwogY2xhc3MgRWRpdG9yOwpAQCAtMTgzLDYgKzE3OSw3IEBA
IGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVk
aWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CitjbGFz
cyBNZWRpYVByb2R1Y2VyOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5
TWF0Y2hlcjsKIGNsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpAQCAtMTk2LDcgKzE5
Myw5IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVj
dGlvbjsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBRdWlya3M7CitjbGFzcyBSVENOZXR3
b3JrTWFuYWdlcjsKIGNsYXNzIFJhbmdlOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyVHJl
ZUJ1aWxkZXI7CiBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2s7CkBAIC0yMjMsNiArMjIyLDcgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwog
Y2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEF1dG9TaXppbmc7
CitjbGFzcyBUZXh0RW5jb2Rpbmc7CiBjbGFzcyBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjsK
IGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CkBAIC0y
NTAsMjAgKzI1MCwyOSBAQCBzdHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVzdDsKIHN0cnVjdCBCb3Vu
ZGFyeVBvaW50Owogc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRlcnNlY3Rp
b25PYnNlcnZlckRhdGE7CitzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogZW51bSBDb2xsZWN0
aW9uVHlwZTsKIAorZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90
OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7Citl
bnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
Um91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAg
OiB1aW50MTZfdDsKK2VudW0gY2xhc3MgU3R5bGVDb2xvck9wdGlvbnMgOiB1aW50OF90OworZW51
bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7CiAKK3VzaW5nIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU+OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQz
Ml90OwogCiBuYW1lc3BhY2UgU3R5bGUgewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBTY29wZTsK
K2NsYXNzIFVwZGF0ZTsKIH0KIAogZW51bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgeyBQYWdl
c2hvd0V2ZW50Tm90UGVyc2lzdGVkLCBQYWdlc2hvd0V2ZW50UGVyc2lzdGVkIH07CkBAIC00NjAs
MTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVs
dENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0OwogCi0gICAgU3RyaW5nIGNoYXJzZXQo
KSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2RpbmcoKTsgfQorICAgIGlubGluZSBTdHJp
bmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjaGFyYWN0ZXJT
ZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGlu
ZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nKCkgY29uc3Q7
CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gdGV4dEVuY29kaW5n
KCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmKTsgLy8g
VXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5LgogCkBAIC01NzksNyArNTg4LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJh
bmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKGNvbnN0
IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBjb25zdCBSZW5kZXJPYmplY3Qm
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsK
QEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJ
ZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVu
c2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNoZSogZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2FjaGUqIGV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0
Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmplY3RDYWNoZSgpOwogCkBAIC03MTMs
NyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgUlRDTmV0d29y
a01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1cm4gbV9ydGNOZXR3b3JrTWFuYWdl
ci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtN
YW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZN
b3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UlRD
TmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRp
b25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUeXBlKSBjb25zdDsKICAg
ICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbXV0
YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0gICAgYm9vbCBoYXNNdXRhdGlvbk9i
c2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzOyB9Ci0gICAg
dm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdHlw
ZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlwZXM7IH0KKyAgICBpbmxpbmUgYm9v
bCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSkg
Y29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuICFt
X211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE11dGF0aW9u
T2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBn
ZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBudWxscHRy
OyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFza1Rv
RGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJlZjxFdmVudD4mJik7CiAgICAgdm9p
ZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgZGlzcGF0Y2hQ
YWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYg
b2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAgdm9pZCBkaXNwYXRjaFBvcHN0YXRl
RXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzdGF0ZU9iamVjdCk7CiAKQEAg
LTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigp
OyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQogCi0gICAgYm9vbCBpc1NhbWVPcmln
aW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVP
cmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW5Bc1Rv
cERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRGb3JjZU5vT3BlbmVyQmFzZWRPbkNP
T1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVy
UG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IGZpbmFsOwpAQCAtMTQwMiw5
ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9k
dWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRp
b1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29n
bml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVt
ZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVj
ZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0NhcHR1
cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVk
aWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCk7CiAKQEAgLTE0MTIsNyAr
MTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCwg
Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYs
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAgIHZvaWQgc2V0UGxheWJhY2tUYXJn
ZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgUmVmPE1lZGlhUGxheWJh
Y2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCk7CkBAIC0xNDUx
LDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lk
IHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBtX2hhc0hhZENhcHR1cmVNZWRpYVN0
cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOyB9Ci0g
ICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQp
OworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgog
CkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV93cml0ZVJl
Y3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2lnbk1vZGUgeyBp
bmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0
ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBi
b29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50IHsgZmFsc2UgfTsKICAgICBC
YWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENhY2hlU3RhdGUgeyBOb3RJbkJhY2tG
b3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVy
cmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKICAg
ICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5OwogCi0g
ICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgeyAwIH07
CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7CiAK
ICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsKQEAgLTIyMjksNDMgKzIyMzUsNiBA
QCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1
bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2RpbmcoKSBj
b25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhpcy0+ZGVjb2RlcigpKQotICAgICAg
ICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7
Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlRG9jdW1lbnQo
KSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID8gdGhpcyA6IG1f
dGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5lIEFYT2JqZWN0Q2FjaGUqIERvY3Vt
ZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAotewotICAgIGlmICghaGFzRXZlckNy
ZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0KLWlubGluZSBSZWY8RG9jdW1lbnQ+
IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudChudWxscHRyLCBzZXR0aW5n
cywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRlQWNjZXNzS2V5
Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vzc0tleUNhY2hlKSkKLSAgICAgICAg
aW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsKLX0KLQotLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSBEb2N1bWVudCBjbGFzcyBkZWZp
bml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgotCi1pbmxpbmUgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgpOwotfQotCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRG9jdW1lbnQmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oCmluZGV4
IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3MThmM2UuLmRkMjUwYWUyYzg4OWRl
YjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxp
bmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRleHRFbmNvZGluZyBEb2N1bWVudDo6
dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7CiB9CiAKK2lu
bGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIHRleHRF
bmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3RyaW5nIERvY3VtZW50OjpjaGFyc2V0
KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5nKCk7IH0KKwogaW5saW5lIGNvbnN0
IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDogbV90ZW1wbGF0ZURvY3VtZW50Lmdl
dCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZVNsb3dDYXNl
KCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0NhcHR1cmluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7Cit9CisK
K2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAoreworICAgIHJldHVybiBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30KKworaW5saW5lIGJvb2wgRG9jdW1l
bnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0eU9y
aWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsgfQorCisKIC8vIFRoZXNlIGZ1bmN0
aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0aGUgRG9jdW1lbnQgY2xhc3MgZGVm
aW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4KIAogaW5saW5lIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5NTJiMTkyZTQxMjQwNTZhMDM4NTMy
ZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBhMjI2MDkxNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgog
I2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9v
bC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggNDc2ZjhkYWI5YjY1
MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uZDk2MTY0M2QyNWE1Nzc5OWVjYjIwZTI5Zjdk
MWViMjY5OWZmZDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApA
QCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKCkK
IAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8
IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRy
aWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRWYWx1ZSkpCi0gICAgICAgICYmICgo
b3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCi0g
ICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJh
Y3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KE11dGF0
aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlcykKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
TXV0YXRpb25UeXBlOjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSkpCisgICAgICAgICYmIChvcHRpb25zLmNvbnRhaW5zKE11
dGF0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT2JzZXJ2YXRpb25G
bGFnczo6QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoTXV0
YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTXV0
YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0KQogewot
ICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAoaW5pdC5jaGlsZExpc3QpCi0gICAgICAg
IG9wdGlvbnMgfD0gQ2hpbGRMaXN0OworICAgICAgICBvcHRpb25zLmFkZChNdXRhdGlvblR5cGU6
OkNoaWxkTGlzdCk7CiAgICAgaWYgKGluaXQuc3VidHJlZSkKLSAgICAgICAgb3B0aW9ucyB8PSBT
dWJ0cmVlOworICAgICAgICBvcHRpb25zLmFkZChPYnNlcnZhdGlvbkZsYWdzOjpTdWJ0cmVlKTsK
ICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVPbGRWYWx1ZS52YWx1ZV9vcihmYWxzZSkpCi0gICAgICAg
IG9wdGlvbnMgfD0gQXR0cmlidXRlT2xkVmFsdWU7CisgICAgICAgIG9wdGlvbnMuYWRkKERlbGl2
ZXJ5RmxhZ3M6OkF0dHJpYnV0ZU9sZFZhbHVlKTsKICAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
T2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBvcHRpb25zIHw9IENoYXJhY3RlckRh
dGFPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoRGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVy
RGF0YU9sZFZhbHVlKTsKIAogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlRmlsdGVy
OwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkKICAgICAgICAgICAgIGF0dHJpYnV0
ZUZpbHRlci5hZGQodmFsdWUpOwotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZUZpbHRlcjsK
KyAgICAgICAgb3B0aW9ucy5hZGQoT2JzZXJ2YXRpb25GbGFnczo6QXR0cmlidXRlRmlsdGVyKTsK
ICAgICB9CiAKLSAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVl
KCkgOiAob3B0aW9ucyAmIChBdHRyaWJ1dGVGaWx0ZXIgfCBBdHRyaWJ1dGVPbGRWYWx1ZSkpKQot
ICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZXM7CisgICAgaWYgKGluaXQuYXR0cmlidXRlcyA/
IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogb3B0aW9ucy5jb250YWluc0FueSh7IE9ic2VydmF0
aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlciwgRGVsaXZlcnlGbGFnczo6QXR0cmlidXRlT2xkVmFs
dWUgfSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6QXR0cmlidXRlcyk7CiAK
LSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkg
OiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0g
Q2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKERlbGl2ZXJ5RmxhZ3M6OkNoYXJhY3Rl
ckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSk7CiAKICAgICBpZiAoIXZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmgKaW5kZXggMmFmMjYzYmQ0YTcyNTRhMjBhM2I5MzUzMTdiNzk2OTFhZjRjYzdkYS4u
MmQzMmNhNjI0NjI0NjA4YmQ0Y2QzYzkwYTMxZGQ4YTc5NWM4MzIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCkBAIC01MywzMCArNTQsMzEgQEAgY2xh
c3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgV2luZG93RXZlbnRMb29wOwog
Ci11c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7Ci11c2luZyBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7CitlbnVtIGNsYXNz
IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhfdCB7CisgICAgLy8gTXV0YXRpb25U
eXBlCisgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgIEF0dHJpYnV0ZXMgPSAxIDw8IDEsCisg
ICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKIAotY2xhc3MgTXV0YXRpb25PYnNlcnZlciBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKLSAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOwotcHVibGljOgotICAgIGVudW0gTXV0YXRp
b25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRyaWJ1dGVz
ID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorICAgIEFsbE11dGF0
aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSwKIAotICAg
ICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3Rl
ckRhdGEKLSAgICB9OworICAgIC8vIE9ic2VydmF0aW9uRmxhZ3MKKyAgICBTdWJ0cmVlID0gMSA8
PCAzLAorICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNCwKKyAgICBBbGxPYnNlcnZhdGlvbkZs
YWdzID0gU3VidHJlZSB8IEF0dHJpYnV0ZUZpbHRlciwKIAotICAgIGVudW0gT2JzZXJ2YXRpb25G
bGFncyAgewotICAgICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0
ZXIgPSAxIDw8IDQKLSAgICB9OworICAgIC8vIERlbGl2ZXJ5RmxhZ3MKKyAgICBBdHRyaWJ1dGVP
bGRWYWx1ZSA9IDEgPDwgNSwKKyAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisg
ICAgQWxsRGVsaXZlcnlGbGFncyA9IEF0dHJpYnV0ZU9sZFZhbHVlIHwgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlLAorfTsKIAotICAgIGVudW0gRGVsaXZlcnlGbGFncyB7Ci0gICAgICAgIEF0dHJpYnV0
ZU9sZFZhbHVlID0gMSA8PCA1LAotICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8
IDYsCi0gICAgfTsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKIAorY2xhc3Mg
TXV0YXRpb25PYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2
ZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOworcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8TXV0YXRpb25PYnNlcnZlcj4gY3JlYXRlKFJlZjxNdXRhdGlv
bkNhbGxiYWNrPiYmKTsKIAogICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CkBAIC0xMTUsNiArMTE3
LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBub3RpZnlNdXRhdGlvbk9ic2VydmVycyhX
aW5kb3dFdmVudExvb3AmKTsKIAogcHJpdmF0ZToKKyAgICB1c2luZyBNdXRhdGlvblR5cGUgPSBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTsKKyAgICB1c2luZyBPYnNlcnZhdGlvbkZsYWdzID0g
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU7CisgICAgdXNpbmcgRGVsaXZlcnlGbGFncyA9IE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOworCiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZl
cihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CmluZGV4IDAyNzZlNDJiZTViZDgzZmY0MmE3OTM1NmJkZTljZTczNjA5OWNiZGUuLjJhZWM2NTI5
MGMzODQ3NzIyNmEwZjA4ODIyZmZhMzdjNWRmN2IwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDQsOSArNDQs
OSBAQCBpbmxpbmUgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8UmVmPAogICAgIEFTU0VSVCghbV9vYnNlcnZlcnMuaXNF
bXB0eSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYg
dGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
aWJ1dGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5h
bWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMg
JiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9
PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1l
KSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgYXV0byBvYnNlcnZlcnMgPSB0YXJnZXQucmVnaXN0
ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChvYnNl
cnZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggM2MwYWU1
MjM3ZDRiMmUyZWZmNzBkZGU2NjJlNWY0ZTFlNTY5MjZhZC4uMmY0NmM4MWU4ZTVlODkzMGZmY2Nj
MWRiODRkYTgwYmNhOTA0MWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ2LDM2ICs0NiwzNiBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbihOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAo
IXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlz
dCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcgPSAwOwotICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxh
Zyk7CisgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZzsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKICAgICB9CiAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JD
aGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBN
dXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKE5vZGUmIHRhcmdldCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICB7Ci0gICAgICAgIGlmICgh
dGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6QXR0cmlidXRlcykpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0
ZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0
dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwg
JmF0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgp
IGNvbnN0OwogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJlY29y
ZD4mJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlv
bk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCBoYXNPbGRW
YWx1ZShNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVy
biBvcHRpb25zICYgbV9vbGRWYWx1ZUZsYWc7IH0KKyAgICBib29sIGhhc09sZFZhbHVlKE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMu
Y29udGFpbnNBbnkobV9vbGRWYWx1ZUZsYWcpOyB9CiAKICAgICBIYXNoTWFwPFJlZjxNdXRhdGlv
bk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwog
ICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmlu
ZGV4IGM2ZjFmYjE1ZGZmOGQ1ZWJmZjJmNWM1YjdiN2VkZTNhZTNkMGViNzkuLmQzYzFmYTY2ZWQy
ZjU1NDdmMGI4MDljNjkwN2JiNDVjNGY5ZjU0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTk1LDE2ICs5NSwxNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb246OnRhawogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAot
Ym9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25G
cm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25z
dCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdAorYm9vbCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJp
YnV0ZU5hbWUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwotICAgIGlm
ICghKG1fb3B0aW9ucyAmIHR5cGUpKQorICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRl
TmFtZSk7CisgICAgaWYgKCFtX29wdGlvbnMuY29udGFpbnModHlwZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICgmbV9ub2RlICE9ICZub2RlICYmICFpc1N1YnRyZWUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyB8fCAhKG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZp
bHRlcikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJp
YnV0ZXMgfHwgIW1fb3B0aW9ucy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWF0dHJp
YnV0ZU5hbWUtPm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzExMDg0MThmMWVkNTY0
ZmFiOTViOTZmYzhhMGNmZGE1MzUzZjNlYi4uZDY4NGIxZjBiMWI4N2U4MTcwNTA2NDAwNWNhYjc5
MDUxNzA3ODQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC01NiwxMyArNTYsMTMgQEAgcHVibGljOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lz
dHJhdGlvbk5vZGVzLT5pc0VtcHR5KCk7IH0KIAotICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0
aW9uRnJvbShOb2RlJiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKLSAgICBib29sIGlzU3VidHJlZSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAg
ICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKKyAg
ICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jb250YWlucyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6U3VidHJlZSk7IH0KIAogICAgIE11dGF0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIE5vZGUmIG5v
ZGUoKSB7IHJldHVybiBtX25vZGU7IH0KLSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBkZWxpdmVyeU9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJE
YXRhT2xkVmFsdWUpOyB9Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBl
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0
aW9uVHlwZXM7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZTo6QWxsRGVsaXZlcnlGbGFnczsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11
dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlczsgfQogCiAgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IGE2ZjE5ODM2YTliZGQ1MTY2Zjg4MGNlNjA2NDMyZGMwNjFlYzQzYWYuLmU1
MzUxNDcxMDhmY2ZhZTM0ZTM3NzRmN2Q3YmY5MzQyNDUxMDkzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRl
ICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKQEAgLTIy
ODIsNyArMjI4Myw3IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+KiBO
b2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoCiAgICAgcmV0dXJuICZkYXRh
LT50cmFuc2llbnRSZWdpc3RyeTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmVnaXN0cnk+IHN0
YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNo
TWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+
JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29s
bGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBSZWdpc3Ry
eSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgdHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKICAgICBpZiAoIXJlZ2lz
dHJ5KQogICAgICAgICByZXR1cm47CkBAIC0yMjkyLDE1ICsyMjkzLDE1IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2
ZXJzRm9yTXV0YXRpCiAgICAgICAgICAgICBhdXRvIGRlbGl2ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJh
dGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG9ic2Vy
dmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAg
ICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICByZXN1bHQu
aXRlcmF0b3ItPnZhbHVlIHw9IGRlbGl2ZXJ5T3B0aW9uczsKKyAgICAgICAgICAgICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICB9CiAgICAg
fQogfQogCi1IYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK0hhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
CiB7CiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiByZXN1bHQ7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2
ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAg
IEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAm
JiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgY29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCBtdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSwg
KnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKHJlc3VsdCwgdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCks
ICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJl
bnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmlu
ZGV4IGJkYjg0MjcwNTM5ZTEzMTY2MTQxNjllMGM3ZjA2NjkyNzcyNDZiYTYuLjVkNjkzZmMyNWI0
NmNmNDk5ZTc1MzMzNjA5N2ZkOTE2NzU1MDhkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU3R5bGVWYWxpZGl0
eS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgpAQCAtNTQsNiArNTMsOCBAQCBjbGFzcyBGbG9h
dFBvaW50OwogY2xhc3MgSFRNTFF1YWxpZmllZE5hbWU7CiBjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7
CiBjbGFzcyBNYXRoTUxRdWFsaWZpZWROYW1lOworY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBj
bGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVMaXN0c05vZGVEYXRhOwpAQCAtNjcsNiArNjgsMTAg
QEAgY2xhc3MgU1ZHUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBUb3Vj
aEV2ZW50OwogCitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhf
dDsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zID0g
T3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKKwogdXNpbmcgTm9kZU9yU3Ry
aW5nID0gVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFN0cmluZz47CiAKIGNsYXNzIE5vZGUgOiBwdWJs
aWMgRXZlbnRUYXJnZXQgewpAQCAtNDk0LDcgKzQ5OSw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRh
cmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50
VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CiAKLSAgICBIYXNoTWFw
PFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUs
IGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIEhhc2hNYXA8UmVmPE11
dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKICAgICB2b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IEhh
c2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9p
ZCByZWdpc3RlclRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cAppbmRleCAxNzZiYzNiNDg5MjBmZWQwOGEyYWE5NWFhMmJhZTY2N2FlZGY0MmZkLi4zZTBmN2U1
NDM1ZWEzN2ZjNmI5ZGNmYjQxZmUzNjE4NTI1ZjJkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGYwNDliZDg0YjEyYWFkMGNkYTNlZTcxNTgyNjA5
NDM4MWYwOTEyNTMuLmM0ZjI5NTk5OTM5ZWMxNjgzMmM2ZGY2YzBjZWMwMjBiY2Q0MjUwYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKaW5kZXggYjEwNzY2NTk5
MzEwZGY0NTQ2MTczMWYzNGJiM2M5ZTljMjhjZTMzYy4uYWIyNzgzN2I5ODgzNzk2NGU4YjY4ZDM2
ZDEwZjcxODk1ZDZhNjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudC5oCkBAIC0yOSwzMCArMjksMzMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitlbnVtIGNsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3Np
dGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKKworc3RydWN0IFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCgpIHsgfQorCisgICAgU3RyaW5nIGRvY3VtZW50VVJJOworICAgIFN0cmlu
ZyByZWZlcnJlcjsKKyAgICBTdHJpbmcgYmxvY2tlZFVSSTsKKyAgICBTdHJpbmcgdmlvbGF0ZWRE
aXJlY3RpdmU7CisgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWxQb2xpY3k7CisgICAgU3RyaW5nIHNvdXJjZUZpbGU7CisgICAgU3RyaW5nIHNhbXBsZTsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gZGlzcG9zaXRpb24g
eyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UgfTsKKyAg
ICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9OworICAgIHVuc2lnbmVkIGxpbmVOdW1i
ZXIgeyAwIH07CisgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgMCB9OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0Jik7Cit9OworCiBjbGFz
cyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOwog
cHVibGljOgotICAgIGVudW0gY2xhc3MgRGlzcG9zaXRpb24gOiBib29sIHsgRW5mb3JjZSwgUmVw
b3J0IH07Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7Ci0gICAgICAgIEluaXQoKSB7
IH0KLQotICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkk7Ci0gICAgICAgIFN0cmluZyByZWZlcnJl
cjsKLSAgICAgICAgU3RyaW5nIGJsb2NrZWRVUkk7Ci0gICAgICAgIFN0cmluZyB2aW9sYXRlZERp
cmVjdGl2ZTsKLSAgICAgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKLSAgICAgICAgU3Ry
aW5nIG9yaWdpbmFsUG9saWN5OwotICAgICAgICBTdHJpbmcgc291cmNlRmlsZTsKLSAgICAgICAg
U3RyaW5nIHNhbXBsZTsKLSAgICAgICAgRGlzcG9zaXRpb24gZGlzcG9zaXRpb24geyBEaXNwb3Np
dGlvbjo6RW5mb3JjZSB9OwotICAgICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9
OwotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OwotICAgICAgICB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIgeyAwIH07Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBJbml0Jik7
Ci0gICAgfTsKKyAgICB1c2luZyBEaXNwb3NpdGlvbiA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREaXNwb3NpdGlvbjsKKyAgICB1c2luZyBJbml0ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQ7CiAKICAgICBzdGF0aWMgUmVmPFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXpl
ciA9IHsgfSwgSXNUcnVzdGVkIGlzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCiAgICAgewpAQCAt
MTExLDcgKzExNCw3IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgot
dm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgRXZlbnRJbml0Jj4oKnRoaXMpOwogICAgIGVuY29kZXIgPDwgZG9jdW1lbnRVUkk7
CkBAIC0xMjksNyArMTMyLDcgQEAgdm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIH0KIAogdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KLWJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmIGV2
ZW50SW5pdCkKK2Jvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYgZXZlbnRJ
bml0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGljX2Nhc3Q8RXZlbnRJbml0Jj4o
ZXZlbnRJbml0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NCwxMSArMTY3LDExIEBA
IGJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNlY3VyaXR5UG9saWN5CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OkRpc3Bvc2l0aW9uPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbj4gewogICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb24sCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb246OkVuZm9yY2UsCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UsCisgICAgV2ViQ29yZTo6U2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpSZXBvcnQKICAgICA+OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRl
eCA1OGQ3NTNiMjNkNjNiODcyOTU5MDA3YzVhNzA5NjczOTdjODg3ODRhLi45ODA0NDYwY2RiMmJj
NWFiNTE3MTRiNDA0YWI4NWMwY2FmZTIyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUg
IkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCBmOTVhMzFjNTM5MTJkMDNiYWZmNGNjODU3MDAyYjVjMWNkMzU5OTMy
Li5mMzQwMTQzNTlmZjdjZGJkODU3Y2ZkY2RiYmE5YjI0ZjI5MTAxYTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggODQ2NjRjM2I3NDgzNjUzYWYwOWY3OWVi
YjUzM2U3NTRiYTYzODRhMS4uOTI5NDZmMzczMTMzZTExMGRkYjExMWY1OGE5M2MxYjJjN2YwYjQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1NjU3ODI3ZDlhNjZiYjNiNzNlZmI1
NWY5MzE2MWVlODM4YjQ1YTMwLi4xYjcwNzY1YmFiYzRkNDY4MTFjMWFmZDc5NDY1MTA3YjhhMjIw
ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYzJlYjhhN2JjNDEzMjJjYThkMjA4NDQzM2Ey
MzVmZmU5N2I1ZWJiZC4uNzEzNjk5NTQ5MDVmOWYyZjFkOGUxY2RlMDYwZTQxZGNhZWNhMTQxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGlu
Zy5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcu
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDg3OTE0MjE2Y2FhMmFlNzA1
YTVjNDg5OWJkZmEwMTQ0YzM2NjA4ZGQuLjIyNzJlYmIzMGRlNzkyMTYzNjZmYjExOTM2NTgxYjky
NThiZGNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQppbmRleCBmMzgzYWRkZDE5YjBjZjAwNDZiYTUzN2NiMmQ1OGJkNGE3MTAwZTk0Li40NjIzN2Fk
NmMxZTkzNzFiZGNhZDcwZmNhZmIwZjdmZTVkZjhkNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lt
cG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgiCiAjaW1wb3J0ICJDaHJv
bWVDbGllbnQuaCIKKyNpbXBvcnQgIkRvY3VtZW50SW5saW5lcy5oIgogI2ltcG9ydCAiRnJhbWUu
aCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDVlNDFiNDkyNDE2YTM5NDBlZDZkZTEzMTJhMzE1MzNlZGQ4
MTc5MzkuLmY0OGZkOGY4NWEzM2ZmOWI3OWFlNDNkNzM0MjQ2M2MzNjhhZjhjNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwNjljYzQxNzcw
Y2M5ZmM1MWI5NTgyMjM1MzI0NjMyMzMzMjZiN2EzLi4yNDM4ZTkxNzZiMjM5YWRlOGVhMDliYmNl
ZjgxZGQ1ZGJjNTA1MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRl
ICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZpbGVJbnB1dFR5
cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA1NmYwYzc5
ZDQ1ZDkyNzY5Njk2NzIxMzgwMDUzZGYwYjQ5ZTFjN2YxLi43NGZkNDVlNmRiYmI0NTZiNTQ1M2Ix
ZDQwZjM4Y2YwNDY0MGQ3N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRGVmYXVsdFJlc291cmNl
TG9hZFByaW9yaXR5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI5Mzc5YjIwZjU5MWZmZWYwYmQ1NTdjODA4ZDhiNDk0MGFh
YTVhNzAuLjY1ZWJmYTdhNTRkOGZhZDM0YTdhZTA5YzU1YmEzMzA1ZTczNmMxMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODUsOCArODUsOCBAQAogI2lu
Y2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlBhZ2VJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgpAQCAtNzk3Myw3
ICs3OTczLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91
bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01l
ZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3Rh
dGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpKSB7CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgp
ICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAg
ICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBw
bGF5aW5nIGFuIGF1ZGlvIE1lZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CkBAIC03OTg4LDcgKzc5ODgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1N
ZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRp
YVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKKyAgICAgICAg
aWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5t
ZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1U
cmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTgwNDgsNyAr
ODA0OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVVcGRhdGVNZWRpYVN0YXRl
KCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIHsKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKICAgICBp
ZiAobV9tZWRpYVN0YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm47CiAKQEAgLTgwNTksMzEg
KzgwNTksMzEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIH0K
ICNlbmRpZgogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIE1lZGlhU3RhdGVGbGFncyBz
dGF0ZTsKIAogICAgIGJvb2wgaGFzQWN0aXZlVmlkZW8gPSBpc1ZpZGVvKCkgJiYgaGFzVmlkZW8o
KTsKICAgICBib29sIGhhc0F1ZGlvID0gdGhpcy0+aGFzQXVkaW8oKTsKICAgICBpZiAoaXNQbGF5
aW5nVG9FeHRlcm5hbFRhcmdldCgpKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CisgICAgICAgIHN0YXRlLmFk
ZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIGlmIChtX2hhc1BsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKSB7Ci0gICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKTsKICAgICAgICAgaWYgKCFtZWRpYVNlc3Np
b24oKS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpKQotICAgICAgICAgICAgc3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25p
dG9yaW5nKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpOwogICAgIH0KIAogICAgIGJvb2wgcmVx
dWlyZVVzZXJHZXN0dXJlID0gbV9tZWRpYVNlc3Npb24gJiYgbWVkaWFTZXNzaW9uKCkuaGFzQmVo
YXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVU
b0F1dG9wbGF5VG9FeHRlcm5hbERldmljZSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZF
X01FVEFEQVRBICYmICFyZXF1aXJlVXNlckdlc3R1cmUgJiYgIW1fZmFpbGVkVG9QbGF5VG9XaXJl
bGVzc1RhcmdldCkKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOworICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOwog
CiAgICAgaWYgKGhhc0FjdGl2ZVZpZGVvIHx8IGhhc0F1ZGlvKQotICAgICAgICBzdGF0ZS5hZGQo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKTsKKyAgICAgICAgc3Rh
dGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pOwogCiAgICAg
aWYgKGhhc0FjdGl2ZVZpZGVvICYmIGVuZGVkUGxheWJhY2soKSkKLSAgICAgICAgc3RhdGUuYWRk
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCk7CisgICAgICAgIHN0YXRl
LmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKICNlbmRpZgogCiAg
ICAgaWYgKCFpc1BsYXlpbmcoKSkKQEAgLTgwOTcsMTAgKzgwOTcsMTAgQEAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAog
ICAgIGlzUGxheWluZ0F1ZGlvID0gaXNQbGF5aW5nQXVkaW8gJiYgIW11dGVkKCk7CiAjZW5kaWYK
ICAgICBpZiAoaXNQbGF5aW5nQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZp
ZGVvKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKTsKIAogICAgIHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKaW5kZXggY2ZkMTlkM2MxNzNmMTBjZTRlZmUwYzIwYWViMmFiZTU5
MTlkMjU5Ni4uMDJkNDg4MDExNDc0NjJjOTEzZWNmOTliNmIwM2I4MDExZDBkMWVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTUyNyw3ICs1MjcsNyBAQCBwdWJs
aWM6CiAKICAgICBkb3VibGUgbWF4QnVmZmVyZWRUaW1lKCkgY29uc3Q7CiAKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdm9pZCBsYXlvdXRTaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgdmlzaWJpbGl0eURp
ZENoYW5nZSgpOwpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MgbV9tZWRpYVN0YXRlOwogICAgIE1vbm90b25pY1RpbWUgbV9jdXJyZW50UGxheWJhY2tUYXJn
ZXRJc1dpcmVsZXNzRXZlbnRGaXJlZFRpbWU7CiAgICAgYm9vbCBtX2hhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXJzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmFpbGVkVG9QbGF5
VG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCmluZGV4IGUyZjhhNGJmNWQ4Yjg1MWJiOWMxNDIzMWI4MTI4ZWMyNDg4NmI3
YzAuLjc5YWQ0ZTIyMDZkYTgwOTQ4YjJhMGI1NWZlYmIxYmI4NGM4MTY3YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCA5OWE0YmIyZWY3YTYxNDY3NGFjZjRmNzlmYTdjM2Q3Y2ZhZjk5NjIwLi4wZTM0ODZkNGY3MTA2
Y2M1NzE2N2NhZmE2NzQ4MGQ5NzIxN2Y4OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGVhMjk3ZmEyMzE5YmZiODU3ZjVmY2JmMjQ1NjY2
YjA5ODM1ZjEwOTIuLmI1ZmYwMmJkYTU1NGEwMWRhOTNiOTBhZmMwODFjNmViMDg4MGNjYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJE
YXRlSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIkRlY2ltYWwuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKaW5kZXggN2Y2ZDM5ZjNlY2UwY2ZmNzU3OTRiZWQ0YWMzNGZlZDMxNjQ3ZjUxNy4uMjkx
ZWY5YTAyODEwMmYzMmFlYzM2Yzg5Yzg2YWRiNGVjNzBmZTU3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtMzg1LDcgKzM4NSw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxS
ZWFzb24+IE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgaWYgKG1f
ZWxlbWVudC5oYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVu
dC5pc0NhcHR1cmluZygpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKGRv
Y3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKQorICAgICAgICBpZiAoZG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAjZW5kaWYKQEAgLTQwMCw3ICs0MDAsNyBAQCBFeHBlY3RlZDx2b2lkLCBNZWRpYVBsYXli
YWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbgog
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6
VXNlckdlc3R1cmVSZXF1aXJlZCk7CiAgICAgfQogCi0gICAgaWYgKHRvcERvY3VtZW50Lm1lZGlh
U3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0
aE1lZGlhRWxlbWVudCAmJiB0b3BEb2N1bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvcigpKQorICAgIGlmICh0b3BEb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYm
IHRvcERvY3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkp
CiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAodG9wRG9jdW1lbnQuaGFzSGFkVXNlcklu
dGVyYWN0aW9uKCkgJiYgZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJh
cnlVc2VyR2VzdHVyZSgpKQpAQCAtODA5LDcgKzgwOSw3IEBAIHZvaWQgTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKQogICAgIGNsaWVudCgpLnBs
YXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFFbGVtZW50
U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCit2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX2VsZW1lbnQuZG9j
dW1lbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBz
dGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCmluZGV4
IGRmNjE1MTBjZWM2NTAxMGMyZDZiZTVlNGEwYjMwOWY3MDI1MjM0NTUuLmY1YmViZDI4ZGVmODg5
YWUwMmEwMDZhYmRlNjkwMDc1YzQxNTA1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFF
bGVtZW50U2Vzc2lvbi5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQ
bGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsK
KyAgICB2b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyk7CiAjZW5kaWYKIAogICAgIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFj
aygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0YjFl
M2EyOWMwYTQzNmU0NmViNTZjMTllOGFjMTk3YjA5YmU0YzQ4Li44ZjZiOGNlMDhmZGI1ZDc0YjY2
ZTUzYzEyMjBjZTFiYmI1Y2Q3NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRlY2ltYWwuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MQ29sbGVjdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI5MjAyYTExNTY5ODBhNDg2YWFiOTY1
MzBiNTViNTVhNDUwNTMxODcuLjhlNjVjNGViMTAyMzM1MjFmNDhjN2Y0YjEyMGFkMmM4OTA5YTA3
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRl
eCA5ZThkZjJlY2IwMTA0ODM2MWIyNDRmODUwZjliY2VjOTlhNTE5ZTE5Li42ZDMxYzgxZmRlMTI4
MGQyNDUzOWI5YzlmYjJlMDI4OTdjYWIzOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTUsNyArNTUsNyBA
QAogI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkRPTVBhdGNoU3VwcG9ydC5o
IgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRl
eCAzNzQ2ODQzMjU3N2Y2NGUzZDE4YmMzNjY3Y2EyOThmNDNhM2JmNTAzLi44NGIxNjM3MDE0ZWY1
NmRhZThiY2VmMGQ3MjQ5NTYyZDIwZDBkZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC00MCw3
ICs0MCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNh
dGVJbmZvLmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVTdW1tYXJ5LmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oCmluZGV4IDk0NjQ3NGI1ODU4MTkzYjBiMzA2YzkyZTFmNWIyZThiYzFmYWM5
YmMuLjU4YzdiYjc5Mzg4YWM2ZjAzZjJjODIwZDg5NjhmYTRhMzUyMWZmNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCkBAIC0yNSwxNSAr
MjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFz
cyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIHN0cnVjdCBOYXZpZ2F0aW9uUmVxdWVz
dGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBmOWYz
OTJjYjg0ZDgyMDJiMmI5ZWNlZjBkZTE2NDUxODAzZjM3YjYzLi45OWM5NzhkY2IzYzY0Y2RlNjk2
NTM5YmRmOWFiNWM1YjRkZjI3ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTI0MDAsNyArMjQwMCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNlbmRD
U1BWaW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwCiAg
ICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqbV9mcmFtZSwgV1RGTW92ZShyZXBv
cnRVUkwpLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1
cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBl
dmVudEluaXQpCit2b2lkIERvY3VtZW50TG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkK
IHsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5lbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXVEZNb3ZlKGV2ZW50SW5pdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaAppbmRleCA5ZmM0MTM3YTY5MDBlMjRhMWE4MmNlYzdjYzc1NzkzZDM0N2U5ODEy
Li40ZmJmZDcxMjAxOTlkMjdjZmE4N2JkZDU5NjczNzEwNmJjZTA4ZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNTIyLDcgKzUyMiw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPEZvcm1EYXRh
PiYmKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikgZmlu
YWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBmaW5hbDsKIAogICAg
IGJvb2wgZGlzYWxsb3dXZWJBcmNoaXZlKCkgY29uc3Q7CiAgICAgYm9vbCBkaXNhbGxvd0RhdGFS
ZXF1ZXN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApp
bmRleCA4OTA5NWZlM2RlNzMyODhlMjczMWMxMmFmM2QyNjE2OGY3Y2MzNTMwLi40MzJiZDEyYjMy
Y2U4YzBmNzRiMjBmMTFmM2YyODllOGRlN2M3MWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFdyaXRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDb250ZW50U2Vj
dXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNjgzZjg0
YzI1NDE1ZDNlYzM0NjdlMDgxMDhiODEzZjVhNzFhODIzOS4uYWU5MmFkZDg3NTYwNTFkMDU2YTIz
MDJkZGNiYzQ4OWIxMGU3NDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Np
b24uY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3kuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmY2IyMjAyZjgyODEwYWYyYTRmOGQ5ZTQ1MWNiNTc0
ZmEwYTdmZDQzLi5jM2JiMzQ2YTM5NDdjNTg5ODNlZTlkOWY4ZWIwNGM5OTI4MDM2MTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNs
dWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDEwN2YzMjQ2NGNkMWQzYmI5MjNjMmE5Zjc1MzBkYWZlYjViMTc4ZTkuLjM2
ZWUzMjc1ZDY5MjA3ZTQ1MDIxNjJmMGFiYWViODhlNThlYmM3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTAs
NyArNTAsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIK
LSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNGNmY2IxNjgx
ZjE3MzA5YWM0YTdmYzBiMjE5YWNlZjk1OTU3Yjc5ZC4uY2NiZGZhNDk2M2U0MDM5NmM3OWVhOTYz
OWNiNWEwNzliNGYzZWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01MDMs
NyArNTAzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFj
a2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxBdXRvcGxh
eUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQpAQCAtNTM0LDcgKzUz
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29u
c3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlckVuYWJsZWQoYm9vbCkgIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IGUwMDVjZWRmZmNkZWMxZGFkOTFhZmZlODZlZWFiMjJkMzgzNWQ5
OTAuLjdmOWQ4ZWM0NTRjMDM1ZjIwMjU5Y2U4OTgyNGM2NTdmNWFmMWUyZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDb21w
b3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJh
Z0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiZTc2ZTFiZDI3NzU1MTMxZDA4MzE2ZjJkM2JlOTli
Y2NhNjhkYzFmLi5hMTFhM2IzNDhhYmEzOTlmNjQ4NzZkZTQ5NjkyMWRmZThmMGQ2NDNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4YzQzNzdj
Yjk1NGEwYjFhMDg5ZTUyZWZhZDhhNDFkOTEwNThhOGY3Li5mZDMzMzY4YWQyMWRjNTU5Njc0YjNh
N2E2OGQyMzM0Y2U0ZjEzMzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5n
LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NTRhNWFjMDAwZTI3YzkyZGE5NDBlOWYzYTczMTJjN2I5Y2VlNmY2Yy4uZDVlYjNhZWZkMTc2YjEw
MWJlZTIzYzAxM2FmNDcxY2Y5YTQ0ODlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlYnVn
UGFnZU92ZXJsYXlzLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dFNWRy5oIgpAQCAtMjA4Miw3ICsyMDgzLDcgQEAgYm9vbCBGcmFtZVZpZXc6OnVzZURhcmtBcHBl
YXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLU9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKK09wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gRnJhbWVWaWV3OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVy
ID0gcmVuZGVyZXJGb3JDb2xvclNjaGVtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
ZDlkNDhhZjVmN2QxNDk3N2YzYTUwZGU1NjU5OTNlZGUzZDUyYTMxOC4uOTdhZGViMTAwNmZjNTU2
Yjk5ZmU1OGFmNzAwODJjN2IyZWFkYzg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01
MzgsNyArNTM4LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkU2V0Q3Vyc29yKCkgY29uc3Q7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QgZmlu
YWw7Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25z
KCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIHBs
dWdpbiBsb2FkaW5nIGlzIGRlY291cGxlZCBmcm9tIGxheW91dC4KICAgICB2b2lkIGZsdXNoQW55
UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOwpAQCAtOTU1LDcgKzk1NSw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1faXNUcmFuc3BhcmVudCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBUktfTU9E
RV9DU1MpCi0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG1fc3R5bGVDb2xvck9w
dGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBtX3N0eWxlQ29sb3JPcHRp
b25zOwogI2VuZGlmCiAKICAgICBib29sIG1faXNUcmFja2luZ1JlcGFpbnRzIHsgZmFsc2UgfTsg
Ly8gVXNlZCBmb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVk
aWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXgg
ODBhZDVhZWVmYWRmOWVjYjgzNmI5MTIzYzM4YzU0MGU2ZjRjMTUxNy4uNGUxOWU4Y2Q3MWE2NTI5
Zjk4YWY2NDgyZTZjYTVhMDUyYjFmNzM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2Vy
LmgKQEAgLTMxLDMyICszMSw1MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xh
c3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUgOiB1aW50MzJfdCB7CisgICAgSXNQbGF5aW5nQXVk
aW8gPSAxIDw8IDAsCisgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8IDEsCisgICAgSXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSA9IDEgPDwgMiwKKyAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZyA9IDEgPDwgMywKKyAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlID0g
MSA8PCA0LAorICAgIERpZFBsYXlUb0VuZCA9IDEgPDwgNSwKKyAgICBJc1NvdXJjZUVsZW1lbnRQ
bGF5aW5nID0gMSA8PCA2LAorICAgIElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcs
CisgICAgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDgsCisgICAgSGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEgPDwgOSwKKyAgICBIYXNBdWRpb09y
VmlkZW8gPSAxIDw8IDEwLAorICAgIEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTEsCisgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwKKyAgICBIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTMsCisgICAgSGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UgPSAxIDw8IDE0LAorICAgIEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNl
ID0gMSA8PCAxNSwKKyAgICBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTYsCisgICAgSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ID0gMSA8PCAxNywKKyAg
ICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTgsCisgICAgSGFzTXV0ZWRE
aXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCisgICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5
Q2FwdHVyZURldmljZSA9IDEgPDwgMjAsCit9OwordXNpbmcgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT47CisKK2VudW0gY2xh
c3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1aW50OF90IHsKKyAgICBBdWRpbywK
KyAgICBWaWRlbywKKyAgICBBdWRpb1ZpZGVvCit9OworCitlbnVtIGNsYXNzIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlIDogdWludDhfdCB7CisgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAorICAg
IEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCisgICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9
IDEgPDwgMiwKKyAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKK307Cit1c2luZyBN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlPjsKKwogY2xhc3MgTWVkaWFQcm9kdWNlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxN
ZWRpYVByb2R1Y2VyPiB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBNZWRpYVN0YXRlIHsKLSAg
ICAgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCi0gICAgICAgIElzUGxheWluZ1ZpZGVvID0g
MSA8PCAxLAotICAgICAgICBJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlID0gMSA8PCAyLAotICAg
ICAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyA9IDEgPDwgMywKLSAgICAgICAg
RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSA9IDEgPDwgNCwKLSAgICAgICAgRGlkUGxh
eVRvRW5kID0gMSA8PCA1LAotICAgICAgICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2
LAotICAgICAgICBJc05leHRUcmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA3LAotICAgICAgICBJ
c1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgOCwKLSAgICAgICAgSGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEgPDwgOSwKLSAgICAgICAgSGFzQXVkaW9P
clZpZGVvID0gMSA8PCAxMCwKLSAgICAgICAgSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0g
MSA8PCAxMSwKLSAgICAgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwK
LSAgICAgICAgSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEzLAotICAgICAgICBI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTQsCi0gICAgICAgIEhhc0ludGVycnVw
dGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNSwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE2LAotICAgICAgICBIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAotICAgICAgICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVy
ZURldmljZSA9IDEgPDwgMTgsCi0gICAgICAgIEhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2Ug
PSAxIDw8IDE5LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0g
MSA8PCAyMCwKLSAgICB9OwotICAgIHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxN
ZWRpYVN0YXRlPjsKKyAgICB1c2luZyBNZWRpYVN0YXRlID0gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU7CisgICAgdXNpbmcgTXV0ZWRTdGF0ZSA9IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOworICAg
IHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3M7Cisg
ICAgdXNpbmcgTXV0ZWRTdGF0ZUZsYWdzID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFnczsK
KwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIElzTm90UGxheWluZyA9IHsg
fTsKICAgICBzdGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBBdWRpb0NhcHR1cmVNYXNr
ID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1
ZGlvQ2FwdHVyZURldmljZSB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdz
IFZpZGVvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURl
dmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlIH07CkBAIC02OSwyMCArODksNiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIE1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qg
PSAwOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYUNhcHR1cmVLaW5kIHsKLSAgICAgICAgQXVkaW8s
Ci0gICAgICAgIFZpZGVvLAotICAgICAgICBBdWRpb1ZpZGVvCi0gICAgfTsKLQotICAgIGVudW0g
Y2xhc3MgTXV0ZWRTdGF0ZSB7Ci0gICAgICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKLSAgICAg
ICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKLSAgICAgICAgVmlkZW9DYXB0dXJlSXNN
dXRlZCA9IDEgPDwgMiwKLSAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDMsCi0g
ICAgfTsKLQotICAgIHVzaW5nIE11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNdXRlZFN0YXRl
PjsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3RhdGVGbGFncyBBdWRpb0FuZFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3Rh
dGVGbGFncyBNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkID0geyBNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0YXRl
OjpTY3JlZW5DYXB0dXJlSXNNdXRlZCB9OwogCkBAIC05Niw0OSArMTAyLDQ5IEBAIHByb3RlY3Rl
ZDoKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZD4gewordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZD4gewog
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbworICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6VmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZT4gewordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4g
ewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1v
bml0b3JpbmcsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZywKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxl
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91
c1RyYWNrQ29udHJvbEVuYWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbywKLSAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERp
c3BsYXlDYXB0dXJlRGV2aWNlCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lciwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0F1ZGlvT3JWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0
ZWRXaXRoTWVkaWFFbGVtZW50LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNw
bGF5Q2FwdHVyZURldmljZQogICAgID47CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU+IHsKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+IHsKICAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0lzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZAogICAgID47
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4ODUzM2IzZDJiMzcxODJlMTYwNTJmZWQxMjkz
NjhhNDZlNDIyOWFmLi5jZjE3MDEzZTVkNjg2ZjAxZDUyMmQ2ZDY3Nzk2NDgyZjU5ZWU0Y2RiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExv
YWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIK
ICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTIxNzAsNyArMjE3MSw3IEBAIHZvaWQgUGFnZTo6c3Rv
cmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKIAogdm9pZCBQYWdlOjp1cGRhdGVJc1BsYXlpbmdN
ZWRpYSgpCiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yRWFjaERvY3VtZW50
KFsmXShhdXRvJiBkb2N1bWVudCkgewogICAgICAgICBzdGF0ZS5hZGQoZG9jdW1lbnQubWVkaWFT
dGF0ZSgpKTsKICAgICB9KTsKQEAgLTIyMDgsNyArMjIwOSw3IEBAIHZvaWQgUGFnZTo6cGxheWJh
Y2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpCiAKICNlbmRpZgogCi12b2lkIFBhZ2U6OnNl
dE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKK3ZvaWQgUGFnZTo6
c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZCkKIHsKICAgICBtX211
dGVkU3RhdGUgPSBtdXRlZDsKIApAQCAtMjIxNyw3ICsyMjE4LDcgQEAgdm9pZCBQYWdlOjpzZXRN
dXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCiAgICAgfSk7CiB9CiAK
LXZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCit2b2lkIFBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCkKIHsKICAgICBVTlVTRURfUEFSQU0oa2luZCk7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKQEAgLTMwMTgsNyArMzAxOSw3IEBAIHZvaWQgUGFnZTo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4CiAjZW5kaWYKIH0KIAotdm9pZCBQYWdlOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0
YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFBhZ2U6OnBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgY2hyb21lKCkuY2xpZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOTRmOGI4ZGE5MjA2OTYzNzg4YzUxNjE2NTNlNTA1Y2NjMDA1MzgzOS4uZmE4ODlmNGM0Y2Zk
YjJkZGMzYzg0MzM3YzZhYzkxN2NlMGI5Mjg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3Nyw2ICsx
NzcsMTIgQEAgZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6
IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlIDogdWludDMyX3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11
dGVkU3RhdGUgOiB1aW50OF90OworCit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
ID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+Owog
CiBlbnVtIGNsYXNzIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUs
IFVucmVzcG9uc2l2ZSB9OwogZW51bSBjbGFzcyBNYWluRnJhbWVNYWluUmVzb3VyY2UgOiBib29s
IHsgTm8sIFllcyB9OwpAQCAtNzI5LDE4ICs3MzUsMTggQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKICAgICBib29sIHVzZXNF
cGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwo
KTsgfQogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2
b2lkIHVwZGF0ZUlzUGxheWluZ01lZGlhKCk7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG11dGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KLSAgICBi
b29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9Ci0gICAgYm9vbCBpc01l
ZGlhQ2FwdHVyZU11dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOyB9OworICAgIE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0
ZWRTdGF0ZTsgfQorICAgIGlubGluZSBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0OworICAgIGlu
bGluZSBib29sIGlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdDsKICAgICB2b2lkIHNjaGVkdWxl
UGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
dm9pZCBwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCk7CiAjZW5kaWYKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZUZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAg
TWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyIG1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllcigp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWVkaWFQbGF5YmFja0V4aXN0cygpOwpA
QCAtNzYzLDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZv
aWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UG9pbnQmLCBib29s
LCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQg
cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5h
YmxlZChib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpAQCAtOTk2LDcgKzEwMDIsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pbkxvd1F1YWxpdHlJbnRlcnBvbGF0aW9uTW9kZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGZsb2F0IG1fbWVkaWFWb2x1bWUgeyAxIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1f
bXV0ZWRTdGF0ZTsKIAogICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIGZs
b2F0IG1fem9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yIHsgMCB9OwpAQCAtMTEyMCw3ICsxMTI2LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNSZXN0b3JpbmdDYWNoZWRQYWdlIHsgZmFsc2UgfTsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBtX21lZGlhU3RhdGU7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgVGltZXIgbV9wbGF5
YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlSW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5lcy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkYTkyMjYzYTcyMzI4MzY1N2RlZjM5YTM4NTFlMjBkNjU2ZDA3MWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFQ
cm9kdWNlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitp
bmxpbmUgYm9vbCBQYWdlOjppc0F1ZGlvTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211
dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7
Cit9CisKK2lubGluZSBib29sIFBhZ2U6OmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dHJlYW1DYXB0dXJlSXNNdXRlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKaW5kZXggNzYzZmY2NGJmNGU3ZTllMGZlNDZlMTNmOGQ4MTMxNmQ4ZTNmYWE2Yy4u
MWExMjEwZmE4MzM3Y2Q5NTIwZjRlMDExYTkwNzM2NzU0ZGU1MThmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NJ
bXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
SW1hZ2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDFkYmQxNTNiOTYwZWMyY2Qz
MjVkNzk4MjAzMzJkMjhlZWM1NjRjMTMuLjI5MDkxNjAwY2IxOTc3ZjlkMzM1YzFlZmFmZWIxOTI4
ZGVmOTFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVNvdXJjZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxp
c3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpAQCAtNzc1
LDcgKzc3NSw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24o
Y29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgdW5zaWduZWQgc2hvcnQg
aHR0cFN0YXR1c0NvZGUgPSBtX3NlbGZTb3VyY2VQcm90b2NvbCA9PSAiaHR0cCIgPyBtX2h0dHBT
dGF0dXNDb2RlIDogMDsKIAogICAgIC8vIDEuIERpc3BhdGNoIHZpb2xhdGlvbiBldmVudC4KLSAg
ICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCB2aW9sYXRpb25FdmVudEluaXQ7
CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmRvY3VtZW50VVJJID0gaW5mby5kb2N1bWVudFVSSTsK
ICAgICB2aW9sYXRpb25FdmVudEluaXQucmVmZXJyZXIgPSBtX3JlZmVycmVyOwogICAgIHZpb2xh
dGlvbkV2ZW50SW5pdC5ibG9ja2VkVVJJID0gYmxvY2tlZFVSSTsKQEAgLTc4Myw3ICs3ODMsNyBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5lZmZlY3Rp
dmVEaXJlY3RpdmUgPSBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZTsKICAgICB2aW9sYXRpb25F
dmVudEluaXQub3JpZ2luYWxQb2xpY3kgPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaGVhZGVyKCk7
CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnNvdXJjZUZpbGUgPSBpbmZvLnNvdXJjZUZpbGU7Ci0g
ICAgdmlvbGF0aW9uRXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0
LmlzUmVwb3J0T25seSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRp
b246OlJlcG9ydCA6IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpF
bmZvcmNlOworICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5kaXNwb3NpdGlvbiA9IHZpb2xhdGVkRGly
ZWN0aXZlTGlzdC5pc1JlcG9ydE9ubHkoKSA/IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRE
aXNwb3NpdGlvbjo6UmVwb3J0IDogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0
aW9uOjpFbmZvcmNlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5zdGF0dXNDb2RlID0gaHR0cFN0
YXR1c0NvZGU7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmxpbmVOdW1iZXIgPSAgaW5mby5saW5l
TnVtYmVyOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5jb2x1bW5OdW1iZXIgPSBpbmZvLmNvbHVt
bk51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5Q2xpZW50LmgKaW5kZXggOGUwNTE4MjY0MTQwNmYyY2M4Y2FhMmRjNTZhZTMzNjA2
MzRlNmIxZS4uZjJmZTYzODk0NjQ5NmVkYmIzMDM4NDUzOThmZjllNzM5N2MzNGJkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xp
ZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IFdFQkNPUkVfRVhQT1JUIENvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudCB7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6SW5pdCYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3MmU0ZjY5MWI0Zjk1MjU3
NWQ5MzExZTRkMGE3ZGUxN2NmZjAyMzY4Li5kMGE0ZmU0YTIwZTBhZThkMjdkZTNkNGI5ZWU2OWU1
MDdhNWEwZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5o
IgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDUwMGZkYjBmZGNjYzNlMzE5YmNk
NjFhZTIzYjRkZWVlMDVkYTlhNWYuLmExNDg4N2ZjNzc1ZTJiOTdiNjlmOWM1OTVhZTgyNzBhYWQ3
MTFjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTXV0ZXguaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCAxM2JhMTVkN2EyY2VhMTc5OTg1
YWExZjdhMGQ1MzNlOWNkNDc4ZjRjLi43MWZiMjIzNWFkZWE3YTdmMjQ1MTZmNDIxOGJkYTg5NTI3
YWQ1MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxh
eW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkJpZGlSZXNvbHZlci5oIgogI2luY2x1ZGUgIkJyZWFraW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZsb2F0aW5nT2JqZWN0cy5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckJveC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDRkOWYyYzcx
OWViYzQ5YWRkYjJiYmViZmVlYzQxYWUxYmNkY2VlZS4uZjE0NDk4MTQ1NmZmZjg4NDFjZGIxNDg1
Y2JlNjVmYzQ4YjI2OTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudFJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCmluZGV4IDgzYTBlYzM5YjQ5YmUzNTk0NmZkZDkxOTRmN2VhYjQyNzc4
MzczZDkuLjI3ZjlkNGUzMzg2OTM4ZmEzYWY4YjBhOGE2YTAxOTNiYzRhMGQ0NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRh
LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYjRlNTMzYTY3OTBjNTMzNjIxNGE0ZjUyNDNiNWJm
ZWI3YjliODgwNS4uNzc3ZDg0MDY2MWRjYmY0ZTAxODg0YTkxOWJlYWQ0ZDE0MzFmODIyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCmluZGV4IDY3ZGY2MTg0MjNiZTFjNTg2YzMyOGNkNjQzMTNkYjU2ZWQ3Y2UzOGIuLmNh
YjYzZjViMTRjZTVlYjg3ZWU0ZDg3YTgwYjM4NjVkZmI2ZTliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMTdkZjk0ZWM0MGNjMmUx
OTY0ZDA1Y2EyODMzMGQ5MDEyOTBlMjA5MS4uMTAyYzRlZTE2YzBkMWFkNGQ4MTU3ZjgxYmU0NjY2
YmY0M2QxNjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGluZy5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggZjUyNzgzYWU4YWY3ZDVkNjNjNWJjOGVhYjZjMzY5YzZk
NGFlOGFlYy4uYjBkMzcxNGIxYmM0Y2M2YmJkNDhhZGI3ZjI5MzY3NzMxNGFhMDg4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIK
QEAgLTE3OTMsNyArMTc5NCw3IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojp1c2VEYXJrQXBwZWFyYW5j
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkudXNlRGFya0FwcGVhcmFuY2UoJnN0eWxl
KCkpOwogfQogCi1PcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gUmVuZGVyT2JqZWN0Ojpz
dHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IFJl
bmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBkb2N1
bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAxMjYwMDA0ZjVjMmY3ZTFkZDAyYjI0MDg1NWQyMTU4
NTViZjZiMzNiLi5jNTM0YzlmZGQwNWQ1ODQ3MGZhN2U2NjE0ODZhNmFlYWNjZDY2OGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0xNjQsNyArMTY0LDcgQEAg
cHVibGljOgogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBlbmNsb3NpbmdGcmFnbWVudGVkRmxv
dygpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSgp
IGNvbnN0OwotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xv
ck9wdGlvbnMoKSBjb25zdDsKIAogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgdm9pZCBzZXRIYXNB
WE9iamVjdChib29sIGZsYWcpIHsgbV9oYXNBWE9iamVjdCA9IGZsYWc7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDdlZTk0NDI2Y2M1MmJhZGI0
MGZmYzRjYjdjZmJkMTI3NzRiY2U3M2EuLjFmZTYzYjE1Nzk2OWRlODA5ZThmYjNhOGU0ODAyMmZi
YjgyOTg2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdo
bGlnaHRDb2xvcigpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRl
ZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
c3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVh
cmFuY2UgfTsKKyAgICAgICAgICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVh
cmFuY2UgfTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCkuYXBwSGlnaGxpZ2h0
Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCA0OGRjZmIzYzhm
YTA2YzM3MjE1YmE0NzA0YzI1MjYwNDliZGI2MTBmLi4zNDM3Y2FjNGVkNzg4OTU0Y2E4NDVlNzIy
YmU5NDhhYTU0YTk2YmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQnJlYWtMaW5lcy5oIgogI2luY2x1ZGUgIkJy
ZWFraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkNoYXJhY3RlclByb3BlcnRpZXMuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggYjkwODJiNTY3Nzk1ZjJjZDVl
NGQ2YTc0ZDcwMzNhODVlODcxYzA1Yy4uOGNiZWJmZWJjYmJmMzhmMjgyYWJjY2M0ZjZkNTAxNWRm
OTZjODY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC02
MDMsNyArNjAzLDcgQEAgTGF5b3V0UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNl
dEZyb21NdXRlQnV0dG9uKGNvbnN0IFJlbmRlckJveCYgbXV0ZUIKIAogI2VuZGlmCiAKLUNvbG9y
IFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7
CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgp
KQpAQCAtNjExLDcgKzYxMSw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJu
IGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkp
CkBAIC02MTksMTIgKzYxOSwxMiBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVy
biBjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYg
Y29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBi
bGVuZFdpdGhXaGl0ZShjb2xvcik7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTYzMiw3ICs2MzIsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPgogICAgIHJldHVybiBjYWNoZS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
cyhvcHRpb25zKSkKQEAgLTY0MCw3ICs2NDAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgog
ICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02NDgsNyArNjQ4LDcgQEAgQ29sb3IgUmVu
ZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok8KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNh
Y2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBA
IC02NTYsNyArNjU2LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjoKICAgICByZXR1cm4gY2Fj
aGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
OjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2Fj
aGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3JzKG9wdGlvbnMpKQpAQCAtNjY0LDcgKzY2NCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjph
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPCiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02NzIsNDcgKzY3Miw0
NyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICAvLyBVc2UgYSBibHVlIGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRo
ZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIHJldHVybiBDb2xvcjo6Ymx1ZTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIHdoaXRlIGNvbG9yIGJ5IGRl
ZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAg
IHJldHVybiBDb2xvcjo6d2hpdGU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAg
ICAgLy8gVXNlIGEgZ3JleSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVtZSBk
b2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICAvLyBUaGlzIGNvbG9yIG1hdGNoZXMgRmlyZWZv
eCdzIGluYWN0aXZlIGNvbG9yLgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDE3NiwgMTc2
LCAxNzYgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBi
bGFjayBjb2xvciBieSBkZWZhdWx0LgogICAgIHJldHVybiBDb2xvcjo6YmxhY2s7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBy
ZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9u
cyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3Iob3B0aW9ucyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CkBAIC0xMjM0LDEwICsxMjM0LDEwIEBAIHZv
aWQgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkKICAgICBQYWdlOjp1cGRh
dGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7CiB9CiAK
LWF1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0IC0+IENvbG9yQ2FjaGUmCithdXRvIFJlbmRlclRoZW1lOjpjb2xv
ckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4gQ29s
b3JDYWNoZSYKIHsKICAgICBhdXRvIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rID0gb3B0aW9u
czsKLSAgICBvcHRpb25zSWdub3JpbmdWaXNpdGVkTGluay5yZW1vdmUoU3R5bGVDb2xvcjo6T3B0
aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnJl
bW92ZShTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgcmV0dXJuIG1f
Y29sb3JDYWNoZU1hcC5lbnN1cmUob3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsudG9SYXcoKSwg
W10gewogICAgICAgICByZXR1cm4gQ29sb3JDYWNoZSgpOwpAQCAtMTI4NCwxMSArMTI4NCwxMSBA
QCB2b2lkIFJlbmRlclRoZW1lOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgc3lzdGVtRm9udElELCBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJiBmbwogICAgIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNj
cmlwdGlvbihzeXN0ZW1Gb250SUQsIGZvbnREZXNjcmlwdGlvbik7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRMaW5rOgotICAgICAgICByZXR1cm4gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAy
NiwgMTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OworICAgICAgICByZXR1cm4g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspID8gU1JH
QkE8dWludDhfdD4geyA4NSwgMjYsIDEzOSB9IDogU1JHQkE8dWludDhfdD4geyAwLCAwLCAyMzgg
fTsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QWN0aXZlbGluazoKICAgICBjYXNlIENTU1ZhbHVl
QWN0aXZldGV4dDoKICAgICAgICAgcmV0dXJuIENvbG9yOjpyZWQ7CkBAIC0xMzY5LDcgKzEzNjks
NyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlk
LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xMzc3LDEzICsxMzc3LDEzIEBAIENv
bG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvCiAgICAgcmV0dXJuIGNhY2hlLnRleHRTZWFyY2hIaWdobGln
aHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93OwogfQog
CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUo
b3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hcHBIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBA
IC0xMzkxLDEzICsxMzkxLDEzIEBAIENvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uCiAgICAgcmV0dXJu
IGNhY2hlLmFwcEhpZ2hsaWdodENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93Owog
fQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25z
KTsKICAgICBpZiAoIWNhY2hlLmRlZmF1bHRCdXR0b25UZXh0Q29sb3IuaXNWYWxpZCgpKQpAQCAt
MTQwNSw3ICsxNDA1LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMKICAgICByZXR1cm4gY2Fj
aGUuZGVmYXVsdEJ1dHRvblRleHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFjdGl2ZWJ1dHRvbnRleHQsIG9wdGlvbnMp
OwogfQpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6c2V0Q3VzdG9tRm9j
dXNSaW5nQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGN1c3RvbUZvY3VzUmluZ0NvbG9y
KCkgPSBjb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICBpZiAoY3VzdG9tRm9jdXNSaW5nQ29sb3IoKS5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaAppbmRleCBlN2U2ZWJiMWI5ZDFlYmIxODgwN2ZiMGFhODkxNmY5YzgwMWY3
ODMxLi44NmY5ZTdkNThlMjFkMDZjYTBkMjIyM2ExZTA0NDY0Mzc0NDMyNWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTQ2LDM0ICsxNDYsMzQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0JveFNoYWRvdyhjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBUZXh0IHNlbGVjdGlvbiBjb2xvcnMu
Ci0gICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2
aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7
CisgICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciB0cmFuc2Zvcm1TZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Q7CiAKICAgICAvLyBMaXN0IGJveCBzZWxlY3Rpb24gY29sb3JzCi0gICAgQ29sb3IgYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7Cisg
ICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCi0gICAg
Q29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Q7CisgICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQogICAgIC8vIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBhcHAgaGlnaGxpZ2h0cy4K
LSAgICBDb2xvciBhcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0OwogI2VuZGlmCiAKLSAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogICAgIENvbG9yIGRhdGVQbGFjZWhvbGRlclRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4
dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgQ29sb3IgZGlzYWJsZWRUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3Qg
Q29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBDb2xv
ciBmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owot
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiBDb2xvcjo6YmxhY2s7IH0K
ICAgICBzdGF0aWMgdm9pZCBzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYpOwog
ICAgIHN0YXRpYyBmbG9hdCBwbGF0Zm9ybUZvY3VzUmluZ1dpZHRoKCkgeyByZXR1cm4gMzsgfQog
ICAgIHN0YXRpYyBmbG9hdCBwbGF0Zm9ybUZvY3VzUmluZ09mZnNldChmbG9hdCBvdXRsaW5lV2lk
dGgpIHsgcmV0dXJuIHN0ZDo6bWF4PGZsb2F0PihvdXRsaW5lV2lkdGggLSBwbGF0Zm9ybUZvY3Vz
UmluZ1dpZHRoKCksIDApOyB9CkBAIC0xODcsNyArMTg3LDcgQEAgcHVibGljOgogCiAgICAgLy8g
U3lzdGVtIGZvbnRzIGFuZCBjb2xvcnMgZm9yIENTUy4KICAgICB2b2lkIHN5c3RlbUZvbnQoQ1NT
VmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11
bU1lbnVMaXN0U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApA
QCAtMjcyLDI1ICsyNzIsMjUgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
YWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCA9IDA7CiAKICAgICAvLyBUaGUgcGxhdGZvcm0gc2Vs
ZWN0aW9uIGNvbG9yLgotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
VGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKICNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKICNpZiAhVVNFKE5FV19USEVNRSkKICAgICAvLyBNZXRob2RzIGZvciBlYWNoIGFwcGVh
cmFuY2UgdmFsdWUuCkBAIC00NTEsNyArNDUxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBDb2xv
ciBkZWZhdWx0QnV0dG9uVGV4dENvbG9yOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIENvbG9yQ2Fj
aGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yQ2FjaGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RTZWFyY2hGaWVsZERlY29y
YXRpb25TdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXggNGIxMDFiMzhiNWM4ZTE0ZDBh
Njc3ZjUwNzQzZDFkNjdiNDUxMzE0Zi4uY2I1ZThkOGRhOGMyOWJhZTMwYTVhYzBiNWEyZGI2ZmE4
ZDdhZTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAg
LTExNSwxMCArMTE1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludFNlYXJjaEZpZWxkRGVj
b3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkK
LSAgICBDb2xvciBjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0
ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPik7Ci0gICAgQ29sb3Ig
Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0
aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPik7CisgICAgQ29sb3IgY2hlY2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250
cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsKKyAgICBD
b2xvciBjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWdu
LCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPik7CiAgICAgUmVmUHRyPEdyYWRpZW50PiBjaGVja2JveFJhZGlvQmFja2dyb3VuZEdy
YWRpZW50KGNvbnN0IEZsb2F0UmVjdCYsIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+
KTsKLSAgICBDb2xvciBjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRy
b2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPik7CisgICAg
Q29sb3IgY2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVz
OjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsKIAogICAgIGJvb2wgcGFp
bnRDaGVja2JveChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICBib29sIHBhaW50UmFkaW8oY29uc3QgUmVuZGVyT2Jq
ZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CkBAIC0x
NTYsMTIgKzE1NiwxMiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzdXBwb3J0c0JveFNoYWRvdyhj
b25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92
ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29s
b3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLSAgICBDb2xvciBwbGF0
Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKQEAgLTE5OCw3ICsxOTgsNyBAQCBwcml2YXRlOgogCiAgICAgRmxvYXRSZWN0
IGFkZFJvdW5kZWRCb3JkZXJDbGlwKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAg
IENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogICAgIFJldGFp
blB0cjxDSUNvbnRleHQ+IG1fY2lDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCmluZGV4IDY5ZWU0OTYzMzYwZThjNjA2NWMxZmY3MTFmMWZiMTY2ZGUz
YjRmNWUuLjMyMTdkOTFlZjk4NDVjNzMzMjQ2NjhlMzhlMzBmOGQ3MWQyODkxOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEyMzcsMTIgKzEyMzcs
MTIgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25z
KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFIKICAgICBpY29uLT5wYWludChwYWludEluZm8u
Y29udGV4dCgpLCB0aHVtYm5haWxSZWN0KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dAogewogICAgIHJldHVybiBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVJT1M6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gQ29sb3I6OnRyYW5zcGFyZW50Qmxh
Y2s7CiB9CkBAIC0xMjYyLDEzICsxMjYyLDEzIEBAIENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0
ZW1Gb2N1c1JpbmdDb2xvcigpCiAgICAgcmV0dXJuICpjYWNoZWRGb2N1c1JpbmdDb2xvcigpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAog
ewogICAgIHJldHVybiBzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpOwogfQogCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVJT1M6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFsIHZhbHVlIGZy
b20gVUlLaXQuCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OwpA
QCAtMTQyMyw5ICsxNDIzLDkgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6c2V0Rm9jdXNSaW5nQ29s
b3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGNhY2hlZEZvY3VzUmluZ0NvbG9yKCkgPSBjb2xv
cjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3Nz
VmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3Qg
Ym9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9u
czo6Rm9yVmlzaXRlZExpbmspOworICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAKICAgICAv
LyBUaGUgc3lzdGVtIGNvbG9yIGNhY2hlIGJlbG93IGNhbid0IGhhbmRsZSB2aXNpdGVkIGxpbmtz
LiBUaGUgb25seSBjb2xvciB2YWx1ZQogICAgIC8vIHRoYXQgY2FyZXMgYWJvdXQgdmlzaXRlZCBs
aW5rcyBpcyBDU1NWYWx1ZVdlYmtpdExpbmssIHNvIGhhbmRsZSBpdCBoZXJlIGJ5CkBAIC0xNDM3
LDggKzE0MzcsOCBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6TwogCiAgICAgYXV0byYgY2FjaGUg
PSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIHJldHVybiBjYWNoZS5zeXN0ZW1TdHlsZUNvbG9y
cy5lbnN1cmUoY3NzVmFsdWVJRCwgW3RoaXMsIGNzc1ZhbHVlSUQsIG9wdGlvbnNdICgpIC0+IENv
bG9yIHsKLSAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwotICAgICAgICBj
b25zdCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID0gb3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7Cisg
ICAgICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0
eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgICAgIGNvbnN0IGJvb2wg
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CiAgICAgICAgIGlmICgh
Z2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBhdXRvIGl0ID0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZmluZChDU1NWYWx1
ZUtleSB7IGNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRl
cmZhY2VMZXZlbCB9KTsKICAgICAgICAgICAgIGlmIChpdCA9PSBnbG9iYWxDU1NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXAoKS5lbmQoKSkKQEAgLTIwNDcsNyArMjA0Nyw3IEBAIGNvbnN0ZXhwciBhdXRv
IG5hdGl2ZUNvbnRyb2xCb3JkZXJXaWR0aCA9IDEuMGY7CiBjb25zdGV4cHIgYXV0byBjaGVja2Jv
eFJhZGlvQm9yZGVyV2lkdGggPSAxLjVmOwogY29uc3RleHByIGF1dG8gY2hlY2tib3hSYWRpb0Jv
cmRlckRpc2FibGVkT3BhY2l0eSA9IDAuM2Y7CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVj
a2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3Rh
dGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitD
b2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxD
b250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucykKIHsKICAgICBhdXRvIGRlZmF1bHRCb3JkZXJDb2xvciA9IHN5
c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlMYWJlbCwgc3R5bGVDb2xvck9w
dGlvbnMpOwogCkBAIC0yMDYwLDcgKzIwNjAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hl
Y2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+CiAg
ICAgcmV0dXJuIGRlZmF1bHRCb3JkZXJDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9w
dGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNo
ZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlv
blNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKIHsKICAgICBib29sIGlzRW1wdHkgPSAhc3RhdGVz
LmNvbnRhaW5zQW55KHsgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpDaGVja2VkLCBDb250cm9sU3Rh
dGVzOjpTdGF0ZXM6OkluZGV0ZXJtaW5hdGUgfSk7CiAgICAgYm9vbCBpc0VuYWJsZWQgPSBzdGF0
ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVkKTsKQEAgLTIxMDAsMTIg
KzIxMDAsMTIgQEAgUmVmUHRyPEdyYWRpZW50PiBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRp
b0JhY2tncm91bmRHcmFkaWVudChjb25zdCBGbG9hdFJlY3QKICAgICByZXR1cm4gZ3JhZGllbnQ7
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3Io
T3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitDb2xvciBSZW5kZXJUaGVtZUlPUzo6
Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0
ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cykKIHsKICAgICBpZiAoIXN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkVu
YWJsZWQpKQogICAgICAgICByZXR1cm4gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVRl
cnRpYXJ5TGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKIAotICAgIENvbG9yIGVuYWJsZWRJbmRp
Y2F0b3JDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5bGVD
b2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7Cisg
ICAgQ29sb3IgZW5hYmxlZEluZGljYXRvckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBs
ZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpT
dGF0ZXM6OlByZXNzZWQpKQogICAgICAgICByZXR1cm4gZW5hYmxlZEluZGljYXRvckNvbG9yLmNv
bG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNzZWRTdGF0ZU9wYWNpdHkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDFlNjE2ODc2MGYxMTc0Nzc2
MWE4YTNjM2U1YjJlOGQ2ZDJkMWI4OGQuLmM0MWY3NDkwMDkyNWVmYTE2NWVlZWU4OWQ2OGI4ZTY2
NjEwNTM1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBA
IC01MywyMyArNTMsMjMgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0NvbnRyb2xTdHlsZWQoY29u
c3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0
IGZpbmFsOwogCi0gICAgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLQotICAgIENvbG9yIHBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBm
aW5hbDsKLSAgICBDb2xvciB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3Qg
Q29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAg
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
ZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAg
ICBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFs
OworCisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBw
bGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7Cisg
ICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1Jp
bmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBD
b2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAg
Q29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAjZW5kaWYKLSAgICBD
b2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICAg
ICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJv
bFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFsbDsgfQogCkBA
IC0xNTksNyArMTU5LDcgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAgU3RyaW5nIGZpbGVMaXN0
TmFtZUZvcldpZHRoKGNvbnN0IEZpbGVMaXN0KiwgY29uc3QgRm9udENhc2NhZGUmLCBpbnQgd2lk
dGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpIGNvbnN0IGZpbmFsOwogCi0gICAgQ29sb3Ig
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEdldCB0aGUgY29udHJv
bCBzaXplIGJhc2VkIG9mZiB0aGUgZm9udC4gVXNlZCBieSBzb21lIG9mIHRoZSBjb250cm9scyAo
bGlrZSBidXR0b25zKS4KICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplRm9yRm9udChjb25z
dCBSZW5kZXJTdHlsZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tCmluZGV4IGExNGZlY2NjZWJiZjdjMTVhYWI5OWFkNDAyYWFkNzIyNjg1MjBjNjAu
LmQ0MzdmNDgyNjY1YzMzM2NhMjM2ZTBiMzc1ODI2YTNmMmFhNjRjNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTI4NCwxNiArMjg0LDE2IEBAIE5T
VmlldyAqUmVuZGVyVGhlbWVNYWM6OmRvY3VtZW50Vmlld0Zvcihjb25zdCBSZW5kZXJPYmplY3Qm
IG8pIGNvbnN0CiAgICAgcmV0dXJuIFRoZW1lTWFjOjplbnN1cmVkVmlldygmby52aWV3KCkuZnJh
bWVWaWV3KCksIHN0YXRlcyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0QmFja2dy
b3VuZENvbG9yXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBv
cHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
ck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29s
b3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTMwMSw5ICszMDEsOSBAQCBDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDbwogI2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjp0
cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lTWFjOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBw
ZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpIHsKICAgICAgICAgLy8gVXNlIGFuIGFscGhh
IHZhbHVlIHRoYXQgaXMgc2ltaWxhciB0byByZXN1bHRzIGZyb20gYmxlbmRXaXRoV2hpdGUoKSBv
biBsaWdodCBjb2xvcnMuCiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkYXJrQXBwZWFyYW5j
ZUFscGhhID0gMC44OwpAQCAtMzEzLDI0ICszMTMsMjQgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9w
dGkKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihjb2xvciwgb3B0aW9ucyk7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVNYWM6OnN1cHBvcnRz
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK2Jvb2wgUmVuZGVyVGhlbWVNYWM6OnN1cHBvcnRzU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwor
ICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0
dXJuIGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCk7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFw
cGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0Rh
cmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9y
IHNlbGVjdGVkVGV4dENvbG9yXSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01P
REVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFy
YW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uo
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsK
ICAgICBpZiAobG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAg
cmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0
Q29sb3JdKTsKICAgICByZXR1cm4geyB9OwpAQCAtMzQwLDEwICszNDAsMTAgQEAgQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ28KICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZv
cm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQ
UE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBy
ZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5k
Q29sb3JdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzUzLDEwICsz
NTMsMTAgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3QKICNlbmRpZgogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lm
IEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Ug
bG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKICNlbmRp
ZgpAQCAtMzY0LDE2ICszNjQsMTYgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDwKIAogfQogCi1D
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJu
IGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgYWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENv
bG9yXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBM
b2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JG
cm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRDb2xvcl0pOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CkBAIC0zODEsMzIgKzM4MSwzMiBAQCBDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PAogI2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGlmICh1
c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpKQogICAgICAgICByZXR1cm4gb2xkQXF1YUZvY3Vz
UmluZ0NvbG9yKCk7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CiAgICAgLy8gVGhlIGNvbG9yIGlzIGV4cGVjdGVkIHRvIGJlIG9wYXF1ZSwgc2luY2UgQ29yZUdy
YXBoaWNzIHdpbGwgYXBwbHkgb3BhY2l0eSB3aGVuIGRyYXdpbmcgKGJlY2F1c2Ugb3BhY2l0eSBp
cyBub3JtYWxseSBhbmltYXRlZCkuCiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29s
b3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSkub3BhcXVlQ29sb3IoKTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBm
aW5kSGlnaGxpZ2h0Q29sb3JdKTsKIH0KIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLUNv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1ZSBmcm9tIEFwcEtpdC4KICAgICBy
ZXR1cm4gU1JHQkE8dWludDhfdD4geyAyNTUsIDIzOCwgMTkwIH07CiB9CiAjZW5kaWYKIAotQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
TWFjOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxv
Y2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGFsdGVy
bmF0ZVNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0pOwogfQogCkBAIC00NDksMTEgKzQ0OSwxMSBA
QCBzdGF0aWMgU1JHQkE8dWludDhfdD4gbWVudUJhY2tncm91bmRDb2xvcigpCiAgICAgcmV0dXJu
IG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nPFNSR0JBPHVpbnQ4X3Q+PihwaXhlbFswXSwgcGl4
ZWxbMV0sIHBpeGVsWzJdLCBwaXhlbFszXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpz
eXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7Ci0g
ICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwotICAgIGNvbnN0IGJvb2wgZm9yVmlz
aXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0
ZWRMaW5rKTsKKyAgICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBjb25z
dCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExpbmsg
PSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAK
ICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAKQEAgLTE1NzEsNyArMTU3
MSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUoUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlKSBjCiAgICAgLy8gU2V0IHRoZSBmb3JlZ3JvdW5k
IGNvbG9yIHRvIGJsYWNrIG9yIGdyYXkgd2hlbiB3ZSBoYXZlIHRoZSBhcXVhIGxvb2suCiAgICAg
Q29sb3IgYyA9IENvbG9yOjpkYXJrR3JheTsKICAgICBpZiAoZSkgewotICAgICAgICBPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucyA9IGUtPmRvY3VtZW50KCkuc3R5bGVDb2xv
ck9wdGlvbnMoJnN0eWxlKTsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBv
cHRpb25zID0gZS0+ZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmc3R5bGUpOwogICAgICAg
ICBjID0gIWUtPmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpID8gc3lzdGVtQ29sb3IoQ1NTVmFsdWVC
dXR0b250ZXh0LCBvcHRpb25zKSA6IHN5c3RlbUNvbG9yKENTU1ZhbHVlR3JheXRleHQsIG9wdGlv
bnMpOwogICAgIH0KICAgICBzdHlsZS5zZXRDb2xvcihjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IDg1ZGFhZDg1NzdiZDhlNzZjN2FkOTc4ZTJj
MmRkMGM4MDRlMWNiOGMuLjBkNDVhZDVlOTIzMGZkMjU5NzM1ZmM2MWRlODVkMDhlZTMyYWNhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAtMjg1
LDI1ICsyODUsMjUgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbjo6c3VwcG9ydHNIb3Zlcihjb25zdCBS
ZW5kZXJTdHlsZSYpIGNvbnN0CiAgICAgcmV0dXJuIGhhdmVUaGVtZTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdAogewogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3IoQ09M
T1JfSElHSExJR0hUKTsKICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyBHZXRSVmFsdWUoY29s
b3IpLCBHZXRHVmFsdWUoY29sb3IpLCBHZXRCVmFsdWUoY29sb3IpIH07CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2lu
OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBjb2xvciBtYXRjaGVzIEZpcmVm
b3guCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3NiB9OwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXND
b2xvcihDT0xPUl9ISUdITElHSFRURVhUKTsKICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyBH
ZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29sb3IpLCBHZXRCVmFsdWUoY29sb3IpIH07CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsK
IH0KQEAgLTEwMDIsNyArMTAwMiw3IEBAIHN0YXRpYyBpbnQgY3NzVmFsdWVJZFRvU3lzQ29sb3JJ
bmRleChDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQpCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZVdpbjo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpzeXN0
ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQogICAg
IHN3aXRjaCAoY3NzVmFsdWVJZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcAppbmRleCBhZjA0MTljZjZjNDkyNWQxYzk0NDcyNzNhNzEwNWQxYzRiOTg1YTE3Li5k
NmNjOWI3MWE4YWNiMzE5YWU0NWIxYzBlN2UwNDFiNGViYWU2ODQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUg
IlJlbmRlcldpZGdldC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCmluZGV4IGM5Y2ZjN2Zm
NWRiMTAwYTQxZWU2MTE0Mzg4NjlkNGExYzdiZGVjZWYuLjA0N2YwMmExNzlmYTU2MTNiZDgzYTZm
NTc5NzliZjZiMTQwNDI2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
dHlsZWRNYXJrZWRUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVk
TWFya2VkVGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIFN0eWxlZE1hcmtlZFRleHQg
cmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LAog
ICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgY2FzZSBNYXJr
ZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKLSAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5
bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNl
IH07CiAgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHJlbmRlcmVyLnRoZW1lKCkuYXBw
SGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJlc29sdmVTdHlsZUZv
ck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAgICB9CiAgICAgY2Fz
ZSBNYXJrZWRUZXh0OjpUZXh0TWF0Y2g6IHsKICAgICAgICAgLy8gVGV4dCBtYXRjaGVzIGFsd2F5
cyB1c2UgdGhlIGxpZ2h0IHN5c3RlbSBhcHBlYXJhbmNlLgotICAgICAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3Rl
bUFwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHN0eWxlLnRleHRTdHls
ZXMuZmlsbENvbG9yID0gcmVuZGVyZXIudGhlbWUoKS5zeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxl
U3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKaW5kZXggYmZmMjE3ZTk0MDEyZTIxZDZjMTJj
MDRlODhiODcwOWNmOWU1NzdkYi4uZmM2OGY0M2VmZGUzNmM0Y2Y4YmUxNTExZWRlODY0ZmQwZmE0
YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCkBA
IC05OCw5ICs5OCw5IEBAIFRleHRQYWludFN0eWxlIGNvbXB1dGVUZXh0UGFpbnRTdHlsZShjb25z
dCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lCiAgICAgaWYgKGxpbmVTdHls
ZS5pbnNpZGVEZWZhdWx0QnV0dG9uKCkpIHsKICAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lLnBh
Z2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3Rp
dmUoKSkgewotICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnM7CisgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAg
ICAgICAgICAgICBpZiAocGFnZS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpKQotICAgICAgICAgICAg
ICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2Up
OworICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlKTsKICAgICAgICAgICAgIHBhaW50U3R5bGUuZmlsbENvbG9yID0gUmVuZGVy
VGhlbWU6OnNpbmdsZXRvbigpLmRlZmF1bHRCdXR0b25UZXh0Q29sb3Iob3B0aW9ucyk7CiAgICAg
ICAgICAgICByZXR1cm4gcGFpbnRTdHlsZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKaW5kZXgg
NDMwYTM0MmY2M2I5Mzg0NGY0MWI3NTdiMGRmYWQ5YWFiYjI3Y2NjNC4uOWNlNTE2Yjg2NzNmMzc3
NDc0NDExYWYyYjA4NDMwYmFlNWRkMTQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNDZkYmY1YmIzM2Q1ZTg1ZTE1
MjFhYmU3ODhiOTE3ZmUyODEzYzdhOS4uNDNjNDljOTUwZTNiOTk1YzY1YjE1MDJjNTViMjM2Njgy
MTRhMTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNjksNiArNjks
NyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKQEAgLTQ2MzMsMTQg
KzQ2MzQsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2VNdXRlZChTdHJpbmdWaWV3IHN0YXRl
c1N0cmluZykKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZTsKICAgICBmb3IgKFN0cmluZ1ZpZXcg
c3RhdGVTdHJpbmcgOiBzdGF0ZXNTdHJpbmcuc3BsaXQoJywnKSkgewogICAgICAgICBpZiAoZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJhdWRpbyIpKQotICAgICAg
ICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7
CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNN
dXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdGF0ZVN0
cmluZywgImNhcHR1cmVkZXZpY2VzIikpCiAgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9k
dWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5nLCAic2NyZWVuY2FwdHVyZSIpKQotICAg
ICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1
cmVJc011dGVkKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgIH0KIAogICAgIGlmIChQYWdlKiBwYWdlID0g
ZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTQ2NTUsNDMgKzQ2NTYsNDMgQEAgU3RyaW5nIEludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUoKQogCiAgICAgYXV0byBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCkt
Pm1lZGlhU3RhdGUoKTsKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsKLSAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQor
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdW
aWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jpbmcp
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmlu
ZywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCisgICAgaWYgKHN0YXRlLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2Fu
ZGlkYXRlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
IkRpZFBsYXlUb0VuZCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCisgICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5n
KSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNTb3VyY2VFbGVtZW50UGxheWluZywiKTsKIAot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc05l
eHRUcmFja0NvbnRyb2xFbmFibGVkKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCIpOwotICAgIGlmIChzdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tD
b250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOwogCi0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5l
cikpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
TGlzdGVuZXIsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKQogICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpCisg
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkpCisgICAgaWYg
KHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJl
RGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0g
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1Vz
ZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1l
bnQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVs
ZW1lbnQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29u
dGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJl
RGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVE
ZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250
YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURl
dmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZp
Y2UsIik7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKQEAgLTYxMjQsMTEgKzYxMjUsMTEg
QEAgU3RyaW5nIEludGVybmFsczo6c3lzdGVtQ29sb3JGb3JDU1NWYWx1ZShjb25zdCBTdHJpbmcm
IGNzc1ZhbHVlLCBib29sIHVzZURhcmtNb2QKICAgICBDU1NWYWx1ZUlEIGlkID0gY3NzVmFsdWVL
ZXl3b3JkSUQoY3NzVmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKFN0eWxlQ29sb3I6OmlzU3lz
dGVtQ29sb3JLZXl3b3JkKGlkKSk7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAg
ICAgaWYgKHVzZURhcmtNb2RlQXBwZWFyYW5jZSkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBvcHRpb25zLmFkZChT
dHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogICAgIGlmICh1c2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbCkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAgICBvcHRpb25zLmFk
ZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAg
IAogICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKFJlbmRlclRoZW1lOjpzaW5nbGV0b24o
KS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IGFmNzY5NzYy
M2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJhMjc0Mjc3NTMuLmE4YzNlMThlNDdhZWNhZDBhMDIyYTA4
NGM0OWEyMWY2YzcxNGMzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0
eWxlU2NvcGUuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAi
VHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhN
TERvY3VtZW50UGFyc2VyU2NvcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCAxNTM5OTI4YmFm
NGMwNTcxZDM1NTI5NjhhMWZiY2YxZjJjNzRiYmRmLi44YjAzYzgxZDA3NWJiOWMzMzM0NDU3NjYz
MzYzYzEyMzNlMmFjMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
bGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KIAogI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCiAjaW5jbHVkZSAiUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggNzZmMTI5M2U0ODQ4ZTRlZjRlMjkwNGU1ODU3NTFjNGNmNmU0YzhhOS4uOTAyMzZhY2IxZjA0
Mjc3YTc4MmY1NTNmOTZlMzZhYTRhZDFiNmQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMTYxNSw3ICsx
NjE1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRDU1BWaW9sYXRpb25SZXBv
cnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGEKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0IHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIFdU
Rk1vdmUocmVwb3J0VVJMKSwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUocmVwb3J0
KSB9IH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKGV2ZW50SW5pdCkgfSwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCBiMmQxZGNiN2M3NjgxNTc5YTFj
ZjZmZmJkNDI0ZDQxZjEwOWQwNTgyLi5kMTc3NmU4MWY5Yzc2ZjgyNGQ5ZjRhMzI2NDIzZTE5MGRm
ODk1YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgKQEAgLTIwOCw3ICsyMDgsNyBAQCBwcml2YXRlOgogICAgIC8vIENv
bnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIHJl
cXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVw
b3J0KFVSTCYmLCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiYpIGZpbmFsOwotICAgIHZvaWQgZW5x
dWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAgICB2b2lkIGVucXVldWVTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJ
bml0JiYpIGZpbmFsOwogCiAgICAgdm9pZCBsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKGNv
bnN0IE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJldHJpZXZlSW5mbyYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNzgxZDEwZTljNjhlZWNjYjU2Yjc2OGIy
NDUxOGQ5YWM1NDE3Yjg5Li45MTZjYTBlMzE5NDI2ZDE2NmFkZGMzNjQ5YTY0MjVlNjJiNGUwOGMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcyNiw2ICs3
MjYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6Okxl
Z2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlJzogWyc8V2ViQ29yZS9MZWdh
Y3lDRE1TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0
JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPidd
LAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUnOiBbJzxXZWJDb3Jl
L01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YUNhcHR1cmVLaW5kJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhh
c0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRM
b2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0
aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+J10sCkBAIC03NDgsNiAr
NzUxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpS
b3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2Vy
dmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCc6IFsn
PFdlYkNvcmUvU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uJzogWyc8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeSc6IFsnIkVkaXRvclN0YXRl
LmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcic6IFsn
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGFkNDExYjgwNjI5OGE0
Yjg1ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYuLmNiY2E5MDhlMzgzNjBkMWQ5Yzk5NDQyZTA5M2Zh
MDg5MTUxZTk2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVkaWFWb2x1bWUpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3M+IG11dGVkU3RhdGVGbGFnczsKKyAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3M+IG11dGVk
U3RhdGVGbGFnczsKICAgICBkZWNvZGVyID4+IG11dGVkU3RhdGVGbGFnczsKICAgICBpZiAoIW11
dGVkU3RhdGVGbGFncykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0YTA1ZDYw
YjJhY2UxMjI0MDEzNDhiYmE5YWExZGExNzQ2Yjg5MjQwLi5lYjFlZTA5NTlhNTEzZGI4MjU3ZDY0
YWRkY2VlYTUwOWI3YTNlODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTksNyArMTE5LDcgQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogICAgIGZsb2F0IHRvcENvbnRlbnRJbnNldDsKICAgICAKICAg
ICBmbG9hdCBtZWRpYVZvbHVtZTsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlRmxhZ3MgbXV0ZWQ7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cyBtdXRlZDsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgYm9vbCBt
ZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFm
YjVhNmE0ZTdiZjAuLjU0OTEwMmViNWZlZWFiMDA5YmY5NDc3NTMyZDRmOWQ1MDFlYThlNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xNTUsNyArMTU1
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6
QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIHsg
fQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCmluZGV4IDcwMWYxYTI5MDg4ZDg0MjAxNjBjNzNlMGNkOWVmZDMyZGNjNmYy
M2QuLjFmYjJmMjdhZDJiOTIxYTg4ZWFjYWQ4Yzc5Njg0YjY4NTIxZTY3ZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjgxNiwxNCArMjgxNiwxNCBAQCB2
b2lkIFdLUGFnZVNldE1lZGlhVm9sdW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBmbG9hdCB2b2x1bWUp
CiB2b2lkIFdLUGFnZVNldE11dGVkKFdLUGFnZVJlZiBwYWdlUmVmLCBXS01lZGlhTXV0ZWRTdGF0
ZSBtdXRlZFN0YXRlKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOworICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwogCiAgICAgaWYgKG11dGVkU3Rh
dGUgJiBrV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKKyAgICAgICAgY29yZVN0
YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsK
ICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZCkKICAgICAg
ICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYga1dLTWVkaWFTY3JlZW5DYXB0dXJl
TXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAK
ICAgICB0b0ltcGwocGFnZVJlZiktPnNldE11dGVkKGNvcmVTdGF0ZSk7CiB9CkBAIC0yOTcxLDI0
ICsyOTcxLDI0IEBAIGJvb2wgV0tQYWdlSXNQbGF5aW5nQXVkaW8oV0tQYWdlUmVmIHBhZ2UpCiAK
IFdLTWVkaWFTdGF0ZSBXS1BhZ2VHZXRNZWRpYVN0YXRlKFdLUGFnZVJlZiBwYWdlKQogewotICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjb3JlU3RhdGUgPSB0b0lt
cGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9JbXBsKHBhZ2UpLT5yZXBvcnRlZE1lZGlh
U3RhdGUoKTsKICAgICBXS01lZGlhU3RhdGUgc3RhdGUgPSBrV0tNZWRpYUlzTm90UGxheWluZzsK
IAotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRp
YUlzUGxheWluZ0F1ZGlvOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKKyAgICBpZiAoY29yZVN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBz
dGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ1ZpZGVvOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlh
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Up
CisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAg
ICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011
dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAo
Y29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlk
ZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkVmlkZW9D
YXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29y
ZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3Bs
YXlDYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZURpc3Bs
YXlDYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKQorICAgIGlmIChj
b3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNw
bGF5Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZERpc3Bs
YXlDYXB0dXJlRGV2aWNlOwogCiAgICAgcmV0dXJuIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDA0NGE4MWEyN2E5YmE1MGM5
NzhkNjcyNWQwNjkzZGExZmIxMDc5Yy4uNTcyZWM5NmRjYTdjNzVmNGIxN2I0ODJlMjdhYWU1MmQy
NDQ3MWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xMDM3LDkgKzEwMzcsOSBAQCAtICh2b2lkKXJlcXVlc3RNZWRpYVBsYXliYWNr
U3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTWVkaWFQbGF5YmFjawogLSAo
V0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIHsKICAgICBhdXRvIHN0YXRl
ID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkK
KyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0
ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAg
ICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CiAgICAgcmV0dXJuIFdLTWVk
aWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAtMTA0Nyw5ICsxMDQ3LDkgQEAgLSAoV0tNZWRpYUNh
cHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIC0gKFdLTWVkaWFDYXB0dXJlU3RhdGUpbWlj
cm9waG9uZUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRN
ZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlOwotICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9D
YXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVk
aWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7
CiB9CkBAIC0xMDYxLDE2ICsxMDYxLDE2IEBAIC0gKHZvaWQpc2V0TWljcm9waG9uZUNhcHR1cmVT
dGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooCiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyID0gW10geyB9OwogCiAgICAgaWYgKHN0YXRlID09IFdLTWVk
aWFDYXB0dXJlU3RhdGVOb25lKSB7Ci0gICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIF9w
YWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKV0gewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11
dGVkU3RhdGVGbGFncygpOwogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0
aXZlKQotICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5yZW1v
dmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQp
OwogICAgIGVsc2UgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKLSAgICAg
ICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVk
aW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICBfcGFnZS0+c2V0
TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpA
QCAtMTA4MywxNiArMTA4MywxNiBAQCAtICh2b2lkKXNldENhbWVyYUNhcHR1cmVTdGF0ZTooV0tN
ZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZAogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfTsKIAogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2Fw
dHVyZVN0YXRlTm9uZSkgewotICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgW2NvbXBsZXRpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBfcGFnZS0+
c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6
VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxl
cildIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0
YXRlRmxhZ3MoKTsKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSkK
LSAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAg
ICBlbHNlIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQpCi0gICAgICAgIG11
dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2Fw
dHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgX3BhZ2UtPnNldE11dGVk
KG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKQEAgLTIy
NzEsNyArMjI3MSw3IEBAIC0gKHZvaWQpX2Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zCiAtICh2
b2lkKV9zdG9wTWVkaWFDYXB0dXJlCiB7CiAgICAgVEhST1dfSUZfU1VTUEVOREVEOwotICAgIF9w
YWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVy
ZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAogLSAodm9p
ZClfc3RvcEFsbE1lZGlhUGxheWJhY2sKQEAgLTM1OTQsMTQgKzM1OTQsMTQgQEAgLSAoQk9PTClf
bWVkaWFDYXB0dXJlRW5hYmxlZAogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVk
U3RhdGUpbXV0ZWRTdGF0ZQogewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKLSAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOworICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwogCiAgICAgaWYgKG11dGVk
U3RhdGUgJiBfV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKKyAgICAgICAgY29y
ZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVk
KTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZCkKICAg
ICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVv
Q2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYgX1dLTWVkaWFTY3JlZW5DYXB0
dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRk
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7
CiAKICAgICBfcGFnZS0+c2V0TXV0ZWQoY29yZVN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggZjA5NGY1Mzg5
Mzk0NDk1NWY3OTgzOWMyNWQ5ZGVlOTI1ZGY0NzAwZS4uNGU1ZDczMjU3MTQ0YjUxZGQ0MmE0ZWZh
Y2M3MGVlZmNjZTg1M2U5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTQ4NjgsNyArNDg2OCw3IEBAIHZvaWQgd2Via2l0
X3dlYl92aWV3X3NldF9jb3JzX2FsbG93bGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBnY2hhciogY29uCiAgICAgZ2V0UGFnZSh3ZWJWaWV3KS5zZXRDT1JTRGlzYWJsaW5nUGF0dGVy
bnMoV1RGTW92ZShhbGxvd0xpc3RWZWN0b3IpKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0V2Vi
Vmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGNhcHR1cmVLaW5kLCBXZWJLaXRNZWRp
YUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wgaXNGcm9tRGlzcGxheUNhcHR1cmUgPSBm
YWxzZSkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtp
bmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRlIGNhcHR1cmVTdGF0ZSwgYm9v
bCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZhbHNlKQogewogICAgIGF1dG8mIHBhZ2UgPSBnZXRQ
YWdlKHdlYlZpZXcpOwogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IHBhZ2UubXV0ZWRTdGF0ZUZsYWdz
KCk7CkBAIC00ODc3LDEzICs0ODc3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25m
aWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6CiAgICAg
Y2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FOgogICAgICAgICBwYWdlLnN0b3BN
ZWRpYUNhcHR1cmUoY2FwdHVyZUtpbmQsIFt3ZWJWaWV3LCBjYXB0dXJlS2luZF0gewogICAgICAg
ICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAgICAgICAgIGNhc2Ug
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAg
ICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09ialBy
b3BlcnRpZXNbUFJPUF9NSUNST1BIT05FX0NBUFRVUkVfU1RBVEVdKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgICAgICAgICBnX29iamVjdF9ub3Rp
ZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfQ0FNRVJB
X0NBUFRVUkVfU1RBVEVdKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNh
c2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoK
KyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNDg5MSwxNiArNDg5MSwxNiBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVhazsKICAgICBjYXNlIFdFQktJ
VF9NRURJQV9DQVBUVVJFX1NUQVRFX0FDVElWRToKICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2lu
ZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1
cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAgaWYgKGlzRnJvbURpc3BsYXlDYXB0dXJl
KQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDkwOCwxNiArNDkwOCwxNiBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVhazsKICAgICBjYXNlIFdFQktJVF9NRURJ
QV9DQVBUVVJFX1NUQVRFX01VVEVEOgogICAgICAgICBzd2l0Y2ggKGNhcHR1cmVLaW5kKSB7Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVk
aW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvOgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZDo6VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9tRGlzcGxheUNhcHR1cmUpCiAgICAgICAg
ICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZp
ZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRl
bzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC00OTY1LDcgKzQ5NjUsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19z
ZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TWVk
aQogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NhbWVyYV9jYXB0dXJlX3N0YXRlKHdlYlZp
ZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlKTsKKyAgICB3
ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUpOwogfQogCiAvKioKQEAgLTUw
MDcsNyArNTAwNyw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1
cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0CiAgICAgaWYgKHdlYmtpdF93
ZWJfdmlld19nZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9N
RURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdl
YlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIHN0YXRlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29u
ZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbywgc3RhdGUpOwogfQogCiAvKioKQEAgLTUwNDksNSArNTA0OSw1IEBA
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgV2ViS2l0TWVkCiAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19nZXRfZGlz
cGxheV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRF
X05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRp
YUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2lu
ZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFD
YXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbywgc3RhdGUsIHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L01lZGlhVXRpbGl0aWVzLmgKaW5kZXggZTFkYTQ2ZjI2YjE4Yzc3ZjJhMTg5ZWQ4NjU0MGJhNjEz
MjI5YmNmYi4uOGExNjIwNzc4ZWRkOWNiZmYxMjA5OWIxNTJhZDUwYjQ3OWVkZjE5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCkBAIC0zMiw3
ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwotX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11
dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKK19XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOworX1dLTWVkaWFNdXRlZFN0
YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVG
bGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQppbmRleCA1M2JiZjQyMDE0NzFkOWQ4YTRmNjZl
NzAxZjY0Mzg4ZWVlZDVkMTVhLi45ODUwYThmY2E2NzBkYzc4NTVmNDEwMDY3YjA1YzEyZjgwODgw
NmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxp
dGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGll
cy5tbQpAQCAtMjgsMjkgKzI4LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1fV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZE5vbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0Nh
cHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
KQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYTsKLSAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRl
IHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9uZTsKLSAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZp
ZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2Fw
dHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhOwog
CiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwogfQogCi1fV0tNZWRpYU11dGVkU3RhdGUg
dG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3Mgc3RhdGUpCitfV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIF9XS01lZGlhTXV0
ZWRTdGF0ZSBtZWRpYU11dGVkU3RhdGUgPSBfV0tNZWRpYU5vbmVNdXRlZDsKLSAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpCisg
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNN
dXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlhQXVkaW9NdXRlZDsKICAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVy
ZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0ZWRTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVEZXZp
Y2VzTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKQogICAgICAgICBtZWRp
YU11dGVkU3RhdGUgfD0gX1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQ7CiAgICAgcmV0dXJuIG1l
ZGlhTXV0ZWRTdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAppbmRleCAzMjlkYjc5MWNmNDMyNzI0NjM2MzQyODAwNTA0YjA4ZWE4OWRiMGUzLi5lNjc5
Njk1YTNmZTFhMGFlZjI4ZGQ1YWYwMjQ4ZDY5MDZmMzQxOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250
QXR0cmlidXRlcyYpIGZpbmFsOwogICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgICAgICB2b2lk
IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5Jiwg
V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJTktTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTFiN2E0MDU4YTViNjQxYWI4ODRhOTc2NTc3Y2YyMTAz
YmNiNmJkZC4uZDc4ZjRjYzBkNTY1NTk0YzBlODgxYTQ1OGJmZDIzODI3NTEyMjQ1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMjI3LDcgKzEy
MjcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLAogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdl
dCgpIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZy
YW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUlu
dDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKLXZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBiMzkz
N2FjMDQzNzczOTJkMzBiMTgzM2RlZTBjMDFlNmNhMTY4OWYzLi4yYjcyNDU4NjkxNmJmNWUxY2Ji
NjUzYmUxZTZhMjRiMWFkOTkxZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGljIGNvbnN0IE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJlTWFzayB7IE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07CitzdGF0aWMgY29u
c3QgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJlTWFzayB7IE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTk1LDcgKzk1LDcgQEAgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KFcKIAogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpCiB7Ci0gICAgbV9wYWdlLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZSB7IE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8gfSwgW10geyB9KTsKKyAg
ICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFD
YXB0dXJlIHsgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8gfSwgW10g
eyB9KTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5h
Z2VyOjpzaW5nbGV0b24oKS5yZXZva2VTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKHBhZ2UoKS5w
cm9jZXNzKCkpOwogICAgIHByb3hpZXMoKS5yZW1vdmUodGhpcyk7CkBAIC0xMjksNyArMTI5LDcg
QEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3RvcENhcHR1
cmUoKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgaW52YWxpZGF0ZVBl
bmRpbmdSZXF1ZXN0cygpOwotICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIG1fcGFnZS5zdG9wTWVkaWFD
YXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmlj
ZXNDaGFuZ2VkKCkKQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNvbnN0CiAjZW5kaWYK
IH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVy
ZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0ZUNoYW5nZWQoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBuZXdTdGF0ZSkKIHsKICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2NGViZmE1
ZTQ1OWExNmU0Y2QzN2U0OTM2OWE5MDRhZTYyZGViNzYwLi42NzRiYWI0ZGI3YzljNjRkZWQ4NTc4
NzQxZGJkMmFiOTk2ZGM0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAg
LTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJDYWNoZWRTdGF0ZSgpOwogICAg
IHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIGNhcHR1cmVTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpOworICAgIHZv
aWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0
YXRlKTsKICAgICB2b2lkIHN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3Q7CiAKICAgICBlbnVt
IGNsYXNzIFJlcXVlc3RBY3Rpb24gewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5pZWRSZXF1ZXN0czsKIAotICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0ZTsKKyAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0YXRlOwogICAgIFJ1
bkxvb3A6OlRpbWVyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiBtX3dh
dGNoZG9nVGltZXI7CiAgICAgU2Vjb25kcyBtX2N1cnJlbnRXYXRjaGRvZ0ludGVydmFsOwogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggNjFjMDdmNmRmYjliNDYzNjVkNzY3ZTQxMzNjYmQ2OGRhMGQzMmE3Yy4uZDMz
MWYyY2E3ZDAzYTcwM2I1Y2I2ZGQwYzhmZDhiNTkxMjg0ZmYzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTEzLDExICsyMTEzLDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpG
bGFnPiBmbGFnc1RvVXBkCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0
ZTo6SXNJbldpbmRvdyk7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJ
c1Zpc3VhbGx5SWRsZSAmJiBwYWdlQ2xpZW50KCkuaXNWaXN1YWxseUlkbGUoKSkKICAgICAgICAg
bV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSk7Ci0gICAg
aWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0
YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAm
JiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpKSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQXVk
aWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0
aXZpdHlTdGF0ZTo6SXNBdWRpYmxlKTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5
U3RhdGU6OklzTG9hZGluZyAmJiBtX3BhZ2VMb2FkU3RhdGUuaXNMb2FkaW5nKCkpCiAgICAgICAg
IG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5nKTsKLSAgICBpZiAo
ZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEgJiYgbV9tZWRp
YVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
VmlkZW9DYXB0dXJlRGV2aWNlIH0pKQorICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlT
dGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoeyBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9KSkKICAgICAg
ICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhKTsK
IH0KIApAQCAtNjIzNiw3ICs2MjM2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhVm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNZWRpYVZv
bHVtZSh2b2x1bWUpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVk
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX211dGVkU3RhdGUg
PSBzdGF0ZTsKIApAQCAtNjI2Nyw3ICs2MjY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1l
ZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQg
a2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CkBAIC05NDQ2LDcgKzk0NDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdhc1JlbW92ZWQoKQogICAgIG1fbmF2aWdhdGlvbkNs
aWVudC0+ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgqdGhpcyk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKIHsKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5z
aG91bGRCZVJ1bm5hYmxlKCkpCkBAIC05NDU3LDcgKzk0NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG5ld1N0YQogICAgICAgICB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UobmV3U3RhdGUsIENh
bkRlbGF5Tm90aWZpY2F0aW9uOjpZZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRl
UGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdT
dGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVsYXlOb3RpZmljYXRpb24pCit2b2lkIFdl
YlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uIGNhbkRlbGF5Tm90aWZp
Y2F0aW9uKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYXV0byB1cGRhdGVNZWRp
YUNhcHR1cmVTdGF0ZUltbWVkaWF0ZWx5SWZOZWVkZWQgPSBbJl0gewpAQCAtOTQ4NiwxNCArOTQ4
NiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBv
bGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0dXJlU3RhdGUgPSBtX21lZGlhU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFDYXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAjZW5kaWYKIAotICAg
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5aW5nTWVkaWFNYXNrIHsgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CisgICAg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVkaWFTdGF0ZTsKIAot
ICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5jb250YWlucyhNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpICE9IChuZXdTdGF0ZS5jb250YWlu
cyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpOworICAgIGJvb2wg
cGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAhPSAobmV3U3RhdGUuY29udGFpbnMoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7CiAgICAgaWYgKHBsYXlpbmdBdWRpb0No
YW5nZXMpCiAgICAgICAgIHBhZ2VDbGllbnQoKS5pc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKTsK
ICAgICBtX21lZGlhU3RhdGUgPSBuZXdTdGF0ZTsKQEAgLTk1MTcsNyArOTUxNyw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5lCiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2sp
ICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKICAgICAgICAgbV91aUNsaWVu
dC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMpOwogCi0gICAgaWYgKChvbGRTdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSAh
PSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c0F1ZGlvT3JWaWRlbykpKQorICAgIGlmICgob2xkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpICE9IChtX21lZGlhU3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpKQogICAgICAg
ICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwogCiAgICAgbV9wcm9jZXNzLT51cGRh
dGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCk7CkBAIC05NzE3LDcgKzk3MTcsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZQogICAgIHBhZ2VDbGllbnQoKS5tZWRpYVNlc3Npb25NYW5hZ2VyKCku
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIHBhZ2VDbGllbnQoKS5y
b290Vmlld1RvU2NyZWVuKEludFJlY3QocmVjdCkpLCBoYXNWaWRlbywgdXNlRGFya0FwcGVhcmFu
Y2UoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2
b2lkIFdlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBwYWdlQ2xpZW50
KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLmNsaWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBjb250
ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggNzUxY2M0NzllYzlmZDY5Y2QzNzMwNzczNzI4MDE3NTBlNzliMmMyZC4uZGY3ZGM5ZGM3NGU2
ZmUzZGQyZjQ5YTg3MDk4YjVlOTU4OTc0ZDQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTEzOTYsMTMgKzEzOTYsMTMgQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlU2l6ZTsgfQogCiAg
ICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRNdXRlZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiA9IFtdIHsgfSk7Ci0gICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBt
X211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKTsgfTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7
CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUuY29u
dGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH07
CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wg
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRp
YVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsK
ICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ2Fw
dHVyZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0g
W10geyB9KTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7
CiAKICAgICB2b2lkIHBhdXNlQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKQEAgLTE1MDgsMTggKzE1MDgsMTggQEAgcHVibGljOgogCiAgICAgYm9v
bCBpc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gbV9p
c1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OyB9CiAKLSAgICBib29sIGlzUGxheWlu
Z0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9Ci0gICAgdm9pZCBpc1BsYXlp
bmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mp
OworICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiAhIShtX21lZGlhU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9
CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3Rh
dGUoKTsKIAogICAgIGVudW0gY2xhc3MgQ2FuRGVsYXlOb3RpZmljYXRpb24geyBObywgWWVzIH07
Ci0gICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlmaWNhdGlvbiA9IENhbkRlbGF5Tm90
aWZpY2F0aW9uOjpObyk7CisgICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncywgQ2FuRGVsYXlOb3RpZmljYXRpb24g
PSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8pOwogICAgIGJvb2wgaXNDYXB0dXJpbmdBdWRpbygp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKTsgfQogICAgIGJvb2wgaXNDYXB0dXJpbmdWaWRlbygp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKTsgfQotICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJl
YW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsgfQot
ICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3Rh
dGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlcG9y
dGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0YXRlIC0gV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0
YXRlOyB9CisgICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsgfQorICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9T
dHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7IH0K
KyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHJlcG9ydGVkTWVkaWFT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSB8IChtX21l
ZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrKTsgfQor
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdz
KCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CiAKICAgICB2b2lkIGhhbmRsZUF1dG9w
bGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9w
bGF5RXZlbnRGbGFncz4pOwogCkBAIC0xNjAzLDcgKzE2MDMsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIp
OwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJv
b2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tT
dGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1
cCgpOwpAQCAtMjkwNCw3ICsyOTA0LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpMYXlvdXRQ
b2ludCBtX21heFN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luOwogCiAgICAgZmxvYXQgbV9tZWRp
YVZvbHVtZSB7IDEgfTsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3MgbV9tdXRlZFN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxh
Z3MgbV9tdXRlZFN0YXRlOwogICAgIGJvb2wgbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93IHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9tZWRpYUNhcHR1cmVFbmFibGVkIHsgdHJ1ZSB9OwpAQCAtMjk0MCwxMCArMjk0
MCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlV2FudHNTeW5j
aHJvbm91c1JlcGx5IHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPj4gbV9uZXh0QWN0aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNrczsKIAotICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CisgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CiAKICAgICAvLyBU
byBtYWtlIHN1cmUgY2FwdHVyZSBpbmRpY2F0b3JzIGFyZSB2aXNpYmxlIGxvbmcgZW5vdWdoLCBt
X3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgaXMgdGhlIHNhbWUgYXMgbV9tZWRpYVN0YXRlIGV4
Y2VwdCB0aGF0IHdlIG1pZ2h0IGRlbGF5IGEgYml0IHRyYW5zaXRpb24gZnJvbSBjYXB0dXJpbmcg
dG8gbm90LWNhcHR1cmluZy4KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOwogICAgIFJ1
bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4gbV91cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0
YXRlVGltZXI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIERlZmF1bHRNZWRpYUNhcHR1
cmVSZXBvcnRpbmdEZWxheSB7IDNfcyB9OwogICAgIFNlY29uZHMgbV9tZWRpYUNhcHR1cmVSZXBv
cnRpbmdEZWxheSB7IERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDcy
ZTU2ZGZmZTZlNWY0MGIzZWE1MzJlYWRlM2ZkMTk4ZDhkZWYwZTUuLjExOGE3MWE5Nzk1NmM5MWI1
NmU2MjgwYzQyMWNmOGEzMjYzMjhkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ2Miw3ICs0NjIsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAKLSAgICBJc1BsYXlpbmdNZWRp
YURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
CisgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlPiBzdGF0ZSkKICAgICBIYW5kbGVBdXRvcGxheUV2ZW50KGVudW06dWlu
dDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50IGV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0
b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTQ4MSw3ICs0
ODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEFkZFBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAg
IFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IHBpY2tlckxvY2F0
aW9uLCBib29sIGhhc1ZpZGVvKQotICAgIFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0
YXRlKQorICAgIFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29y
ZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE9wdGlv
blNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gbWVkaWFTdGF0ZSkKICAgICBT
ZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAg
IFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoU3RyaW5nIG5hbWUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHBp
Y2tlclN0YXRlKQogICAgIE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVw
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDhk
NDdhNjNmNmNhNzZiNDFlYzg2ZWE3YzQ0MTcyZDczMGEwNDJiYTkuLmFmNDA5NjFkYTBmOWE4ZWM0
ODc1MDhiZjIxNDEzMjA3ZmEwN2RmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTg0Nyw3ICsxODQ3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQpCiAKICNlbmRpZgogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3RhdGVDaGFu
Z2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBmbGFncykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdl
TXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBmbGFncykKIHsKICAgICBib29sIG11
dGVkRm9yQ2FwdHVyZSA9IGZsYWdzLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5k
VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgaWYgKCFtdXRlZEZvckNhcHR1cmUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDljZjIzYWQ4OTI5ZGJlOWE4
MDNjMGFjMDA0YWEzM2RjMmYyYzY3MWUuLjg3MmYwMmUxNTQ3MDgxNmJjMmVjYWFjNjRmMWFmYTEy
ZTU4ZWVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC00MDYsNyArNDA2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG11dGVDYXB0dXJlSW5Q
YWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwogI2VuZGlmCi0gICAgdm9pZCBw
YWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3MpOwogICAgIHZvaWQgcGFnZUlzQmVjb21pbmdJbnZpc2libGUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShSRU1PVEVf
SU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGZmZGQ0MzM0NTdl
Y2VmY2Q2YWRkOGQ5YTQyMTRiYWI0NWRkNWU2NTAuLjFmMTc2ZWJkOTg4Y2UwMmZlZTZkODIwODQy
NjJlODRmMWU1NmFlOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTUwLDYg
KzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb0xheWVyTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGEz
ZDZjYzMyZjY1NDlmYTBmYWI0YTI0NTA4ZmUyMmYwNDdmOWQzMzUuLmQzYWFkNmVhMjYxNjhhMjFi
ODNkNTMwZTdhYjZkZDQ3YTI2N2YyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSW5saW5lcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXgg
YWE5ZDNlY2UzZDYyNTg5ZDZiYmFlYzkxNGI2MzU2ZDUwNGE0ZTliYS4uNWFiYzQ4NmUwYzU5MTBh
ZGU4YjhjNmZjOGQ4ZjkwYTlmOTZlYjU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBtZWRpYUNhblN0YXJ0KFdlYkNvcmU6OkRvY3VtZW50Jikgb3ZlcnJpZGU7CiAKICAgICAv
LyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQ
bHVnaW5Db250cm9sbGVyCkBAIC0yNzYsMTEgKzI3NiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9wbHVnaW5Jc1BsYXlpbmdBdWRpbyB7IGZhbHNlIH07CiB9OwogCi1pbmxpbmUgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBj
b25zdAoraW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgUGx1Z2lu
Vmlldzo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlOwogICAgIGlmIChtX3BsdWdpbklzUGxheWluZ0F1ZGlv
KQotICAgICAgICBtZWRpYVN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbyk7CisgICAgICAgIG1lZGlhU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CiAgICAgcmV0dXJuIG1lZGlhU3RhdGU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTIwYTA0ZDM2ZjAzOGFjNzMxOTE1NTJlY2Y0
NWUzMjE0ZTE1YjdlZS4uYTIzOTZjZTJjMjk0ZTgyNmVlODZkM2Y3NmQ5ZjVhNzEzYjk5NjM5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEyNTIsNyArMTI1Miw3IEBAIGJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVW
aWV3JiBmcmFtZVZpCiAgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VU
aWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fcGFnZS5pc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShzdGF0ZSk7CiB9CkBAIC0xMzg0LDcgKzEzODQsNyBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3QsIGlzVmlkZW8pKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElk
LCBzdGF0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDY0NDgyYTQyZTRlYzcyZDUyYWE4
NDZhNTc4NDVhMTQ2ODQ2NmM3MTAuLmI5OTM4ZjJiZmE2MTAwYjI5NjIzY2QwMzA1Y2UwYjE0YzQz
MjIxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM1Miw3ICszNTIsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29y
ZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7Cisg
ICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29y
ZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4p
IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQpAQCAtMzkxLDcgKzM5MSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3Jl
OjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lk
IHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBwbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncykgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpIGZpbmFsOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKSBmaW5hbDsK
ICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGU2ZWU0MjBmNDVhNDI3NTllMDYxNGNiNTAwY2E2ZWY2YjUyNGM5MDQuLmRlOGM1ZjM3YjAyZDEx
MjE2MDhkMjk3OTRjNWY1YjgwNmRjOGZlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00Mzc1LDcgKzQzNzUsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKEZy
YW1lSWRlbnRpZgogICAgICAgICBXZWJDb3JlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmln
YXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZSgqZnJhbWUtPmNvcmVGcmFtZSgpLCBjb29wLCBkaXNw
b3NpdGlvbiwgY29vcFVSTCwgbmV4dFJlc3BvbnNlVVJMLCBjb29wT3JpZ2luLnNlY3VyaXR5T3Jp
Z2luKCksIG5leHRSZXNwb25zZU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBpc0NPT1BSZXNwb25z
ZU5hdmlnYXRpb25Tb3VyY2UsIHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBh
Z2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsK
ICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpOwogICAgIGlmICghZnJhbWUpCkBAIC01NTc1LDEzICs1NTc1LDEzIEBAIHZvaWQgV2ViUGFn
ZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIG1fcGFnZS0+c2V0TWVkaWFWb2x1
bWUodm9sdW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIG1fcGFnZS0+c2V0TXV0ZWQoc3RhdGUpOwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBtX3BhZ2Ut
PnN0b3BNZWRpYUNhcHR1cmUoa2luZCk7CkBAIC03NDUxLDcgKzc0NTEsNyBAQCB2b2lkIFdlYlBh
Z2U6OnN5bmNocm9uaXplQ09SU0Rpc2FibGluZ1BhdHRlcm5zV2l0aE5ldHdvcmtQcm9jZXNzKCkK
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlNldENPUlNEaXNhYmxpbmdQYXR0ZXJucyhtX2lkZW50aWZpZXIsIG1fY29yc0Rpc2Fi
bGluZ1BhdHRlcm5zKSwgMCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9p
ZCBXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjMTM4NTU3M2IwYmU1ZmVjODAxNTBhOTVm
YjM5NTE5NDNhNTA0NjY2Li5jMjdkNDAwYjY2ZDM3ZGJlMGE5ZTU0ZDI3YWJmNDQwYzQ5ZDQxMTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NDgs
NyArNDQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBl
bWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bv
c2l0aW9uLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJs
b2NrZWRVUkwpOwogICAgIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9D
T09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDcm9z
c09yaWdpbk9wZW5lclBvbGljeSYsIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiwgY29uc3QgVVJM
JiBjb29wVVJMLCBjb25zdCBVUkwmIHByZXZpb3VzUmVzcG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiBwcmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiByZXBvcnRUb0hlYWRlclZh
bHVlKTsKICAgICB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9t
Q09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24sIGNvbnN0IFVS
TCYgY29vcFVSTCwgY29uc3QgVVJMJiBuZXh0UmVzcG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9u
U291cmNlLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CisgICAgdm9pZCBlbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpOwogCiAgICAgLy8gLS0g
Q2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJp
Y2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQgdGhh
dCBiZSBiZW5lZmljaWFsPwpAQCAtMTAyNyw5ICsxMDI3LDkgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3ZlUmVzb3VyY2VSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcik7
CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRN
YXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVy
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygpOwogCkBAIC0x
NDIxLDcgKzE0MjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdl
clNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAg
IHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggOGFmYzRlYTVlM2NkMDFjMmFjM2E0YTM0MWYzMTZhOWEyMTEzMzJlMS4uNzgy
ZmYyODJiYWEzZGQ4YTM4YjBhOGFjYTMxOTMzMmE5YTNjODEzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMyw3
ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbmRD
T0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBv
aW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwg
VVJMIGJsb2NrZWRVUkwpCiAgICAgU2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9D
T09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb29wLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09P
UERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBVUkwgY29vcFVSTCwgVVJMIHByZXZpb3VzUmVzcG9u
c2VVUkwsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBwcmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBT
dHJpbmcgcmVmZXJyZXIsIFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZXBvcnRUb0hlYWRlclZh
bHVlKQogICAgIFNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJl
c3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6OkNPT1BEaXNw
b3NpdGlvbiBkaXNwb3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBuZXh0UmVzcG9uc2VVUkwsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVz
cG9uc2VOYXZpZ2F0aW9uU291cmNlLCBTdHJpbmcgdXNlckFnZW50KQotICAgIEVucXVldWVTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkK
KyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnRJbml0IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3Vz
CiAKQEAgLTQxNyw5ICs0MTcsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgIyBN
ZWRpYQogICAgIFNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKLSAgICBTZXRNdXRlZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpIC0+ICgpIEFzeW5jCisg
ICAgU2V0TXV0ZWQoT3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiBt
dXRlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wg
bWF5U3RhcnRNZWRpYSkKLSAgICBTdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKKyAgICBTdG9wTWVkaWFDYXB0
dXJlKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBr
aW5kKSAtPiAoKSBBc3luYwogCiAgICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgIFNldENhblJ1bk1vZGFs
KGJvb2wgY2FuUnVuTW9kYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9E
T00vRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1l
bnQubW0KaW5kZXggOGVhNDA0M2UxNjE1ZTMxOTY1NzliMDYwMGI2MDBkNTY4NmM2NmE0ZS4uNjJm
YTYyMjAyODY1ZGZhZGM1MWMyNTg1Mjc2NjdiM2ZiZmE3M2E0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQpAQCAtNjAsOSArNjAsOSBAQAogI2ltcG9ydCA8
V2ViQ29yZS9DU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0RvY3Vt
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRG9jdW1lbnRGdWxsc2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50SW5s
aW5lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudFR5cGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTENvbGxlY3Rpb24uaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggMWM1NzY3OTM3YzY1NDlmYTFjZTQ5YzkzODUyY2E0ZWUzYjdhZGU2Yy4uMzU1
NWQ1NDRjYTc0YjcxMTlkNmIwNjc2MjY2N2UyYzQxNzUxZDAzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTI0Myw3ICsyNDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
cikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgLyogaGFz
VmlkZW8gKi8pIGZpbmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CmluZGV4IGE0NmIxYWRhNjA0OTdkYTdmNWVlZTI3ZjgxMWUzMmU3YzA4MjZlMTEuLjE2OTNkODc1
ZmUwMDg1NGY5MmQ1YmEzMTZkNWY3MzExZDg3ZDhhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAg
LTExMjksNyArMTEyOSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpCiAgICAgW21fd2ViVmll
dyBfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOmNvbnRleHRJZCBsb2NhdGlvbjpsb2NhdGlvbiBo
YXNWaWRlbzpoYXNWaWRlb107CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3Rh
dGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJ
ZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBbbV93ZWJWaWV3
IF9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOmNvbnRleHRJZCBzdGF0
ZTpzdGF0ZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IDhjYTMyOTQ3YTVi
NDZlMDY3YjhlOGJhZTQ0NjM5M2ViYjkwZTg2ZWYuLjM5NjU1NWNkMWY5OGI2YmMxMzQ0NTA1N2Vk
Y2E1NzZmZmQ0ZWI2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC01MSw3ICs1
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdl
YkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQg
cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7Ci0gICAgdm9pZCBwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0K
aW5kZXggN2RiZDU4OTQ3NTQwNWExNmViZGQwZmE5YmNmYTYyYzMzN2U3NDE1Mi4uNWNmZmJjZmMz
ZjVlYWM2ZTVlYjgyZWVhMDNlYzhiMGM1YTk4ZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5tbQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcgogICAgIFdl
YkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcigqdGhpcywgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRl
bywgbV9wYWdlID8gbV9wYWdlLT51c2VEYXJrQXBwZWFyYW5jZSgpIDogZmFsc2UpOwogfQogCi12
b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBzdGF0ZSkKK3ZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
OjpzaGFyZWQoKS5jbGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElkLCBzdGF0ZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYzI2
NGFmYTg2MmZlODljZmQ4ODA1NzkxZmFhMjJmZTQzMzUwOTk1Ny4uNmQ2OTdkZDg3YmQ3MDZiYTlk
YTc0MzlmMmRiMmQ1YzE1YTQ0ZGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQpAQCAtOTI0MSw3ICs5MjQxLDcgQEAgLSAodm9pZClfc2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWUKICAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNv
bnRleHRJZCwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvKTsKIH0KIAotLSAodm9p
ZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZQorLSAodm9pZClfcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKIHsKICAgICBbc2VsZiBfZGV2aWNlUGlja2Vy
XS0+cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0
YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oCmluZGV4IGE0N2RhMmNmNGQ3NDk0OTYwZjVjNTA4ZjIyYjdmMTUwYTI3ZDhkYTcu
LmNjZDhjZDczYTQxZTM5YTFhNzNlZjE5NDE1NGYxOTI5NGQyMWU5NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtMzM2LDcg
KzMzNiw3IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0b25lcyhPcHRpb25T
ZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAtICh2b2lkKV9hZGRQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
Zmllciljb250ZXh0SWQ7CiAtICh2b2lkKV9yZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0
SWQ7CiAtICh2b2lkKV9zaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KFdlYkNvcmU6OlBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIGxvY2F0aW9uOihjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gaGFzVmlkZW86KEJPT0wpaGFzVmlkZW87Ci0tICh2
b2lkKV9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBzdGF0ZTooV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKXN0YXRlOworLSAodm9pZClfcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mpc3RhdGU7CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQ6KGJvb2wpZW5hYmxlZDsKIC0gKHZvaWQpX3NldE1v
Y2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTmFtZTooTlNTdHJpbmcgKiluYW1lIHN0YXRlOihX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKXN0YXRlOwogLSAo
dm9pZClfbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440891</attachid>
            <date>2021-10-11 22:26:53 -0700</date>
            <delta_ts>2021-10-11 23:19:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231489-20211011222652.patch</filename>
            <type>text/plain</type>
            <size>276466</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uMWU5ODNjMjg0MmNlNjI1YjFlOGMzM2JkYzk2MWIw
ZDkzMDQ0OTBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcgZW51
bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZvcndh
cmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIC0+
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAgICAg
IC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZQor
ICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAgICAg
ICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3MsRGVs
aXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBBZGRp
dGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0byB1
c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgorCisg
ICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQYWdl
SW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAgICAg
ICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMgY29t
cGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBvZiB0
aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRhaW5l
ck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1vZHVs
ZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdl
cjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNz
aW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25m
aWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpMb2dB
cmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
OjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBk
YXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAgICAg
KiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAqIGRv
bS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExpc3RN
dXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20vQ29u
dGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVB
bGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVy
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hhcnNl
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rpbmcg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05ldHdv
cmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNNdXRh
dGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNo
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0
aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6dmFs
aWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9ic2Vy
dmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZv
ckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBjb25z
dCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2
ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5nT2Jz
ZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJlZE11
dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJp
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRl
TWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0
YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9wZW5l
clBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
dG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVk
aW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01lZGlh
Q2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxpbmVz
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdo
dENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3VzUmlu
Z0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBvcnRz
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6
c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNo
ZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50U3R5
bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVsbCBi
dWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4YTcw
Li5mYTExZjIyMzNlNmUwYzZlNThmYWQ2MjE5YmQ4MjczNDllMjMwM2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5n
cyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFz
c2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9k
dWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
IC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAg
ICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1pY3JvcGhv
bmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhvbmVDYXB0
dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRD
YW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFBhZ2VN
dXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6
CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVD
aGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3Rh
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnN0b3BN
ZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURp
ZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMC0w
NiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGlt
ZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgzNzkzMjgy
ZTY2NTRlNi4uNzI5MjBhZWMyN2MwNzQ4OGVjNmNmM2U1NDIwODRiOTY4YmM0MmRhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTEwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZd
IEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBNb3Zl
IHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQg
dGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAt
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2Fw
dHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZl
ODk5ZTYxNGQxNTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUx
ZWY2ZjkwZDkzOTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50
Rm9udExvYWRlci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVu
dEZ1bGxzY3JlZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVu
dE1hcmtlci5oCiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0Rv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAg
IHBhZ2UvUGFnZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1Bh
Z2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCmluZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhj
Njc4N2MzNmI0OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKQEAgLTU4LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVk
aWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAg
ICBib29sIHByZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29u
ZmlndXJhdGlvblJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxz
ZSB9OwogfTsKIAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitz
dGF0aWMgYm9vbCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVl
LCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1
ZS5jb250YWluc0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJp
bmcoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJv
ZHVjZXJTdGF0ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewog
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAg
IGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQor
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdz
ICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZs
YWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwot
ICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlm
IChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpS
ZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
UmVxdWlyZXNUYXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
RGlkUGxheVRvRW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpE
aWRQbGF5VG9FbmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAg
ICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8p
CisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRl
bykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChz
dHJpbmcuaXNFbXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsK
QEAgLTI1NiwxMSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdB
WVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhd
LmdldCgpKTsKIAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNl
dChtX2NsaWVudFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhh
c0FjdGl2ZVJvdXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0
Q29udGV4dCgpKTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNs
aWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwg
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmlu
ZCgmY2xpZW50LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBA
IC0yNjgsNyArMjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47
CiAKICAgICBhdXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsK
LSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xp
ZW50U3RhdGUtPmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxh
Z3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRG
bGFncykKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7
CiAKLSAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNv
bmZpZ3VyYXRpb25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxh
eWJhY2tUYXJnZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBdWRpb09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0
ZUNvbmZpZ3VyYXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZs
YWdzKSkKICAgICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmln
dXJhdGlvblRhc2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBwbGF5aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1ZpZGVvIH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mg
cGxheWluZ1RvVGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CiAgICAgaWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3Rmxh
Z3MgJiBwbGF5aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9s
ZEZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZs
YWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdW
aWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkRpZFBsYXlUb0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVT
ZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAg
ICAgICAgICAgY2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAg
IHNjaGVkdWxlRGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAg
ICB9CiAKLSAgICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhh
c0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1f
cGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwg
IWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxE
ZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5v
dCBpbnRlcnJ1cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4K
QEAgLTI5NSwxNCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50
U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYg
KHN0YXRlID09IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5m
bGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAg
ICAgIGlmIChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAg
IEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIg
cmV0dXJuaW5nIGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9
CiAKICAgICAvLyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5
YmFjayBoYXMganVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChv
bGRGbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7Cisg
ICAgaWYgKCFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lP
Tk1BTkFHRVIoX19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0
IHN0YXJ0Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9p
ZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMo
KQogICAgICAgICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc2VkKSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhP
ZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xp
ZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2Up
KQorICAgICAgICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQg
JiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFy
Z2V0ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJl
cXVlc3RlZFBpY2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZD
bGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7
CiAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGlu
ZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRl
eE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlj
a2VyOwotICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAm
JiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3Ms
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUpICYmICFmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2ls
bFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVT
ZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRl
cm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0
ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAg
ICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQx
NCw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJn
ZXRDbGllbnRzKCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdp
bGxQbGF5VG9UYXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2Ns
aWVudFN0YXRlW2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUt
PmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmlj
ZSkpIHsKICAgICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNf
Xywgc3RhdGUuZ2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0
cnVlKSIpOwogICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChzdGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0
MzEsMTMgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1Rh
cmdldE1vbml0b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwog
ICAgIGZvciAoYXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBp
ZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5
YmFja1RhcmdldE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewog
ICAgICAgICAgICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAg
ICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlM
aXN0ZW5lciA9IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3Mg
JiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAg
aGF2ZUNsaWVudFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAog
ICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdl
dCgpLCAiIHBsYXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBp
ZiAoZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZs
YWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9
IHRydWU7CiAgICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQ
bGF5VG9FbmQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJw
bGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWly
cGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgw
ZDRlMTFkYjJiZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4
NzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IElu
dFJlY3QmLCBib29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAg
Ym9vbCBhbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9Owog
Ci1TdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKQEAgLTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1l
bnQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
ZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7
IH0KK3RlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlh
UHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNw
cAppbmRleCAzODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEz
YWU1NjlhNzg5ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5
IEBAIHZvaWQgTWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUt
PnN0b3BQcm9kdWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIE1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9j
dW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjEx
MDdhNDQzMTkyMzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTVi
YmNiNmFlNWJmYzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQg
Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcg
KzE0Myw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1fc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwog
CiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdE
YXRhIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYx
MjhiYzgyMTM3OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVl
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRp
YVN0cmVhbVRyYWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJh
Y2tzOwogfQogCi1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNh
cHR1cmVTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQw
MSw3ICs0MDEsNyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2Vy
dmVyJiBvYnNlcnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwog
fQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVk
aWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFt
VHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1
cmVUcmFjaygpKQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpA
QCAtNDEzLDMzICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlh
U3RyZWFtVHJhY2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJl
U3RhdGUoc291cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291
cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2Um
IHNvdXJjZSkKIHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3Vy
Y2UubXV0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlm
IChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAg
ICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAg
ICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11
dGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291
cmNlLmludGVycnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJl
RGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1
cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0
ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJ
bnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNl
OworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVE
aXNwbGF5Q2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6VW5rbm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
ICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1U
cmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFj
a3MoKSkgewogICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVu
dCB8fCBjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4
MywxMyArNDgzLDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29y
ZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVB
dWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3Vy
Y2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291
cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0
YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNN
dXRlZCk7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRh
aW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAg
ICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlk
ZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2VFbmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
VmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAg
ICAgfQogI2Vsc2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5
cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToK
LSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMo
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAg
ICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9w
cml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUt
PnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5t
dXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2Fw
dHVyZUlzTXV0ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0
YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3BlYWtlcjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246
CkBAIC01MjUsMjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFn
ZU11dGVkU3RhdGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hl
c0tpbmQoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpb1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvVmlkZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6Ok5vbmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAg
ICAgfQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVy
ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgYm9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0
dXJlVHJhY2sgOiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5
ODM2MjBlZWU4OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQy
ZTcwOGU0N2U2NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhU3RyZWFtVHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQm
LCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRD
YXB0dXJlKERvY3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAg
c3RhdGljIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3Rh
dGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9N
dXRlZFN0YXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJl
ZlB0cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0
OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0Owog
CiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2
ZXIoT2JzZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRm
MDE0NWViYTc2YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRm
NS4uODUyNWU3ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwCkBAIC0zNiw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
SlNNZWRpYVN0cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJt
aXNzaW9ucy9QZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVy
bWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdh
MmRmN2M5Njg2MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYw
Y2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJt
aXNzaW9uU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25z
L1Blcm1pc3Npb25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2Yzcz
MjJjZTkzNWY4YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1
MDFkNzIwNTk1ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4
dE9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgi
CkBAIC0zNTYsMTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJh
Y2soKQogICAgIHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2so
KTsKIH0KIAotTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVk
aWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5h
dGlvbigpLmlzUGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJ
c05vdFBsYXlpbmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6Ondp
bGxCZWdpblBsYXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFu
Z2VkKCkKIHsKICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAg
IGlmICghZG9jdW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgp
IHx8IG1lZGlhU3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8gfHwgaXNTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgp
LT5oaWRkZW4oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKaW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4u
NGFiODQ3MTY5ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBw
YWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNl
c3Npb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2
Li4yNmVlZGE0YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYg
KzQ1NDMsOCBAQAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29j
b2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZG
RTVCODI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNE
RUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRC
QkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8q
IERvY3VtZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBF
MjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJ
bmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RGMTM1MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRD
MEYyMDgwMDBDNDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMy
RTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZl
clBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUNERjJCMDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlD
MDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4
MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdp
c3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBB
RUUyNEIgLyogR3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmlkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2
OTMwMDU1NTlBNyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3Nh
Z2VUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYz
ODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEb2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgx
RjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2
Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIy
Mjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEy
MjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAw
QjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1
QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyog
UGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJ
CQlBODE4NUYzNTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJ
CTFBNDk0RUQ1MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJ
CQlDRDkyRjUxMDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJ
CQkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJ
CUVEMkJBODNCMDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNF
MDU3RkEzMTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICov
LAogCQkJCUNFMDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCAqLywKQEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1
ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMy
MjYwRkZFRTAwRjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3Vt
ZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0
QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYs
NiArMzQ1MzMsNyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFF
NiAvKiBQYWdlSGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3
MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBF
MjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
QjA1MjQxRkI1MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJENUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdl
LmNwcAppbmRleCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4
ZTcxNTNlNDg2MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExv
Z2dlci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2
MjMwY2JkOTkwNWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1
ZTlkMmU1YzRiNzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUg
PHd0Zi9nbGliL0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3
NDhmNDFkZDJiMGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRj
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTg3Y2JhNGMz
MWI3MGU1OGI0MWUzYTY2YWNjZjBiYTJhNmY3NTg4ZS4uMzlmMmEwMzljMDI1OGExNjUzM2RiOTVh
MDVhYzk4OTIzMmYxOGM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNjY4NDg2ZmQ4N2ZjZmU0NGUy
OGMxYzVkMWE3NjgyY2I5YmFlNzIzNi4uNjMyM2Y1ZDY0Y2JjNmJjNmIwMjJmMDU1ODM4OTA2YzAz
ZjdiNTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQ29sb3IuY3BwCmluZGV4IDZjMDg1YTgwMGNkZjRhZjM0YjIzNTJjMjVjYWJiMTM5ZWIwNWU2
ZGUuLjAzODZlMzY2MDllNGNlOGQ3NDBjNzlmMTg2N2U3NjY3YmVkMmM2N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVDb2xvci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1Db2xvciBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29y
ZCwgT3B0aW9uU2V0PE9wdGlvbnM+IG9wdGlvbnMpCitDb2xvciBTdHlsZUNvbG9yOjpjb2xvckZy
b21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29yZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKQogewogICAgIGlmIChjb25zdCBjaGFyKiB2YWx1ZU5hbWUgPSBnZXRWYWx1ZU5h
bWUoa2V5d29yZCkpIHsKICAgICAgICAgaWYgKGNvbnN0IE5hbWVkQ29sb3IqIG5hbWVkQ29sb3Ig
PSBmaW5kQ29sb3IodmFsdWVOYW1lLCBzdHJsZW4odmFsdWVOYW1lKSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
Q29sb3IuaAppbmRleCBlNGU1OGRmOWM1ZWZlNDg3NTJjZTg4ZjEyNDEwY2UyMzlmMTM5Mjc2Li4z
MjE0NGY0ZjFmNjViNjBmNjg2ZGYyNzZmMjU0ZTlmMjBkZDZjNzcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUNvbG9yLmgKQEAgLTM3LDE1ICszNywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBTdHlsZUNvbG9yIHsKLSAgICBlbnVtIGNsYXNzIE9wdGlvbnMgOiB1aW50OF90IHsKLSAg
ICAgICAgRm9yVmlzaXRlZExpbmsgPSAxIDw8IDAsCi0gICAgICAgIFVzZVN5c3RlbUFwcGVhcmFu
Y2UgPSAxIDw8IDEsCi0gICAgICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAotICAgICAg
ICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEgPDwgMwotICAgIH07CitlbnVtIGNs
YXNzIFN0eWxlQ29sb3JPcHRpb25zIDogdWludDhfdCB7CisgICAgRm9yVmlzaXRlZExpbmsgPSAx
IDw8IDAsCisgICAgVXNlU3lzdGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKKyAgICBVc2VEYXJrQXBw
ZWFyYW5jZSA9IDEgPDwgMiwKKyAgICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEg
PDwgMworfTsKIAotICAgIHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQs
IE9wdGlvblNldDxPcHRpb25zPik7CitzdHJ1Y3QgU3R5bGVDb2xvciB7CisgICAgc3RhdGljIENv
bG9yIGNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPik7CiAgICAgc3RhdGljIGJvb2wgaXNBYnNvbHV0ZUNvbG9yS2V5d29yZChDU1NWYWx1ZUlE
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yS2V5d29yZChD
U1NWYWx1ZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IGJiOGQ1
M2NjYzQ0NWM3MGNmYTgyZmVjZjYzNWQ1Y2IyMDQ2ZjY0YTcuLjJlNjVjNjI0NDk3MzM3ZTZiOTAw
YWUzOTAwYzFhMTI2Yzk3ZDZjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFy
YWN0ZXJEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENoYXJhY3RlckRh
dGEpOwogc3RhdGljIGJvb2wgY2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihjb25zdCBDaGFyYWN0
ZXJEYXRhJiBub2RlKQogewogICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZS5kb2N1bWVudCgpOwot
ICAgIHJldHVybiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNU
RVJEQVRBTU9ESUZJRURfTElTVEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKQorICAgIHJldHVybiAhZG9j
dW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURf
TElTVEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSkKICAgICAgICAgJiYgIWRvY3VtZW50
Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6RE9NU1VCVFJFRU1PRElGSUVEX0xJU1RFTkVSKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXgg
Mjk2Njc2Nzc2OGYwZDcxNDc0MmUzNmJjZTViNjEwODY5NzdmOTFmZi4uNjRjOTI0NjVmMmExMDNi
M2E5OTBlNjFhM2NmMTI4YTA5NWIyYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5oCkBAIC0zMSw3ICszMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw3ICs3Niw3
IEBAIGNsYXNzIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0
IENoaWxkTGlzdE11dGF0aW9uU2NvcGUoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAg
ICAgICAgaWYgKHRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11
dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQo
KS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
Q2hpbGRMaXN0KSkKICAgICAgICAgICAgIG1fYWNjdW11bGF0b3IgPSBDaGlsZExpc3RNdXRhdGlv
bkFjY3VtdWxhdG9yOjpnZXRPckNyZWF0ZSh0YXJnZXQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDJiNTliMzZiYzg5YWQyZWRmOTUyOTk0NTE2ZGE5ODk3
YTA3ZjQ3OGUuLmFkOGE3NTQ5NGZiZWQwMjllODE2MmQwY2JhNWVlNGE4ZTIwZDE2Y2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBBTFdBWVNf
SU5MSU5FIE5vZGVWZWN0b3IgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hpbGRyZW5XaXRoU2Ny
aXB0QXNzZXJ0aW9uKENoaQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChzb3VyY2UgPT0g
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKTsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNj
b3BlOjpJbk1haW5UaHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBpZiAoVU5M
SUtFTFkoZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpDaGlsZExpc3QpKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRM
aXN0KSkpIHsKICAgICAgICAgICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRo
aXMpOwogICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQogICAgICAgICAg
ICAgICAgIG11dGF0aW9uLndpbGxSZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCBlOGJjNTZlNzZlNmY2NGM5NmY3MWFmYzYzY2MyZDc2ZDEyZmYwY2E0
Li5hZGY1MzU1MmZlMDdmNTVhN2YxMTkzNDgwZjU1Y2MyYmRlMWJhNjVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5
cy5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50Rm9udExvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCkBAIC0xNzcsNiArMTc4
LDcgQEAKICNpbmNsdWRlICJQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1
ZGUgIlB1YmxpY1N1ZmZpeC5oIgogI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1ZGUgIlJUQ05l
dHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpAQCAt
MjM5LDYgKzI0MSw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgor
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIK
QEAgLTk3OSw3ICs5ODIsNyBAQCB2b2lkIERvY3VtZW50OjpyZXNldExpbmtDb2xvcigpCiAKIHZv
aWQgRG9jdW1lbnQ6OnJlc2V0VmlzaXRlZExpbmtDb2xvcigpCiB7Ci0gICAgbV92aXNpdGVkTGlu
a0NvbG9yID0gU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtpdExpbmss
IHN0eWxlQ29sb3JPcHRpb25zKG51bGxwdHIpIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlz
aXRlZExpbmspOworICAgIG1fdmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJv
bUtleXdvcmQoQ1NTVmFsdWVXZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8
IFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6
OnJlc2V0QWN0aXZlTGlua0NvbG9yKCkKQEAgLTM1NzgsNiArMzU4MSwxMyBAQCBSZWZQdHI8UlRD
RGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0Rh
dGFDaGFubmVsUmVtbwogICAgIHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0
ZVJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJM
RShXRUJfUlRDKQordm9pZCBEb2N1bWVudDo6c2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05l
dHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKQoreworICAgIG1fcnRjTmV0d29ya01h
bmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsKK30KKyNlbmRpZgorCiBib29sIERv
Y3VtZW50OjpjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGlu
YXRpb25VUkwpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpAQCAtNDQwMywxOCArNDQxMywxOCBAQCB2
b2lkIERvY3VtZW50Ojpub3RlVXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lk
IERvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdNZWRpYSgpCiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlv
UHJvZHVjZXJzLmhhc051bGxSZWZlcmVuY2VzKCkpOwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRl
OwogICAgIGZvciAoYXV0byYgYXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNlcnMpCiAgICAg
ICAgIHN0YXRlLmFkZChhdWRpb1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3Rh
dGUoKnRoaXMpKTsKICAgICBpZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAg
c3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0lu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKKyAgICAg
ICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQpOwogCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjcyNSw3ICs2NzM1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hQ
YWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAgICAgZGlz
cGF0Y2hXaW5kb3dFdmVudChQYWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnBhZ2VzaG93RXZlbnQsIHBlcnNpc3RlZCksIHRoaXMpOwogfQogCi12b2lkIERvY3VtZW50Ojpl
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBl
dmVudEluaXQpCiB7CiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OkRP
TU1hbmlwdWxhdGlvbiwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBXVEZNb3ZlKGV2ZW50SW5pdCks
IEV2ZW50OjpJc1RydXN0ZWQ6OlllcykpOwogfQpAQCAtNzUwOSwxNSArNzUxOSwxNSBAQCBib29s
IERvY3VtZW50Ojp1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1PcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6
OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK09wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnM7CiAgICAgaWYgKHVzZVN5c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlv
bnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICBpZiAo
dXNlRGFya0FwcGVhcmFuY2Uoc3R5bGUpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxl
Q29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKCkpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICBy
ZXR1cm4gb3B0aW9uczsKIH0KIApAQCAtNzY5NCw3ICs3NzA0LDcgQEAgdm9pZCBEb2N1bWVudDo6
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVu
dCwgYm9vbAogICAgIHBhZ2UtPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHBv
c2l0aW9uLCBpc1ZpZGVvLCByb3V0ZVNoYXJpbmdQb2xpY3ksIHJvdXRpbmdDb250ZXh0VUlEKTsK
IH0KIAotdm9pZCBEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZShNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0
aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtODE5OSw3ICs4MjA5LDcgQEAgdm9pZCBE
b2N1bWVudDo6b3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKLXZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQordm9pZCBEb2N1bWVudDo6c3RvcE1lZGlh
Q2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewogICAgIE1lZGlh
U3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoKnRoaXMsIGtpbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCAzODZlMzc4MjgwODhmM2ZkMWVhN2JmYzgwNjgyZTk1YTg1MDg5MDA2Li5kMmJlY2Vi
NTNiMTgwNjQ3MmJiMzYzZTUwYmNmNTAwYjk2NWNhNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMuaCIKICNpbmNs
dWRlICJEb2N1bWVudEV2ZW50VGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWxlbWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGb2N1c09wdGlvbnMuaCIKICNpbmNsdWRl
ICJGb250U2VsZWN0b3JDbGllbnQuaCIKQEAgLTQzLDMwICs0MiwyMSBAQAogI2luY2x1ZGUgIkZy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRl
ICJHcmFwaGljc1R5cGVzLmgiCi0jaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgotI2luY2x1ZGUg
Ik11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVyLmgiCiAj
aW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAj
aW5jbHVkZSAiUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgotI2luY2x1
ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKLSNp
bmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1
ZGUgIlJlbmRlclB0ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNp
bmNsdWRlICJTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5n
V2l0aERpcmVjdGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKLSNpbmNsdWRlICJTdHls
ZVVwZGF0ZS5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVGV4dFJl
c291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3Bl
LmgiCiAjaW5jbHVkZSAiVXNlckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJWaWV3cG9y
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlTdGF0ZS5oIgotI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtOTYsMTEgKzg2LDE2
IEBAIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KIAorbmFtZXNwYWNlIFBB
TCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QVhPYmplY3RDYWNoZTsKIGNsYXNzIEFwcEhpZ2hsaWdodFN0b3JhZ2U7CiBjbGFzcyBBdHRyOwor
Y2xhc3MgQ2FudmFzQmFzZTsKIGNsYXNzIENEQVRBU2VjdGlvbjsKIGNsYXNzIENTU0N1c3RvbVBy
b3BlcnR5VmFsdWU7CiBjbGFzcyBDU1NGb250U2VsZWN0b3I7CkBAIC0xMzIsNiArMTI3LDcgQEAg
Y2xhc3MgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBj
bGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lOwor
Y2xhc3MgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRUeXBlOwog
Y2xhc3MgRWRpdGluZ0JlaGF2aW9yOwogY2xhc3MgRWRpdG9yOwpAQCAtMTgzLDYgKzE3OSw3IEBA
IGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVk
aWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CitjbGFz
cyBNZWRpYVByb2R1Y2VyOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5
TWF0Y2hlcjsKIGNsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpAQCAtMTk2LDcgKzE5
Myw5IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVj
dGlvbjsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBRdWlya3M7CitjbGFzcyBSVENOZXR3
b3JrTWFuYWdlcjsKIGNsYXNzIFJhbmdlOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyVHJl
ZUJ1aWxkZXI7CiBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2s7CkBAIC0yMjMsNiArMjIyLDcgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwog
Y2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEF1dG9TaXppbmc7
CitjbGFzcyBUZXh0RW5jb2Rpbmc7CiBjbGFzcyBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjsK
IGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CkBAIC0y
NTAsMjAgKzI1MCwyOSBAQCBzdHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVzdDsKIHN0cnVjdCBCb3Vu
ZGFyeVBvaW50Owogc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRlcnNlY3Rp
b25PYnNlcnZlckRhdGE7CitzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogZW51bSBDb2xsZWN0
aW9uVHlwZTsKIAorZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90
OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7Citl
bnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
Um91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAg
OiB1aW50MTZfdDsKK2VudW0gY2xhc3MgU3R5bGVDb2xvck9wdGlvbnMgOiB1aW50OF90OworZW51
bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7CiAKK3VzaW5nIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU+OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQz
Ml90OwogCiBuYW1lc3BhY2UgU3R5bGUgewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBTY29wZTsK
K2NsYXNzIFVwZGF0ZTsKIH0KIAogZW51bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgeyBQYWdl
c2hvd0V2ZW50Tm90UGVyc2lzdGVkLCBQYWdlc2hvd0V2ZW50UGVyc2lzdGVkIH07CkBAIC0zNTQs
NyArMzYzLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBFdmVudFRhcmdl
dDo6V2Vha1ZhbHVlVHlwZTsKICAgICB1c2luZyBFdmVudFRhcmdldDo6d2Vha1B0ckZhY3Rvcnk7
CiAKLSAgICBzdGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGUoY29uc3QgU2V0dGluZ3MmLCBjb25z
dCBVUkwmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGUo
Y29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKICAgICBzdGF0aWMgUmVmPERvY3VtZW50PiBj
cmVhdGVOb25SZW5kZXJlZFBsYWNlaG9sZGVyKEZyYW1lJiwgY29uc3QgVVJMJik7CiAgICAgc3Rh
dGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKQEAgLTQ2MCwxMSArNDY5LDEx
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZhdWx0Q2hhcnNldEZv
ckxlZ2FjeUJpbmRpbmdzKCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgY2hhcnNldCgpIGNvbnN0IHsg
cmV0dXJuIERvY3VtZW50OjplbmNvZGluZygpOyB9CisgICAgaW5saW5lIFN0cmluZyBjaGFyc2V0
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNoYXJhY3RlclNldFdpdGhVVEY4
RmFsbGJhY2soKSBjb25zdDsKLSAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nKCkgY29uc3Q7
CisgICAgaW5saW5lIFRleHRFbmNvZGluZyB0ZXh0RW5jb2RpbmcoKSBjb25zdDsKIAotICAgIEF0
b21TdHJpbmcgZW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiB0ZXh0RW5jb2RpbmcoKS5kb21OYW1l
KCk7IH0KKyAgICBpbmxpbmUgQXRvbVN0cmluZyBlbmNvZGluZygpIGNvbnN0OwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYpOyAvLyBVc2VkIGJ5IE9i
akMgLyBHT0JqZWN0IGJpbmRpbmdzIG9ubHkuCiAKQEAgLTU3OSw3ICs1ODgsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoY29uc3Qg
UmVuZGVyU3R5bGUqKSBjb25zdDsKIAotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OworICAgIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5
bGUqKSBjb25zdDsKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvckZvckJh
Y2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0Owog
CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPFJhbmdlPiBjcmVhdGVSYW5nZSgpOwpAQCAtNjQ1LDcg
KzY1NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIHVwZGF0ZUxheW91dElmRGltZW5zaW9u
c091dE9mRGF0ZShFbGVtZW50JiwgRGltZW5zaW9uc0NoZWNrID0gQWxsRGltZW5zaW9uc0NoZWNr
KTsKICAgICAKLSAgICBBWE9iamVjdENhY2hlKiBleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25z
dDsKKyAgICBpbmxpbmUgQVhPYmplY3RDYWNoZSogZXhpc3RpbmdBWE9iamVjdENhY2hlKCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSgpIGNv
bnN0OwogICAgIHZvaWQgY2xlYXJBWE9iamVjdENhY2hlKCk7CiAKQEAgLTcxMyw3ICs3MjIsNyBA
QCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBSVENOZXR3b3JrTWFuYWdlciog
cnRjTmV0d29ya01hbmFnZXIoKSB7IHJldHVybiBtX3J0Y05ldHdvcmtNYW5hZ2VyLmdldCgpOyB9
Ci0gICAgdm9pZCBzZXRSVENOZXR3b3JrTWFuYWdlcihSZWY8UlRDTmV0d29ya01hbmFnZXI+JiYg
cnRjTmV0d29ya01hbmFnZXIpIHsgbV9ydGNOZXR3b3JrTWFuYWdlciA9IFdURk1vdmUocnRjTmV0
d29ya01hbmFnZXIpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSVENOZXR3b3JrTWFu
YWdlcihSZWY8UlRDTmV0d29ya01hbmFnZXI+JiYpOwogI2VuZGlmCiAKICAgICBib29sIGNhbk5h
dmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCA9IFVS
TCgpKTsKQEAgLTg5MSwxMiArOTAwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzTGlzdGVuZXJU
eXBlRm9yRXZlbnRUeXBlKFBsYXRmb3JtRXZlbnQ6OlR5cGUpIGNvbnN0OwogICAgIHZvaWQgYWRk
TGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlKTsKIAotICAg
IGJvb2wgaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlIHR5cGUpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9tdXRhdGlvbk9ic2Vy
dmVyVHlwZXMgJiB0eXBlOwotICAgIH0KLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzKCkg
Y29uc3QgeyByZXR1cm4gbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7IH0KLSAgICB2b2lkIGFkZE11
dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211
dGF0aW9uT2JzZXJ2ZXJUeXBlcyB8PSB0eXBlczsgfQorICAgIGlubGluZSBib29sIGhhc011dGF0
aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlKSBjb25zdDsKKyAg
ICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fbXV0YXRpb25P
YnNlcnZlclR5cGVzLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgYWRkTXV0YXRpb25PYnNlcnZlclR5
cGVzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIHR5cGVzKSB7IG1fbXV0YXRpb25PYnNlcnZlclR5
cGVzLmFkZCh0eXBlcyk7IH0KIAogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGdldE92ZXJyaWRl
U3R5bGUoRWxlbWVudCosIGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIG51bGxwdHI7IH0KIApAQCAt
MTE4MCw3ICsxMTg2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcXVldWVUYXNrVG9EaXNwYXRjaEV2
ZW50T25XaW5kb3coVGFza1NvdXJjZSwgUmVmPEV2ZW50PiYmKTsKICAgICB2b2lkIGVucXVldWVP
dmVyZmxvd0V2ZW50KFJlZjxFdmVudD4mJik7CiAgICAgdm9pZCBkaXNwYXRjaFBhZ2VzaG93RXZl
bnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVu
cXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQ6OkluaXQmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKTsK
ICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNv
bnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGRpc3BhdGNoUG9wc3RhdGVFdmVudChSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHN0YXRlT2JqZWN0KTsKIApAQCAtMTM2NSw3ICsx
MzcxLDcgQEAgcHVibGljOgogICAgIFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbigpIGNv
bnN0IHsgcmV0dXJuICpTZWN1cml0eUNvbnRleHQ6OnNlY3VyaXR5T3JpZ2luKCk7IH0KICAgICBT
ZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdG9wRG9jdW1l
bnQoKS5zZWN1cml0eU9yaWdpbigpOyB9CiAKLSAgICBib29sIGlzU2FtZU9yaWdpbkFzVG9wRG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRv
cE9yaWdpbigpKTsgfQorICAgIGlubGluZSBib29sIGlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQo
KSBjb25zdDsKICAgICBib29sIHNob3VsZEZvcmNlTm9PcGVuZXJCYXNlZE9uQ09PUCgpIGNvbnN0
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmIGNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3QgZmluYWw7CkBAIC0xNDAyLDkgKzE0MDgsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBdWRpb1Byb2R1Y2VyKE1lZGlh
UHJvZHVjZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUF1ZGlvUHJvZHVjZXIo
TWVkaWFQcm9kdWNlciYpOwogICAgIHZvaWQgc2V0QWN0aXZlU3BlZWNoUmVjb2duaXRpb24oU3Bl
ZWNoUmVjb2duaXRpb24qKTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVk
aWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQorICAgIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0
ZTsgfQogICAgIHZvaWQgbm90ZVVzZXJJbnRlcmFjdGlvbldpdGhNZWRpYUVsZW1lbnQoKTsKLSAg
ICBib29sIGlzQ2FwdHVyaW5nKCkgY29uc3QgeyByZXR1cm4gTWVkaWFQcm9kdWNlcjo6aXNDYXB0
dXJpbmcobV9tZWRpYVN0YXRlKTsgfQorICAgIGlubGluZSBib29sIGlzQ2FwdHVyaW5nKCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwogICAg
IHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKTsKIApAQCAtMTQxMiw3ICsxNDE4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoTWVkaWFQbGF5
YmFja1RhcmdldENsaWVudCYpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYpOwogICAgIHZvaWQgc2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBib29sLCBSb3V0ZVNoYXJp
bmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRQbGF5YmFja1RhcmdldChQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4m
Jik7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eURpZENoYW5nZShQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBib29sKTsKQEAgLTE0NTEsNyArMTQ1Nyw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc2V0SGFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2soKSB7IG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sg
PSB0cnVlOyB9CiAgICAgYm9vbCBoYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2s7IH0KLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCk7CisgICAgdm9p
ZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kKTsKICAgICB2
b2lkIG1lZGlhU3RyZWFtQ2FwdHVyZVN0YXRlQ2hhbmdlZCgpOwogI2VuZGlmCiAKQEAgLTIwNjIs
MTQgKzIwNjgsMTQgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3dyaXRlUmVjdXJzaW9uRGVw
dGggeyAwIH07CiAKICAgICBJbmhlcml0ZWRCb29sIG1fZGVzaWduTW9kZSB7IGluaGVyaXQgfTsK
LSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogICAgIGJvb2wgbV91c2Vy
SGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgeyBmYWxzZSB9OwogICAgIEJhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFja0ZvcndhcmRDYWNo
ZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8UmVmZXJyZXJQb2xpY3k+IG1fcmVmZXJyZXJQb2xpY3k7
CiAgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBDb21wbGV0ZSB9OwogICAgIENyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5IG1fY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k7CiAKLSAgICBNdXRhdGlv
bk9ic2VydmVyT3B0aW9ucyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcyB7IDAgfTsKKyAgICBNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlczsKIAogICAgIGJvb2wg
bV9hY3RpdmVQYXJzZXJXYXNBYm9ydGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fd3JpdGVSZWN1
cnNpb25Jc1Rvb0RlZXAgeyBmYWxzZSB9OwpAQCAtMjIyOSw0MyArMjIzNSw2IEBAIHByaXZhdGU6
CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7CiAK
LWlubGluZSBUZXh0RW5jb2RpbmcgRG9jdW1lbnQ6OnRleHRFbmNvZGluZygpIGNvbnN0Ci17Ci0g
ICAgaWYgKGF1dG8qIGRlY29kZXIgPSB0aGlzLT5kZWNvZGVyKCkpCi0gICAgICAgIHJldHVybiBk
ZWNvZGVyLT5lbmNvZGluZygpOwotICAgIHJldHVybiBUZXh0RW5jb2RpbmcoKTsKLX0KLQotaW5s
aW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDogbV90ZW1wbGF0ZURv
Y3VtZW50LmdldCgpOwotfQotCi1pbmxpbmUgQVhPYmplY3RDYWNoZSogRG9jdW1lbnQ6OmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFoYXNFdmVyQ3JlYXRlZEFuQVhP
YmplY3RDYWNoZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGV4aXN0aW5n
QVhPYmplY3RDYWNoZVNsb3coKTsKLX0KLQotaW5saW5lIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6
OmNyZWF0ZShjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsKQotewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERvY3VtZW50KG51bGxwdHIsIHNldHRpbmdzLCB1cmwpKTsK
LX0KLQotaW5saW5lIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCi17
Ci0gICAgaWYgKFVOTElLRUxZKG1fYWNjZXNzS2V5Q2FjaGUpKQotICAgICAgICBpbnZhbGlkYXRl
QWNjZXNzS2V5Q2FjaGVTbG93Q2FzZSgpOwotfQotCi0vLyBUaGVzZSBmdW5jdGlvbnMgYXJlIGhl
cmUgYmVjYXVzZSB0aGV5IHJlcXVpcmUgdGhlIERvY3VtZW50IGNsYXNzIGRlZmluaXRpb24gYW5k
IHdlIHdhbnQgdG8gaW5saW5lIHRoZW0uCi0KLWlubGluZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBOb2RlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gJmRv
Y3VtZW50KCkuY29udGV4dERvY3VtZW50KCk7Ci19Ci0KIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBEb2N1bWVudCYpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxpbmVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmgKaW5kZXggNDBhZGQwNGU2
YTBmYTZhZDJlMzQ0ZjBkN2VhN2E0YjEzODcxOGYzZS4uZGQyNTBhZTJjODg5ZGViMmI2MjA3YzBk
MjQ5OGI1NmMxMTZjZmUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaApAQCAt
MjYsNiArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zNiw2ICszOSwxMCBAQCBpbmxpbmUgVGV4dEVuY29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2Rp
bmcoKSBjb25zdAogICAgIHJldHVybiBUZXh0RW5jb2RpbmcoKTsKIH0KIAoraW5saW5lIEF0b21T
dHJpbmcgRG9jdW1lbnQ6OmVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gdGV4dEVuY29kaW5nKCku
ZG9tTmFtZSgpOyB9CisKK2lubGluZSBTdHJpbmcgRG9jdW1lbnQ6OmNoYXJzZXQoKSBjb25zdCB7
IHJldHVybiBEb2N1bWVudDo6ZW5jb2RpbmcoKTsgfQorCiBpbmxpbmUgY29uc3QgRG9jdW1lbnQq
IERvY3VtZW50Ojp0ZW1wbGF0ZURvY3VtZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV90ZW1w
bGF0ZURvY3VtZW50SG9zdCA/IHRoaXMgOiBtX3RlbXBsYXRlRG9jdW1lbnQuZ2V0KCk7CkBAIC01
OSw2ICs2NiwxOSBAQCBpbmxpbmUgdm9pZCBEb2N1bWVudDo6aW52YWxpZGF0ZUFjY2Vzc0tleUNh
Y2hlKCkKICAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsKIH0KIAor
aW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzQ2FwdHVyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
TWVkaWFQcm9kdWNlcjo6aXNDYXB0dXJpbmcobV9tZWRpYVN0YXRlKTsKK30KKworaW5saW5lIGJv
b2wgRG9jdW1lbnQ6Omhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlIHR5cGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5
cGVzLmNvbnRhaW5zQW55KHR5cGUpOworfQorCitpbmxpbmUgYm9vbCBEb2N1bWVudDo6aXNTYW1l
T3JpZ2luQXNUb3BEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIHNlY3VyaXR5T3JpZ2luKCkuaXNT
YW1lT3JpZ2luQXModG9wT3JpZ2luKCkpOyB9CisKKwogLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBo
ZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSBEb2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFu
ZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgogCiBpbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggNGMwZWZmYzViY2Q0MmJmMjk1MmIxOTJlNDEyNDA1NmEwMzg1MzJlMC4uN2IzN2Qw
ZDhiYzEwMGJlMjJkYzhmOTViNTM3Y2FhMGEyMjYwOTE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAi
RE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRUaW1lbGluZS5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAppbmRleCA0NzZmOGRhYjliNjUxNjE4ODllZjll
ODBiYjQ1OGNiNjZkZWY0ZGI1Li5kOTYxNjQzZDI1YTU3Nzk5ZWNiMjBlMjlmN2QxZWIyNjk5ZmZk
MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCkBAIC03MSwzNyAr
NzEsMzcgQEAgTXV0YXRpb25PYnNlcnZlcjo6fk11dGF0aW9uT2JzZXJ2ZXIoKQogCiBib29sIE11
dGF0aW9uT2JzZXJ2ZXI6OnZhbGlkYXRlT3B0aW9ucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBv
cHRpb25zKQogewotICAgIHJldHVybiAob3B0aW9ucyAmIChBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVy
RGF0YSB8IENoaWxkTGlzdCkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8
ICEob3B0aW9ucyAmIEF0dHJpYnV0ZU9sZFZhbHVlKSkKLSAgICAgICAgJiYgKChvcHRpb25zICYg
QXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0cmlidXRlRmlsdGVyKSkKLSAgICAgICAgJiYg
KChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwgIShvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlKSk7CisgICAgcmV0dXJuIG9wdGlvbnMuY29udGFpbnNBbnkoTXV0YXRpb25UeXBlOjpB
bGxNdXRhdGlvblR5cGVzKQorICAgICAgICAmJiAob3B0aW9ucy5jb250YWlucyhNdXRhdGlvblR5
cGU6OkF0dHJpYnV0ZXMpIHx8ICFvcHRpb25zLmNvbnRhaW5zKERlbGl2ZXJ5RmxhZ3M6OkF0dHJp
YnV0ZU9sZFZhbHVlKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoTXV0YXRpb25UeXBl
OjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9ucy5jb250YWlucyhPYnNlcnZhdGlvbkZsYWdzOjpBdHRy
aWJ1dGVGaWx0ZXIpKQorICAgICAgICAmJiAob3B0aW9ucy5jb250YWlucyhNdXRhdGlvblR5cGU6
OkNoYXJhY3RlckRhdGEpIHx8ICFvcHRpb25zLmNvbnRhaW5zKERlbGl2ZXJ5RmxhZ3M6OkNoYXJh
Y3RlckRhdGFPbGRWYWx1ZSkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBNdXRhdGlvbk9ic2Vy
dmVyOjpvYnNlcnZlKE5vZGUmIG5vZGUsIGNvbnN0IEluaXQmIGluaXQpCiB7Ci0gICAgTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucyA9IDA7CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlv
bnMgb3B0aW9uczsKIAogICAgIGlmIChpbml0LmNoaWxkTGlzdCkKLSAgICAgICAgb3B0aW9ucyB8
PSBDaGlsZExpc3Q7CisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6Q2hpbGRMaXN0
KTsKICAgICBpZiAoaW5pdC5zdWJ0cmVlKQotICAgICAgICBvcHRpb25zIHw9IFN1YnRyZWU7Cisg
ICAgICAgIG9wdGlvbnMuYWRkKE9ic2VydmF0aW9uRmxhZ3M6OlN1YnRyZWUpOwogICAgIGlmIChp
bml0LmF0dHJpYnV0ZU9sZFZhbHVlLnZhbHVlX29yKGZhbHNlKSkKLSAgICAgICAgb3B0aW9ucyB8
PSBBdHRyaWJ1dGVPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoRGVsaXZlcnlGbGFnczo6
QXR0cmlidXRlT2xkVmFsdWUpOwogICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGFPbGRWYWx1ZS52
YWx1ZV9vcihmYWxzZSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YU9sZFZhbHVl
OworICAgICAgICBvcHRpb25zLmFkZChEZWxpdmVyeUZsYWdzOjpDaGFyYWN0ZXJEYXRhT2xkVmFs
dWUpOwogCiAgICAgSGFzaFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CiAgICAgaWYg
KGluaXQuYXR0cmlidXRlRmlsdGVyKSB7CiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbml0
LmF0dHJpYnV0ZUZpbHRlci52YWx1ZSgpKQogICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyLmFk
ZCh2YWx1ZSk7Ci0gICAgICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlRmlsdGVyOworICAgICAgICBv
cHRpb25zLmFkZChPYnNlcnZhdGlvbkZsYWdzOjpBdHRyaWJ1dGVGaWx0ZXIpOwogICAgIH0KIAot
ICAgIGlmIChpbml0LmF0dHJpYnV0ZXMgPyBpbml0LmF0dHJpYnV0ZXMudmFsdWUoKSA6IChvcHRp
b25zICYgKEF0dHJpYnV0ZUZpbHRlciB8IEF0dHJpYnV0ZU9sZFZhbHVlKSkpCi0gICAgICAgIG9w
dGlvbnMgfD0gQXR0cmlidXRlczsKKyAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRy
aWJ1dGVzLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zQW55KHsgT2JzZXJ2YXRpb25GbGFnczo6
QXR0cmlidXRlRmlsdGVyLCBEZWxpdmVyeUZsYWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSB9KSkKKyAg
ICAgICAgb3B0aW9ucy5hZGQoTXV0YXRpb25UeXBlOjpBdHRyaWJ1dGVzKTsKIAotICAgIGlmIChp
bml0LmNoYXJhY3RlckRhdGEgPyBpbml0LmNoYXJhY3RlckRhdGEudmFsdWUoKSA6IChvcHRpb25z
ICYgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlKSkKLSAgICAgICAgb3B0aW9ucyB8PSBDaGFyYWN0ZXJE
YXRhOworICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGEgPyBpbml0LmNoYXJhY3RlckRhdGEudmFs
dWUoKSA6IG9wdGlvbnMuY29udGFpbnMoRGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVyRGF0YU9sZFZh
bHVlKSkKKyAgICAgICAgb3B0aW9ucy5hZGQoTXV0YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKTsK
IAogICAgIGlmICghdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApp
bmRleCAyYWYyNjNiZDRhNzI1NGEyMGEzYjkzNTMxN2I3OTY5MWFmNGNjN2RhLi4yZDMyY2E2MjQ2
MjQ2MDhiZDRjZDNjOTBhMzFkZDhhNzk1YzgzMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bk9ic2VydmVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKQEAgLTUzLDMwICs1NCwzMSBAQCBjbGFzcyBNdXRhdGlv
blJlY29yZDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBXaW5kb3dFdmVudExvb3A7CiAKLXVzaW5nIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gdW5zaWduZWQgY2hhcjsKLXVzaW5nIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zID0gdW5zaWduZWQgY2hhcjsKK2VudW0gY2xhc3MgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUgOiB1aW50OF90IHsKKyAgICAvLyBNdXRhdGlvblR5cGUKKyAgICBD
aGlsZExpc3QgPSAxIDw8IDAsCisgICAgQXR0cmlidXRlcyA9IDEgPDwgMSwKKyAgICBDaGFyYWN0
ZXJEYXRhID0gMSA8PCAyLAogCi1jbGFzcyBNdXRhdGlvbk9ic2VydmVyIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4gewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoTXV0YXRpb25PYnNlcnZlcik7Ci1wdWJsaWM6Ci0gICAgZW51bSBNdXRhdGlvblR5cGUgewot
ICAgICAgICBDaGlsZExpc3QgPSAxIDw8IDAsCi0gICAgICAgIEF0dHJpYnV0ZXMgPSAxIDw8IDEs
Ci0gICAgICAgIENoYXJhY3RlckRhdGEgPSAxIDw8IDIsCisgICAgQWxsTXV0YXRpb25UeXBlcyA9
IENoaWxkTGlzdCB8IEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhLAogCi0gICAgICAgIEFsbE11
dGF0aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YQotICAg
IH07CisgICAgLy8gT2JzZXJ2YXRpb25GbGFncworICAgIFN1YnRyZWUgPSAxIDw8IDMsCisgICAg
QXR0cmlidXRlRmlsdGVyID0gMSA8PCA0LAorICAgIEFsbE9ic2VydmF0aW9uRmxhZ3MgPSBTdWJ0
cmVlIHwgQXR0cmlidXRlRmlsdGVyLAogCi0gICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7Ci0g
ICAgICAgIFN1YnRyZWUgPSAxIDw8IDMsCi0gICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwg
NAotICAgIH07CisgICAgLy8gRGVsaXZlcnlGbGFncworICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0g
MSA8PCA1LAorICAgIENoYXJhY3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwKKyAgICBBbGxEZWxp
dmVyeUZsYWdzID0gQXR0cmlidXRlT2xkVmFsdWUgfCBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUsCit9
OwogCi0gICAgZW51bSBEZWxpdmVyeUZsYWdzIHsKLSAgICAgICAgQXR0cmlidXRlT2xkVmFsdWUg
PSAxIDw8IDUsCi0gICAgICAgIENoYXJhY3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwKLSAgICB9
OwordXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGU+OwordXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSBP
cHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OwogCitjbGFzcyBNdXRhdGlvbk9i
c2VydmVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4geworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoTXV0YXRpb25PYnNlcnZlcik7CitwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUmVmPE11dGF0aW9uQ2FsbGJhY2s+
JiYpOwogCiAgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKQEAgLTExNSw2ICsxMTcsMTAgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzKFdpbmRvd0V2ZW50
TG9vcCYpOwogCiBwcml2YXRlOgorICAgIHVzaW5nIE11dGF0aW9uVHlwZSA9IE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlOworICAgIHVzaW5nIE9ic2VydmF0aW9uRmxhZ3MgPSBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZTsKKyAgICB1c2luZyBEZWxpdmVyeUZsYWdzID0gTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGU7CisKICAgICBleHBsaWNpdCBNdXRhdGlvbk9ic2VydmVyKFJlZjxNdXRh
dGlvbkNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGRlbGl2ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKaW5kZXggMDI3
NmU0MmJlNWJkODNmZjQyYTc5MzU2YmRlOWNlNzM2MDk5Y2JkZS4uMmFlYzY1MjkwYzM4NDc3MjI2
YTBmMDg4MjJmZmEzN2M1ZGY3YjBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCkBAIC00NCw5ICs0NCw5IEBAIGlubGlu
ZSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXAoSGFzaE1hcDxSZWY8CiAgICAgQVNTRVJUKCFtX29ic2VydmVycy5pc0VtcHR5KCkpOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZChOb2RlJiB0YXJnZXQsIE11
dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
CitzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25z
IG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKLSAg
ICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1
dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRy
aWJ1dGVOYW1lKTsKICAgICBhdXRvIG9ic2VydmVycyA9IHRhcmdldC5yZWdpc3RlcmVkTXV0YXRp
b25PYnNlcnZlcnModHlwZSwgYXR0cmlidXRlTmFtZSk7CiAgICAgaWYgKG9ic2VydmVycy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaAppbmRleCAzYzBhZTUyMzdkNGIyZTJl
ZmY3MGRkZTY2MmU1ZjRlMWU1NjkyNmFkLi4yZjQ2YzgxZThlNWU4OTMwZmZjY2MxZGI4NGRhODBi
Y2E5MDQxYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXAuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtNDYsMzYgKzQ2LDM2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoaWxk
TGlzdE11dGF0aW9uKE5vZGUmIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRv
Y3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hp
bGRMaXN0KSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zIG9sZFZhbHVlRmxhZyA9IDA7Ci0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0
YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKKyAgICAg
ICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnOworICAgICAgICBy
ZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOwogICAgIH0KIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoYXJhY3RlckRh
dGFNdXRhdGlvbihOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1
bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJh
Y3RlckRhdGEpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2Jz
ZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEsIE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhLCBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKICAgICB9
CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwPiBjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSYgdGFyZ2V0LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9j
dW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpBdHRy
aWJ1dGVzKSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcykpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQo
dGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzLCBNdXRhdGlvbk9ic2VydmVyOjpB
dHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUpOworICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcywg
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRl
TmFtZSk7CiAgICAgfQogCiAgICAgYm9vbCBpc09sZFZhbHVlUmVxdWVzdGVkKCkgY29uc3Q7CiAg
ICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUmVmPE11dGF0aW9uUmVjb3JkPiYmKTsKIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwPiBjcmVhdGVJZk5lZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6
Ok11dGF0aW9uVHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFn
LCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lID0gbnVsbHB0cik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRl
SWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1l
KiBhdHRyaWJ1dGVOYW1lID0gbnVsbHB0cik7CiAKLSAgICBib29sIGhhc09sZFZhbHVlKE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMg
JiBtX29sZFZhbHVlRmxhZzsgfQorICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25SZWNvcmRE
ZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykgY29uc3QgeyByZXR1cm4gb3B0aW9ucy5jb250YWluc0Fu
eShtX29sZFZhbHVlRmxhZyk7IH0KIAogICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gbV9vYnNlcnZlcnM7CiAgICAgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnMgbV9vbGRWYWx1ZUZsYWc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggYzZmMWZi
MTVkZmY4ZDVlYmZmMmY1YzViN2I3ZWRlM2FlM2QwZWI3OS4uZDNjMWZhNjZlZDJmNTU0N2YwYjgw
OWM2OTA3YmI0NWM0ZjlmNTRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtOTUsMTYgKzk1LDE2IEBAIHN0ZDo6dW5p
cXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbjo6dGFrCiAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1ib29sIE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYg
bm9kZSwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpIGNvbnN0Citib29sIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OnNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYgbm9kZSwgTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkg
Y29uc3QKIHsKLSAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
cyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7Ci0gICAgaWYgKCEobV9vcHRp
b25zICYgdHlwZSkpCisgICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25U
eXBlOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAg
ICBpZiAoIW1fb3B0aW9ucy5jb250YWlucyh0eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKCZtX25vZGUgIT0gJm5vZGUgJiYgIWlzU3VidHJlZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAodHlwZSAhPSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVz
IHx8ICEobV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlRmlsdGVyKSkKKyAg
ICBpZiAodHlwZSAhPSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyB8fCAh
bV9vcHRpb25zLmNvbnRhaW5zKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVG
aWx0ZXIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghYXR0cmlidXRlTmFtZS0+
bmFtZXNwYWNlVVJJKCkuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCAzMTEwODQxOGYxZWQ1NjRmYWI5NWI5NmZj
OGEwY2ZkYTUzNTNmM2ViLi5kNjg0YjFmMGIxYjg3ZTgxNzA1MDY0MDA1Y2FiNzkwNTE3MDc4NDEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uLmgKQEAgLTU2LDEzICs1NiwxMyBAQCBwdWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhh
c2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiB0YWtlVHJhbnNpZW50UmVnaXN0cmF0aW9ucygp
OwogICAgIGJvb2wgaGFzVHJhbnNpZW50UmVnaXN0cmF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
dHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgJiYgIW1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9k
ZXMtPmlzRW1wdHkoKTsgfQogCi0gICAgYm9vbCBzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5v
ZGUmLCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUq
IGF0dHJpYnV0ZU5hbWUpIGNvbnN0OwotICAgIGJvb2wgaXNTdWJ0cmVlKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6U3VidHJlZTsgfQorICAgIGJvb2wgc2hv
dWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUs
IGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpIGNvbnN0OworICAgIGJvb2wgaXNT
dWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmNvbnRhaW5zKE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25UeXBlOjpTdWJ0cmVlKTsgfQogCiAgICAgTXV0YXRpb25PYnNlcnZlciYgb2JzZXJ2
ZXIoKSB7IHJldHVybiBtX29ic2VydmVyLmdldCgpOyB9CiAgICAgTm9kZSYgbm9kZSgpIHsgcmV0
dXJuIG1fbm9kZTsgfQotICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5
T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIChNdXRhdGlvbk9ic2VydmVyOjpB
dHRyaWJ1dGVPbGRWYWx1ZSB8IE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7IH0KLSAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QWxsTXV0YXRpb25UeXBlczsg
fQorICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBbGxE
ZWxpdmVyeUZsYWdzOyB9CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBl
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBl
OjpBbGxNdXRhdGlvblR5cGVzOyB9CiAKICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRvciYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5k
ZXggYTZmMTk4MzZhOWJkZDUxNjZmODgwY2U2MDY0MzJkYzA2MWVjNDNhZi4uZTUzNTE0NzEwOGZj
ZmFlMzRlMzc3NGY3ZDdiZjkzNDI0NTEwOTM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50
SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgpAQCAtMjI4Miw3ICsyMjgz
LDcgQEAgSGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4qIE5vZGU6OnRyYW5z
aWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgKICAgICByZXR1cm4gJmRhdGEtPnRyYW5zaWVu
dFJlZ2lzdHJ5OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3RyeT4gc3RhdGljIGlubGlu
ZSB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKEhhc2hNYXA8UmVmPE11
dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVy
cywgUmVnaXN0cnkqIHJlZ2lzdHJ5LCBOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11
dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQordGVt
cGxhdGU8dHlwZW5hbWUgUmVnaXN0cnk+IHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hp
bmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0
YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3Ry
eSwgTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBjb25zdCBR
dWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewogICAgIGlmICghcmVnaXN0cnkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTIyOTIsMTUgKzIyOTMsMTUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmVn
aXN0cnk+IHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRh
dGkKICAgICAgICAgICAgIGF1dG8gZGVsaXZlcnlPcHRpb25zID0gcmVnaXN0cmF0aW9uLT5kZWxp
dmVyeU9wdGlvbnMoKTsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gb2JzZXJ2ZXJzLmFkZChy
ZWdpc3RyYXRpb24tPm9ic2VydmVyKCksIGRlbGl2ZXJ5T3B0aW9ucyk7CiAgICAgICAgICAgICBp
ZiAoIXJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+
dmFsdWUgfD0gZGVsaXZlcnlPcHRpb25zOworICAgICAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUuYWRkKGRlbGl2ZXJ5T3B0aW9ucyk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKLUhh
c2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXI6Ok11
dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQorSGFz
aE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25z
PiBOb2RlOjpyZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlck9wdGlv
blR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKICAgICBI
YXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnM+IHJlc3VsdDsKLSAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmli
dXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CisgICAgQVNTRVJUKCh0
eXBlID09IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0
ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNG
b3JNdXRhdGlvbihyZXN1bHQsIG11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpLCAqdGhpcywgdHlw
ZSwgYXR0cmlidXRlTmFtZSk7CiAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRp
b24ocmVzdWx0LCB0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSwgKnRoaXMsIHR5
cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGZvciAoTm9kZSogbm9kZSA9IHBhcmVudE5vZGUoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYmRiODQy
NzA1MzllMTMxNjYxNDE2OWUwYzdmMDY2OTI3NzI0NmJhNi4uNWQ2OTNmYzI1YjQ2Y2Y0OTllNzUz
MzM2MDk3ZmQ5MTY3NTUwOGRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUg
IkxheW91dFJlY3QuaCIKLSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTdHlsZVZhbGlkaXR5LmgiCiAjaW5j
bHVkZSAiVHJlZVNjb3BlLmgiCkBAIC01NCw2ICs1Myw4IEBAIGNsYXNzIEZsb2F0UG9pbnQ7CiBj
bGFzcyBIVE1MUXVhbGlmaWVkTmFtZTsKIGNsYXNzIEhUTUxTbG90RWxlbWVudDsKIGNsYXNzIE1h
dGhNTFF1YWxpZmllZE5hbWU7CitjbGFzcyBNdXRhdGlvbk9ic2VydmVyOworY2xhc3MgTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbjsKIGNsYXNzIE5hbWVkTm9kZU1hcDsKIGNsYXNzIE5vZGVM
aXN0OwogY2xhc3MgTm9kZUxpc3RzTm9kZURhdGE7CkBAIC02Nyw2ICs2OCwxMCBAQCBjbGFzcyBT
VkdRdWFsaWZpZWROYW1lOwogY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRvdWNoRXZlbnQ7CiAK
K2VudW0gY2xhc3MgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgOiB1aW50OF90OwordXNpbmcg
TXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlv
blR5cGU+OwordXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSBPcHRpb25TZXQ8
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OworCiB1c2luZyBOb2RlT3JTdHJpbmcgPSBWYXJp
YW50PFJlZlB0cjxOb2RlPiwgU3RyaW5nPjsKIAogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRh
cmdldCB7CkBAIC00OTQsNyArNDk5LDcgQEAgcHVibGljOgogICAgIEV2ZW50VGFyZ2V0RGF0YSog
ZXZlbnRUYXJnZXREYXRhQ29uY3VycmVudGx5KCkgZmluYWw7CiAgICAgRXZlbnRUYXJnZXREYXRh
JiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBmaW5hbDsKIAotICAgIEhhc2hNYXA8UmVmPE11dGF0
aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJlZE11
dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CisgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25P
YnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUq
IGF0dHJpYnV0ZU5hbWUpOwogICAgIHZvaWQgcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0
aW9uT2JzZXJ2ZXImLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9t
U3RyaW5nPiYgYXR0cmlidXRlRmlsdGVyKTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9i
c2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlZ2lzdGVy
VHJhbnNpZW50TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDE3
NmJjM2I0ODkyMGZlZDA4YTJhYTk1YWEyYmFlNjY3YWVkZjQyZmQuLjNlMGY3ZTU0MzVlYTM3ZmM2
YjlkY2ZiNDFmZTM2MTg1MjVmMmRmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggZjA0OWJkODRiMTJhYWQwY2RhM2VlNzE1ODI2MDk0MzgxZjA5MTI1
My4uYzRmMjk1OTk5MzllYzE2ODMyYzZkZjZjMGNlYzAyMGJjZDQyNTBiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5o
IgogI2luY2x1ZGUgIkN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlci5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaAppbmRleCBiMTA3NjY1OTkzMTBkZjQ1NDYx
NzMxZjM0YmIzYzllOWMyOGNlMzNjLi5hYjI3ODM3Yjk4ODM3OTY0ZThiNjhkMzZkMTBmNzE4OTVk
NmE2MGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50LmgKQEAgLTI5LDMwICsyOSwzMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gY2xhc3MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uIDogYm9v
bCB7IEVuZm9yY2UsIFJlcG9ydCB9OworCitzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudEluaXQgOiBFdmVudEluaXQgeworICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJ
bml0KCkgeyB9CisKKyAgICBTdHJpbmcgZG9jdW1lbnRVUkk7CisgICAgU3RyaW5nIHJlZmVycmVy
OworICAgIFN0cmluZyBibG9ja2VkVVJJOworICAgIFN0cmluZyB2aW9sYXRlZERpcmVjdGl2ZTsK
KyAgICBTdHJpbmcgZWZmZWN0aXZlRGlyZWN0aXZlOworICAgIFN0cmluZyBvcmlnaW5hbFBvbGlj
eTsKKyAgICBTdHJpbmcgc291cmNlRmlsZTsKKyAgICBTdHJpbmcgc2FtcGxlOworICAgIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiB7IFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjo6RW5mb3JjZSB9OworICAgIHVuc2lnbmVk
IHNob3J0IHN0YXR1c0NvZGUgeyAwIH07CisgICAgdW5zaWduZWQgbGluZU51bWJlciB7IDAgfTsK
KyAgICB1bnNpZ25lZCBjb2x1bW5OdW1iZXIgeyAwIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmKTsKK307CisKIGNsYXNzIFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCk7CiBwdWJsaWM6Ci0g
ICAgZW51bSBjbGFzcyBEaXNwb3NpdGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKLQot
ICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKLSAgICAgICAgSW5pdCgpIHsgfQotCi0gICAg
ICAgIFN0cmluZyBkb2N1bWVudFVSSTsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVyOwotICAgICAg
ICBTdHJpbmcgYmxvY2tlZFVSSTsKLSAgICAgICAgU3RyaW5nIHZpb2xhdGVkRGlyZWN0aXZlOwot
ICAgICAgICBTdHJpbmcgZWZmZWN0aXZlRGlyZWN0aXZlOwotICAgICAgICBTdHJpbmcgb3JpZ2lu
YWxQb2xpY3k7Ci0gICAgICAgIFN0cmluZyBzb3VyY2VGaWxlOwotICAgICAgICBTdHJpbmcgc2Ft
cGxlOwotICAgICAgICBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiB7IERpc3Bvc2l0aW9uOjpFbmZv
cmNlIH07Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0IHN0YXR1c0NvZGUgeyAwIH07Ci0gICAgICAg
IHVuc2lnbmVkIGxpbmVOdW1iZXIgeyAwIH07Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciB7IDAgfTsKLQotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIEluaXQmKTsKLSAgICB9Owor
ICAgIHVzaW5nIERpc3Bvc2l0aW9uID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bv
c2l0aW9uOworICAgIHVzaW5nIEluaXQgPSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5p
dDsKIAogICAgIHN0YXRpYyBSZWY8U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyID0geyB9LCBJ
c1RydXN0ZWQgaXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObykKICAgICB7CkBAIC0xMTEsNyArMTE0
LDcgQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAordm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBF
dmVudEluaXQmPigqdGhpcyk7CiAgICAgZW5jb2RlciA8PCBkb2N1bWVudFVSSTsKQEAgLTEyOSw3
ICsxMzIsNyBAQCB2b2lkIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQ6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgot
Ym9vbCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYgZXZlbnRJbml0KQor
Ym9vbCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiBldmVudEluaXQpCiB7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aWNfY2FzdDxFdmVudEluaXQmPihldmVudEluaXQp
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTY0LDExICsxNjcsMTEgQEAgYm9vbCBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
U2VjdXJpdHlQb2xpY3kKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRp
b24+IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKLSAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3Np
dGlvbiwKLSAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3Np
dGlvbjo6RW5mb3JjZSwKLSAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
OjpEaXNwb3NpdGlvbjo6UmVwb3J0CisgICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudERpc3Bvc2l0aW9uLAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREaXNwb3NpdGlvbjo6RW5mb3JjZSwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OlJlcG9ydAogICAgID47CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDU4ZDc1M2Iy
M2Q2M2I4NzI5NTkwMDdjNWE3MDk2NzM5N2M4ODc4NGEuLjk4MDQ0NjBjZGIyYmM1YWI1MTcxNGI0
MDRhYjg1YzBjYWZlMjJhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgi
CiAjaW5jbHVkZSAiRWRpdG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3Bw
CmluZGV4IGY5NWEzMWM1MzkxMmQwM2JhZmY0Y2M4NTcwMDJiNWMxY2QzNTk5MzIuLmYzNDAxNDM1
OWZmN2NkYmQ4NTdjZmRjZGJiYTliMjRmMjkxMDFhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcu
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nLmNwcAppbmRleCA4NDY2NGMzYjc0ODM2NTNhZjA5Zjc5ZWJiNTMzZTc1NGJh
NjM4NGExLi45Mjk0NmYzNzMxMzNlMTEwZGRiMTExZjU4YTkzYzFiMmM3ZjBiNDliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgi
CiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDU2NTc4MjdkOWE2NmJiM2I3M2VmYjU1ZjkzMTYxZWU4
MzhiNDVhMzAuLjFiNzA3NjViYWJjNGQ0NjgxMWMxYWZkNzk0NjUxMDdiOGEyMjA4MzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJEaWN0
YXRpb25BbHRlcm5hdGl2ZS5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKICNpbmNs
dWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5o
IgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcAppbmRleCBjMmViOGE3YmM0MTMyMmNhOGQyMDg0NDMzYTIzNWZmZTk3YjVl
YmJkLi43MTM2OTk1NDkwNWY5ZjJmMWQ4ZTFjZGUwNjBlNDFkY2FlY2ExNDEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2lu
Y2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJDb2xvckJsZW5kaW5nLmgiCiAjaW5j
bHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggODc5MTQyMTZjYWEyYWU3MDVhNWM0ODk5YmRm
YTAxNDRjMzY2MDhkZC4uMjI3MmViYjMwZGU3OTIxNjM2NmZiMTE5MzY1ODFiOTI1OGJkY2ExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFU
cmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVk
aXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IGYz
ODNhZGRkMTliMGNmMDA0NmJhNTM3Y2IyZDU4YmQ0YTcxMDBlOTQuLjQ2MjM3YWQ2YzFlOTM3MWJk
Y2FkNzBmY2FmYjBmN2ZlNWRmOGQ1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJBWE9i
amVjdENhY2hlLmgiCiAjaW1wb3J0ICJDaHJvbWUuaCIKICNpbXBvcnQgIkNocm9tZUNsaWVudC5o
IgorI2ltcG9ydCAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9y
dCAiUmVuZGVyVmlldy5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKaW5kZXggNWU0MWI0OTI0MTZhMzk0MGVkNmRlMTMxMmEzMTUzM2VkZDgxNzkzOS4uZjQ4
ZmQ4Zjg1YTMzZmY5Yjc5YWU0M2Q3MzQyNDYzYzM2OGFmOGM0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUg
IkhUTUxEZXRhaWxzRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgog
I2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA2OWNjNDE3NzBjYzlmYzUxYjk1
ODIyMzUzMjQ2MzIzMzMyNmI3YTMuLjI0MzhlOTE3NmIyMzlhZGU4ZWEwOWJiY2VmODFkZDVkYmM1
MDUwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzgs
NyArMzgsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRhdGVDb21w
b25lbnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmlsZUlucHV0VHlwZS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDU2ZjBjNzlkNDVkOTI3Njk2
OTY3MjEzODAwNTNkZjBiNDllMWM3ZjEuLjc0ZmQ0NWU2ZGJiYjQ1NmI1NDUzYjFkNDBmMzhjZjA0
NjQwZDc3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNs
dWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEZWZhdWx0UmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMu
aCIKICNpbmNsdWRlICJFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggMjkzNzliMjBmNTkxZmZlZjBiZDU1N2M4MDhkOGI0OTQwYWFhNWE3MC4uNjVl
YmZhN2E1NGQ4ZmFkMzRhN2FlMDljNTViYTMzMDVlNzM2YzEwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04NSw4ICs4NSw4IEBACiAjaW5jbHVkZSAiTmF2
aWdhdG9yTWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJQT0RJbnRlcnZhbFRyZWUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiUGFnZUlubGluZXMuaCIKICNpbmNsdWRlICJQaWN0dXJl
SW5QaWN0dXJlU3VwcG9ydC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCkBAIC03OTczLDcgKzc5NzMsNyBA
QCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNr
UmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5k
aWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1T
cmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSkpIHsKKyAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFT
dGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRp
bykgJiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElO
Rk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4g
YXVkaW8gTWVkaWFTdHJlYW1UcmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KQEAgLTc5ODgsNyArNzk4OCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxk
T3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
Ci0gICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYg
ZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAgICBpZiAoaGFzTWVk
aWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUo
KS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0
dXJlRGV2aWNlKSkgewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVy
bmluZyB0cnVlIGJlY2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNrIik7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA0OCw3ICs4MDQ4LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVVwZGF0ZU1lZGlhU3RhdGUoKQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogewotICAgIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKKyAgICBNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gbWVkaWFTdGF0ZSgpOwogICAgIGlmIChtX21lZGlh
U3RhdGUgPT0gc3RhdGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtODA1OSwzMSArODA1OSwzMSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogfQogI2VuZGlmCiAK
LU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0
YXRlKCkgY29uc3QKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7CiAgICAgTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogCiAg
ICAgYm9vbCBoYXNBY3RpdmVWaWRlbyA9IGlzVmlkZW8oKSAmJiBoYXNWaWRlbygpOwogICAgIGJv
b2wgaGFzQXVkaW8gPSB0aGlzLT5oYXNBdWRpbygpOwogICAgIGlmIChpc1BsYXlpbmdUb0V4dGVy
bmFsVGFyZ2V0KCkpCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKIAogI2lmIEVOQUJM
RShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgaWYgKG1faGFzUGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlMaXN0ZW5lcnMpIHsKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpOworICAg
ICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXIpOwogICAgICAgICBpZiAoIW1lZGlhU2Vzc2lvbigpLndpcmVs
ZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkpCi0gICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpOwor
ICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZyk7CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJlVXNlckdl
c3R1cmUgPSBtX21lZGlhU2Vzc2lvbiAmJiBtZWRpYVNlc3Npb24oKS5oYXNCZWhhdmlvclJlc3Ry
aWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQXV0b3BsYXlU
b0V4dGVybmFsRGV2aWNlKTsKICAgICBpZiAobV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEg
JiYgIXJlcXVpcmVVc2VyR2VzdHVyZSAmJiAhbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNzVGFyZ2V0
KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxE
ZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSk7CiAKICAgICBpZiAo
aGFzQWN0aXZlVmlkZW8gfHwgaGFzQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbyk7CiAKICAgICBpZiAoaGFzQWN0
aXZlVmlkZW8gJiYgZW5kZWRQbGF5YmFjaygpKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpOwogI2VuZGlmCiAKICAgICBpZiAoIWlz
UGxheWluZygpKQpAQCAtODA5NywxMCArODA5NywxMCBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiAgICAgaXNQbGF5
aW5nQXVkaW8gPSBpc1BsYXlpbmdBdWRpbyAmJiAhbXV0ZWQoKTsKICNlbmRpZgogICAgIGlmIChp
c1BsYXlpbmdBdWRpbykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OklzUGxheWluZ0F1ZGlvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlkZW8pCi0gICAg
ICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyk7
CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlk
ZW8pOwogCiAgICAgcmV0dXJuIHN0YXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAppbmRleCBjZmQxOWQzYzE3M2YxMGNlNGVmZTBjMjBhZWIyYWJlNTkxOWQyNTk2Li4w
MmQ0ODgwMTE0NzQ2MmM5MTNlY2Y5OWI2YjAzYjgwMTFkMGQxZWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoKIAogICAg
IGRvdWJsZSBtYXhCdWZmZXJlZFRpbWUoKSBjb25zdDsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGxheW91dFNpemVDaGFuZ2VkKCk7CiAgICAgdm9pZCB2aXNpYmlsaXR5RGlkQ2hhbmdlKCk7
CkBAIC0xMjE0LDcgKzEyMTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlh
U3RhdGU7CiAgICAgTW9ub3RvbmljVGltZSBtX2N1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxl
c3NFdmVudEZpcmVkVGltZTsKICAgICBib29sIG1faGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lcnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNz
VGFyZ2V0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKaW5kZXggZTJmOGE0YmY1ZDhiODUxYmI5YzE0MjMxYjgxMjhlYzI0ODg2YjdjMC4uNzlhZDRl
MjIwNmRhODA5NDhiMmEwYjU1ZmViYjFiYjg0YzgxNjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJF
dmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDk5YTRiYjJl
ZjdhNjE0Njc0YWNmNGY3OWZhN2MzZDdjZmFmOTk2MjAuLjBlMzQ4NmQ0ZjcxMDZjYzU3MTY3Y2Fm
YTY3NDgwZDk3MjE3Zjg5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNp
bmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVt
ZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggZWEyOTdmYTIzMTliZmI4NTdmNWZjYmYyNDU2NjZiMDk4MzVmMTA5
Mi4uYjVmZjAyYmRhNTU0YTAxZGE5M2I5MGFmYzA4MWM2ZWIwODgwY2NiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRhdGVJbnB1dFR5
cGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGVj
aW1hbC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRl
eCA3ZjZkMzlmM2VjZTBjZmY3NTc5NGJlZDRhYzM0ZmVkMzE2NDdmNTE3Li4yOTFlZjlhMDI4MTAy
ZjMyYWVjMzZjODljODZhZGI0ZWM3MGZlNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNocm9t
ZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0zODUs
NyArMzg1LDcgQEAgRXhwZWN0ZWQ8dm9pZCwgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW4KICAgICBpZiAobV9lbGVtZW50Lmhh
c01lZGlhU3RyZWFtU3JjT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGRvY3VtZW50LmlzQ2FwdHVy
aW5nKCkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBpZiAoZG9jdW1lbnQubWVk
aWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCisg
ICAgICAgIGlmIChkb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nQXVkaW8pCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRp
ZgpAQCAtNDAwLDcgKzQwMCw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxS
ZWFzb24+IE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVy
ZVJlcXVpcmVkKTsKICAgICB9CiAKLSAgICBpZiAodG9wRG9jdW1lbnQubWVkaWFTdGF0ZSgpICYg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVt
ZW50ICYmIHRvcERvY3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2
aW9yKCkpCisgICAgaWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgJiYgdG9wRG9jdW1l
bnQucXVpcmtzKCkubmVlZHNQZXJEb2N1bWVudEF1dG9wbGF5QmVoYXZpb3IoKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIAogICAgIGlmICh0b3BEb2N1bWVudC5oYXNIYWRVc2VySW50ZXJhY3Rpb24o
KSAmJiBkb2N1bWVudC5xdWlya3MoKS5zaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0
dXJlKCkpCkBAIC04MDksNyArODA5LDcgQEAgdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5
YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpCiAgICAgY2xpZW50KCkucGxheWJhY2tUYXJn
ZXRQaWNrZXJXYXNEaXNtaXNzZWQoKTsKIH0KIAotdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpt
ZWRpYVN0YXRlRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkK
K3ZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIHN0YXRlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggZGY2MTUxMGNl
YzY1MDEwYzJkNmJlNWU0YTBiMzA5ZjcwMjUyMzQ1NS4uZjViZWJkMjhkZWY4ODlhZTAyYTAwNmFi
ZGU2OTAwNzVjNDE1MDVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BsYXlpbmdUb1dp
cmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgbWVkaWFT
dGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQg
bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICNlbmRp
ZgogCiAgICAgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDRiMWUzYTI5YzBhNDM2
ZTQ2ZWI1NmMxOWU4YWMxOTdiMDliZTRjNDguLjhmNmI4Y2UwOGZkYjVkNzRiNjZlNTNjMTIyMGNl
MWJiYjVjZDc2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRGVj
aW1hbC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRD
aGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxD
b2xsZWN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMjkyMDJhMTE1Njk4MGE0ODZhYWI5NjUzMGI1NWI1NWE0
NTA1MzE4Ny4uOGU2NWM0ZWIxMDIzMzUyMWY0OGM3ZjRiMTIwYWQyYzg5MDlhMDdiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJGb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDllOGRmMmVj
YjAxMDQ4MzYxYjI0NGY4NTBmOWJjZWM5OWE1MTllMTkuLjZkMzFjODFmZGUxMjgwZDI0NTM5Yjlj
OWZiMmUwMjg5N2NhYjM5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAjaW5jbHVk
ZSAiRE9NRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRE9NUGF0Y2hTdXBwb3J0LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5n
LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDM3NDY4NDMy
NTc3ZjY0ZTNkMThiYzM2NjdjYTI5OGY0M2EzYmY1MDMuLjg0YjE2MzcwMTRlZjU2ZGFlOGJjZWYw
ZDcyNDk1NjJkMjBkMGRkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIK
ICNpbmNsdWRlICJDZXJ0aWZpY2F0ZVN1bW1hcnkuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9ybURh
dGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5l
clBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5
LmgKaW5kZXggOTQ2NDc0YjU4NTgxOTNiMGIzMDZjOTJlMWY1YjJlOGJjMWZhYzliYy4uNThjN2Ji
NzkzODhhYzZmMDNmMmM4MjBkODk2OGZhNGEzNTIxZmY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKQEAgLTI1LDE1ICsyNSwxNiBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8
d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIEZyYW1lOwog
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Citj
bGFzcyBTZWN1cml0eU9yaWdpbjsKIAogc3RydWN0IE5hdmlnYXRpb25SZXF1ZXN0ZXI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY5ZjM5MmNiODRkODIw
MmIyYjllY2VmMGRlMTY0NTE4MDNmMzdiNjMuLjk5Yzk3OGRjYjNjNjRjZGU2OTY1MzliZGY5YWI1
YzViNGRmMjc4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMjQwMCw3ICsyNDAwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2VuZENTUFZpb2xhdGlv
blJlcG9ydChVUkwmJiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0YT4mJiByZXAKICAgICBQaW5nTG9h
ZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCptX2ZyYW1lLCBXVEZNb3ZlKHJlcG9ydFVSTCksIFdU
Rk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
KTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkK
K3ZvaWQgRG9jdW1lbnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdU
Rk1vdmUoZXZlbnRJbml0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
CmluZGV4IDlmYzQxMzdhNjkwMGUyNGExYTgyY2VjN2NjNzU3OTNkMzQ3ZTk4MTIuLjRmYmZkNzEy
MDE5OWQyN2NmYTg3YmRkNTk2NzM3MTA2YmNlMDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oCkBAIC01MjIsNyArNTIyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250
ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYpIGZpbmFs
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgYm9vbCBkaXNh
bGxvd1dlYkFyY2hpdmUoKSBjb25zdDsKICAgICBib29sIGRpc2FsbG93RGF0YVJlcXVlc3QoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDg5MDk1
ZmUzZGU3MzI4OGUyNzMxYzEyYWYzZDI2MTY4ZjdjYzM1MzAuLjQzMmJkMTJiMzJjZThjMGY3NGIy
MGYxMWYzZjI4OWU4ZGU3YzcxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGlj
eS5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA2ODNmODRjMjU0MTVkM2Vj
MzQ2N2UwODEwOGI4MTNmNWE3MWE4MjM5Li5hZTkyYWRkODc1NjA1MWQwNTZhMjMwMmRkY2JjNDg5
YjEwZTc0ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAg
LTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2lu
Y2x1ZGUgIkRPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IGZjYjIyMDJmODI4MTBhZjJhNGY4ZDllNDUxY2I1NzRmYTBhN2ZkNDMu
LmMzYmIzNDZhMzk0N2M1ODk4M2VlOWQ5ZjhlYjA0Yzk5MjgwMzYxNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgIkRhdGFi
YXNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5j
bHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggMTA3ZjMyNDY0Y2QxZDNiYjkyM2MyYTlmNzUzMGRhZmViNWIxNzhlOS4uMzZlZTMyNzVkNjky
MDdlNDUwMjE2MmYwYWJhZWI4OGU1OGViYzc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBA
CiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0Y2ZjYjE2ODFmMTczMDlhYzRh
N2ZjMGIyMTlhY2VmOTU5NTdiNzlkLi5jY2JkZmE0OTYzZTQwMzk2Yzc5ZWE5NjM5Y2I1YTA3OWI0
ZjNlZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUwMyw3ICs1MDMsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZlbnRGbGFn
cz4pIHsgfQogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC01MzQsNyArNTM0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllcikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2lu
dCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVh
bCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
RW5hYmxlZChib29sKSAgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRGlzbWlzc1BvcHVwKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggZTAwNWNlZGZmY2RlYzFkYWQ5MWFmZmU4NmVlYWIyMmQzODM1ZDk5MC4uN2Y5ZDhl
YzQ1NGMwMzVmMjAyNTljZTg5ODI0YzY1N2Y1YWYxZTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNvbXBvc2VkVHJlZUFu
Y2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNs
dWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkRyYWdFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwCmluZGV4IGJlNzZlMWJkMjc3NTUxMzFkMDgzMTZmMmQzYmU5OWJjY2E2OGRjMWYu
LmExMWEzYjM0OGFiYTM5OWY2NDg3NmRlNDk2OTIxZGZlOGYwZDY0M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDhjNDM3N2NiOTU0YTBiMWEw
ODllNTJlZmFkOGE0MWQ5MTA1OGE4ZjcuLmZkMzMzNjhhZDIxZGM1NTk2NzRiM2E3YTY4ZDIzMzRj
ZTRmMTMzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNs
dWRlICJFZGl0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1NGE1YWMwMDBl
MjdjOTJkYTk0MGU5ZjNhNzMxMmM3YjljZWU2ZjZjLi5kNWViM2FlZmQxNzZiMTAxYmVlMjNjMDEz
YWY0NzFjZjlhNDQ4OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVidWdQYWdlT3Zlcmxh
eXMuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U1ZHLmgiCkBA
IC0yMDgyLDcgKzIwODMsNyBAQCBib29sIEZyYW1lVmlldzo6dXNlRGFya0FwcGVhcmFuY2UoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IEZyYW1lVmlldzo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAorT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsKICNp
ZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJl
ckZvckNvbG9yU2NoZW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkOWQ0OGFmNWY3
ZDE0OTc3ZjNhNTBkZTU2NTk5M2VkZTNkNTJhMzE4Li45N2FkZWIxMDA2ZmM1NTZiOTlmZTU4YWY3
MDA4MmM3YjJlYWRjODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTUzOCw3ICs1Mzgs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRTZXRDdXJzb3IoKSBjb25zdDsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdCBmaW5hbDsKLSAgICBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29u
c3Q7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgcGx1Z2luIGxvYWRp
bmcgaXMgZGVjb3VwbGVkIGZyb20gbGF5b3V0LgogICAgIHZvaWQgZmx1c2hBbnlQZW5kaW5nUG9z
dExheW91dFRhc2tzKCk7CkBAIC05NTUsNyArOTU1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
bV9pc1RyYW5zcGFyZW50IHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKLSAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gbV9zdHlsZUNvbG9yT3B0aW9uczsKKyAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG1fc3R5bGVDb2xvck9wdGlvbnM7CiAjZW5k
aWYKIAogICAgIGJvb2wgbV9pc1RyYWNraW5nUmVwYWludHMgeyBmYWxzZSB9OyAvLyBVc2VkIGZv
ciB0ZXN0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAppbmRleCA4MGFkNWFlZWZh
ZGY5ZWNiODM2YjkxMjNjMzhjNTQwZTZmNGMxNTE3Li40ZTE5ZThjZDcxYTY1MjlmOThhZjY0ODJl
NmNhNWEwNTJiMWY3MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJv
ZHVjZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApAQCAtMzEs
MzIgKzMxLDUyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBJc1BsYXlpbmdBdWRpbyA9IDEgPDwg
MCwKKyAgICBJc1BsYXlpbmdWaWRlbyA9IDEgPDwgMSwKKyAgICBJc1BsYXlpbmdUb0V4dGVybmFs
RGV2aWNlID0gMSA8PCAyLAorICAgIFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nID0g
MSA8PCAzLAorICAgIEV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUgPSAxIDw8IDQsCisg
ICAgRGlkUGxheVRvRW5kID0gMSA8PCA1LAorICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAx
IDw8IDYsCisgICAgSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgNywKKyAgICBJc1By
ZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgOCwKKyAgICBIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyID0gMSA8PCA5LAorICAgIEhhc0F1ZGlvT3JWaWRlbyA9IDEg
PDwgMTAsCisgICAgSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMSwKKyAgICBI
YXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAorICAgIEhhc011dGVkQXVkaW9D
YXB0dXJlRGV2aWNlID0gMSA8PCAxMywKKyAgICBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9
IDEgPDwgMTQsCisgICAgSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE1
LAorICAgIEhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNiwKKyAgICBI
YXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAorICAgIEhhc0FjdGl2
ZURpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOCwKKyAgICBIYXNNdXRlZERpc3BsYXlDYXB0
dXJlRGV2aWNlID0gMSA8PCAxOSwKKyAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2
aWNlID0gMSA8PCAyMCwKK307Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0g
T3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKKworZW51bSBjbGFzcyBNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3QgeworICAgIEF1ZGlvLAorICAgIFZpZGVv
LAorICAgIEF1ZGlvVmlkZW8KK307CisKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11dGVkU3Rh
dGUgOiB1aW50OF90IHsKKyAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCisgICAgQXVkaW9DYXB0
dXJlSXNNdXRlZCA9IDEgPDwgMSwKKyAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8PCAyLAor
ICAgIFNjcmVlbkNhcHR1cmVJc011dGVkID0gMSA8PCAzLAorfTsKK3VzaW5nIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+Owor
CiBjbGFzcyBNZWRpYVByb2R1Y2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUHJvZHVj
ZXI+IHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIE1lZGlhU3RhdGUgewotICAgICAgICBJc1Bs
YXlpbmdBdWRpbyA9IDEgPDwgMCwKLSAgICAgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8IDEsCi0g
ICAgICAgIElzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UgPSAxIDw8IDIsCi0gICAgICAgIFJlcXVp
cmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nID0gMSA8PCAzLAotICAgICAgICBFeHRlcm5hbERl
dmljZUF1dG9QbGF5Q2FuZGlkYXRlID0gMSA8PCA0LAotICAgICAgICBEaWRQbGF5VG9FbmQgPSAx
IDw8IDUsCi0gICAgICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCi0gICAgICAg
IElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCi0gICAgICAgIElzUHJldmlvdXNU
cmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA4LAotICAgICAgICBIYXNQbGF5YmFja1RhcmdldEF2
YWlsYWJpbGl0eUxpc3RlbmVyID0gMSA8PCA5LAotICAgICAgICBIYXNBdWRpb09yVmlkZW8gPSAx
IDw8IDEwLAotICAgICAgICBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDExLAot
ICAgICAgICBIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAotICAgICAgICBI
YXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTMsCi0gICAgICAgIEhhc011dGVkVmlk
ZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNCwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2UgPSAxIDw8IDE1LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVy
ZURldmljZSA9IDEgPDwgMTYsCi0gICAgICAgIEhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxl
bWVudCA9IDEgPDwgMTcsCi0gICAgICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlID0g
MSA8PCAxOCwKLSAgICAgICAgSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTks
Ci0gICAgICAgIEhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDIwLAot
ICAgIH07Ci0gICAgdXNpbmcgTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhU3RhdGU+
OworICAgIHVzaW5nIE1lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTsKKyAgICB1
c2luZyBNdXRlZFN0YXRlID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGU7CisgICAgdXNpbmcgTWVk
aWFTdGF0ZUZsYWdzID0gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFnczsKKyAgICB1c2luZyBN
dXRlZFN0YXRlRmxhZ3MgPSBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzOworCiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgSXNOb3RQbGF5aW5nID0geyB9OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ2FwdHVyZU1hc2sgPSB7IE1lZGlh
U3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRB
dWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJl
RGV2aWNlIH07CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgVmlkZW9DYXB0
dXJlTWFzayA9IHsgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRp
YVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzSW50ZXJy
dXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgfTsKQEAgLTY5LDIwICs4OSw2IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCA9IDA7CiAKLSAg
ICBlbnVtIGNsYXNzIE1lZGlhQ2FwdHVyZUtpbmQgewotICAgICAgICBBdWRpbywKLSAgICAgICAg
VmlkZW8sCi0gICAgICAgIEF1ZGlvVmlkZW8KLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBNdXRl
ZFN0YXRlIHsKLSAgICAgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAotICAgICAgICBBdWRpb0Nh
cHR1cmVJc011dGVkID0gMSA8PCAxLAotICAgICAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8
PCAyLAotICAgICAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKLSAgICB9OwotCi0g
ICAgdXNpbmcgTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE11dGVkU3RhdGU+OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgTXV0ZWRTdGF0ZUZsYWdzIEF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRl
ZCA9IHsgTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6VmlkZW9D
YXB0dXJlSXNNdXRlZCB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTXV0ZWRTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0
ZWQsIE11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlNjcmVlbkNh
cHR1cmVJc011dGVkIH07CiAKQEAgLTk2LDQ5ICsxMDIsNDkgQEAgcHJvdGVjdGVkOgogCiBuYW1l
c3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kPiB7CiAgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlS2luZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQ6OlZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpb1ZpZGVvCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YUNhcHR1cmVLaW5kLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJl
S2luZDo6QXVkaW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kOjpWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtp
bmQ6OkF1ZGlvVmlkZW8KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlPiB7Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiB7CiAgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SXNQbGF5aW5nQXVkaW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OklzUGxheWluZ1ZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZp
Y2VBdXRvUGxheUNhbmRpZGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6RGlkUGxheVRvRW5kLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250
cm9sRW5hYmxlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwKLSAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvLAotICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1
ZGlvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxl
bWVudCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0
aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1
cmVEZXZpY2UKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRl
cm5hbERldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OlJl
cXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlp
bmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc05leHRUcmFj
a0NvbnRyb2xFbmFibGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVy
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZp
ZGVvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCisgICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVy
cnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRp
YUVsZW1lbnQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJl
RGV2aWNlCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gewogICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNN
dXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9D
YXB0dXJlSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlOjpBdWRpb0lzTXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCiAgICAgPjsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IDg4NTMzYjNkMmIzNzE4MmUxNjA1MmZlZDEyOTM2OGE0NmU0MjI5
YWYuLmNmMTcwMTNlNWQ2ODZmMDFkNTIyZDZkNjc3OTY0ODJmNTllZTRjZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRU
aW1lbGluZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgpAQCAtMjE3MCw3ICsyMTcxLDcgQEAgdm9pZCBQYWdlOjpzdG9yYWdlQmxvY2tp
bmdTdGF0ZUNoYW5nZWQoKQogCiB2b2lkIFBhZ2U6OnVwZGF0ZUlzUGxheWluZ01lZGlhKCkKIHsK
LSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZTsKICAgICBmb3JFYWNoRG9jdW1lbnQoWyZdKGF1dG8m
IGRvY3VtZW50KSB7CiAgICAgICAgIHN0YXRlLmFkZChkb2N1bWVudC5tZWRpYVN0YXRlKCkpOwog
ICAgIH0pOwpAQCAtMjIwOCw3ICsyMjA5LDcgQEAgdm9pZCBQYWdlOjpwbGF5YmFja0NvbnRyb2xz
TWVkaWFFbmdpbmVDaGFuZ2VkKCkKIAogI2VuZGlmCiAKLXZvaWQgUGFnZTo6c2V0TXV0ZWQoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQordm9pZCBQYWdlOjpzZXRNdXRlZChN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQogewogICAgIG1fbXV0ZWRTdGF0ZSA9
IG11dGVkOwogCkBAIC0yMjE3LDcgKzIyMTgsNyBAQCB2b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKICAgICB9KTsKIH0KIAotdm9pZCBQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkK
K3ZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZCBraW5kKQogewogICAgIFVOVVNFRF9QQVJBTShraW5kKTsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpAQCAtMzAxOCw3ICszMDE5LDcgQEAgdm9pZCBQYWdlOjpzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXgKICNlbmRp
ZgogfQogCi12b2lkIFBhZ2U6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgUGFnZTo6cGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkK
IHsKICAgICBjaHJvbWUoKS5jbGllbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5NGY4Yjhk
YTkyMDY5NjM3ODhjNTE2MTY1M2U1MDVjY2MwMDUzODM5Li5mYTg4OWY0YzRjZmRiMmRkYzNjODQz
MzdjNmFjOTE3Y2UwYjkyODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTc3LDYgKzE3NywxMiBAQCBl
bnVtIGNsYXNzIENhbldyYXAgOiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVu
dW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGUgOiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2Fw
dHVyZUtpbmQgOiB1aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6
IHVpbnQ4X3Q7CisKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25T
ZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CiAKIGVudW0gY2xh
c3MgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5yZXNwb25z
aXZlIH07CiBlbnVtIGNsYXNzIE1haW5GcmFtZU1haW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVz
IH07CkBAIC03MjksMTggKzczNSwxOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQpOwogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNl
c3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9CiAKLSAg
ICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWVkaWFTdGF0ZTsgfQorICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVk
aWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQogICAgIHZvaWQgdXBkYXRl
SXNQbGF5aW5nTWVkaWEoKTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0
ZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQotICAgIGJvb2wgaXNBdWRp
b011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH0KLSAgICBib29sIGlzTWVkaWFDYXB0dXJl
TXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCk7IH07CisgICAgTWVkaWFQcm9kdWNlck11
dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9
CisgICAgaW5saW5lIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3Q7CisgICAgaW5saW5lIGJvb2wg
aXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0OwogICAgIHZvaWQgc2NoZWR1bGVQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lkIHBsYXli
YWNrQ29udHJvbHNNZWRpYUVuZ2luZUNoYW5nZWQoKTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlh
Q2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAKICAgICBNZWRpYVNlc3Np
b25Hcm91cElkZW50aWZpZXIgbWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyKCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtZWRpYVBsYXliYWNrRXhpc3RzKCk7CkBAIC03NjMsNyAr
NzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVQ
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJvb2wsIFJvdXRlU2hh
cmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0
YXRlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyRGlzbWlzc1BvcHVwKCk7CkBAIC05OTYsNyArMTAwMiw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2luTG93UXVhbGl0eUludGVycG9sYXRpb25Nb2RlIHsgZmFsc2UgfTsKICAgICBib29sIG1f
YXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQgeyB0cnVlIH07CiAgICAgZmxvYXQgbV9t
ZWRpYVZvbHVtZSB7IDEgfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbV9t
dXRlZFN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRl
OwogCiAgICAgZmxvYXQgbV9wYWdlU2NhbGVGYWN0b3IgeyAxIH07CiAgICAgZmxvYXQgbV96b29t
ZWRPdXRQYWdlU2NhbGVGYWN0b3IgeyAwIH07CkBAIC0xMTIwLDcgKzExMjYsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jlc3Rvcmlu
Z0NhY2hlZFBhZ2UgeyBmYWxzZSB9OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVk
aWFTdGF0ZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBUaW1lciBtX3BsYXliYWNrQ29udHJv
bHNNYW5hZ2VyVXBkYXRlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGRhOTIyNjNhNzIzMjgzNjU3ZGVmMzlhMzg1MWUyMGQ2NTZkMDcxYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBib29s
IFBhZ2U6OmlzQXVkaW9NdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5j
b250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKK30KKworaW5s
aW5lIGJvb2wgUGFnZTo6aXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fbXV0ZWRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVhbUNhcHR1
cmVJc011dGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApp
bmRleCA3NjNmZjY0YmY0ZTdlOWUwZmU0NmUxM2Y4ZDgxMzE2ZDhlM2ZhYTZjLi4xYTEyMTBmYTgz
MzdjZDk1MjBmNGUwMTFhOTA3MzY3NTRkZTUxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VT
ZXJpYWxpemVyLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUu
aCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhU
TUxGcmFtZU93bmVyRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggMWRiZDE1M2I5NjBlYzJjZDMyNWQ3OTgyMDMz
MmQyOGVlYzU2NGMxMy4uMjkwOTE2MDBjYjE5NzdmOWQzMzVjMWVmYWZlYjE5MjhkZWY5MWRjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291
cmNlLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIgogI2lu
Y2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCkBAIC03NzUsNyArNzc1LDcg
QEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJp
bmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICB1bnNpZ25lZCBzaG9ydCBodHRwU3RhdHVz
Q29kZSA9IG1fc2VsZlNvdXJjZVByb3RvY29sID09ICJodHRwIiA/IG1faHR0cFN0YXR1c0NvZGUg
OiAwOwogCiAgICAgLy8gMS4gRGlzcGF0Y2ggdmlvbGF0aW9uIGV2ZW50LgotICAgIFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgdmlvbGF0aW9uRXZlbnRJbml0OworICAgIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsKICAgICB2aW9s
YXRpb25FdmVudEluaXQuZG9jdW1lbnRVUkkgPSBpbmZvLmRvY3VtZW50VVJJOwogICAgIHZpb2xh
dGlvbkV2ZW50SW5pdC5yZWZlcnJlciA9IG1fcmVmZXJyZXI7CiAgICAgdmlvbGF0aW9uRXZlbnRJ
bml0LmJsb2NrZWRVUkkgPSBibG9ja2VkVVJJOwpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjCiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmVmZmVjdGl2ZURpcmVjdGl2
ZSA9IGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5v
cmlnaW5hbFBvbGljeSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICB2aW9s
YXRpb25FdmVudEluaXQuc291cmNlRmlsZSA9IGluZm8uc291cmNlRmlsZTsKLSAgICB2aW9sYXRp
b25FdmVudEluaXQuZGlzcG9zaXRpb24gPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaXNSZXBvcnRP
bmx5KCkgPyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6UmVwb3J0
IDogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OkVuZm9yY2U7Cisg
ICAgdmlvbGF0aW9uRXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0
LmlzUmVwb3J0T25seSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9u
OjpSZXBvcnQgOiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9y
Y2U7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnN0YXR1c0NvZGUgPSBodHRwU3RhdHVzQ29kZTsK
ICAgICB2aW9sYXRpb25FdmVudEluaXQubGluZU51bWJlciA9ICBpbmZvLmxpbmVOdW1iZXI7CiAg
ICAgdmlvbGF0aW9uRXZlbnRJbml0LmNvbHVtbk51bWJlciA9IGluZm8uY29sdW1uTnVtYmVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lD
bGllbnQuaAppbmRleCA4ZTA1MTgyNjQxNDA2ZjJjYzhjYWEyZGM1NmFlMzM2MDYzNGU2YjFlLi5m
MmZlNjM4OTQ2NDk2ZWRiYjMwMzg0NTM5OGZmOWU3Mzk3YzM0YmQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaApAQCAt
NTEsNyArNTEsNyBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgQ29udGVudFNlY3VyaXR5UG9saWN5
Q2xpZW50IHsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBv
cnQoVVJMJiYsIFJlZjxGb3JtRGF0YT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
OjpJbml0JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJikgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDcyZTRmNjkxYjRmOTUyNTc1ZDkzMTFlNGQw
YTdkZTE3Y2ZmMDIzNjguLmQwYTRmZTRhMjBlMGFlOGQyN2RlM2Q0YjllZTY5ZTUwN2E1YTBlZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVk
ZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNTAwZmRiMGZkY2NjM2UzMTliY2Q2MWFlMjNiNGRl
ZWUwNWRhOWE1Zi4uYTE0ODg3ZmM3NzVlMmI5N2I2OWY5YzU5NWFlODI3MGFhZDcxMWM4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL0RhdGFNdXRleC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeUxpbmVMYXlvdXQuY3BwCmluZGV4IDEzYmExNWQ3YTJjZWExNzk5ODVhYTFmN2EwZDUz
M2U5Y2Q0NzhmNGMuLjcxZmIyMjM1YWRlYTdhN2YyNDUxNmY0MjE4YmRhODk1MjdhZDUyYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQmlkaVJl
c29sdmVyLmgiCiAjaW5jbHVkZSAiQnJlYWtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRmxvYXRpbmdPYmplY3RzLmgiCiAjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yQm94LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkNGQ5ZjJjNzE5ZWJjNDlhZGRi
MmJiZWJmZWVjNDFhZTFiY2RjZWVlLi5mMTQ0OTgxNDU2ZmZmODg0MWNkYjE0ODVjYmU2NWZjNDhi
MjY5NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI1
LDcgKzI1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogCiAjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1
ZGUgIkV2ZW50UmVnaW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKaW5kZXggODNhMGVjMzliNDliZTM1OTQ2ZmRkOTE5NGY3ZWFiNDI3NzgzNzNkOS4uMjdm
OWQ0ZTMzODY5MzhmYTNhZjhiMGE4YTZhMDE5M2JjNGEwZDQ1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNs
dWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRUaW1lbGluZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAppbmRleCBiNGU1MzNhNjc5MGM1MzM2MjE0YTRmNTI0M2I1YmZlYjdiOWI4ODA1
Li43NzdkODQwNjYxZGNiZjRlMDE4ODRhOTE5YmVhZDRkMTQzMWY4MjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnRD
YXNjYWRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5k
ZXggNjdkZjYxODQyM2JlMWM1ODZjMzI4Y2Q2NDMxM2RiNTZlZDdjZTM4Yi4uY2FiNjNmNWIxNGNl
NWViODdlZTRkODdhODBiMzg2NWRmYjZlOWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxN2RmOTRlYzQwY2MyZTE5NjRkMDVjYTI4
MzMwZDkwMTI5MGUyMDkxLi4xMDJjNGVlMTZjMGQxYWQ0ZDgxNTdmODFiZTQ2NjZiZjQzZDE2ODNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDaHJv
bWUuaCIKICNpbmNsdWRlICJDb2xvckJsZW5kaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBmNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMzNjljNmQ0YWU4YWVjLi5i
MGQzNzE0YjFiYzRjYzZiYmQ0OGFkYjdmMjkzNjc3MzE0YWEwODg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlJlbmRlck9iamVjdC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVt
ZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgpAQCAtMTc5Myw3
ICsxNzk0LDcgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QK
ICAgICByZXR1cm4gZG9jdW1lbnQoKS51c2VEYXJrQXBwZWFyYW5jZSgmc3R5bGUoKSk7CiB9CiAK
LU9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxlQ29sb3JP
cHRpb25zKCkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gUmVuZGVyT2JqZWN0
OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCkuc3R5
bGVDb2xvck9wdGlvbnMoJnN0eWxlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCmluZGV4IDEyNjAwMDRmNWMyZjdlMWRkMDJiMjQwODU1ZDIxNTg1NWJmNmIzM2Iu
LmM1MzRjOWZkZDA1ZDU4NDcwZmE3ZTY2MTQ4NmE2YWVhY2NkNjY4ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkgY29uc3Q7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3Q7Ci0g
ICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29u
c3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygp
IGNvbnN0OwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICB2b2lkIHNldEhhc0FYT2JqZWN0KGJv
b2wgZmxhZykgeyBtX2hhc0FYT2JqZWN0ID0gZmxhZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggN2VlOTQ0MjZjYzUyYmFkYjQwZmZjNGNiN2Nm
YmQxMjc3NGJjZTczYS4uMWZlNjNiMTU3OTY5ZGU4MDllOGZiM2E4ZTQ4MDIyZmJiODI5ODY2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0xNTks
NyArMTU5LDcgQEAgQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdodENvbG9y
KCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0hpZ2hsaWdodGVkKHN0YXRlLCBo
aWdobGlnaHREYXRhKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9y
T3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9Owor
ICAgICAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29s
b3JPcHRpb25zID0geyBTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9Owog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUoKS5hcHBIaWdobGlnaHRDb2xvcihzdHls
ZUNvbG9yT3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDQ4ZGNmYjNjOGZhMDZjMzcyMTVi
YTQ3MDRjMjUyNjA0OWJkYjYxMGYuLjM0MzdjYWM0ZWQ3ODg5NTRjYTg0NWU3MjJiZTk0OGFhNTRh
OTZiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJCcmVha0xpbmVzLmgiCiAjaW5jbHVkZSAiQnJlYWtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyUHJvcGVydGllcy5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBiOTA4MmI1Njc3OTVmMmNkNWU0ZDZhNzRkNzAz
M2E4NWU4NzFjMDVjLi44Y2JlYmZlYmNiYmYzOGYyODJhYmNjYzRmNmQ1MDE1ZGY5NmM4NjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTYwMyw3ICs2MDMs
NyBAQCBMYXlvdXRQb2ludCBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVC
dXR0b24oY29uc3QgUmVuZGVyQm94JiBtdXRlQgogCiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhl
bWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBj
b25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAo
IWNhY2hlLmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02MTEs
NyArNjExLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2FjaGUuYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNh
Y2hlLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTYxOSwx
MiArNjE5LDEyIEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6
dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnRy
YW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJsZW5kV2l0aFdo
aXRlKGNvbG9yKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hl
ID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3JzKG9wdGlvbnMpKQpAQCAtNjMyLDcgKzYzMiw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
CiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUo
b3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMp
KQpAQCAtNjQwLDcgKzY0MCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJu
IGNhY2hlLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjph
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUo
b3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY0OCw3ICs2NDgsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6TwogICAgIHJldHVybiBjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAg
YXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY1Niw3ICs2
NTYsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
OjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25z
KTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpICYmIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0
aW9ucykpCkBAIC02NjQsNyArNjY0LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KICAgICBy
ZXR1cm4gY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hl
ID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTY3Miw0NyArNjcyLDQ3IEBAIENvbG9y
IFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6CiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8v
IFVzZSBhIGJsdWUgY29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24n
dCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjpibHVlOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVXNlIGEgd2hpdGUgY29sb3IgYnkgZGVmYXVsdCBpZiB0
aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0dXJuIENv
bG9yOjp3aGl0ZTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2Ug
YSBncmV5IGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVm
aW5lIGFueXRoaW5nLgogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94J3MgaW5hY3Rp
dmUgY29sb3IuCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3NiB9Owog
fQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNrIGNvbG9y
IGJ5IGRlZmF1bHQuCiAgICAgcmV0dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVy
biBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRp
b25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihvcHRpb25zKTsKIH0KQEAgLTEyMzQsMTAgKzEyMzQsMTAgQEAgdm9pZCBSZW5kZXJU
aGVtZTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9y
QWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKIH0KIAotYXV0byBSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QgLT4gQ29sb3JDYWNoZSYKK2F1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xvckNhY2hlJgog
ewogICAgIGF1dG8gb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsgPSBvcHRpb25zOwotICAgIG9w
dGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnJlbW92ZShTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JW
aXNpdGVkTGluayk7CisgICAgb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsucmVtb3ZlKFN0eWxl
Q29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAKICAgICByZXR1cm4gbV9jb2xvckNhY2hl
TWFwLmVuc3VyZShvcHRpb25zSWdub3JpbmdWaXNpdGVkTGluay50b1JhdygpLCBbXSB7CiAgICAg
ICAgIHJldHVybiBDb2xvckNhY2hlKCk7CkBAIC0xMjg0LDExICsxMjg0LDExIEBAIHZvaWQgUmVu
ZGVyVGhlbWU6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRDYXNjYWRl
RGVzY3JpcHRpb24mIGZvCiAgICAgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKHN5
c3RlbUZvbnRJRCwgZm9udERlc2NyaXB0aW9uKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NT
VmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdExpbms6Ci0gICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OkZvclZpc2l0ZWRMaW5rKSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAxMzkgfSA6
IFNSR0JBPHVpbnQ4X3Q+IHsgMCwgMCwgMjM4IH07CisgICAgICAgIHJldHVybiBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90
PiB7IDg1LCAyNiwgMTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OwogICAgIGNh
c2UgQ1NTVmFsdWVXZWJraXRBY3RpdmVsaW5rOgogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmV0ZXh0
OgogICAgICAgICByZXR1cm4gQ29sb3I6OnJlZDsKQEAgLTEzNjksNyArMTM2OSw3IEBAIENvbG9y
IFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dGV4dFNl
YXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2Fj
aGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUudGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEzNzcsMTMgKzEzNzcsMTMgQEAgQ29sb3IgUmVuZGVy
VGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW8KICAgICByZXR1cm4gY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKICNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBv
cHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsK
ICAgICBpZiAoIWNhY2hlLmFwcEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEzOTEsMTMg
KzEzOTEsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb24KICAgICByZXR1cm4gY2FjaGUuYXBw
SGlnaGxpZ2h0Q29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAjZW5kaWYK
IAotQ29sb3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6ZGVm
YXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlm
ICghY2FjaGUuZGVmYXVsdEJ1dHRvblRleHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xNDA1LDcgKzE0
MDUsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucwogICAgIHJldHVybiBjYWNoZS5kZWZhdWx0
QnV0dG9uVGV4dENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1EZWZhdWx0
QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHN5c3RlbUNvbG9yKENTU1ZhbHVlQWN0aXZlYnV0dG9udGV4dCwgb3B0aW9ucyk7CiB9CkBAIC0x
NDY1LDcgKzE0NjUsNyBAQCB2b2lkIFJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1c1JpbmdDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgY3VzdG9tRm9jdXNSaW5nQ29sb3IoKSA9IGNvbG9y
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIGlmIChjdXN0b21Gb2N1c1JpbmdDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGN1c3RvbUZvY3VzUmluZ0NvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oCmluZGV4IGU3ZTZlYmIxYjlkMWViYjE4ODA3ZmIwYWE4OTE2ZjljODAxZjc4MzEuLjg2Zjll
N2Q1OGUyMWQwNmNhMGQyMjIzYTFlMDQ0NjQzNzQ0MzI1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNDYsMzQgKzE0NiwzNCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzQm94U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFRleHQgc2VsZWN0aW9uIGNvbG9ycy4KLSAgICBDb2xv
ciBhY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsK
LSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xv
ciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAg
IC8vIExpc3QgYm94IHNlbGVjdGlvbiBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Q7Ci0gICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAg
Ly8gSGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBzZWFyY2ggbWF0Y2hlcy4KLSAgICBDb2xvciB0ZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKyAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3Q7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgLy8g
RGVmYXVsdCBoaWdobGlnaHRpbmcgY29sb3IgZm9yIGFwcCBoaWdobGlnaHRzLgotICAgIENvbG9y
IGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7
CisgICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3Q7CiAjZW5kaWYKIAotICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBkZWZhdWx0QnV0
dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAg
Q29sb3IgZGF0ZVBsYWNlaG9sZGVyVGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNv
bnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpIGNvbnN0OwogCiAgICAgdmlydHVhbCBDb2xvciBk
aXNhYmxlZFRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFj
a2dyb3VuZENvbG9yKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZvY3VzUmlu
Z0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QgeyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CisgICAgV0VCQ09SRV9FWFBPUlQg
Q29sb3IgZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7
CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQogICAgIHN0YXRp
YyB2b2lkIHNldEN1c3RvbUZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgc3RhdGlj
IGZsb2F0IHBsYXRmb3JtRm9jdXNSaW5nV2lkdGgoKSB7IHJldHVybiAzOyB9CiAgICAgc3RhdGlj
IGZsb2F0IHBsYXRmb3JtRm9jdXNSaW5nT2Zmc2V0KGZsb2F0IG91dGxpbmVXaWR0aCkgeyByZXR1
cm4gc3RkOjptYXg8ZmxvYXQ+KG91dGxpbmVXaWR0aCAtIHBsYXRmb3JtRm9jdXNSaW5nV2lkdGgo
KSwgMCk7IH0KQEAgLTE4Nyw3ICsxODcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTeXN0ZW0gZm9u
dHMgYW5kIGNvbG9ycyBmb3IgQ1NTLgogICAgIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0ZW1D
b2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owor
ICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtTWVudUxpc3RT
aXplKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0yNzIsMjUg
KzI3MiwyNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3Rl
bUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNj
cmlwdGlvbiYpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29s
b3IuCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owor
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNo
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykK
LSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAjZW5k
aWYKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMo
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogI2lm
ICFVU0UoTkVXX1RIRU1FKQogICAgIC8vIE1ldGhvZHMgZm9yIGVhY2ggYXBwZWFyYW5jZSB2YWx1
ZS4KQEAgLTQ1MSw3ICs0NTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIENvbG9yIGRlZmF1bHRC
dXR0b25UZXh0Q29sb3I7CiAgICAgfTsKIAotICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYgY29sb3JD
YWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3JDYWNoZSYgY29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblN0eWxl
KFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcAppbmRleCAzMmFiNWMyYzk4NjIzNDQy
M2VhNDlmZjg0MWMzNTdhM2E4ZGRjNmI2Li5kMWQ2MjNlNjczMGYyYzJjNWY0ZDdhNWYzMmZhMDA4
ZWIyMWMyMjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVBZHdhaXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVB
ZHdhaXRhLmNwcApAQCAtMTM1LDQ5ICsxMzUsNDkgQEAgYm9vbCBSZW5kZXJUaGVtZUFkd2FpdGE6
OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JiBlbGUK
ICAgICByZXR1cm4gZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2Fp
dGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3
YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5pbmFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFk
d2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4o
VGhlbWU6OnNpbmdsZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3
YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2lu
Z2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVt
ZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1Jp
bmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFRoZW1lQWR3
YWl0YTo6Zm9jdXNDb2xvcihvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CisgICAgcmV0dXJuIFRoZW1lQWR3YWl0YTo6Zm9jdXNDb2xvcihv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwog
fQogCiB2b2lkIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQpA
QCAtMjAzLDkgKzIwMyw5IEBAIFZlY3RvcjxTdHJpbmcsIDI+IFJlbmRlclRoZW1lQWR3YWl0YTo6
bWVkaWFDb250cm9sc1NjcmlwdHMoKQogfQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3
YWl0YTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5j
ZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpOworICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAKICAgICBzd2l0Y2ggKGNz
c1ZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlvbjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCA2Yzc5OTMyM2I3ZGRi
YmQxNTk5MDE3ZDYwY2ZlY2YwOTEyNDQwMmViLi45OTMzMjVjNDE2NjVlZGRiMzQ4OTdmY2M3ZTUz
Mzg3NTg1OGMyYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
QWR3YWl0YS5oCkBAIC00NiwxNSArNDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRl
Q2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24mKSBjb25zdCBvdmVycmlkZSB7IH07CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBD
b2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3Jt
SW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgYm9vbCBwYWludFRl
eHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBmaW5hbDsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50
TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAjZW5kaWYKIAotICAgIENvbG9yIHN5c3RlbUNv
bG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmlu
YWw7CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
ICAgICBJbnRTaXplIHNsaWRlclRpY2tTaXplKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IDRiMTAxYjM4YjVjOGUxNGQwYTY3N2Y1
MDc0M2QxZDY3YjQ1MTMxNGYuLmNiNWU4ZDhkYThjMjliYWUzMGE1YWMwYjVhMmRiNmZhOGQ3YWU3
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTUs
MTAgKzExNSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRTZWFyY2hGaWVsZERlY29yYXRp
b25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCi0gICAg
Q29sb3IgY2hlY2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpT
dGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOwotICAgIENvbG9yIGNoZWNr
Ym94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNl
dDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
OworICAgIENvbG9yIGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0
YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CisgICAgQ29sb3Ig
Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0
aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pOwogICAgIFJlZlB0cjxHcmFkaWVudD4gY2hlY2tib3hSYWRpb0JhY2tncm91bmRHcmFkaWVu
dChjb25zdCBGbG9hdFJlY3QmLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPik7Ci0g
ICAgQ29sb3IgY2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9sU3Rh
dGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOworICAgIENvbG9y
IGNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3Rh
dGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAKICAgICBib29sIHBhaW50Q2hl
Y2tib3goY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludFJhZGlvKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTU2LDEy
ICsxNTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc3VwcG9ydHNCb3hTaGFkb3coY29uc3Qg
UmVuZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwot
ICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBs
YXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAgQ29sb3IgcGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZp
bmFsOworICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCkBAIC0xOTgsNyArMTk4LDcgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UmVjdCBhZGRS
b3VuZGVkQm9yZGVyQ2xpcChjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgSW50UmVjdCYpOwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBvdmVycmlkZTsKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBSZXRhaW5QdHI8
Q0lDb250ZXh0PiBtX2NpQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbQppbmRleCA2OWVlNDk2MzM2MGU4YzYwNjVjMWZmNzExZjFmYjE2NmRlM2I0ZjVl
Li4zMjE3ZDkxZWY5ODQ1YzczMzI0NjY4ZTM4ZTMwZjhkNzFkMjg5MTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjM3LDEyICsxMjM3LDEyIEBA
IHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBSCiAgICAgaWNvbi0+cGFpbnQocGFpbnRJbmZvLmNvbnRl
eHQoKSwgdGh1bWJuYWlsUmVjdCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsK
ICAgICByZXR1cm4gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CiB9CiAKLUNvbG9yIFJlbmRlclRo
ZW1lSU9TOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOwog
fQpAQCAtMTI2MiwxMyArMTI2MiwxMyBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtRm9j
dXNSaW5nQ29sb3IoKQogICAgIHJldHVybiAqY2FjaGVkRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAg
ICByZXR1cm4gc3lzdGVtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAogI2lmIEVOQUJMRShBUFBfSElH
SExJR0hUUykKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
SU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1ZSBmcm9tIFVJ
S2l0LgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsKQEAgLTE0
MjMsOSArMTQyMyw5IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnNldEZvY3VzUmluZ0NvbG9yKGNv
bnN0IENvbG9yJiBjb2xvcikKICAgICBjYWNoZWRGb2N1c1JpbmdDb2xvcigpID0gY29sb3I7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVl
SUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wg
Zm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZv
clZpc2l0ZWRMaW5rKTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgLy8gVGhl
IHN5c3RlbSBjb2xvciBjYWNoZSBiZWxvdyBjYW4ndCBoYW5kbGUgdmlzaXRlZCBsaW5rcy4gVGhl
IG9ubHkgY29sb3IgdmFsdWUKICAgICAvLyB0aGF0IGNhcmVzIGFib3V0IHZpc2l0ZWQgbGlua3Mg
aXMgQ1NTVmFsdWVXZWJraXRMaW5rLCBzbyBoYW5kbGUgaXQgaGVyZSBieQpAQCAtMTQzNyw4ICsx
NDM3LDggQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3Nz
VmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KIAogICAgIGF1dG8mIGNhY2hlID0gY29s
b3JDYWNoZShvcHRpb25zKTsKICAgICByZXR1cm4gY2FjaGUuc3lzdGVtU3R5bGVDb2xvcnMuZW5z
dXJlKGNzc1ZhbHVlSUQsIFt0aGlzLCBjc3NWYWx1ZUlELCBvcHRpb25zXSAoKSAtPiBDb2xvciB7
Ci0gICAgICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKLSAgICAgICAgY29uc3Qg
Ym9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAg
ICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBjb25zdCBib29sIHVzZUVs
ZXZhdGVkVXNlckludGVyZmFjZUxldmVsID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0
aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAgICAgICBpZiAoIWdsb2Jh
bENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYXV0
byBpdCA9IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFsdWVLZXkg
eyBjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwgfSk7CiAgICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKCkuZW5kKCkpCkBAIC0yMDQ3LDcgKzIwNDcsNyBAQCBjb25zdGV4cHIgYXV0byBuYXRp
dmVDb250cm9sQm9yZGVyV2lkdGggPSAxLjBmOwogY29uc3RleHByIGF1dG8gY2hlY2tib3hSYWRp
b0JvcmRlcldpZHRoID0gMS41ZjsKIGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94UmFkaW9Cb3JkZXJE
aXNhYmxlZE9wYWNpdHkgPSAwLjNmOwogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hS
YWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3Ig
UmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJv
bFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5
bGVDb2xvck9wdGlvbnMpCiB7CiAgICAgYXV0byBkZWZhdWx0Qm9yZGVyQ29sb3IgPSBzeXN0ZW1D
b2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWwsIHN0eWxlQ29sb3JPcHRpb25z
KTsKIApAQCAtMjA2MCw3ICsyMDYwLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94
UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPgogICAgIHJl
dHVybiBkZWZhdWx0Qm9yZGVyQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVj
a2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25T
ZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2Jv
eFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8
Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gc3R5bGVDb2xvck9wdGlvbnMpCiB7CiAgICAgYm9vbCBpc0VtcHR5ID0gIXN0YXRlcy5jb250
YWluc0FueSh7IENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6Q2hlY2tlZCwgQ29udHJvbFN0YXRlczo6
U3RhdGVzOjpJbmRldGVybWluYXRlIH0pOwogICAgIGJvb2wgaXNFbmFibGVkID0gc3RhdGVzLmNv
bnRhaW5zKENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6RW5hYmxlZCk7CkBAIC0yMTAwLDEyICsyMTAw
LDEyIEBAIFJlZlB0cjxHcmFkaWVudD4gUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNr
Z3JvdW5kR3JhZGllbnQoY29uc3QgRmxvYXRSZWN0CiAgICAgcmV0dXJuIGdyYWRpZW50OwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlv
blNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNr
Ym94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBz
dGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCiB7
CiAgICAgaWYgKCFzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVk
KSkKICAgICAgICAgcmV0dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFy
eUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyk7CiAKLSAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9y
Q29sb3IgPSBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JP
cHRpb25zIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIENv
bG9yIGVuYWJsZWRJbmRpY2F0b3JDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0
ZW1MYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpOwogICAgIGlmIChzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVz
OjpQcmVzc2VkKSkKICAgICAgICAgcmV0dXJuIGVuYWJsZWRJbmRpY2F0b3JDb2xvci5jb2xvcldp
dGhBbHBoYU11bHRpcGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCAxZTYxNjg3NjBmMTE3NDc3NjFhOGEz
YzNlNWIyZThkNmQyZDFiODhkLi5jNDFmNzQ5MDA5MjVlZmExNjVlZWVlODlkNjhiOGU2NjYxMDUz
NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNTMs
MjMgKzUzLDIzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJl
bmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25zdCBmaW5h
bDsKIAotICAgIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0KLSAgICBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9y
JiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1J
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0Nv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29s
b3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKwor
ICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFs
OworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
SW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3Ig
cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3QgZmluYWw7CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAgIENvbG9y
IHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCi0gICAgQ29sb3Ig
cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAgICAgU2Ny
b2xsYmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0
KSBmaW5hbCB7IHJldHVybiBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGw7IH0KIApAQCAtMTU5
LDcgKzE1OSw3IEBAIHByaXZhdGU6CiBwcml2YXRlOgogICAgIFN0cmluZyBmaWxlTGlzdE5hbWVG
b3JXaWR0aChjb25zdCBGaWxlTGlzdCosIGNvbnN0IEZvbnRDYXNjYWRlJiwgaW50IHdpZHRoLCBi
b29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICAgICAvLyBHZXQgdGhlIGNvbnRyb2wgc2l6
ZSBiYXNlZCBvZmYgdGhlIGZvbnQuIFVzZWQgYnkgc29tZSBvZiB0aGUgY29udHJvbHMgKGxpa2Ug
YnV0dG9ucykuCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQppbmRleCBhMTRmZWNjY2ViYmY3YzE1YWFiOTlhZDQwMmFhZDcyMjY4NTIwYzYwLi5kNDM3
ZjQ4MjY2NWMzMzNjYTIzNmUwYjM3NTgyNmEzZjJhYTY0YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yODQsMTYgKzI4NCwxNiBAQCBOU1ZpZXcg
KlJlbmRlclRoZW1lTWFjOjpkb2N1bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBj
b25zdAogICAgIHJldHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1lVmll
dygpLCBzdGF0ZXMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBj
b25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2Up
KTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAg
IHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dEJhY2tncm91bmRD
b2xvcl0pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtO
U0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dEJhY2tncm91bmRDb2xvcl0pOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CkBAIC0zMDEsOSArMzAxLDkgQEAgQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ28KICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNm
b3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1h
Yzo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwg
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFu
Y2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpKSB7CiAgICAgICAgIC8vIFVzZSBhbiBhbHBoYSB2YWx1
ZSB0aGF0IGlzIHNpbWlsYXIgdG8gcmVzdWx0cyBmcm9tIGJsZW5kV2l0aFdoaXRlKCkgb24gbGln
aHQgY29sb3JzLgogICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya0FwcGVhcmFuY2VBbHBo
YSA9IDAuODsKQEAgLTMxMywyNCArMzEzLDI0IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjp0cmFu
c2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpCiAg
ICAgcmV0dXJuIFJlbmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
Y29sb3IsIG9wdGlvbnMpOwogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVj
dGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0Citib29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewot
ICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBM
b2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBs
b2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpOwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1h
Yzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFw
cGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpV
c2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBw
ZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxl
Y3RlZFRleHRDb2xvcl0pOwogICAgIHJldHVybiB7IH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
TWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NV
UFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uo
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkp
OworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAg
aWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVy
biBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9y
XSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTM0MCwxMCArMzQwLDEwIEBAIENvbG9yIFJlbmRlclRo
ZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvCiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQp
Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJu
IGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZENvbG9y
XSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM1MywxMCArMzUzLDEw
IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0CiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZF
KE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Ug
bG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBw
ZWFyYW5jZSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAjZW5kaWYKQEAg
LTM2NCwxNiArMzY0LDE2IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8CiAKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xv
ckZyb21OU0NvbG9yKFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0p
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5T
Q29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0Q29sb3JdKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzgxLDMyICszODEsMzIgQEAgQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDwKICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZv
cm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAodXNlc1Rl
c3RNb2RlRm9jdXNSaW5nQ29sb3IoKSkKICAgICAgICAgcmV0dXJuIG9sZEFxdWFGb2N1c1JpbmdD
b2xvcigpOwotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2Up
KTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAg
IC8vIFRoZSBjb2xvciBpcyBleHBlY3RlZCB0byBiZSBvcGFxdWUsIHNpbmNlIENvcmVHcmFwaGlj
cyB3aWxsIGFwcGx5IG9wYWNpdHkgd2hlbiBkcmF3aW5nIChiZWNhdXNlIG9wYWNpdHkgaXMgbm9y
bWFsbHkgYW5pbWF0ZWQpLgogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGtl
eWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcl0pLm9wYXF1ZUNvbG9yKCk7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpV
c2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9j
YWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgZmluZEhp
Z2hsaWdodENvbG9yXSk7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBleHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBBcHBLaXQuCiAgICAgcmV0dXJu
IFNSR0JBPHVpbnQ4X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OwogfQogI2VuZGlmCiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxv
Y2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFw
cGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5hdGVT
ZWxlY3RlZENvbnRyb2xUZXh0Q29sb3JdKTsKIH0KIApAQCAtNDQ5LDExICs0NDksMTEgQEAgc3Rh
dGljIFNSR0JBPHVpbnQ4X3Q+IG1lbnVCYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVybiBtYWtl
RnJvbUNvbXBvbmVudHNDbGFtcGluZzxTUkdCQTx1aW50OF90Pj4ocGl4ZWxbMF0sIHBpeGVsWzFd
LCBwaXhlbFsyXSwgcGl4ZWxbM10pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NW
YWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwotICAgIGNv
bnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIGZvclZpc2l0ZWRM
aW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGlu
ayk7CisgICAgY29uc3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9v
bCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAg
YXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogCkBAIC0xNTcxLDcgKzE1NzEsNyBA
QCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgRWxlbWVudCogZSkgYwogICAgIC8vIFNldCB0aGUgZm9yZWdyb3VuZCBjb2xv
ciB0byBibGFjayBvciBncmF5IHdoZW4gd2UgaGF2ZSB0aGUgYXF1YSBsb29rLgogICAgIENvbG9y
IGMgPSBDb2xvcjo6ZGFya0dyYXk7CiAgICAgaWYgKGUpIHsKLSAgICAgICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRp
b25zKCZzdHlsZSk7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9u
cyA9IGUtPmRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKTsKICAgICAgICAgYyA9
ICFlLT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSA/IHN5c3RlbUNvbG9yKENTU1ZhbHVlQnV0dG9u
dGV4dCwgb3B0aW9ucykgOiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUdyYXl0ZXh0LCBvcHRpb25zKTsK
ICAgICB9CiAgICAgc3R5bGUuc2V0Q29sb3IoYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lV2luLmNwcAppbmRleCA4NWRhYWQ4NTc3YmQ4ZTc2YzdhZDk3OGUyYzJkZDBj
ODA0ZTFjYjhjLi4wZDQ1YWQ1ZTkyMzBmZDI1OTczNWZjNjFkZTg1ZDA4ZWUzMmFjYTBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTI4NSwyNSAr
Mjg1LDI1IEBAIGJvb2wgUmVuZGVyVGhlbWVXaW46OnN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVy
U3R5bGUmKSBjb25zdAogICAgIHJldHVybiBoYXZlVGhlbWU7CiB9CiAKLUNvbG9yIFJlbmRlclRo
ZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3QKIHsKICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJ
R0hMSUdIVCk7CiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZhbHVlKGNvbG9yKSwg
R2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94Lgog
ICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDE3NiwgMTc2LCAxNzYgfTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2lu
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3Io
Q09MT1JfSElHSExJR0hUVEVYVCk7CiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZh
bHVlKGNvbG9yKSwgR2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1
cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CkBA
IC0xMDAyLDcgKzEwMDIsNyBAQCBzdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgo
Q1NTVmFsdWVJRCBjc3NWYWx1ZUlkKQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46
OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29s
b3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKICAgICBzd2l0
Y2ggKGNzc1ZhbHVlSWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
LmgKaW5kZXggYzgxYjUwYTMyYTI5M2ViNjdiMGIyNjI3MDNlMTBlNTAzZTg2ZDgyNS4uNmIwMGNm
MDc4NGMyZjA3ZGFlYzZjMzhmNjJjZmQ0NDZiZDJjN2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJsaWM6CiAgICAg
Ly8gQSBtZXRob2QgYXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFjdHVhbGx5IGNhcmUg
YWJvdXQgcmVkcmF3aW5nIHdoZW4gaG92ZXJlZC4KICAgICBib29sIHN1cHBvcnRzSG92ZXIoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJy
aWRlOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQs
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHBhaW50Q2hlY2tib3goY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEZsb2F0UmVjdCYgcikgb3ZlcnJpZGUK
ICAgICB7IHJldHVybiBwYWludEJ1dHRvbihvLCBpLCBJbnRSZWN0KHIpKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBhZjA0MTljZjZjNDkyNWQxYzk0
NDcyNzNhNzEwNWQxYzRiOTg1YTE3Li5kNmNjOWI3MWE4YWNiMzE5YWU0NWIxYzBlN2UwNDFiNGVi
YWU2ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAt
MjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogCiAjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZs
b2F0Um91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGcmFt
ZU93bmVyRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0
eWxlZE1hcmtlZFRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtl
ZFRleHQuY3BwCmluZGV4IGM5Y2ZjN2ZmNWRiMTAwYTQxZWU2MTE0Mzg4NjlkNGExYzdiZGVjZWYu
LjA0N2YwMmExNzlmYTU2MTNiZDgzYTZmNTc5NzliZjZiMTQwNDI2ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAg
c3RhdGljIFN0eWxlZE1hcmtlZFRleHQgcmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBN
YXJrZWRUZXh0JiBtYXJrZWRUZXh0LAogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCiAgICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKLSAgICAgICAg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHls
ZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xv
ciA9IHJlbmRlcmVyLnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMp
OwogICAgICAgICBicmVhazsKICAgICB9CkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBTdHlsZWRN
YXJrZWRUZXh0IHJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4dCYgbWFy
a2VkVGV4dCwKICAgICB9CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpUZXh0TWF0Y2g6IHsKICAgICAg
ICAgLy8gVGV4dCBtYXRjaGVzIGFsd2F5cyB1c2UgdGhlIGxpZ2h0IHN5c3RlbSBhcHBlYXJhbmNl
LgotICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlv
bnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAg
ICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5
bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIHN0eWxlLnRleHRTdHlsZXMuZmlsbENvbG9yID0gcmVuZGVyZXIudGhlbWUoKS5z
eXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0
eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKaW5k
ZXggYmZmMjE3ZTk0MDEyZTIxZDZjMTJjMDRlODhiODcwOWNmOWU1NzdkYi4uZmM2OGY0M2VmZGUz
NmM0Y2Y4YmUxNTExZWRlODY0ZmQwZmE0YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50U3R5bGUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIFRleHRQYWludFN0eWxlIGNv
bXB1dGVUZXh0UGFpbnRTdHlsZShjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJlbmRlclN0eWxl
JiBsaW5lCiAgICAgaWYgKGxpbmVTdHlsZS5pbnNpZGVEZWZhdWx0QnV0dG9uKCkpIHsKICAgICAg
ICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgICAgICAgICBpZiAocGFnZS0+dXNlU3lzdGVtQXBw
ZWFyYW5jZSgpKQotICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0
eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICAgICAgICAgIHBhaW50
U3R5bGUuZmlsbENvbG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmRlZmF1bHRCdXR0b25U
ZXh0Q29sb3Iob3B0aW9ucyk7CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTdHlsZTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlci5jcHAKaW5kZXggNDMwYTM0MmY2M2I5Mzg0NGY0MWI3NTdiMGRmYWQ5YWFi
YjI3Y2NjNC4uOWNlNTE2Yjg2NzNmMzc3NDc0NDExYWYyYjA4NDMwYmFlNWRkMTQ3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1
aWxkZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIu
aCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggNDZkYmY1YmIzM2Q1ZTg1ZTE1MjFhYmU3ODhiOTE3ZmUyODEzYzdhOS4uNDNjNDljOTUw
ZTNiOTk1YzY1YjE1MDJjNTViMjM2NjgyMTRhMTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVu
dEhhbmRsZXIuaCIKQEAgLTQ2MzMsMTQgKzQ2MzQsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFBh
Z2VNdXRlZChTdHJpbmdWaWV3IHN0YXRlc1N0cmluZykKICAgICBpZiAoIWRvY3VtZW50KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3Mgc3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKFN0cmluZ1ZpZXcgc3RhdGVTdHJpbmcgOiBzdGF0ZXNTdHJpbmcuc3BsaXQo
JywnKSkgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVT
dHJpbmcsICJhdWRpbyIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9k
dWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShzdGF0ZVN0cmluZywgImNhcHR1cmVkZXZpY2VzIikpCiAgICAgICAg
ICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVk
KTsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5n
LCAic2NyZWVuY2FwdHVyZSIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgICAgIHN0YXRlLmFk
ZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgIH0K
IAogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTQ2NTUsNDMgKzQ2
NTYsNDMgQEAgU3RyaW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUoKQogCiAgICAgYXV0byBz
dGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3RhdGUoKTsKICAgICBTdHJpbmdCdWlsZGVy
IHN0cmluZzsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1BsYXlpbmdBdWRpbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWlu
c0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkp
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdUb0V4dGVybmFsRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpKQorICAg
IGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQ
bGF5YmFja1RhcmdldE1vbml0b3JpbmcpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJl
c1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0
ZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpF
eHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKKyAgICBpZiAo
c3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKLSAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxh
eWluZykpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNTb3Vy
Y2VFbGVtZW50UGxheWluZywiKTsKIAotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkKSkKKyAgICBpZiAo
c3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29u
dHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xF
bmFibGVkLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9s
RW5hYmxlZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xF
bmFibGVkLCIpOwogCi0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpCisgICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09y
VmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7Ci0gICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJl
RGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkK
KyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011
dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkpCisg
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2Vy
SW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNV
c2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2
aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZp
Y2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhh
c011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsIik7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHko
KSkKQEAgLTYxMjQsMTEgKzYxMjUsMTEgQEAgU3RyaW5nIEludGVybmFsczo6c3lzdGVtQ29sb3JG
b3JDU1NWYWx1ZShjb25zdCBTdHJpbmcmIGNzc1ZhbHVlLCBib29sIHVzZURhcmtNb2QKICAgICBD
U1NWYWx1ZUlEIGlkID0gY3NzVmFsdWVLZXl3b3JkSUQoY3NzVmFsdWUpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKFN0eWxlQ29sb3I6OmlzU3lzdGVtQ29sb3JLZXl3b3JkKGlkKSk7CiAKLSAgICBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgaWYgKHVzZURhcmtNb2RlQXBwZWFyYW5jZSkKLSAg
ICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2Up
OworICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpOwogICAgIGlmICh1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKLSAgICAgICAgb3B0
aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2
ZWwpOworICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxldmF0ZWRV
c2VySW50ZXJmYWNlTGV2ZWwpOwogICAgIAogICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NT
KFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwCmluZGV4IGFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJhMjc0Mjc3NTMu
LmE4YzNlMThlNDdhZWNhZDBhMDIyYTA4NGM0OWEyMWY2YzcxNGMzOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAK
QEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3Vy
Y2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1M
TlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAppbmRleCAxNTM5OTI4YmFmNGMwNTcxZDM1NTI5NjhhMWZiY2YxZjJjNzRiYmRmLi44
YjAzYzgxZDA3NWJiOWMzMzM0NDU3NjYzMzYzYzEyMzNlMmFjMzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
IAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAjaW5jbHVkZSAiUmVtb3RlQ0RNRmFjdG9y
eVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNzZmMTI5M2U0ODQ4ZTRlZjRlMjkwNGU1ODU3NTFj
NGNmNmU0YzhhOS4uOTAyMzZhY2IxZjA0Mjc3YTc4MmY1NTNmOTZlMzZhYTRhZDFiNmQxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcApAQCAtMTYxNSw3ICsxNjE1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGEK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0IHsgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIFdURk1vdmUocmVwb3J0VVJMKSwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSB7IFdURk1vdmUocmVwb3J0KSB9IH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwog
fQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYm
IGV2ZW50SW5pdCkKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBX
VEZNb3ZlKGV2ZW50SW5pdCkgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApp
bmRleCBiMmQxZGNiN2M3NjgxNTc5YTFjZjZmZmJkNDI0ZDQxZjEwOWQwNTgyLi5kMTc3NmU4MWY5
Yzc2ZjgyNGQ5ZjRhMzI2NDIzZTE5MGRmODk1YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTIwOCw3ICsyMDgs
NyBAQCBwcml2YXRlOgogICAgIC8vIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgIHZv
aWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAgICAg
dm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+
JiYpIGZpbmFsOwotICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAg
ICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgdm9pZCBsb2dTbG93
Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKGNvbnN0IE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJldHJpZXZl
SW5mbyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAy
NzgxZDEwZTljNjhlZWNjYjU2Yjc2OGIyNDUxOGQ5YWM1NDE3Yjg5Li45MTZjYTBlMzE5NDI2ZDE2
NmFkZGMzNjQ5YTY0MjVlNjJiNGUwOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTcyNiw2ICs3MjYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBl
KToKICAgICAgICAgJ1dlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJy
b3JDb2RlJzogWyc8V2ViQ29yZS9MZWdhY3lDRE1TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8
V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kJzogWyc8V2ViQ29yZS9NZWRpYVBy
b2R1Y2VyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6
IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGlj
eSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok5l
dHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9y
bWF0aW9uLmg+J10sCkBAIC03NDgsNiArNzUxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlw
ZSk6CiAgICAgICAgICdXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1
ZGlvU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50SW5pdCc6IFsnPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uJzogWyc8V2Vi
Q29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeSc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IGFkNDExYjgwNjI5OGE0Yjg1ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYuLmNiY2E5
MDhlMzgzNjBkMWQ5Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yODQsNyArMjg0
LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMubWVkaWFWb2x1bWUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0g
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3M+
IG11dGVkU3RhdGVGbGFnczsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3M+IG11dGVkU3RhdGVGbGFnczsKICAgICBkZWNvZGVyID4+IG11dGVk
U3RhdGVGbGFnczsKICAgICBpZiAoIW11dGVkU3RhdGVGbGFncykKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCA0YTA1ZDYwYjJhY2UxMjI0MDEzNDhiYmE5YWExZGExNzQ2Yjg5MjQw
Li5lYjFlZTA5NTlhNTEzZGI4MjU3ZDY0YWRkY2VlYTUwOWI3YTNlODZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTksNyAr
MTE5LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGZsb2F0IHRv
cENvbnRlbnRJbnNldDsKICAgICAKICAgICBmbG9hdCBtZWRpYVZvbHVtZTsKLSAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CisgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZDsKICAgICBib29sIG1heVN0YXJ0TWVkaWFX
aGVuSW5XaW5kb3c7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDJkYjBm
NTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjU0OTEwMmViNWZlZWFiMDA5YmY5
NDc3NTMyZDRmOWQ1MDFlYThlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCkBAIC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBw
aW5uZWRTdGF0ZURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5Jikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIG1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDcwMWYxYTI5MDg4ZDg0
MjAxNjBjNzNlMGNkOWVmZDMyZGNjNmYyM2QuLjFmYjJmMjdhZDJiOTIxYTg4ZWFjYWQ4Yzc5Njg0
YjY4NTIxZTY3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApA
QCAtMjgxNiwxNCArMjgxNiwxNCBAQCB2b2lkIFdLUGFnZVNldE1lZGlhVm9sdW1lKFdLUGFnZVJl
ZiBwYWdlUmVmLCBmbG9hdCB2b2x1bWUpCiB2b2lkIFdLUGFnZVNldE11dGVkKFdLUGFnZVJlZiBw
YWdlUmVmLCBXS01lZGlhTXV0ZWRTdGF0ZSBtdXRlZFN0YXRlKQogewogICAgIENSQVNIX0lGX1NV
U1BFTkRFRDsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29y
ZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0
YXRlOwogCiAgICAgaWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAg
IGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9J
c011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlhQ2Fw
dHVyZURldmljZXNNdXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRl
ICYga1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwor
ICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpT
Y3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldE11dGVkKGNv
cmVTdGF0ZSk7CiB9CkBAIC0yOTcxLDI0ICsyOTcxLDI0IEBAIGJvb2wgV0tQYWdlSXNQbGF5aW5n
QXVkaW8oV0tQYWdlUmVmIHBhZ2UpCiAKIFdLTWVkaWFTdGF0ZSBXS1BhZ2VHZXRNZWRpYVN0YXRl
KFdLUGFnZVJlZiBwYWdlKQogewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBjb3JlU3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9J
bXBsKHBhZ2UpLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKICAgICBXS01lZGlhU3RhdGUgc3RhdGUg
PSBrV0tNZWRpYUlzTm90UGxheWluZzsKIAotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAoY29yZVN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQog
ICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ0F1ZGlvOwotICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykK
KyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ1ZpZGVvOwot
ICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAg
ICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwotICAg
IGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAg
ICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlm
IChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBz
dGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVv
Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8
PSBrV0tNZWRpYUhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8
PSBrV0tNZWRpYUhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlD
YXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUg
fD0ga1dLTWVkaWFIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogCiAgICAgcmV0dXJuIHN0
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggMDA0NGE4MWEyN2E5YmE1MGM5NzhkNjcyNWQwNjkzZGExZmIxMDc5Yy4uNTcyZWM5NmRj
YTdjNzVmNGIxN2I0ODJlMjdhYWU1MmQyNDQ3MWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMDM3LDkgKzEwMzcsOSBAQCAtICh2
b2lkKXJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKFdLTWVkaWFQbGF5YmFjawogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJl
U3RhdGUKIHsKICAgICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwot
ICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBy
ZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkK
KyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0
ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRl
TXV0ZWQ7CiAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAtMTA0Nyw5
ICsxMDQ3LDkgQEAgLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIC0g
KFdLTWVkaWFDYXB0dXJlU3RhdGUpbWljcm9waG9uZUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8g
c3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVy
ZVN0YXRlQWN0aXZlOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1cm4g
V0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CiB9CkBAIC0xMDYxLDE2ICsxMDYxLDE2IEBAIC0gKHZv
aWQpc2V0TWljcm9waG9uZUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBj
b21wbGV0aW9uSGFuZGxlcjooCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gW10geyB9Owog
CiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7Ci0gICAgICAgIF9w
YWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVy
ZUtpbmQ6OkF1ZGlvLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlv
bkhhbmRsZXIpXSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVyID0g
bWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0
byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOwogICAgIGlmIChzdGF0ZSA9
PSBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlKQotICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsK
KyAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGVsc2UgaWYgKHN0YXRlID09IFdLTWVkaWFD
YXB0dXJlU3RhdGVNdXRlZCkKLSAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVk
U3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJ
c011dGVkKTsKICAgICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAtMTA4MywxNiArMTA4MywxNiBAQCAtICh2b2lkKXNl
dENhbWVyYUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfTsKIAogICAg
IGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgewotICAgICAgICBfcGFnZS0+
c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5k
OjpWaWRlbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKV0geworICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbXV0
ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKICAgICBpZiAoc3RhdGUgPT0gV0tN
ZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSkKLSAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAg
ICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpW
aWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBlbHNlIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVy
ZVN0YXRlTXV0ZWQpCi0gICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRl
LmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRl
ZCk7CiAgICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKICAgICB9KTsKQEAgLTIyNzEsNyArMjI3MSw3IEBAIC0gKHZvaWQpX2Nsb3NlQWxs
TWVkaWFQcmVzZW50YXRpb25zCiAtICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCiB7CiAgICAgVEhS
T1dfSUZfU1VTUEVOREVEOwotICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIF9wYWdlLT5z
dG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvKTsKIH0KIAogLSAodm9pZClfc3RvcEFsbE1lZGlhUGxheWJhY2sKQEAgLTM1OTQs
MTQgKzM1OTQsMTQgQEAgLSAoQk9PTClfbWVkaWFDYXB0dXJlRW5hYmxlZAogLSAodm9pZClfc2V0
UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZQogewogICAgIFRIUk9XX0lG
X1NVU1BFTkRFRDsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
Y29yZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29y
ZVN0YXRlOwogCiAgICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAg
ICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVk
aW9Jc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlh
Q2FwdHVyZURldmljZXNNdXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0
YXRlICYgX1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQp
OworICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
OjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAKICAgICBfcGFnZS0+c2V0TXV0ZWQoY29yZVN0YXRl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlldy5jcHAKaW5kZXggZjA5NGY1Mzg5Mzk0NDk1NWY3OTgzOWMyNWQ5ZGVlOTI1ZGY0NzAwZS4u
NGU1ZDczMjU3MTQ0YjUxZGQ0MmE0ZWZhY2M3MGVlZmNjZTg1M2U5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTQ4Njgs
NyArNDg2OCw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jb3JzX2FsbG93bGlzdChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogY29uCiAgICAgZ2V0UGFnZSh3ZWJWaWV3
KS5zZXRDT1JTRGlzYWJsaW5nUGF0dGVybnMoV1RGTW92ZShhbGxvd0xpc3RWZWN0b3IpKTsKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5k
IGNhcHR1cmVLaW5kLCBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wg
aXNGcm9tRGlzcGxheUNhcHR1cmUgPSBmYWxzZSkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdD
b25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlhQ2FwdHVy
ZVN0YXRlIGNhcHR1cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZhbHNlKQog
ewogICAgIGF1dG8mIHBhZ2UgPSBnZXRQYWdlKHdlYlZpZXcpOwogICAgIGF1dG8gbXV0ZWRTdGF0
ZSA9IHBhZ2UubXV0ZWRTdGF0ZUZsYWdzKCk7CkBAIC00ODc3LDEzICs0ODc3LDEzIEBAIHN0YXRp
YyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViQ29yZTo6CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9O
T05FOgogICAgICAgICBwYWdlLnN0b3BNZWRpYUNhcHR1cmUoY2FwdHVyZUtpbmQsIFt3ZWJWaWV3
LCBjYXB0dXJlS2luZF0gewogICAgICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9NSUNST1BIT05FX0NBUFRVUkVf
U1RBVEVdKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgICAgICBj
YXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAg
ICAgICAgICAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNP
YmpQcm9wZXJ0aWVzW1BST1BfQ0FNRVJBX0NBUFRVUkVfU1RBVEVdKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQpAQCAtNDg5MSwxNiArNDg5MSwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmln
dXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX0FDVElWRToKICAg
ICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgIG11dGVk
U3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAg
aWYgKGlzRnJvbURpc3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUucmVt
b3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLnJlbW92
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVk
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
NDkwOCwxNiArNDkwOCwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVk
aWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVh
azsKICAgICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX01VVEVEOgogICAgICAgICBz
d2l0Y2ggKGNhcHR1cmVLaW5kKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5h
ZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRl
ZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9t
RGlzcGxheUNhcHR1cmUpCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZDo6QXVkaW9WaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00OTY1LDcgKzQ5NjUsNyBA
QCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgV2ViS2l0TWVkaQogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Nh
bWVyYV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRF
X05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRp
YUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2lu
ZDo6VmlkZW8sIHN0YXRlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJl
KHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywg
c3RhdGUpOwogfQogCiAvKioKQEAgLTUwMDcsNyArNTAwNyw3IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
V2ViS2l0CiAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19nZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0
YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmll
dywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIHN0YXRl
KTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgc3RhdGUpOwogfQogCiAv
KioKQEAgLTUwNDksNSArNTA0OSw1IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5
X2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TWVkCiAgICAgaWYg
KHdlYmtpdF93ZWJfdmlld19nZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdF
QktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdl
YmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKKyAgICB3ZWJr
aXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUsIHRydWUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKaW5kZXggZTFkYTQ2ZjI2
YjE4Yzc3ZjJhMTg5ZWQ4NjU0MGJhNjEzMjI5YmNmYi4uOGExNjIwNzc4ZWRkOWNiZmYxMjA5OWIx
NTJhZDUwYjQ3OWVkZjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTWVkaWFVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1fV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwotX1dLTWVk
aWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzKTsKK19XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3MpOworX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQppbmRl
eCA1M2JiZjQyMDE0NzFkOWQ4YTRmNjZlNzAxZjY0Mzg4ZWVlZDVkMTVhLi45ODUwYThmY2E2NzBk
Yzc4NTVmNDEwMDY3YjA1YzEyZjgwODgwNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQpAQCAtMjgsMjkgKzI4LDI5IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IHN0YXRlKQogewogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRpYUNhcHR1
cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7Ci0gICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmU7
Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2
ZUNhbWVyYTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAg
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRl
ZE11dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVE
ZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZE11dGVkQ2FtZXJhOwogCiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwog
fQogCi1fV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYU11dGVkU3RhdGUgdG9X
S01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0
YXRlKQogewogICAgIF9XS01lZGlhTXV0ZWRTdGF0ZSBtZWRpYU11dGVkU3RhdGUgPSBfV0tNZWRp
YU5vbmVNdXRlZDsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlOjpBdWRpb0lzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9
IF9XS01lZGlhQXVkaW9NdXRlZDsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0ZWRTdGF0
ZSB8PSBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCisgICAg
aWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1
cmVJc011dGVkKQogICAgICAgICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFTY3JlZW5DYXB0
dXJlTXV0ZWQ7CiAgICAgcmV0dXJuIG1lZGlhTXV0ZWRTdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCAzMjlkYjc5MWNmNDMyNzI0NjM2MzQy
ODAwNTA0YjA4ZWE4OWRiMGUzLi5lNjc5Njk1YTNmZTFhMGFlZjI4ZGQ1YWYwMjQ4ZDY5MDZmMzQx
OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0x
NDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmli
dXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwogICAgICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYs
IFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdp
biYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9p
ZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJh
bWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBtZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MpIGZpbmFsOworICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHBy
aW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJTktTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTFiN2E0MDU4
YTViNjQxYWI4ODRhOTc2NTc3Y2YyMTAzYmNiNmJkZC4uZDc4ZjRjYzBkNTY1NTk0YzBlODgxYTQ1
OGJmZDIzODI3NTEyMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCkBAIC0xMjI3LDcgKzEyMjcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLAog
ICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxl
Z2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVS
TDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZp
ZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFu
ZGxlci5nZXQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAg
aWYgKCFtX3VpRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAppbmRleCBiMzkzN2FjMDQzNzczOTJkMzBiMTgzM2RlZTBjMDFlNmNhMTY4
OWYzLi4yYjcyNDU4NjkxNmJmNWUxY2JiNjUzYmUxZTZhMjRiMWFkOTkxZDBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotc3RhdGljIGNvbnN0IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBhY3RpdmVD
YXB0dXJlTWFzayB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0
dXJlRGV2aWNlIH07CitzdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBh
Y3RpdmVDYXB0dXJlTWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2UgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTk1
LDcgKzk1LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFcKIAogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSgpCiB7Ci0gICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFn
ZTo6U3RvcE1lZGlhQ2FwdHVyZSB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvVmlkZW8gfSwgW10geyB9KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ6OkF1ZGlvVmlkZW8gfSwgW10geyB9KTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5yZXZva2VTYW5kYm94RXh0
ZW5zaW9uc0lmTmVlZGVkKHBhZ2UoKS5wcm9jZXNzKCkpOwogICAgIHByb3hpZXMoKS5yZW1vdmUo
dGhpcyk7CkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3RvcENhcHR1cmUoKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CiAgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwotICAgIG1fcGFnZS5zdG9w
TWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8p
OworICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKQEAgLTg2Myw3ICs4NjMsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNv
cmVQcmVmcygpIGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdT
dGF0ZSkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1
cmVTdGF0ZUNoYW5nZWQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKIHsKICAgICBpZiAoIW1fcGFnZS5o
YXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaAppbmRleCA2NGViZmE1ZTQ1OWExNmU0Y2QzN2U0OTM2OWE5MDRhZTYyZGViNzYw
Li42NzRiYWI0ZGI3YzljNjRkZWQ4NTc4NzQxZGJkMmFiOTk2ZGM0MDY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y2xlYXJDYWNoZWRTdGF0ZSgpOwogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAK
LSAgICB2b2lkIGNhcHR1cmVTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3U3RhdGUpOworICAgIHZvaWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKTsKICAgICB2b2lkIHN5bmNXaXRoV2ViQ29yZVBy
ZWZzKCkgY29uc3Q7CiAKICAgICBlbnVtIGNsYXNzIFJlcXVlc3RBY3Rpb24gewpAQCAtMTY3LDcg
KzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5pZWRS
ZXF1ZXN0czsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBt
X2NhcHR1cmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1fY2FwdHVyZVN0YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5PiBtX3dhdGNoZG9nVGltZXI7CiAgICAgU2Vjb25kcyBtX2N1cnJl
bnRXYXRjaGRvZ0ludGVydmFsOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjFjMDdmNmRmYjliNDYzNjVkNzY3
ZTQxMzNjYmQ2OGRhMGQzMmE3Yy4uZDMzMWYyY2E3ZDAzYTcwM2I1Y2I2ZGQwYzhmZDhiNTkxMjg0
ZmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTEz
LDExICsyMTEzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKE9w
dGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBmbGFnc1RvVXBkCiAgICAgICAgIG1fYWN0aXZp
dHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdyk7CiAgICAgaWYgKGZsYWdzVG9V
cGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSAmJiBwYWdlQ2xpZW50KCkuaXNW
aXN1YWxseUlkbGUoKSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRl
OjpJc1Zpc3VhbGx5SWRsZSk7Ci0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRl
OjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpKSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0
ZSAmIEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnMoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5j
b250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCiAgICAgICAg
IG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlKTsKICAgICBpZiAo
ZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyAmJiBtX3BhZ2VMb2FkU3Rh
dGUuaXNMb2FkaW5nKCkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0
ZTo6SXNMb2FkaW5nKTsKLSAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6Oklz
Q2FwdHVyaW5nTWVkaWEgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQorICAgIGlmIChm
bGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVk
aW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZSB9KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0
YXRlOjpJc0NhcHR1cmluZ01lZGlhKTsKIH0KIApAQCAtNjIzNiw3ICs2MjM2LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRNZWRpYVZvbHVtZSh2b2x1bWUpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBz
dGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBtX211dGVkU3RhdGUgPSBzdGF0ZTsKIApAQCAtNjI2Nyw3ICs2MjY3LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQog
I2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUo
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC05NDQ2LDcgKzk0NDYs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdhc1JlbW92
ZWQoKQogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVT
bmFwc2hvdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit2b2lkIFdl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBuZXdTdGF0ZSkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICgh
bV9wcm9jZXNzLT50aHJvdHRsZXIoKS5zaG91bGRCZVJ1bm5hYmxlKCkpCkBAIC05NDU3LDcgKzk0
NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YQogICAgICAgICB1cGRhdGVQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UobmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uOjpZZXMpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVs
YXlOb3RpZmljYXRpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlk
Q2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRlbGF5Tm90
aWZpY2F0aW9uIGNhbkRlbGF5Tm90aWZpY2F0aW9uKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgYXV0byB1cGRhdGVNZWRpYUNhcHR1cmVTdGF0ZUltbWVkaWF0ZWx5SWZOZWVkZWQg
PSBbJl0gewpAQCAtOTQ4NiwxNCArOTQ4NiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRl
UGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7Ci0gICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0YXRlID0g
bmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0dXJlU3Rh
dGUgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVN
YXNrOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFD
YXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZU1hc2s7CiAjZW5kaWYKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBw
bGF5aW5nTWVkaWFNYXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07Ci0gICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OklzUGxheWluZ1ZpZGVvIH07CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRT
dGF0ZSA9IG1fbWVkaWFTdGF0ZTsKIAotICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChv
bGRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRp
bykpICE9IChuZXdTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbykpOworICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5j
b250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAhPSAobmV3
U3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7
CiAgICAgaWYgKHBsYXlpbmdBdWRpb0NoYW5nZXMpCiAgICAgICAgIHBhZ2VDbGllbnQoKS5pc1Bs
YXlpbmdBdWRpb1dpbGxDaGFuZ2UoKTsKICAgICBtX21lZGlhU3RhdGUgPSBuZXdTdGF0ZTsKQEAg
LTk1MTcsNyArOTUxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5lCiAgICAgaWYgKChvbGRT
dGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFN
YXNrKSkKICAgICAgICAgbV91aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMp
OwogCi0gICAgaWYgKChvbGRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpKQorICAgIGlmICgob2xkU3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykp
ICE9IChtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0F1ZGlvT3JWaWRlbykpKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgp
OwogCiAgICAgbV9wcm9jZXNzLT51cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCk7CkBAIC05
NzE3LDcgKzk3MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZQogICAgIHBhZ2VDbGllbnQo
KS5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBj
b250ZXh0SWQsIHBhZ2VDbGllbnQoKS5yb290Vmlld1RvU2NyZWVuKEludFJlY3QocmVjdCkpLCBo
YXNWaWRlbywgdXNlRGFya0FwcGVhcmFuY2UoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpw
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKIHsKICAgICBwYWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLmNsaWVudFN0
YXRlRGlkQ2hhbmdlKCp0aGlzLCBjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzUxY2M0NzllYzlmZDY5Y2QzNzMwNzczNzI4MDE3
NTBlNzliMmMyZC4uZGY3ZGM5ZGM3NGU2ZmUzZGQyZjQ5YTg3MDk4YjVlOTU4OTc0ZDQ0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzOTYsMTMgKzEzOTYsMTMg
QEAgcHVibGljOgogICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyByZXR1cm4g
bV9yZW5kZXJUcmVlU2l6ZTsgfQogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0g
ICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Ms
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7Ci0gICAgYm9vbCBpc0F1ZGlv
TXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfTsKKyAgICB2b2lkIHNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7
IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH07CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbklu
V2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0
IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQgc2V0TWVk
aWFDYXB0dXJlRW5hYmxlZChib29sKTsKICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1
cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAKICAgICB2b2lkIHBhdXNlQWxsTWVkaWFQbGF5YmFj
ayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VzcGVuZEFsbE1lZGlh
UGxheWJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE1MDgsMTggKzE1MDgs
MTggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBz
aG90KCkgY29uc3QgeyByZXR1cm4gbV9pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90
OyB9CiAKLSAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRp
YVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8pOyB9Ci0gICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25z
dCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHVwZGF0
ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUoKTsKIAogICAgIGVudW0gY2xhc3MgQ2FuRGVsYXlO
b3RpZmljYXRpb24geyBObywgWWVzIH07Ci0gICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5v
dGlmaWNhdGlvbiA9IENhbkRlbGF5Tm90aWZpY2F0aW9uOjpObyk7CisgICAgdm9pZCB1cGRhdGVQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cywgQ2FuRGVsYXlOb3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8pOwogICAg
IGJvb2wgaXNDYXB0dXJpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250
YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKTsgfQogICAg
IGJvb2wgaXNDYXB0dXJpbmdWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250
YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKTsgfQotICAg
IGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUu
Y29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlKTsgfQotICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQotICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0
YXRlIC0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KLSAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CisgICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0
cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsgfQor
ICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3Rh
dGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHJlcG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRN
ZWRpYUNhcHR1cmVTdGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVNYXNrKTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9
CiAKICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwg
T3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pOwogCkBAIC0xNjAzLDcgKzE2
MDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lk
IHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlj
a2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpAQCAtMjkwNCw3ICsyOTA0LDcgQEAgcHJpdmF0
ZToKICAgICBXZWJDb3JlOjpMYXlvdXRQb2ludCBtX21heFN0YWJsZUxheW91dFZpZXdwb3J0T3Jp
Z2luOwogCiAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZSB7IDEgfTsKLSAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOworICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwogICAgIGJvb2wgbV9tYXlT
dGFydE1lZGlhV2hlbkluV2luZG93IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNr
SXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tZWRpYUNhcHR1cmVFbmFibGVkIHsg
dHJ1ZSB9OwpAQCAtMjk0MCwxMCArMjk0MCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hY3Rp
dml0eVN0YXRlQ2hhbmdlV2FudHNTeW5jaHJvbm91c1JlcGx5IHsgZmFsc2UgfTsKICAgICBWZWN0
b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9uZXh0QWN0aXZpdHlTdGF0ZUNoYW5nZUNh
bGxiYWNrczsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBt
X21lZGlhU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBt
X21lZGlhU3RhdGU7CiAKICAgICAvLyBUbyBtYWtlIHN1cmUgY2FwdHVyZSBpbmRpY2F0b3JzIGFy
ZSB2aXNpYmxlIGxvbmcgZW5vdWdoLCBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgaXMgdGhl
IHNhbWUgYXMgbV9tZWRpYVN0YXRlIGV4Y2VwdCB0aGF0IHdlIG1pZ2h0IGRlbGF5IGEgYml0IHRy
YW5zaXRpb24gZnJvbSBjYXB0dXJpbmcgdG8gbm90LWNhcHR1cmluZy4KLSAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRl
OworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1l
ZGlhQ2FwdHVyZVN0YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4gbV91cGRh
dGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlVGltZXI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBT
ZWNvbmRzIERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IDNfcyB9OwogICAgIFNl
Y29uZHMgbV9tZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IERlZmF1bHRNZWRpYUNhcHR1cmVS
ZXBvcnRpbmdEZWxheSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDcyZTU2ZGZmZTZlNWY0MGIzZWE1MzJlYWRlM2ZkMTk4ZDhk
ZWYwZTUuLjExOGE3MWE5Nzk1NmM5MWI1NmU2MjgwYzQyMWNmOGEzMjYzMjhkOWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ2
Miw3ICs0NjIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRs
ZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2Vu
ZGlmCiAKLSAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCisgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoT3B0
aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBzdGF0ZSkKICAgICBIYW5k
bGVBdXRvcGxheUV2ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50IGV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIAogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTQ4MSw3ICs0ODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIEFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3Jl
OjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHBpY2tlckxvY2F0aW9uLCBib29sIGhhc1ZpZGVvKQotICAgIFBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKQorICAgIFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZT4gbWVkaWFTdGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVu
YWJsZWQoYm9vbCBlbmFibGVkKQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
U3RhdGUoU3RyaW5nIG5hbWUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6TW9ja1N0YXRlIHBpY2tlclN0YXRlKQogICAgIE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDhkNDdhNjNmNmNhNzZiNDFlYzg2ZWE3YzQ0MTcyZDczMGEw
NDJiYTkuLmFmNDA5NjFkYTBmOWE4ZWM0ODc1MDhiZjIxNDEzMjA3ZmEwN2RmNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTg0Nyw3ICsxODQ3
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAKICNlbmRpZgogCi12b2lkIFdlYlByb2Nlc3NQ
cm94eTo6cGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBmbGFncykKK3Zv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cyBmbGFncykKIHsKICAgICBib29sIG11dGVkRm9yQ2FwdHVyZSA9IGZsYWdzLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgaWYgKCFt
dXRlZEZvckNhcHR1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IDljZjIzYWQ4OTI5ZGJlOWE4MDNjMGFjMDA0YWEzM2RjMmYyYzY3MWUuLjg3MmYwMmUx
NTQ3MDgxNmJjMmVjYWFjNjRmMWFmYTEyZTU4ZWVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC00MDYsNyArNDA2LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIG11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpOwogI2VuZGlmCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7Cisg
ICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogICAgIHZvaWQgcGFnZUlzQmVj
b21pbmdJbnZpc2libGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCmluZGV4IGZmZGQ0MzM0NTdlY2VmY2Q2YWRkOGQ5YTQyMTRiYWI0NWRkNWU2NTAuLjFm
MTc2ZWJkOTg4Y2UwMmZlZTZkODIwODQyNjJlODRmMWU1NmFlOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlci5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IGEzZDZjYzMyZjY1NDlmYTBmYWI0YTI0NTA4ZmUyMmYwNDdm
OWQzMzUuLmQzYWFkNmVhMjYxNjhhMjFiODNkNTMwZTdhYjZkZDQ3YTI2N2YyMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OSw3
ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlSW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Nb3Vz
ZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYWE5ZDNlY2UzZDYyNTg5ZDZiYmFlYzkxNGI2MzU2ZDUw
NGE0ZTliYS4uNWFiYzQ4NmUwYzU5MTBhZGU4YjhjNmZjOGQ4ZjkwYTlmOTZlYjU4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTg2LDcg
KzE4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYUNhblN0YXJ0KFdlYkNvcmU6OkRvY3Vt
ZW50Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyCi0gICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlh
U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdl
KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQbHVnaW5Db250cm9sbGVyCkBAIC0yNzYsMTEgKzI3Niwx
MSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wbHVnaW5Jc1BsYXlpbmdBdWRpbyB7IGZhbHNlIH07
CiB9OwogCi1pbmxpbmUgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIFBs
dWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25zdAoraW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgUGx1Z2luVmlldzo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7Ci0gICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGU7CisgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlOwogICAgIGlm
IChtX3BsdWdpbklzUGxheWluZ0F1ZGlvKQotICAgICAgICBtZWRpYVN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CisgICAgICAgIG1lZGlhU3RhdGUu
YWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CiAg
ICAgcmV0dXJuIG1lZGlhU3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTIw
YTA0ZDM2ZjAzOGFjNzMxOTE1NTJlY2Y0NWUzMjE0ZTE1YjdlZS4uYTIzOTZjZTJjMjk0ZTgyNmVl
ODZkM2Y3NmQ5ZjVhNzEzYjk5NjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEyNTIs
NyArMTI1Miw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdG
b3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpCiAgICAgcmV0dXJuIG1fcGFnZS5k
cmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0
YXRlKQogewogICAgIG1fcGFnZS5pc1BsYXlpbmdNZWRpYURpZENoYW5nZShzdGF0ZSk7CiB9CkBA
IC0xMzg0LDcgKzEzODQsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aQogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb250
ZXh0SWQsIHJlY3QsIGlzVmlkZW8pKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDY0NDgyYTQyZTRlYzcyZDUyYWE4NDZhNTc4NDVhMTQ2ODQ2NmM3MTAuLmI5OTM4ZjJiZmE2
MTAwYjI5NjIzY2QwMzA1Y2UwYjE0YzQzMjIxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM1
Miw3ICszNTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdG
b3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIGhh
bmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNv
cmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQpAQCAtMzkxLDcgKzM5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwog
ICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkg
ZmluYWw7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgdm9pZCBwbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJF
bmFibGVkKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6TW9ja1N0YXRlKSBmaW5hbDsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRGlzbWlzc1BvcHVwKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU2ZWU0MjBmNDVhNDI3NTllMDYxNGNiNTAwY2E2ZWY2
YjUyNGM5MDQuLmRlOGM1ZjM3YjAyZDExMjE2MDhkMjk3OTRjNWY1YjgwNmRjOGZlZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00Mzc1LDcg
KzQzNzUsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGlu
Z0F3YXlGcm9tQ09PUFJlc3BvbnNlKEZyYW1lSWRlbnRpZgogICAgICAgICBXZWJDb3JlOjpzZW5k
VmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZSgqZnJhbWUt
PmNvcmVGcmFtZSgpLCBjb29wLCBkaXNwb3NpdGlvbiwgY29vcFVSTCwgbmV4dFJlc3BvbnNlVVJM
LCBjb29wT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIG5leHRSZXNwb25zZU9yaWdpbi5zZWN1cml0
eU9yaWdpbigpLCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2UsIHVzZXJBZ2VudCk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQm
JiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC01NTc1LDEz
ICs1NTc1LDEzIEBAIHZvaWQgV2ViUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQog
ICAgIG1fcGFnZS0+c2V0TWVkaWFWb2x1bWUodm9sdW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpz
ZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c2V0TXV0
ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS0+c2V0TXV0ZWQoc3Rh
dGUpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RvcE1l
ZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c3Rv
cE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBtX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoa2luZCk7CkBAIC03NDUx
LDcgKzc0NTEsNyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNocm9uaXplQ09SU0Rpc2FibGluZ1BhdHRl
cm5zV2l0aE5ldHdvcmtQcm9jZXNzKCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENPUlNEaXNhYmxpbmdQYXR0ZXJucyht
X2lkZW50aWZpZXIsIG1fY29yc0Rpc2FibGluZ1BhdHRlcm5zKSwgMCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBj
MTM4NTU3M2IwYmU1ZmVjODAxNTBhOTVmYjM5NTE5NDNhNTA0NjY2Li5jMjdkNDAwYjY2ZDM3ZGJl
MGE5ZTU0ZDI3YWJmNDQwYzQ5ZDQxMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC00NDgsNyArNDQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Vu
ZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRw
b2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpOwogICAgIHZvaWQgc2VuZFZpb2xhdGlv
blJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSYsIFdlYkNvcmU6OkNP
T1BEaXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwmIHByZXZpb3VzUmVz
cG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgY29vcE9yaWdpbiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBwcmV2aW91c1Jlc3BvbnNlT3JpZ2lu
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiByZXBvcnRUb0hlYWRlclZhbHVlKTsKICAgICB2b2lkIHNlbmRWaW9sYXRpb25SZXBv
cnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBXZWJDb3JlOjpD
T09QRGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBuZXh0UmVzcG9u
c2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgY29vcE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wg
aXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCk7
Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6Oklu
aXQmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnRJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAv
LyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xp
ZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwpAQCAtMTAyNyw5ICsxMDI3
LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2VSZXF1ZXN0KFdlYkNvcmU6OlJl
c291cmNlTG9hZGVySWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0
KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVG
bGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldE11dGVkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwot
ICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RvcE1l
ZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xs
T2Zmc2V0UGlubmluZygpOwogCkBAIC0xNDIxLDcgKzE0MjEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRl
bnRpZmllcik7CiAjZW5kaWYKIAotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwog
CiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25p
dGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2Vi
Q29yZTo6RWxlbWVudD4mJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggOGFmYzRlYTVlM2NkMDFjMmFjM2E0
YTM0MWYzMTZhOWEyMTEzMzJlMS4uNzgyZmYyODJiYWEzZGQ4YTM4YjBhOGFjYTMxOTMzMmE5YTNj
ODEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVn
YWN5UmVjZWl2ZXIgewogICAgIFNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJl
ZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bv
c2l0aW9uIGRpc3Bvc2l0aW9uLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpE
ZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgVVJMIGJsb2NrZWRVUkwpCiAgICAgU2VuZFZpb2xhdGlv
blJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb29w
LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBVUkwgY29v
cFVSTCwgVVJMIHByZXZpb3VzUmVzcG9uc2VVUkwsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgY29vcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBw
cmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBTdHJpbmcgcmVmZXJyZXIsIFN0cmluZyB1c2VyQWdlbnQs
IFN0cmluZyByZXBvcnRUb0hlYWRlclZhbHVlKQogICAgIFNlbmRWaW9sYXRpb25SZXBvcnRXaGVu
TmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgZW51
bTpib29sIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgVVJMIGNvb3BVUkws
IFVSTCBuZXh0UmVzcG9uc2VVUkwsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
Y29vcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBuZXh0UmVzcG9u
c2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBTdHJpbmcgdXNl
ckFnZW50KQotICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChi
b29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAKQEAgLTQxNyw5ICs0MTcsOSBAQCBHZW5lcmF0ZVN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kVHlwZQogCiAgICAgIyBNZWRpYQogICAgIFNldE1lZGlhVm9sdW1lKGZsb2F0IHZv
bHVtZSkKLSAgICBTZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3MgbXV0ZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0TXV0ZWQoT3B0aW9uU2V0PFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiBtdXRlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRNYXlTdGFy
dE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRpYSkKLSAgICBTdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkg
QXN5bmMKKyAgICBTdG9wTWVkaWFDYXB0dXJlKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKSAtPiAoKSBBc3luYwogCiAgICAgU2V0Q2FuUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKQogICAgIFNldENhblJ1bk1vZGFsKGJvb2wgY2FuUnVuTW9kYWwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0KaW5kZXggOGVhNDA0M2UxNjE1ZTMxOTY1Nzli
MDYwMGI2MDBkNTY4NmM2NmE0ZS4uNjJmYTYyMjAyODY1ZGZhZGM1MWMyNTg1Mjc2NjdiM2ZiZmE3
M2E0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQpAQCAt
NjAsOSArNjAsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9DU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0NvbW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NV2luZG93Lmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50
RnJhZ21lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRGdWxsc2NyZWVuLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50SW5saW5lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVu
dFR5cGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRN
TENvbGxlY3Rpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMWM1NzY3OTM3YzY1NDlmYTFjZTQ5
YzkzODUyY2E0ZWUzYjdhZGU2Yy4uMzU1NWQ1NDRjYTc0YjcxMTlkNmIwNjc2MjY2N2UyYzQxNzUx
ZDAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIGJvb2wgLyogaGFzVmlkZW8gKi8pIGZpbmFsOwotICAgIHZvaWQgcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lk
IHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSBmaW5hbDsKICAg
ICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5n
JiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSkgZmluYWw7
CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGE0NmIxYWRhNjA0OTdkYTdmNWVlZTI3Zjgx
MWUzMmU3YzA4MjZlMTEuLjE2OTNkODc1ZmUwMDg1NGY5MmQ1YmEzMTZkNWY3MzExZDg3ZDhhYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTExMjksNyArMTEyOSw3IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpCiAgICAgW21fd2ViVmlldyBfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOmNvbnRl
eHRJZCBsb2NhdGlvbjpsb2NhdGlvbiBoYXNWaWRlbzpoYXNWaWRlb107CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKIHsKICAgICBbbV93ZWJWaWV3IF9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlOmNvbnRleHRJZCBzdGF0ZTpzdGF0ZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5oCmluZGV4IDhjYTMyOTQ3YTViNDZlMDY3YjhlOGJhZTQ0NjM5M2ViYjkwZTg2ZWYuLjM5
NjU1NWNkMWY5OGI2YmMxMzQ0NTA1N2VkY2E1NzZmZmQ0ZWI2MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRl
byk7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwog
ICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwog
ICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAg
ICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIubW0KaW5kZXggN2RiZDU4OTQ3NTQwNWExNmViZGQwZmE5YmNm
YTYyYzMzN2U3NDE1Mi4uNWNmZmJjZmMzZjVlYWM2ZTVlYjgyZWVhMDNlYzhiMGM1YTk4ZTc2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFdl
Yk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJD
b3JlOjpQbGF5YmFja1RhcgogICAgIFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNo
YXJlZCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBXZWJDb3Jl
OjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRlbywgbV9wYWdlID8gbV9wYWdlLT51c2VEYXJrQXBwZWFy
YW5jZSgpIDogZmFsc2UpOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6
OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlcjo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXZWJDb3Jl
OjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5jbGllbnRTdGF0ZURpZENoYW5nZSgq
dGhpcywgY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggYzI2NGFmYTg2MmZlODljZmQ4ODA1NzkxZmFhMjJmZTQzMzUw
OTk1Ny4uNmQ2OTdkZDg3YmQ3MDZiYTlkYTc0MzlmMmRiMmQ1YzE1YTQ0ZGQzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtOTI0MSw3ICs5MjQxLDcg
QEAgLSAodm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWUKICAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMs
IGhhc1ZpZGVvKTsKIH0KIAotLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cylzdGF0ZQorLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0
SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKIHsK
ICAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IGE0N2RhMmNmNGQ3NDk0OTYw
ZjVjNTA4ZjIyYjdmMTUwYTI3ZDhkYTcuLmNjZDhjZDczYTQxZTM5YTFhNzNlZjE5NDE1NGYxOTI5
NGQyMWU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaApAQCAtMzM2LDcgKzMzNiw3IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0
TGF5b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAt
ICh2b2lkKV9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDooV2ViQ29yZTo6UGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQ7CiAtICh2b2lkKV9yZW1vdmVQ
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciljb250ZXh0SWQ7CiAtICh2b2lkKV9zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXI6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29u
dGV4dElkIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gaGFzVmlk
ZW86KEJPT0wpaGFzVmlkZW87Ci0tICh2b2lkKV9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0
YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyKWNvbnRleHRJZCBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzKXN0YXRlOworLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250
ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mpc3RhdGU7
CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQ6KGJvb2wp
ZW5hYmxlZDsKIC0gKHZvaWQpX3NldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTmFtZToo
TlNTdHJpbmcgKiluYW1lIHN0YXRlOihXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dDo6TW9ja1N0YXRlKXN0YXRlOwogLSAodm9pZClfbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJEaXNtaXNzUG9wdXA7Cg==
</data>
<flag name="commit-queue"
          id="464982"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440894</attachid>
            <date>2021-10-11 23:08:38 -0700</date>
            <delta_ts>2021-10-11 23:29:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211011230838.patch</filename>
            <type>text/plain</type>
            <size>277716</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4
IDk4N2NiYTRjMzFiNzBlNThiNDFlM2E2NmFjY2YwYmEyYTZmNzU4OGUuLjM5ZjJhMDM5YzAyNThh
MTY1MzNkYjk1YTA1YWM5ODkyMzJmMThjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5
UG9saWN5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY2ODQ4NmZk
ODdmY2ZlNDRlMjhjMWM1ZDFhNzY4MmNiOWJhZTcyMzYuLjYzMjNmNWQ2NGNiYzZiYzZiMDIyZjA1
NTgzODkwNmMwM2Y3YjUzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ29tbW9uVk0u
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01XcmFw
cGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZUNvbG9yLmNwcAppbmRleCA2YzA4NWE4MDBjZGY0YWYzNGIyMzUyYzI1Y2Fi
YjEzOWViMDVlNmRlLi4wMzg2ZTM2NjA5ZTRjZThkNzQwYzc5ZjE4NjdlNzY2N2JlZDJjNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotQ29sb3IgU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1
ZUlEIGtleXdvcmQsIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zKQorQ29sb3IgU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlEIGtleXdvcmQsIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykKIHsKICAgICBpZiAoY29uc3QgY2hhciogdmFsdWVOYW1lID0g
Z2V0VmFsdWVOYW1lKGtleXdvcmQpKSB7CiAgICAgICAgIGlmIChjb25zdCBOYW1lZENvbG9yKiBu
YW1lZENvbG9yID0gZmluZENvbG9yKHZhbHVlTmFtZSwgc3RybGVuKHZhbHVlTmFtZSkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUNvbG9yLmgKaW5kZXggZTRlNThkZjljNWVmZTQ4NzUyY2U4OGYxMjQxMGNlMjM5
ZjEzOTI3Ni4uMzIxNDRmNGYxZjY1YjYwZjY4NmRmMjc2ZjI1NGU5ZjIwZGQ2Yzc3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVDb2xvci5oCkBAIC0zNywxNSArMzcsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdHJ1Y3QgU3R5bGVDb2xvciB7Ci0gICAgZW51bSBjbGFzcyBPcHRpb25zIDogdWlu
dDhfdCB7Ci0gICAgICAgIEZvclZpc2l0ZWRMaW5rID0gMSA8PCAwLAotICAgICAgICBVc2VTeXN0
ZW1BcHBlYXJhbmNlID0gMSA8PCAxLAotICAgICAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwg
MiwKLSAgICAgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSAxIDw8IDMKLSAgICB9
OworZW51bSBjbGFzcyBTdHlsZUNvbG9yT3B0aW9ucyA6IHVpbnQ4X3QgeworICAgIEZvclZpc2l0
ZWRMaW5rID0gMSA8PCAwLAorICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCisgICAg
VXNlRGFya0FwcGVhcmFuY2UgPSAxIDw8IDIsCisgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwgPSAxIDw8IDMKK307CiAKLSAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tS2V5d29yZChD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8T3B0aW9ucz4pOworc3RydWN0IFN0eWxlQ29sb3IgeworICAg
IHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pOwogICAgIHN0YXRpYyBib29sIGlzQWJzb2x1dGVDb2xvcktleXdvcmQo
Q1NTVmFsdWVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTeXN0ZW1Db2xv
cktleXdvcmQoQ1NTVmFsdWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApp
bmRleCBiYjhkNTNjY2M0NDVjNzBjZmE4MmZlY2Y2MzVkNWNiMjA0NmY2NGE3Li4yZTY1YzYyNDQ5
NzMzN2U2YjkwMGFlMzkwMGMxYTEyNmM5N2Q2Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3Rl
ckRhdGEuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChD
aGFyYWN0ZXJEYXRhKTsKIHN0YXRpYyBib29sIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oY29u
c3QgQ2hhcmFjdGVyRGF0YSYgbm9kZSkKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IG5vZGUuZG9j
dW1lbnQoKTsKLSAgICByZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6
RE9NQ0hBUkFDVEVSREFUQU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRp
b25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSkKKyAgICBy
ZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6RE9NQ0hBUkFDVEVSREFU
QU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5
cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEpCiAgICAgICAgICYm
ICFkb2N1bWVudC5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTVNVQlRSRUVNT0RJRklFRF9M
SVNURU5FUik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RN
dXRhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5oCmluZGV4IDI5NjY3Njc3NjhmMGQ3MTQ3NDJlMzZiY2U1YjYxMDg2OTc3ZjkxZmYuLjY0Yzky
NDY1ZjJhMTAzYjNhOTkwZTYxYTNjZjEyOGEwOTViMmJjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaApAQCAtMzEsNyArMzEsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVy
LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAt
NzYsNyArNzYsNyBAQCBjbGFzcyBDaGlsZExpc3RNdXRhdGlvblNjb3BlIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBDaGlsZExpc3RNdXRhdGlvblNjb3BlKENvbnRhaW5lck5vZGUmIHRhcmdldCkK
ICAgICB7Ci0gICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICBpZiAodGFyZ2V0
LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCkpCiAgICAgICAgICAgICBtX2FjY3VtdWxhdG9yID0gQ2hpbGRM
aXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6Z2V0T3JDcmVhdGUodGFyZ2V0KTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCAyYjU5YjM2YmM4OWFkMmVkZjk1Mjk5
NDUxNmRhOTg5N2EwN2Y0NzhlLi5hZDhhNzU0OTRmYmVkMDI5ZTgxNjJkMGNiYTVlZTRhOGUyMGQx
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgQUxXQVlTX0lOTElORSBOb2RlVmVjdG9yIENvbnRhaW5lck5vZGU6OnJlbW92ZUFsbENoaWxk
cmVuV2l0aFNjcmlwdEFzc2VydGlvbihDaGkKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQo
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcik7CiAgICAgICAgIFNjcmlwdERp
c2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLSAgICAg
ICAgaWYgKFVOTElLRUxZKGRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0
YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRvY3Vt
ZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGU6OkNoaWxkTGlzdCkpKSB7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11
dGF0aW9uKCp0aGlzKTsKICAgICAgICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbikK
ICAgICAgICAgICAgICAgICBtdXRhdGlvbi53aWxsUmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZThiYzU2ZTc2ZTZmNjRjOTZmNzFhZmM2M2NjMmQ3
NmQxMmZmMGNhNC4uYWRmNTM1NTJmZTA3ZjU1YTdmMTE5MzQ4MGY1NWNjMmJkZTFiYTY1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiRGVidWdQ
YWdlT3ZlcmxheXMuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZvbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgpAQCAt
MTc3LDYgKzE3OCw3IEBACiAjaW5jbHVkZSAiUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24u
aCIKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJRdWlya3MuaCIKKyNpbmNs
dWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAi
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxkSXRlcmF0
b3IuaCIKQEAgLTIzOSw2ICsyNDEsNyBAQAogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1
ZGUgIlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2
ZXJzYWwuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVG91
Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJUcmVl
V2Fsa2VyLmgiCkBAIC05NzksNyArOTgyLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzZXRMaW5rQ29s
b3IoKQogCiB2b2lkIERvY3VtZW50OjpyZXNldFZpc2l0ZWRMaW5rQ29sb3IoKQogewotICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBtX3Zpc2l0ZWRMaW5rQ29sb3IgPSBTdHlsZUNvbG9y
Ojpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlV2Via2l0TGluaywgc3R5bGVDb2xvck9wdGlvbnMo
bnVsbHB0cikgfCBTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogfQogCiB2b2lk
IERvY3VtZW50OjpyZXNldEFjdGl2ZUxpbmtDb2xvcigpCkBAIC0zNTc4LDYgKzM1ODEsMTMgQEAg
UmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IERvY3VtZW50Ojpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW8KICAgICByZXR1cm4gcGFnZS0+bGliV2ViUlRDUHJvdmlk
ZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgRG9jdW1lbnQ6OnNldFJUQ05ldHdvcmtNYW5hZ2Vy
KFJlZjxSVENOZXR3b3JrTWFuYWdlcj4mJiBydGNOZXR3b3JrTWFuYWdlcikKK3sKKyAgICBtX3J0
Y05ldHdvcmtNYW5hZ2VyID0gV1RGTW92ZShydGNOZXR3b3JrTWFuYWdlcik7Cit9CisjZW5kaWYK
KwogYm9vbCBEb2N1bWVudDo6Y2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTQ0MDMsMTggKzQ0
MTMsMTggQEAgdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlvbldpdGhNZWRpYUVsZW1l
bnQoKQogdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEoKQogewogICAgIEFTU0VS
VCghbV9hdWRpb1Byb2R1Y2Vycy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8mIGF1ZGlvUHJvZHVjZXIgOiBtX2F1ZGlvUHJvZHVj
ZXJzKQogICAgICAgICBzdGF0ZS5hZGQoYXVkaW9Qcm9kdWNlci5tZWRpYVN0YXRlKCkpOwogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0ZS5hZGQoTWVkaWFTdHJlYW1UcmFjazo6
Y2FwdHVyZVN0YXRlKCp0aGlzKSk7CiAgICAgaWYgKG1fYWN0aXZlU3BlZWNoUmVjb2duaXRpb24p
Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CiAjZW5kaWYKIAogICAgIGlmICht
X3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAgICAgc3RhdGUuYWRkKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVu
dCk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlcklu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKIAogICAgIGlmIChzdGF0ZSA9PSBtX21lZGlhU3Rh
dGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY3MjUsNyArNjczNSw3IEBAIHZvaWQgRG9jdW1lbnQ6
OmRpc3BhdGNoUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgcGVyc2lzdGVk
KQogICAgIGRpc3BhdGNoV2luZG93RXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCBwZXJzaXN0ZWQpLCB0aGlzKTsKIH0KIAotdm9pZCBE
b2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgRG9jdW1lbnQ6OmVucXVl
dWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudChUYXNr
U291cmNlOjpET01NYW5pcHVsYXRpb24sIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25FdmVudCwgV1RGTW92ZShl
dmVudEluaXQpLCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKIH0KQEAgLTc1MDksMTUgKzc1MTks
MTUgQEAgYm9vbCBEb2N1bWVudDo6dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0
aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPiBvcHRpb25zOwogICAgIGlmICh1c2VTeXN0ZW1BcHBlYXJhbmNlKCkpCi0gICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
ICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7
CiAgICAgaWYgKHVzZURhcmtBcHBlYXJhbmNlKHN0eWxlKSkKLSAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBvcHRpb25z
LmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogICAgIGlmICh1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZl
bCk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKQEAgLTc2OTQsNyArNzcwNCw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xp
ZW50JiBjbGllbnQsIGJvb2wKICAgICBwYWdlLT5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoaXQt
PnZhbHVlLCBwb3NpdGlvbiwgaXNWaWRlbywgcm91dGVTaGFyaW5nUG9saWN5LCByb3V0aW5nQ29u
dGV4dFVJRCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIERvY3VtZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQm
IGNsaWVudCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBQYWdl
KiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTgxOTksNyArODIwOSw3
IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCiAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lkIERvY3VtZW50OjpzdG9wTWVkaWFDYXB0
dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgRG9jdW1lbnQ6
OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsK
ICAgICBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKCp0aGlzLCBraW5kKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4NTA4OTAw
Ni4uZDJiZWNlYjUzYjE4MDY0NzJiYjM2M2U1MGJjZjUwMGI5NjVjYTY5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJEaXNhYmxlZEFkYXB0YXRpb25z
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRm9jdXNPcHRpb25zLmgi
CiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yQ2xpZW50LmgiCkBAIC00MywzMCArNDIsMjEgQEAKICNp
bmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
LSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3Rp
Zmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1F
dmVudC5oIgogI2luY2x1ZGUgIlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9s
aWN5LmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4u
aCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIgogI2luY2x1
ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKLSNpbmNsdWRlICJTdHlsZUNvbG9yLmgiCi0jaW5j
bHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2luY2x1
ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
IlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVk
ZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5U3RhdGUuaCIKLSNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTk2
LDExICs4NiwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFRleHRTdHJlYW07CiB9CiAKK25h
bWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBBcHBIaWdobGlnaHRTdG9yYWdlOwogY2xh
c3MgQXR0cjsKK2NsYXNzIENhbnZhc0Jhc2U7CiBjbGFzcyBDREFUQVNlY3Rpb247CiBjbGFzcyBD
U1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ1NTRm9udFNlbGVjdG9yOwpAQCAtMTMyLDYg
KzEyNyw3IEBAIGNsYXNzIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjsKIGNsYXNzIERvY3VtZW50
UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sOwogY2xhc3MgRG9jdW1lbnRU
aW1lbGluZTsKK2NsYXNzIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjsKIGNsYXNzIERvY3Vt
ZW50VHlwZTsKIGNsYXNzIEVkaXRpbmdCZWhhdmlvcjsKIGNsYXNzIEVkaXRvcjsKQEAgLTE4Myw2
ICsxNzksNyBAQCBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xp
ZW50OworY2xhc3MgTWVkaWFQcm9kdWNlcjsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKQEAg
LTE5Niw3ICsxOTMsOSBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb247CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUXVpcmtzOworY2xh
c3MgUlRDTmV0d29ya01hbmFnZXI7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFJlZ2lvbjsKIGNsYXNz
IFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrOwpAQCAtMjIzLDYgKzIyMiw3IEBAIGNsYXNzIFN0eWxlU2hlZXRD
b250ZW50czsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRB
dXRvU2l6aW5nOworY2xhc3MgVGV4dEVuY29kaW5nOwogY2xhc3MgVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVHJhbnNmb3JtU291
cmNlOwpAQCAtMjUwLDIwICsyNTAsMjkgQEAgc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBz
dHJ1Y3QgQm91bmRhcnlQb2ludDsKIHN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGE7CiBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOworc3RydWN0IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnRJbml0OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGVu
dW0gQ29sbGVjdGlvblR5cGU7CiAKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUg
OiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1
aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJpbmdV
cGRhdGVTdGVwIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRpb25zIDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgOiB1aW50OF90Owog
Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgPSBP
cHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OwogdXNpbmcgUGxhdGZvcm1EaXNwbGF5
SUQgPSB1aW50MzJfdDsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIGNsYXNzIFJlc29sdmVyOwogY2xh
c3MgU2NvcGU7CitjbGFzcyBVcGRhdGU7CiB9CiAKIGVudW0gUGFnZXNob3dFdmVudFBlcnNpc3Rl
bmNlIHsgUGFnZXNob3dFdmVudE5vdFBlcnNpc3RlZCwgUGFnZXNob3dFdmVudFBlcnNpc3RlZCB9
OwpAQCAtMzU0LDcgKzM2Myw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0g
RXZlbnRUYXJnZXQ6OldlYWtWYWx1ZVR5cGU7CiAgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OndlYWtQ
dHJGYWN0b3J5OwogCi0gICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRp
bmdzJiwgY29uc3QgVVJMJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxEb2N1bWVu
dD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJik7CiAgICAgc3RhdGljIFJlZjxE
b2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRlcihGcmFtZSYsIGNvbnN0IFVSTCYp
OwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCkBAIC00NjAs
MTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVs
dENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0OwogCi0gICAgU3RyaW5nIGNoYXJzZXQo
KSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2RpbmcoKTsgfQorICAgIGlubGluZSBTdHJp
bmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjaGFyYWN0ZXJT
ZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGlu
ZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nKCkgY29uc3Q7
CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gdGV4dEVuY29kaW5n
KCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmKTsgLy8g
VXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5LgogCkBAIC01NzksNyArNTg4LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJh
bmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKGNvbnN0
IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBjb25zdCBSZW5kZXJPYmplY3Qm
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsK
QEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJ
ZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVu
c2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNoZSogZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2FjaGUqIGV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0
Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmplY3RDYWNoZSgpOwogCkBAIC03MTMs
NyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgUlRDTmV0d29y
a01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1cm4gbV9ydGNOZXR3b3JrTWFuYWdl
ci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtN
YW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZN
b3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UlRD
TmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRp
b25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUeXBlKSBjb25zdDsKICAg
ICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbXV0
YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0gICAgYm9vbCBoYXNNdXRhdGlvbk9i
c2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzOyB9Ci0gICAg
dm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdHlw
ZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlwZXM7IH0KKyAgICBpbmxpbmUgYm9v
bCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSkg
Y29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuICFt
X211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE11dGF0aW9u
T2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBn
ZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBudWxscHRy
OyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFza1Rv
RGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJlZjxFdmVudD4mJik7CiAgICAgdm9p
ZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgZGlzcGF0Y2hQ
YWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYg
b2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAgdm9pZCBkaXNwYXRjaFBvcHN0YXRl
RXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzdGF0ZU9iamVjdCk7CiAKQEAg
LTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigp
OyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQogCi0gICAgYm9vbCBpc1NhbWVPcmln
aW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVP
cmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW5Bc1Rv
cERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRGb3JjZU5vT3BlbmVyQmFzZWRPbkNP
T1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVy
UG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IGZpbmFsOwpAQCAtMTQwMiw5
ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9k
dWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRp
b1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29n
bml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVt
ZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVj
ZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0NhcHR1
cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVk
aWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCk7CiAKQEAgLTE0MTIsNyAr
MTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCwg
Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYs
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAgIHZvaWQgc2V0UGxheWJhY2tUYXJn
ZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgUmVmPE1lZGlhUGxheWJh
Y2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCk7CkBAIC0xNDUx
LDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lk
IHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBtX2hhc0hhZENhcHR1cmVNZWRpYVN0
cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOyB9Ci0g
ICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQp
OworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgog
CkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV93cml0ZVJl
Y3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2lnbk1vZGUgeyBp
bmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0
ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBi
b29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50IHsgZmFsc2UgfTsKICAgICBC
YWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENhY2hlU3RhdGUgeyBOb3RJbkJhY2tG
b3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVy
cmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKICAg
ICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5OwogCi0g
ICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgeyAwIH07
CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7CiAK
ICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsKQEAgLTIyMjksNDMgKzIyMzUsNiBA
QCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1
bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2RpbmcoKSBj
b25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhpcy0+ZGVjb2RlcigpKQotICAgICAg
ICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7
Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlRG9jdW1lbnQo
KSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID8gdGhpcyA6IG1f
dGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5lIEFYT2JqZWN0Q2FjaGUqIERvY3Vt
ZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAotewotICAgIGlmICghaGFzRXZlckNy
ZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0KLWlubGluZSBSZWY8RG9jdW1lbnQ+
IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudChudWxscHRyLCBzZXR0aW5n
cywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRlQWNjZXNzS2V5
Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vzc0tleUNhY2hlKSkKLSAgICAgICAg
aW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsKLX0KLQotLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSBEb2N1bWVudCBjbGFzcyBkZWZp
bml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgotCi1pbmxpbmUgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgpOwotfQotCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRG9jdW1lbnQmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oCmluZGV4
IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3MThmM2UuLmRkMjUwYWUyYzg4OWRl
YjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxp
bmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRleHRFbmNvZGluZyBEb2N1bWVudDo6
dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7CiB9CiAKK2lu
bGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIHRleHRF
bmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3RyaW5nIERvY3VtZW50OjpjaGFyc2V0
KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5nKCk7IH0KKwogaW5saW5lIGNvbnN0
IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDogbV90ZW1wbGF0ZURvY3VtZW50Lmdl
dCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZVNsb3dDYXNl
KCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0NhcHR1cmluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7Cit9CisK
K2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAoreworICAgIHJldHVybiBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30KKworaW5saW5lIGJvb2wgRG9jdW1l
bnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0eU9y
aWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsgfQorCisKIC8vIFRoZXNlIGZ1bmN0
aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0aGUgRG9jdW1lbnQgY2xhc3MgZGVm
aW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4KIAogaW5saW5lIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5NTJiMTkyZTQxMjQwNTZhMDM4NTMy
ZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBhMjI2MDkxNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgog
I2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9v
bC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggNDc2ZjhkYWI5YjY1
MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uZDk2MTY0M2QyNWE1Nzc5OWVjYjIwZTI5Zjdk
MWViMjY5OWZmZDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApA
QCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKCkK
IAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8
IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRy
aWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRWYWx1ZSkpCi0gICAgICAgICYmICgo
b3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCi0g
ICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJh
Y3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KE11dGF0
aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlcykKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
TXV0YXRpb25UeXBlOjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSkpCisgICAgICAgICYmIChvcHRpb25zLmNvbnRhaW5zKE11
dGF0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT2JzZXJ2YXRpb25G
bGFnczo6QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoTXV0
YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTXV0
YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0KQogewot
ICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAoaW5pdC5jaGlsZExpc3QpCi0gICAgICAg
IG9wdGlvbnMgfD0gQ2hpbGRMaXN0OworICAgICAgICBvcHRpb25zLmFkZChNdXRhdGlvblR5cGU6
OkNoaWxkTGlzdCk7CiAgICAgaWYgKGluaXQuc3VidHJlZSkKLSAgICAgICAgb3B0aW9ucyB8PSBT
dWJ0cmVlOworICAgICAgICBvcHRpb25zLmFkZChPYnNlcnZhdGlvbkZsYWdzOjpTdWJ0cmVlKTsK
ICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVPbGRWYWx1ZS52YWx1ZV9vcihmYWxzZSkpCi0gICAgICAg
IG9wdGlvbnMgfD0gQXR0cmlidXRlT2xkVmFsdWU7CisgICAgICAgIG9wdGlvbnMuYWRkKERlbGl2
ZXJ5RmxhZ3M6OkF0dHJpYnV0ZU9sZFZhbHVlKTsKICAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
T2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBvcHRpb25zIHw9IENoYXJhY3RlckRh
dGFPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoRGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVy
RGF0YU9sZFZhbHVlKTsKIAogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlRmlsdGVy
OwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkKICAgICAgICAgICAgIGF0dHJpYnV0
ZUZpbHRlci5hZGQodmFsdWUpOwotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZUZpbHRlcjsK
KyAgICAgICAgb3B0aW9ucy5hZGQoT2JzZXJ2YXRpb25GbGFnczo6QXR0cmlidXRlRmlsdGVyKTsK
ICAgICB9CiAKLSAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVl
KCkgOiAob3B0aW9ucyAmIChBdHRyaWJ1dGVGaWx0ZXIgfCBBdHRyaWJ1dGVPbGRWYWx1ZSkpKQot
ICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZXM7CisgICAgaWYgKGluaXQuYXR0cmlidXRlcyA/
IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogb3B0aW9ucy5jb250YWluc0FueSh7IE9ic2VydmF0
aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlciwgRGVsaXZlcnlGbGFnczo6QXR0cmlidXRlT2xkVmFs
dWUgfSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6QXR0cmlidXRlcyk7CiAK
LSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkg
OiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0g
Q2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKERlbGl2ZXJ5RmxhZ3M6OkNoYXJhY3Rl
ckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSk7CiAKICAgICBpZiAoIXZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmgKaW5kZXggMmFmMjYzYmQ0YTcyNTRhMjBhM2I5MzUzMTdiNzk2OTFhZjRjYzdkYS4u
MmQzMmNhNjI0NjI0NjA4YmQ0Y2QzYzkwYTMxZGQ4YTc5NWM4MzIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCkBAIC01MywzMCArNTQsMzEgQEAgY2xh
c3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgV2luZG93RXZlbnRMb29wOwog
Ci11c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7Ci11c2luZyBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7CitlbnVtIGNsYXNz
IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhfdCB7CisgICAgLy8gTXV0YXRpb25U
eXBlCisgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgIEF0dHJpYnV0ZXMgPSAxIDw8IDEsCisg
ICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKIAotY2xhc3MgTXV0YXRpb25PYnNlcnZlciBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKLSAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOwotcHVibGljOgotICAgIGVudW0gTXV0YXRp
b25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRyaWJ1dGVz
ID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorICAgIEFsbE11dGF0
aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSwKIAotICAg
ICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3Rl
ckRhdGEKLSAgICB9OworICAgIC8vIE9ic2VydmF0aW9uRmxhZ3MKKyAgICBTdWJ0cmVlID0gMSA8
PCAzLAorICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNCwKKyAgICBBbGxPYnNlcnZhdGlvbkZs
YWdzID0gU3VidHJlZSB8IEF0dHJpYnV0ZUZpbHRlciwKIAotICAgIGVudW0gT2JzZXJ2YXRpb25G
bGFncyAgewotICAgICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0
ZXIgPSAxIDw8IDQKLSAgICB9OworICAgIC8vIERlbGl2ZXJ5RmxhZ3MKKyAgICBBdHRyaWJ1dGVP
bGRWYWx1ZSA9IDEgPDwgNSwKKyAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisg
ICAgQWxsRGVsaXZlcnlGbGFncyA9IEF0dHJpYnV0ZU9sZFZhbHVlIHwgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlLAorfTsKIAotICAgIGVudW0gRGVsaXZlcnlGbGFncyB7Ci0gICAgICAgIEF0dHJpYnV0
ZU9sZFZhbHVlID0gMSA8PCA1LAotICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8
IDYsCi0gICAgfTsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKIAorY2xhc3Mg
TXV0YXRpb25PYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2
ZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOworcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8TXV0YXRpb25PYnNlcnZlcj4gY3JlYXRlKFJlZjxNdXRhdGlv
bkNhbGxiYWNrPiYmKTsKIAogICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CkBAIC0xMTUsNiArMTE3
LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBub3RpZnlNdXRhdGlvbk9ic2VydmVycyhX
aW5kb3dFdmVudExvb3AmKTsKIAogcHJpdmF0ZToKKyAgICB1c2luZyBNdXRhdGlvblR5cGUgPSBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTsKKyAgICB1c2luZyBPYnNlcnZhdGlvbkZsYWdzID0g
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU7CisgICAgdXNpbmcgRGVsaXZlcnlGbGFncyA9IE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOworCiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZl
cihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CmluZGV4IDAyNzZlNDJiZTViZDgzZmY0MmE3OTM1NmJkZTljZTczNjA5OWNiZGUuLjJhZWM2NTI5
MGMzODQ3NzIyNmEwZjA4ODIyZmZhMzdjNWRmN2IwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDQsOSArNDQs
OSBAQCBpbmxpbmUgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8UmVmPAogICAgIEFTU0VSVCghbV9vYnNlcnZlcnMuaXNF
bXB0eSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYg
dGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
aWJ1dGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5h
bWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMg
JiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9
PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1l
KSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgYXV0byBvYnNlcnZlcnMgPSB0YXJnZXQucmVnaXN0
ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChvYnNl
cnZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggM2MwYWU1
MjM3ZDRiMmUyZWZmNzBkZGU2NjJlNWY0ZTFlNTY5MjZhZC4uMmY0NmM4MWU4ZTVlODkzMGZmY2Nj
MWRiODRkYTgwYmNhOTA0MWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ2LDM2ICs0NiwzNiBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbihOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAo
IXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlz
dCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcgPSAwOwotICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxh
Zyk7CisgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZzsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKICAgICB9CiAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JD
aGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBN
dXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKE5vZGUmIHRhcmdldCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICB7Ci0gICAgICAgIGlmICgh
dGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6QXR0cmlidXRlcykpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0
ZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0
dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwg
JmF0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgp
IGNvbnN0OwogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJlY29y
ZD4mJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlv
bk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCBoYXNPbGRW
YWx1ZShNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVy
biBvcHRpb25zICYgbV9vbGRWYWx1ZUZsYWc7IH0KKyAgICBib29sIGhhc09sZFZhbHVlKE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMu
Y29udGFpbnNBbnkobV9vbGRWYWx1ZUZsYWcpOyB9CiAKICAgICBIYXNoTWFwPFJlZjxNdXRhdGlv
bk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwog
ICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmlu
ZGV4IGM2ZjFmYjE1ZGZmOGQ1ZWJmZjJmNWM1YjdiN2VkZTNhZTNkMGViNzkuLmQzYzFmYTY2ZWQy
ZjU1NDdmMGI4MDljNjkwN2JiNDVjNGY5ZjU0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTk1LDE2ICs5NSwxNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb246OnRhawogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAot
Ym9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25G
cm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25z
dCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdAorYm9vbCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJp
YnV0ZU5hbWUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwotICAgIGlm
ICghKG1fb3B0aW9ucyAmIHR5cGUpKQorICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRl
TmFtZSk7CisgICAgaWYgKCFtX29wdGlvbnMuY29udGFpbnModHlwZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICgmbV9ub2RlICE9ICZub2RlICYmICFpc1N1YnRyZWUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyB8fCAhKG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZp
bHRlcikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJp
YnV0ZXMgfHwgIW1fb3B0aW9ucy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWF0dHJp
YnV0ZU5hbWUtPm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzExMDg0MThmMWVkNTY0
ZmFiOTViOTZmYzhhMGNmZGE1MzUzZjNlYi4uZDY4NGIxZjBiMWI4N2U4MTcwNTA2NDAwNWNhYjc5
MDUxNzA3ODQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC01NiwxMyArNTYsMTMgQEAgcHVibGljOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lz
dHJhdGlvbk5vZGVzLT5pc0VtcHR5KCk7IH0KIAotICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0
aW9uRnJvbShOb2RlJiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKLSAgICBib29sIGlzU3VidHJlZSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAg
ICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKKyAg
ICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jb250YWlucyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6U3VidHJlZSk7IH0KIAogICAgIE11dGF0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIE5vZGUmIG5v
ZGUoKSB7IHJldHVybiBtX25vZGU7IH0KLSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBkZWxpdmVyeU9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJE
YXRhT2xkVmFsdWUpOyB9Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBl
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0
aW9uVHlwZXM7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZTo6QWxsRGVsaXZlcnlGbGFnczsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11
dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlczsgfQogCiAgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IGE2ZjE5ODM2YTliZGQ1MTY2Zjg4MGNlNjA2NDMyZGMwNjFlYzQzYWYuLmU1
MzUxNDcxMDhmY2ZhZTM0ZTM3NzRmN2Q3YmY5MzQyNDUxMDkzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRl
ICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKQEAgLTIy
ODIsNyArMjI4Myw3IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+KiBO
b2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoCiAgICAgcmV0dXJuICZkYXRh
LT50cmFuc2llbnRSZWdpc3RyeTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmVnaXN0cnk+IHN0
YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNo
TWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+
JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29s
bGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBSZWdpc3Ry
eSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgdHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKICAgICBpZiAoIXJlZ2lz
dHJ5KQogICAgICAgICByZXR1cm47CkBAIC0yMjkyLDE1ICsyMjkzLDE1IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2
ZXJzRm9yTXV0YXRpCiAgICAgICAgICAgICBhdXRvIGRlbGl2ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJh
dGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG9ic2Vy
dmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAg
ICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICByZXN1bHQu
aXRlcmF0b3ItPnZhbHVlIHw9IGRlbGl2ZXJ5T3B0aW9uczsKKyAgICAgICAgICAgICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICB9CiAgICAg
fQogfQogCi1IYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK0hhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
CiB7CiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiByZXN1bHQ7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2
ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAg
IEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAm
JiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgY29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCBtdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSwg
KnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKHJlc3VsdCwgdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCks
ICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJl
bnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmlu
ZGV4IGJkYjg0MjcwNTM5ZTEzMTY2MTQxNjllMGM3ZjA2NjkyNzcyNDZiYTYuLjVkNjkzZmMyNWI0
NmNmNDk5ZTc1MzMzNjA5N2ZkOTE2NzU1MDhkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU3R5bGVWYWxpZGl0
eS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgpAQCAtNTQsNiArNTMsOCBAQCBjbGFzcyBGbG9h
dFBvaW50OwogY2xhc3MgSFRNTFF1YWxpZmllZE5hbWU7CiBjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7
CiBjbGFzcyBNYXRoTUxRdWFsaWZpZWROYW1lOworY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBj
bGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVMaXN0c05vZGVEYXRhOwpAQCAtNjcsNiArNjgsMTAg
QEAgY2xhc3MgU1ZHUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBUb3Vj
aEV2ZW50OwogCitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhf
dDsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zID0g
T3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKKwogdXNpbmcgTm9kZU9yU3Ry
aW5nID0gVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFN0cmluZz47CiAKIGNsYXNzIE5vZGUgOiBwdWJs
aWMgRXZlbnRUYXJnZXQgewpAQCAtNDk0LDcgKzQ5OSw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRh
cmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50
VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CiAKLSAgICBIYXNoTWFw
PFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUs
IGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIEhhc2hNYXA8UmVmPE11
dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKICAgICB2b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IEhh
c2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9p
ZCByZWdpc3RlclRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cAppbmRleCAxNzZiYzNiNDg5MjBmZWQwOGEyYWE5NWFhMmJhZTY2N2FlZGY0MmZkLi4zZTBmN2U1
NDM1ZWEzN2ZjNmI5ZGNmYjQxZmUzNjE4NTI1ZjJkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGYwNDliZDg0YjEyYWFkMGNkYTNlZTcxNTgyNjA5
NDM4MWYwOTEyNTMuLmM0ZjI5NTk5OTM5ZWMxNjgzMmM2ZGY2YzBjZWMwMjBiY2Q0MjUwYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKaW5kZXggYjEwNzY2NTk5
MzEwZGY0NTQ2MTczMWYzNGJiM2M5ZTljMjhjZTMzYy4uYWIyNzgzN2I5ODgzNzk2NGU4YjY4ZDM2
ZDEwZjcxODk1ZDZhNjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudC5oCkBAIC0yOSwzMCArMjksMzMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitlbnVtIGNsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3Np
dGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKKworc3RydWN0IFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCgpIHsgfQorCisgICAgU3RyaW5nIGRvY3VtZW50VVJJOworICAgIFN0cmlu
ZyByZWZlcnJlcjsKKyAgICBTdHJpbmcgYmxvY2tlZFVSSTsKKyAgICBTdHJpbmcgdmlvbGF0ZWRE
aXJlY3RpdmU7CisgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWxQb2xpY3k7CisgICAgU3RyaW5nIHNvdXJjZUZpbGU7CisgICAgU3RyaW5nIHNhbXBsZTsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gZGlzcG9zaXRpb24g
eyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UgfTsKKyAg
ICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9OworICAgIHVuc2lnbmVkIGxpbmVOdW1i
ZXIgeyAwIH07CisgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgMCB9OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0Jik7Cit9OworCiBjbGFz
cyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOwog
cHVibGljOgotICAgIGVudW0gY2xhc3MgRGlzcG9zaXRpb24gOiBib29sIHsgRW5mb3JjZSwgUmVw
b3J0IH07Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7Ci0gICAgICAgIEluaXQoKSB7
IH0KLQotICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkk7Ci0gICAgICAgIFN0cmluZyByZWZlcnJl
cjsKLSAgICAgICAgU3RyaW5nIGJsb2NrZWRVUkk7Ci0gICAgICAgIFN0cmluZyB2aW9sYXRlZERp
cmVjdGl2ZTsKLSAgICAgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKLSAgICAgICAgU3Ry
aW5nIG9yaWdpbmFsUG9saWN5OwotICAgICAgICBTdHJpbmcgc291cmNlRmlsZTsKLSAgICAgICAg
U3RyaW5nIHNhbXBsZTsKLSAgICAgICAgRGlzcG9zaXRpb24gZGlzcG9zaXRpb24geyBEaXNwb3Np
dGlvbjo6RW5mb3JjZSB9OwotICAgICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9
OwotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OwotICAgICAgICB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIgeyAwIH07Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBJbml0Jik7
Ci0gICAgfTsKKyAgICB1c2luZyBEaXNwb3NpdGlvbiA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREaXNwb3NpdGlvbjsKKyAgICB1c2luZyBJbml0ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQ7CiAKICAgICBzdGF0aWMgUmVmPFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXpl
ciA9IHsgfSwgSXNUcnVzdGVkIGlzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCiAgICAgewpAQCAt
MTExLDcgKzExNCw3IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgot
dm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgRXZlbnRJbml0Jj4oKnRoaXMpOwogICAgIGVuY29kZXIgPDwgZG9jdW1lbnRVUkk7
CkBAIC0xMjksNyArMTMyLDcgQEAgdm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIH0KIAogdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KLWJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmIGV2
ZW50SW5pdCkKK2Jvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYgZXZlbnRJ
bml0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGljX2Nhc3Q8RXZlbnRJbml0Jj4o
ZXZlbnRJbml0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NCwxMSArMTY3LDExIEBA
IGJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNlY3VyaXR5UG9saWN5CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OkRpc3Bvc2l0aW9uPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbj4gewogICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb24sCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb246OkVuZm9yY2UsCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UsCisgICAgV2ViQ29yZTo6U2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpSZXBvcnQKICAgICA+OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRl
eCA1OGQ3NTNiMjNkNjNiODcyOTU5MDA3YzVhNzA5NjczOTdjODg3ODRhLi45ODA0NDYwY2RiMmJj
NWFiNTE3MTRiNDA0YWI4NWMwY2FmZTIyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUg
IkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCBmOTVhMzFjNTM5MTJkMDNiYWZmNGNjODU3MDAyYjVjMWNkMzU5OTMy
Li5mMzQwMTQzNTlmZjdjZGJkODU3Y2ZkY2RiYmE5YjI0ZjI5MTAxYTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggODQ2NjRjM2I3NDgzNjUzYWYwOWY3OWVi
YjUzM2U3NTRiYTYzODRhMS4uOTI5NDZmMzczMTMzZTExMGRkYjExMWY1OGE5M2MxYjJjN2YwYjQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1NjU3ODI3ZDlhNjZiYjNiNzNlZmI1
NWY5MzE2MWVlODM4YjQ1YTMwLi4xYjcwNzY1YmFiYzRkNDY4MTFjMWFmZDc5NDY1MTA3YjhhMjIw
ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYzJlYjhhN2JjNDEzMjJjYThkMjA4NDQzM2Ey
MzVmZmU5N2I1ZWJiZC4uNzEzNjk5NTQ5MDVmOWYyZjFkOGUxY2RlMDYwZTQxZGNhZWNhMTQxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGlu
Zy5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcu
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDg3OTE0MjE2Y2FhMmFlNzA1
YTVjNDg5OWJkZmEwMTQ0YzM2NjA4ZGQuLjIyNzJlYmIzMGRlNzkyMTYzNjZmYjExOTM2NTgxYjky
NThiZGNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQppbmRleCBmMzgzYWRkZDE5YjBjZjAwNDZiYTUzN2NiMmQ1OGJkNGE3MTAwZTk0Li40NjIzN2Fk
NmMxZTkzNzFiZGNhZDcwZmNhZmIwZjdmZTVkZjhkNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lt
cG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgiCiAjaW1wb3J0ICJDaHJv
bWVDbGllbnQuaCIKKyNpbXBvcnQgIkRvY3VtZW50SW5saW5lcy5oIgogI2ltcG9ydCAiRnJhbWUu
aCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDVlNDFiNDkyNDE2YTM5NDBlZDZkZTEzMTJhMzE1MzNlZGQ4
MTc5MzkuLmY0OGZkOGY4NWEzM2ZmOWI3OWFlNDNkNzM0MjQ2M2MzNjhhZjhjNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwNjljYzQxNzcw
Y2M5ZmM1MWI5NTgyMjM1MzI0NjMyMzMzMjZiN2EzLi4yNDM4ZTkxNzZiMjM5YWRlOGVhMDliYmNl
ZjgxZGQ1ZGJjNTA1MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRl
ICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZpbGVJbnB1dFR5
cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA1NmYwYzc5
ZDQ1ZDkyNzY5Njk2NzIxMzgwMDUzZGYwYjQ5ZTFjN2YxLi43NGZkNDVlNmRiYmI0NTZiNTQ1M2Ix
ZDQwZjM4Y2YwNDY0MGQ3N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRGVmYXVsdFJlc291cmNl
TG9hZFByaW9yaXR5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI5Mzc5YjIwZjU5MWZmZWYwYmQ1NTdjODA4ZDhiNDk0MGFh
YTVhNzAuLjY1ZWJmYTdhNTRkOGZhZDM0YTdhZTA5YzU1YmEzMzA1ZTczNmMxMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODUsOCArODUsOCBAQAogI2lu
Y2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlBhZ2VJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgpAQCAtNzk3Myw3
ICs3OTczLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91
bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01l
ZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3Rh
dGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpKSB7CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgp
ICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAg
ICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBw
bGF5aW5nIGFuIGF1ZGlvIE1lZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CkBAIC03OTg4LDcgKzc5ODgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1N
ZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRp
YVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKKyAgICAgICAg
aWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5t
ZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1U
cmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTgwNDgsNyAr
ODA0OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVVcGRhdGVNZWRpYVN0YXRl
KCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIHsKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKICAgICBp
ZiAobV9tZWRpYVN0YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm47CiAKQEAgLTgwNTksMzEg
KzgwNTksMzEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIH0K
ICNlbmRpZgogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIE1lZGlhU3RhdGVGbGFncyBz
dGF0ZTsKIAogICAgIGJvb2wgaGFzQWN0aXZlVmlkZW8gPSBpc1ZpZGVvKCkgJiYgaGFzVmlkZW8o
KTsKICAgICBib29sIGhhc0F1ZGlvID0gdGhpcy0+aGFzQXVkaW8oKTsKICAgICBpZiAoaXNQbGF5
aW5nVG9FeHRlcm5hbFRhcmdldCgpKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CisgICAgICAgIHN0YXRlLmFk
ZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIGlmIChtX2hhc1BsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKSB7Ci0gICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKTsKICAgICAgICAgaWYgKCFtZWRpYVNlc3Np
b24oKS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpKQotICAgICAgICAgICAgc3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25p
dG9yaW5nKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpOwogICAgIH0KIAogICAgIGJvb2wgcmVx
dWlyZVVzZXJHZXN0dXJlID0gbV9tZWRpYVNlc3Npb24gJiYgbWVkaWFTZXNzaW9uKCkuaGFzQmVo
YXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVU
b0F1dG9wbGF5VG9FeHRlcm5hbERldmljZSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZF
X01FVEFEQVRBICYmICFyZXF1aXJlVXNlckdlc3R1cmUgJiYgIW1fZmFpbGVkVG9QbGF5VG9XaXJl
bGVzc1RhcmdldCkKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOworICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOwog
CiAgICAgaWYgKGhhc0FjdGl2ZVZpZGVvIHx8IGhhc0F1ZGlvKQotICAgICAgICBzdGF0ZS5hZGQo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKTsKKyAgICAgICAgc3Rh
dGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pOwogCiAgICAg
aWYgKGhhc0FjdGl2ZVZpZGVvICYmIGVuZGVkUGxheWJhY2soKSkKLSAgICAgICAgc3RhdGUuYWRk
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCk7CisgICAgICAgIHN0YXRl
LmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKICNlbmRpZgogCiAg
ICAgaWYgKCFpc1BsYXlpbmcoKSkKQEAgLTgwOTcsMTAgKzgwOTcsMTAgQEAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAog
ICAgIGlzUGxheWluZ0F1ZGlvID0gaXNQbGF5aW5nQXVkaW8gJiYgIW11dGVkKCk7CiAjZW5kaWYK
ICAgICBpZiAoaXNQbGF5aW5nQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZp
ZGVvKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKTsKIAogICAgIHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKaW5kZXggY2ZkMTlkM2MxNzNmMTBjZTRlZmUwYzIwYWViMmFiZTU5
MTlkMjU5Ni4uMDJkNDg4MDExNDc0NjJjOTEzZWNmOTliNmIwM2I4MDExZDBkMWVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTUyNyw3ICs1MjcsNyBAQCBwdWJs
aWM6CiAKICAgICBkb3VibGUgbWF4QnVmZmVyZWRUaW1lKCkgY29uc3Q7CiAKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdm9pZCBsYXlvdXRTaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgdmlzaWJpbGl0eURp
ZENoYW5nZSgpOwpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MgbV9tZWRpYVN0YXRlOwogICAgIE1vbm90b25pY1RpbWUgbV9jdXJyZW50UGxheWJhY2tUYXJn
ZXRJc1dpcmVsZXNzRXZlbnRGaXJlZFRpbWU7CiAgICAgYm9vbCBtX2hhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXJzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmFpbGVkVG9QbGF5
VG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCmluZGV4IGUyZjhhNGJmNWQ4Yjg1MWJiOWMxNDIzMWI4MTI4ZWMyNDg4NmI3
YzAuLjc5YWQ0ZTIyMDZkYTgwOTQ4YjJhMGI1NWZlYmIxYmI4NGM4MTY3YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCA5OWE0YmIyZWY3YTYxNDY3NGFjZjRmNzlmYTdjM2Q3Y2ZhZjk5NjIwLi4wZTM0ODZkNGY3MTA2
Y2M1NzE2N2NhZmE2NzQ4MGQ5NzIxN2Y4OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGVhMjk3ZmEyMzE5YmZiODU3ZjVmY2JmMjQ1NjY2
YjA5ODM1ZjEwOTIuLmI1ZmYwMmJkYTU1NGEwMWRhOTNiOTBhZmMwODFjNmViMDg4MGNjYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJE
YXRlSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIkRlY2ltYWwuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKaW5kZXggN2Y2ZDM5ZjNlY2UwY2ZmNzU3OTRiZWQ0YWMzNGZlZDMxNjQ3ZjUxNy4uMjkx
ZWY5YTAyODEwMmYzMmFlYzM2Yzg5Yzg2YWRiNGVjNzBmZTU3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtMzg1LDcgKzM4NSw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxS
ZWFzb24+IE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgaWYgKG1f
ZWxlbWVudC5oYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVu
dC5pc0NhcHR1cmluZygpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKGRv
Y3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKQorICAgICAgICBpZiAoZG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAjZW5kaWYKQEAgLTQwMCw3ICs0MDAsNyBAQCBFeHBlY3RlZDx2b2lkLCBNZWRpYVBsYXli
YWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbgog
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6
VXNlckdlc3R1cmVSZXF1aXJlZCk7CiAgICAgfQogCi0gICAgaWYgKHRvcERvY3VtZW50Lm1lZGlh
U3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0
aE1lZGlhRWxlbWVudCAmJiB0b3BEb2N1bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvcigpKQorICAgIGlmICh0b3BEb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYm
IHRvcERvY3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkp
CiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAodG9wRG9jdW1lbnQuaGFzSGFkVXNlcklu
dGVyYWN0aW9uKCkgJiYgZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJh
cnlVc2VyR2VzdHVyZSgpKQpAQCAtODA5LDcgKzgwOSw3IEBAIHZvaWQgTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKQogICAgIGNsaWVudCgpLnBs
YXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFFbGVtZW50
U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCit2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX2VsZW1lbnQuZG9j
dW1lbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBz
dGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCmluZGV4
IGRmNjE1MTBjZWM2NTAxMGMyZDZiZTVlNGEwYjMwOWY3MDI1MjM0NTUuLmY1YmViZDI4ZGVmODg5
YWUwMmEwMDZhYmRlNjkwMDc1YzQxNTA1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFF
bGVtZW50U2Vzc2lvbi5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQ
bGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsK
KyAgICB2b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyk7CiAjZW5kaWYKIAogICAgIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFj
aygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0YjFl
M2EyOWMwYTQzNmU0NmViNTZjMTllOGFjMTk3YjA5YmU0YzQ4Li44ZjZiOGNlMDhmZGI1ZDc0YjY2
ZTUzYzEyMjBjZTFiYmI1Y2Q3NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRlY2ltYWwuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MQ29sbGVjdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI5MjAyYTExNTY5ODBhNDg2YWFiOTY1
MzBiNTViNTVhNDUwNTMxODcuLjhlNjVjNGViMTAyMzM1MjFmNDhjN2Y0YjEyMGFkMmM4OTA5YTA3
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRl
eCA5ZThkZjJlY2IwMTA0ODM2MWIyNDRmODUwZjliY2VjOTlhNTE5ZTE5Li42ZDMxYzgxZmRlMTI4
MGQyNDUzOWI5YzlmYjJlMDI4OTdjYWIzOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTUsNyArNTUsNyBA
QAogI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkRPTVBhdGNoU3VwcG9ydC5o
IgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRl
eCAzNzQ2ODQzMjU3N2Y2NGUzZDE4YmMzNjY3Y2EyOThmNDNhM2JmNTAzLi44NGIxNjM3MDE0ZWY1
NmRhZThiY2VmMGQ3MjQ5NTYyZDIwZDBkZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC00MCw3
ICs0MCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNh
dGVJbmZvLmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVTdW1tYXJ5LmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oCmluZGV4IDk0NjQ3NGI1ODU4MTkzYjBiMzA2YzkyZTFmNWIyZThiYzFmYWM5
YmMuLjU4YzdiYjc5Mzg4YWM2ZjAzZjJjODIwZDg5NjhmYTRhMzUyMWZmNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCkBAIC0yNSwxNSAr
MjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFz
cyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIHN0cnVjdCBOYXZpZ2F0aW9uUmVxdWVz
dGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBmOWYz
OTJjYjg0ZDgyMDJiMmI5ZWNlZjBkZTE2NDUxODAzZjM3YjYzLi45OWM5NzhkY2IzYzY0Y2RlNjk2
NTM5YmRmOWFiNWM1YjRkZjI3ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTI0MDAsNyArMjQwMCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNlbmRD
U1BWaW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwCiAg
ICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqbV9mcmFtZSwgV1RGTW92ZShyZXBv
cnRVUkwpLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1
cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBl
dmVudEluaXQpCit2b2lkIERvY3VtZW50TG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkK
IHsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5lbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXVEZNb3ZlKGV2ZW50SW5pdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaAppbmRleCA5ZmM0MTM3YTY5MDBlMjRhMWE4MmNlYzdjYzc1NzkzZDM0N2U5ODEy
Li40ZmJmZDcxMjAxOTlkMjdjZmE4N2JkZDU5NjczNzEwNmJjZTA4ZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNTIyLDcgKzUyMiw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPEZvcm1EYXRh
PiYmKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikgZmlu
YWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBmaW5hbDsKIAogICAg
IGJvb2wgZGlzYWxsb3dXZWJBcmNoaXZlKCkgY29uc3Q7CiAgICAgYm9vbCBkaXNhbGxvd0RhdGFS
ZXF1ZXN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApp
bmRleCA4OTA5NWZlM2RlNzMyODhlMjczMWMxMmFmM2QyNjE2OGY3Y2MzNTMwLi40MzJiZDEyYjMy
Y2U4YzBmNzRiMjBmMTFmM2YyODllOGRlN2M3MWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFdyaXRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDb250ZW50U2Vj
dXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNjgzZjg0
YzI1NDE1ZDNlYzM0NjdlMDgxMDhiODEzZjVhNzFhODIzOS4uYWU5MmFkZDg3NTYwNTFkMDU2YTIz
MDJkZGNiYzQ4OWIxMGU3NDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Np
b24uY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3kuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmY2IyMjAyZjgyODEwYWYyYTRmOGQ5ZTQ1MWNiNTc0
ZmEwYTdmZDQzLi5jM2JiMzQ2YTM5NDdjNTg5ODNlZTlkOWY4ZWIwNGM5OTI4MDM2MTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNs
dWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDEwN2YzMjQ2NGNkMWQzYmI5MjNjMmE5Zjc1MzBkYWZlYjViMTc4ZTkuLjM2
ZWUzMjc1ZDY5MjA3ZTQ1MDIxNjJmMGFiYWViODhlNThlYmM3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTAs
NyArNTAsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIK
LSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNGNmY2IxNjgx
ZjE3MzA5YWM0YTdmYzBiMjE5YWNlZjk1OTU3Yjc5ZC4uY2NiZGZhNDk2M2U0MDM5NmM3OWVhOTYz
OWNiNWEwNzliNGYzZWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01MDMs
NyArNTAzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFj
a2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxBdXRvcGxh
eUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQpAQCAtNTM0LDcgKzUz
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29u
c3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlckVuYWJsZWQoYm9vbCkgIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IGUwMDVjZWRmZmNkZWMxZGFkOTFhZmZlODZlZWFiMjJkMzgzNWQ5
OTAuLjdmOWQ4ZWM0NTRjMDM1ZjIwMjU5Y2U4OTgyNGM2NTdmNWFmMWUyZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDb21w
b3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJh
Z0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiZTc2ZTFiZDI3NzU1MTMxZDA4MzE2ZjJkM2JlOTli
Y2NhNjhkYzFmLi5hMTFhM2IzNDhhYmEzOTlmNjQ4NzZkZTQ5NjkyMWRmZThmMGQ2NDNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4YzQzNzdj
Yjk1NGEwYjFhMDg5ZTUyZWZhZDhhNDFkOTEwNThhOGY3Li5mZDMzMzY4YWQyMWRjNTU5Njc0YjNh
N2E2OGQyMzM0Y2U0ZjEzMzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5n
LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NTRhNWFjMDAwZTI3YzkyZGE5NDBlOWYzYTczMTJjN2I5Y2VlNmY2Yy4uZDVlYjNhZWZkMTc2YjEw
MWJlZTIzYzAxM2FmNDcxY2Y5YTQ0ODlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlYnVn
UGFnZU92ZXJsYXlzLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dFNWRy5oIgpAQCAtMjA4Miw3ICsyMDgzLDcgQEAgYm9vbCBGcmFtZVZpZXc6OnVzZURhcmtBcHBl
YXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLU9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKK09wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gRnJhbWVWaWV3OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVy
ID0gcmVuZGVyZXJGb3JDb2xvclNjaGVtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
ZDlkNDhhZjVmN2QxNDk3N2YzYTUwZGU1NjU5OTNlZGUzZDUyYTMxOC4uOTdhZGViMTAwNmZjNTU2
Yjk5ZmU1OGFmNzAwODJjN2IyZWFkYzg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01
MzgsNyArNTM4LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkU2V0Q3Vyc29yKCkgY29uc3Q7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QgZmlu
YWw7Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25z
KCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIHBs
dWdpbiBsb2FkaW5nIGlzIGRlY291cGxlZCBmcm9tIGxheW91dC4KICAgICB2b2lkIGZsdXNoQW55
UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOwpAQCAtOTU1LDcgKzk1NSw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1faXNUcmFuc3BhcmVudCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBUktfTU9E
RV9DU1MpCi0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG1fc3R5bGVDb2xvck9w
dGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBtX3N0eWxlQ29sb3JPcHRp
b25zOwogI2VuZGlmCiAKICAgICBib29sIG1faXNUcmFja2luZ1JlcGFpbnRzIHsgZmFsc2UgfTsg
Ly8gVXNlZCBmb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVk
aWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXgg
ODBhZDVhZWVmYWRmOWVjYjgzNmI5MTIzYzM4YzU0MGU2ZjRjMTUxNy4uNGUxOWU4Y2Q3MWE2NTI5
Zjk4YWY2NDgyZTZjYTVhMDUyYjFmNzM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2Vy
LmgKQEAgLTMxLDMyICszMSw1MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xh
c3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUgOiB1aW50MzJfdCB7CisgICAgSXNQbGF5aW5nQXVk
aW8gPSAxIDw8IDAsCisgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8IDEsCisgICAgSXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSA9IDEgPDwgMiwKKyAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZyA9IDEgPDwgMywKKyAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlID0g
MSA8PCA0LAorICAgIERpZFBsYXlUb0VuZCA9IDEgPDwgNSwKKyAgICBJc1NvdXJjZUVsZW1lbnRQ
bGF5aW5nID0gMSA8PCA2LAorICAgIElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcs
CisgICAgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDgsCisgICAgSGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEgPDwgOSwKKyAgICBIYXNBdWRpb09y
VmlkZW8gPSAxIDw8IDEwLAorICAgIEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTEsCisgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwKKyAgICBIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTMsCisgICAgSGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UgPSAxIDw8IDE0LAorICAgIEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNl
ID0gMSA8PCAxNSwKKyAgICBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTYsCisgICAgSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ID0gMSA8PCAxNywKKyAg
ICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTgsCisgICAgSGFzTXV0ZWRE
aXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCisgICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5
Q2FwdHVyZURldmljZSA9IDEgPDwgMjAsCit9OwordXNpbmcgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT47CisKK2VudW0gY2xh
c3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1aW50OF90IHsKKyAgICBBdWRpbywK
KyAgICBWaWRlbywKKyAgICBBdWRpb1ZpZGVvCit9OworCitlbnVtIGNsYXNzIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlIDogdWludDhfdCB7CisgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAorICAg
IEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCisgICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9
IDEgPDwgMiwKKyAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKK307Cit1c2luZyBN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlPjsKKwogY2xhc3MgTWVkaWFQcm9kdWNlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxN
ZWRpYVByb2R1Y2VyPiB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBNZWRpYVN0YXRlIHsKLSAg
ICAgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCi0gICAgICAgIElzUGxheWluZ1ZpZGVvID0g
MSA8PCAxLAotICAgICAgICBJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlID0gMSA8PCAyLAotICAg
ICAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyA9IDEgPDwgMywKLSAgICAgICAg
RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSA9IDEgPDwgNCwKLSAgICAgICAgRGlkUGxh
eVRvRW5kID0gMSA8PCA1LAotICAgICAgICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2
LAotICAgICAgICBJc05leHRUcmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA3LAotICAgICAgICBJ
c1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgOCwKLSAgICAgICAgSGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEgPDwgOSwKLSAgICAgICAgSGFzQXVkaW9P
clZpZGVvID0gMSA8PCAxMCwKLSAgICAgICAgSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0g
MSA8PCAxMSwKLSAgICAgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwK
LSAgICAgICAgSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEzLAotICAgICAgICBI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTQsCi0gICAgICAgIEhhc0ludGVycnVw
dGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNSwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE2LAotICAgICAgICBIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAotICAgICAgICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVy
ZURldmljZSA9IDEgPDwgMTgsCi0gICAgICAgIEhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2Ug
PSAxIDw8IDE5LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0g
MSA8PCAyMCwKLSAgICB9OwotICAgIHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxN
ZWRpYVN0YXRlPjsKKyAgICB1c2luZyBNZWRpYVN0YXRlID0gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU7CisgICAgdXNpbmcgTXV0ZWRTdGF0ZSA9IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOworICAg
IHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3M7Cisg
ICAgdXNpbmcgTXV0ZWRTdGF0ZUZsYWdzID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFnczsK
KwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIElzTm90UGxheWluZyA9IHsg
fTsKICAgICBzdGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBBdWRpb0NhcHR1cmVNYXNr
ID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1
ZGlvQ2FwdHVyZURldmljZSB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdz
IFZpZGVvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURl
dmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlIH07CkBAIC02OSwyMCArODksNiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIE1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qg
PSAwOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYUNhcHR1cmVLaW5kIHsKLSAgICAgICAgQXVkaW8s
Ci0gICAgICAgIFZpZGVvLAotICAgICAgICBBdWRpb1ZpZGVvCi0gICAgfTsKLQotICAgIGVudW0g
Y2xhc3MgTXV0ZWRTdGF0ZSB7Ci0gICAgICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKLSAgICAg
ICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKLSAgICAgICAgVmlkZW9DYXB0dXJlSXNN
dXRlZCA9IDEgPDwgMiwKLSAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDMsCi0g
ICAgfTsKLQotICAgIHVzaW5nIE11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNdXRlZFN0YXRl
PjsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3RhdGVGbGFncyBBdWRpb0FuZFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3Rh
dGVGbGFncyBNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkID0geyBNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0YXRl
OjpTY3JlZW5DYXB0dXJlSXNNdXRlZCB9OwogCkBAIC05Niw0OSArMTAyLDQ5IEBAIHByb3RlY3Rl
ZDoKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZD4gewordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZD4gewog
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbworICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6VmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZT4gewordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4g
ewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1v
bml0b3JpbmcsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZywKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxl
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91
c1RyYWNrQ29udHJvbEVuYWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbywKLSAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERp
c3BsYXlDYXB0dXJlRGV2aWNlCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lciwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0F1ZGlvT3JWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0
ZWRXaXRoTWVkaWFFbGVtZW50LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNw
bGF5Q2FwdHVyZURldmljZQogICAgID47CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU+IHsKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+IHsKICAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0lzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZAogICAgID47
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4ODUzM2IzZDJiMzcxODJlMTYwNTJmZWQxMjkz
NjhhNDZlNDIyOWFmLi5jZjE3MDEzZTVkNjg2ZjAxZDUyMmQ2ZDY3Nzk2NDgyZjU5ZWU0Y2RiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExv
YWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIK
ICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTIxNzAsNyArMjE3MSw3IEBAIHZvaWQgUGFnZTo6c3Rv
cmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKIAogdm9pZCBQYWdlOjp1cGRhdGVJc1BsYXlpbmdN
ZWRpYSgpCiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yRWFjaERvY3VtZW50
KFsmXShhdXRvJiBkb2N1bWVudCkgewogICAgICAgICBzdGF0ZS5hZGQoZG9jdW1lbnQubWVkaWFT
dGF0ZSgpKTsKICAgICB9KTsKQEAgLTIyMDgsNyArMjIwOSw3IEBAIHZvaWQgUGFnZTo6cGxheWJh
Y2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpCiAKICNlbmRpZgogCi12b2lkIFBhZ2U6OnNl
dE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKK3ZvaWQgUGFnZTo6
c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZCkKIHsKICAgICBtX211
dGVkU3RhdGUgPSBtdXRlZDsKIApAQCAtMjIxNyw3ICsyMjE4LDcgQEAgdm9pZCBQYWdlOjpzZXRN
dXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCiAgICAgfSk7CiB9CiAK
LXZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCit2b2lkIFBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCkKIHsKICAgICBVTlVTRURfUEFSQU0oa2luZCk7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKQEAgLTMwMTgsNyArMzAxOSw3IEBAIHZvaWQgUGFnZTo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4CiAjZW5kaWYKIH0KIAotdm9pZCBQYWdlOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0
YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFBhZ2U6OnBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgY2hyb21lKCkuY2xpZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOTRmOGI4ZGE5MjA2OTYzNzg4YzUxNjE2NTNlNTA1Y2NjMDA1MzgzOS4uZmE4ODlmNGM0Y2Zk
YjJkZGMzYzg0MzM3YzZhYzkxN2NlMGI5Mjg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3Nyw2ICsx
NzcsMTIgQEAgZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6
IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlIDogdWludDMyX3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11
dGVkU3RhdGUgOiB1aW50OF90OworCit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
ID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+Owog
CiBlbnVtIGNsYXNzIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUs
IFVucmVzcG9uc2l2ZSB9OwogZW51bSBjbGFzcyBNYWluRnJhbWVNYWluUmVzb3VyY2UgOiBib29s
IHsgTm8sIFllcyB9OwpAQCAtNzI5LDE4ICs3MzUsMTggQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKICAgICBib29sIHVzZXNF
cGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwo
KTsgfQogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2
b2lkIHVwZGF0ZUlzUGxheWluZ01lZGlhKCk7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG11dGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KLSAgICBi
b29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9Ci0gICAgYm9vbCBpc01l
ZGlhQ2FwdHVyZU11dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOyB9OworICAgIE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0
ZWRTdGF0ZTsgfQorICAgIGlubGluZSBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0OworICAgIGlu
bGluZSBib29sIGlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdDsKICAgICB2b2lkIHNjaGVkdWxl
UGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
dm9pZCBwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCk7CiAjZW5kaWYKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZUZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAg
TWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyIG1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllcigp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWVkaWFQbGF5YmFja0V4aXN0cygpOwpA
QCAtNzYzLDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZv
aWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UG9pbnQmLCBib29s
LCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQg
cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5h
YmxlZChib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpAQCAtOTk2LDcgKzEwMDIsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pbkxvd1F1YWxpdHlJbnRlcnBvbGF0aW9uTW9kZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGZsb2F0IG1fbWVkaWFWb2x1bWUgeyAxIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1f
bXV0ZWRTdGF0ZTsKIAogICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIGZs
b2F0IG1fem9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yIHsgMCB9OwpAQCAtMTEyMCw3ICsxMTI2LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNSZXN0b3JpbmdDYWNoZWRQYWdlIHsgZmFsc2UgfTsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBtX21lZGlhU3RhdGU7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgVGltZXIgbV9wbGF5
YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlSW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5lcy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkYTkyMjYzYTcyMzI4MzY1N2RlZjM5YTM4NTFlMjBkNjU2ZDA3MWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFQ
cm9kdWNlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitp
bmxpbmUgYm9vbCBQYWdlOjppc0F1ZGlvTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211
dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7
Cit9CisKK2lubGluZSBib29sIFBhZ2U6OmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dHJlYW1DYXB0dXJlSXNNdXRlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKaW5kZXggNzYzZmY2NGJmNGU3ZTllMGZlNDZlMTNmOGQ4MTMxNmQ4ZTNmYWE2Yy4u
MWExMjEwZmE4MzM3Y2Q5NTIwZjRlMDExYTkwNzM2NzU0ZGU1MThmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NJ
bXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
SW1hZ2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDFkYmQxNTNiOTYwZWMyY2Qz
MjVkNzk4MjAzMzJkMjhlZWM1NjRjMTMuLjI5MDkxNjAwY2IxOTc3ZjlkMzM1YzFlZmFmZWIxOTI4
ZGVmOTFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVNvdXJjZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxp
c3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpAQCAtNzc1
LDcgKzc3NSw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24o
Y29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgdW5zaWduZWQgc2hvcnQg
aHR0cFN0YXR1c0NvZGUgPSBtX3NlbGZTb3VyY2VQcm90b2NvbCA9PSAiaHR0cCIgPyBtX2h0dHBT
dGF0dXNDb2RlIDogMDsKIAogICAgIC8vIDEuIERpc3BhdGNoIHZpb2xhdGlvbiBldmVudC4KLSAg
ICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCB2aW9sYXRpb25FdmVudEluaXQ7
CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmRvY3VtZW50VVJJID0gaW5mby5kb2N1bWVudFVSSTsK
ICAgICB2aW9sYXRpb25FdmVudEluaXQucmVmZXJyZXIgPSBtX3JlZmVycmVyOwogICAgIHZpb2xh
dGlvbkV2ZW50SW5pdC5ibG9ja2VkVVJJID0gYmxvY2tlZFVSSTsKQEAgLTc4Myw3ICs3ODMsNyBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5lZmZlY3Rp
dmVEaXJlY3RpdmUgPSBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZTsKICAgICB2aW9sYXRpb25F
dmVudEluaXQub3JpZ2luYWxQb2xpY3kgPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaGVhZGVyKCk7
CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnNvdXJjZUZpbGUgPSBpbmZvLnNvdXJjZUZpbGU7Ci0g
ICAgdmlvbGF0aW9uRXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0
LmlzUmVwb3J0T25seSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRp
b246OlJlcG9ydCA6IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpF
bmZvcmNlOworICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5kaXNwb3NpdGlvbiA9IHZpb2xhdGVkRGly
ZWN0aXZlTGlzdC5pc1JlcG9ydE9ubHkoKSA/IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRE
aXNwb3NpdGlvbjo6UmVwb3J0IDogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0
aW9uOjpFbmZvcmNlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5zdGF0dXNDb2RlID0gaHR0cFN0
YXR1c0NvZGU7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmxpbmVOdW1iZXIgPSAgaW5mby5saW5l
TnVtYmVyOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5jb2x1bW5OdW1iZXIgPSBpbmZvLmNvbHVt
bk51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5Q2xpZW50LmgKaW5kZXggOGUwNTE4MjY0MTQwNmYyY2M4Y2FhMmRjNTZhZTMzNjA2
MzRlNmIxZS4uZjJmZTYzODk0NjQ5NmVkYmIzMDM4NDUzOThmZjllNzM5N2MzNGJkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xp
ZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IFdFQkNPUkVfRVhQT1JUIENvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudCB7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6SW5pdCYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3MmU0ZjY5MWI0Zjk1MjU3
NWQ5MzExZTRkMGE3ZGUxN2NmZjAyMzY4Li5kMGE0ZmU0YTIwZTBhZThkMjdkZTNkNGI5ZWU2OWU1
MDdhNWEwZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5o
IgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDUwMGZkYjBmZGNjYzNlMzE5YmNk
NjFhZTIzYjRkZWVlMDVkYTlhNWYuLmExNDg4N2ZjNzc1ZTJiOTdiNjlmOWM1OTVhZTgyNzBhYWQ3
MTFjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTXV0ZXguaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCAxM2JhMTVkN2EyY2VhMTc5OTg1
YWExZjdhMGQ1MzNlOWNkNDc4ZjRjLi43MWZiMjIzNWFkZWE3YTdmMjQ1MTZmNDIxOGJkYTg5NTI3
YWQ1MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxh
eW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkJpZGlSZXNvbHZlci5oIgogI2luY2x1ZGUgIkJyZWFraW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZsb2F0aW5nT2JqZWN0cy5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckJveC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDRkOWYyYzcx
OWViYzQ5YWRkYjJiYmViZmVlYzQxYWUxYmNkY2VlZS4uZjE0NDk4MTQ1NmZmZjg4NDFjZGIxNDg1
Y2JlNjVmYzQ4YjI2OTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudFJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCmluZGV4IDgzYTBlYzM5YjQ5YmUzNTk0NmZkZDkxOTRmN2VhYjQyNzc4
MzczZDkuLjI3ZjlkNGUzMzg2OTM4ZmEzYWY4YjBhOGE2YTAxOTNiYzRhMGQ0NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRh
LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYjRlNTMzYTY3OTBjNTMzNjIxNGE0ZjUyNDNiNWJm
ZWI3YjliODgwNS4uNzc3ZDg0MDY2MWRjYmY0ZTAxODg0YTkxOWJlYWQ0ZDE0MzFmODIyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCmluZGV4IDY3ZGY2MTg0MjNiZTFjNTg2YzMyOGNkNjQzMTNkYjU2ZWQ3Y2UzOGIuLmNh
YjYzZjViMTRjZTVlYjg3ZWU0ZDg3YTgwYjM4NjVkZmI2ZTliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMTdkZjk0ZWM0MGNjMmUx
OTY0ZDA1Y2EyODMzMGQ5MDEyOTBlMjA5MS4uMTAyYzRlZTE2YzBkMWFkNGQ4MTU3ZjgxYmU0NjY2
YmY0M2QxNjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGluZy5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggZjUyNzgzYWU4YWY3ZDVkNjNjNWJjOGVhYjZjMzY5YzZk
NGFlOGFlYy4uYjBkMzcxNGIxYmM0Y2M2YmJkNDhhZGI3ZjI5MzY3NzMxNGFhMDg4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIK
QEAgLTE3OTMsNyArMTc5NCw3IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojp1c2VEYXJrQXBwZWFyYW5j
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkudXNlRGFya0FwcGVhcmFuY2UoJnN0eWxl
KCkpOwogfQogCi1PcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gUmVuZGVyT2JqZWN0Ojpz
dHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IFJl
bmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBkb2N1
bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAxMjYwMDA0ZjVjMmY3ZTFkZDAyYjI0MDg1NWQyMTU4
NTViZjZiMzNiLi5jNTM0YzlmZGQwNWQ1ODQ3MGZhN2U2NjE0ODZhNmFlYWNjZDY2OGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0xNjQsNyArMTY0LDcgQEAg
cHVibGljOgogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBlbmNsb3NpbmdGcmFnbWVudGVkRmxv
dygpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSgp
IGNvbnN0OwotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xv
ck9wdGlvbnMoKSBjb25zdDsKIAogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgdm9pZCBzZXRIYXNB
WE9iamVjdChib29sIGZsYWcpIHsgbV9oYXNBWE9iamVjdCA9IGZsYWc7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDdlZTk0NDI2Y2M1MmJhZGI0
MGZmYzRjYjdjZmJkMTI3NzRiY2U3M2EuLjFmZTYzYjE1Nzk2OWRlODA5ZThmYjNhOGU0ODAyMmZi
YjgyOTg2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdo
bGlnaHRDb2xvcigpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRl
ZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
c3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVh
cmFuY2UgfTsKKyAgICAgICAgICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVh
cmFuY2UgfTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCkuYXBwSGlnaGxpZ2h0
Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCA0OGRjZmIzYzhm
YTA2YzM3MjE1YmE0NzA0YzI1MjYwNDliZGI2MTBmLi4zNDM3Y2FjNGVkNzg4OTU0Y2E4NDVlNzIy
YmU5NDhhYTU0YTk2YmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQnJlYWtMaW5lcy5oIgogI2luY2x1ZGUgIkJy
ZWFraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkNoYXJhY3RlclByb3BlcnRpZXMuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggYjkwODJiNTY3Nzk1ZjJjZDVl
NGQ2YTc0ZDcwMzNhODVlODcxYzA1Yy4uOGNiZWJmZWJjYmJmMzhmMjgyYWJjY2M0ZjZkNTAxNWRm
OTZjODY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC02
MDMsNyArNjAzLDcgQEAgTGF5b3V0UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNl
dEZyb21NdXRlQnV0dG9uKGNvbnN0IFJlbmRlckJveCYgbXV0ZUIKIAogI2VuZGlmCiAKLUNvbG9y
IFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7
CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgp
KQpAQCAtNjExLDcgKzYxMSw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJu
IGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkp
CkBAIC02MTksMTIgKzYxOSwxMiBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVy
biBjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYg
Y29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBi
bGVuZFdpdGhXaGl0ZShjb2xvcik7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTYzMiw3ICs2MzIsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPgogICAgIHJldHVybiBjYWNoZS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
cyhvcHRpb25zKSkKQEAgLTY0MCw3ICs2NDAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgog
ICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02NDgsNyArNjQ4LDcgQEAgQ29sb3IgUmVu
ZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok8KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNh
Y2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBA
IC02NTYsNyArNjU2LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjoKICAgICByZXR1cm4gY2Fj
aGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
OjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2Fj
aGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3JzKG9wdGlvbnMpKQpAQCAtNjY0LDcgKzY2NCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjph
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPCiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02NzIsNDcgKzY3Miw0
NyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICAvLyBVc2UgYSBibHVlIGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRo
ZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIHJldHVybiBDb2xvcjo6Ymx1ZTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIHdoaXRlIGNvbG9yIGJ5IGRl
ZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAg
IHJldHVybiBDb2xvcjo6d2hpdGU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAg
ICAgLy8gVXNlIGEgZ3JleSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVtZSBk
b2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICAvLyBUaGlzIGNvbG9yIG1hdGNoZXMgRmlyZWZv
eCdzIGluYWN0aXZlIGNvbG9yLgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDE3NiwgMTc2
LCAxNzYgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBi
bGFjayBjb2xvciBieSBkZWZhdWx0LgogICAgIHJldHVybiBDb2xvcjo6YmxhY2s7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBy
ZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9u
cyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3Iob3B0aW9ucyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CkBAIC0xMjM0LDEwICsxMjM0LDEwIEBAIHZv
aWQgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkKICAgICBQYWdlOjp1cGRh
dGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7CiB9CiAK
LWF1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0IC0+IENvbG9yQ2FjaGUmCithdXRvIFJlbmRlclRoZW1lOjpjb2xv
ckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4gQ29s
b3JDYWNoZSYKIHsKICAgICBhdXRvIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rID0gb3B0aW9u
czsKLSAgICBvcHRpb25zSWdub3JpbmdWaXNpdGVkTGluay5yZW1vdmUoU3R5bGVDb2xvcjo6T3B0
aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnJl
bW92ZShTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgcmV0dXJuIG1f
Y29sb3JDYWNoZU1hcC5lbnN1cmUob3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsudG9SYXcoKSwg
W10gewogICAgICAgICByZXR1cm4gQ29sb3JDYWNoZSgpOwpAQCAtMTI4NCwxMSArMTI4NCwxMSBA
QCB2b2lkIFJlbmRlclRoZW1lOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgc3lzdGVtRm9udElELCBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJiBmbwogICAgIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNj
cmlwdGlvbihzeXN0ZW1Gb250SUQsIGZvbnREZXNjcmlwdGlvbik7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRMaW5rOgotICAgICAgICByZXR1cm4gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAy
NiwgMTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OworICAgICAgICByZXR1cm4g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspID8gU1JH
QkE8dWludDhfdD4geyA4NSwgMjYsIDEzOSB9IDogU1JHQkE8dWludDhfdD4geyAwLCAwLCAyMzgg
fTsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QWN0aXZlbGluazoKICAgICBjYXNlIENTU1ZhbHVl
QWN0aXZldGV4dDoKICAgICAgICAgcmV0dXJuIENvbG9yOjpyZWQ7CkBAIC0xMzY5LDcgKzEzNjks
NyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlk
LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xMzc3LDEzICsxMzc3LDEzIEBAIENv
bG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvCiAgICAgcmV0dXJuIGNhY2hlLnRleHRTZWFyY2hIaWdobGln
aHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93OwogfQog
CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUo
b3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hcHBIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBA
IC0xMzkxLDEzICsxMzkxLDEzIEBAIENvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uCiAgICAgcmV0dXJu
IGNhY2hlLmFwcEhpZ2hsaWdodENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93Owog
fQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25z
KTsKICAgICBpZiAoIWNhY2hlLmRlZmF1bHRCdXR0b25UZXh0Q29sb3IuaXNWYWxpZCgpKQpAQCAt
MTQwNSw3ICsxNDA1LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMKICAgICByZXR1cm4gY2Fj
aGUuZGVmYXVsdEJ1dHRvblRleHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFjdGl2ZWJ1dHRvbnRleHQsIG9wdGlvbnMp
OwogfQpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6c2V0Q3VzdG9tRm9j
dXNSaW5nQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGN1c3RvbUZvY3VzUmluZ0NvbG9y
KCkgPSBjb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICBpZiAoY3VzdG9tRm9jdXNSaW5nQ29sb3IoKS5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaAppbmRleCBlN2U2ZWJiMWI5ZDFlYmIxODgwN2ZiMGFhODkxNmY5YzgwMWY3
ODMxLi44NmY5ZTdkNThlMjFkMDZjYTBkMjIyM2ExZTA0NDY0Mzc0NDMyNWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTQ2LDM0ICsxNDYsMzQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0JveFNoYWRvdyhjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBUZXh0IHNlbGVjdGlvbiBjb2xvcnMu
Ci0gICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2
aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7
CisgICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciB0cmFuc2Zvcm1TZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Q7CiAKICAgICAvLyBMaXN0IGJveCBzZWxlY3Rpb24gY29sb3JzCi0gICAgQ29sb3IgYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7Cisg
ICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCi0gICAg
Q29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Q7CisgICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQogICAgIC8vIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBhcHAgaGlnaGxpZ2h0cy4K
LSAgICBDb2xvciBhcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0OwogI2VuZGlmCiAKLSAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogICAgIENvbG9yIGRhdGVQbGFjZWhvbGRlclRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4
dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgQ29sb3IgZGlzYWJsZWRUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3Qg
Q29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBDb2xv
ciBmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owot
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiBDb2xvcjo6YmxhY2s7IH0K
ICAgICBzdGF0aWMgdm9pZCBzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYpOwog
ICAgIHN0YXRpYyBmbG9hdCBwbGF0Zm9ybUZvY3VzUmluZ1dpZHRoKCkgeyByZXR1cm4gMzsgfQog
ICAgIHN0YXRpYyBmbG9hdCBwbGF0Zm9ybUZvY3VzUmluZ09mZnNldChmbG9hdCBvdXRsaW5lV2lk
dGgpIHsgcmV0dXJuIHN0ZDo6bWF4PGZsb2F0PihvdXRsaW5lV2lkdGggLSBwbGF0Zm9ybUZvY3Vz
UmluZ1dpZHRoKCksIDApOyB9CkBAIC0xODcsNyArMTg3LDcgQEAgcHVibGljOgogCiAgICAgLy8g
U3lzdGVtIGZvbnRzIGFuZCBjb2xvcnMgZm9yIENTUy4KICAgICB2b2lkIHN5c3RlbUZvbnQoQ1NT
VmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11
bU1lbnVMaXN0U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApA
QCAtMjcyLDI1ICsyNzIsMjUgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
YWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCA9IDA7CiAKICAgICAvLyBUaGUgcGxhdGZvcm0gc2Vs
ZWN0aW9uIGNvbG9yLgotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
VGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKICNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKICNpZiAhVVNFKE5FV19USEVNRSkKICAgICAvLyBNZXRob2RzIGZvciBlYWNoIGFwcGVh
cmFuY2UgdmFsdWUuCkBAIC00NTEsNyArNDUxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBDb2xv
ciBkZWZhdWx0QnV0dG9uVGV4dENvbG9yOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIENvbG9yQ2Fj
aGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yQ2FjaGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RTZWFyY2hGaWVsZERlY29y
YXRpb25TdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggMzJhYjVj
MmM5ODYyMzQ0MjNlYTQ5ZmY4NDFjMzU3YTNhOGRkYzZiNi4uZDFkNjIzZTY3MzBmMmMyYzVmNGQ3
YTVmMzJmYTAwOGViMjFjMjI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQWR3YWl0YS5jcHAKQEAgLTEzNSw0OSArMTM1LDQ5IEBAIGJvb2wgUmVuZGVyVGhl
bWVBZHdhaXRhOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxl
bWVudCYgZWxlCiAgICAgcmV0dXJuIGVsZW1lbnQuaXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0
b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFk
d2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1l
QWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5p
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFk
d2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4o
VGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkp
LmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRm
b3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIHJldHVy
biBUaGVtZUFkd2FpdGE6OmZvY3VzQ29sb3Iob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIHJldHVybiBUaGVtZUFkd2FpdGE6OmZv
Y3VzQ29sb3Iob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKIH0KIAogdm9pZCBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQ29sb3JzRGlk
Q2hhbmdlKCkKQEAgLTIwMyw5ICsyMDMsOSBAQCBWZWN0b3I8U3RyaW5nLCAyPiBSZW5kZXJUaGVt
ZUFkd2FpdGE6Om1lZGlhQ29udHJvbHNTY3JpcHRzKCkKIH0KICNlbmRpZgogCi1Db2xvciBSZW5k
ZXJUaGVtZUFkd2FpdGE6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wgdXNlRGFy
a0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogCiAgICAg
c3dpdGNoIChjc3NWYWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKaW5kZXggNmM3
OTkzMjNiN2RkYmJkMTU5OTAxN2Q2MGNmZWNmMDkxMjQ0MDJlYi4uOTkzMzI1YzQxNjY1ZWRkYjM0
ODk3ZmNjN2U1MzM4NzU4NThjMmI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUFkd2FpdGEuaApAQCAtNDYsMTUgKzQ2LDE1IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2Fz
Y2FkZURlc2NyaXB0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyB9OwogCi0gICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmlu
YWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAg
ICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0
Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgcGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIGJv
b2wgcGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgRmxvYXRSZWN0JikgZmluYWw7CkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soY29uc3QgUmVuZGVyT2JqZWN0JiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCiAgICAgSW50U2l6ZSBzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAppbmRleCA0YjEwMWIzOGI1Yzhl
MTRkMGE2NzdmNTA3NDNkMWQ2N2I0NTEzMTRmLi5jYjVlOGQ4ZGE4YzI5YmFlMzBhNWFjMGI1YTJk
YjZmYThkN2FlNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aApAQCAtMTE1LDEwICsxMTUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50U2VhcmNoRmll
bGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZS
RVNIKQotICAgIENvbG9yIGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJv
bFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsKLSAgICBD
b2xvciBjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWdu
LCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0
PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwor
ICAgIENvbG9yIGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVE
ZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KTsKICAgICBSZWZQdHI8R3JhZGllbnQ+IGNoZWNrYm94UmFkaW9CYWNrZ3Jv
dW5kR3JhZGllbnQoY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0
YXRlcz4pOwotICAgIENvbG9yIGNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8
Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsK
KyAgICBDb2xvciBjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xT
dGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwogCiAgICAgYm9v
bCBwYWludENoZWNrYm94KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRSYWRpbyhjb25zdCBSZW5k
ZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
QEAgLTE1NiwxMiArMTU2LDEyIEBAIHByaXZhdGU6CiAKICAgICBib29sIHN1cHBvcnRzQm94U2hh
ZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CiAKLSAgICBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBv
dmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAg
ICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAgIENvbG9y
IHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQpAQCAtMTk4LDcgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAgICBGbG9h
dFJlY3QgYWRkUm91bmRlZEJvcmRlckNsaXAoY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKTsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAg
UmV0YWluUHRyPENJQ29udGV4dD4gbV9jaUNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNjllZTQ5NjMzNjBlOGM2MDY1YzFmZjcxMWYxZmIx
NjZkZTNiNGY1ZS4uMzIxN2Q5MWVmOTg0NWM3MzMyNDY2OGUzOGUzMGY4ZDcxZDI4OTE5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTIzNywxMiAr
MTIzNywxMiBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpwYWludEZpbGVVcGxvYWRJY29uRGVjb3Jh
dGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUgogICAgIGljb24tPnBhaW50KHBhaW50
SW5mby5jb250ZXh0KCksIHRodW1ibmFpbFJlY3QpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlP
Uzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6dHJhbnNwYXJl
bnRCbGFjazsKIH0KQEAgLTEyNjIsMTMgKzEyNjIsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OnN5c3RlbUZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gKmNhY2hlZEZvY3VzUmluZ0NvbG9y
KCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9T
OjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUZvY3VzUmluZ0NvbG9yKCk7CiB9CiAKICNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdo
bGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBleHBvc2UgdGhlIHJlYWwgdmFs
dWUgZnJvbSBVSUtpdC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAyNTUsIDIzOCwgMTkw
IH07CkBAIC0xNDIzLDkgKzE0MjMsOSBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpzZXRGb2N1c1Jp
bmdDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgY2FjaGVkRm9jdXNSaW5nQ29sb3IoKSA9
IGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVl
SUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBj
b25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9
IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKIAog
ICAgIC8vIFRoZSBzeXN0ZW0gY29sb3IgY2FjaGUgYmVsb3cgY2FuJ3QgaGFuZGxlIHZpc2l0ZWQg
bGlua3MuIFRoZSBvbmx5IGNvbG9yIHZhbHVlCiAgICAgLy8gdGhhdCBjYXJlcyBhYm91dCB2aXNp
dGVkIGxpbmtzIGlzIENTU1ZhbHVlV2Via2l0TGluaywgc28gaGFuZGxlIGl0IGhlcmUgYnkKQEAg
LTE0MzcsOCArMTQzNyw4IEBAIENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NW
YWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAKICAgICBhdXRvJiBj
YWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0eWxl
Q29sb3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10gKCkg
LT4gQ29sb3IgewotICAgICAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7Ci0gICAg
ICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVs
KTsKKyAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFp
bnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICAgICAgY29uc3Qg
Ym9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICAgICAg
aWYgKCFnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIGF1dG8gaXQgPSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5maW5kKENT
U1ZhbHVlS2V5IHsgY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsIH0pOwogICAgICAgICAgICAgaWYgKGl0ID09IGdsb2JhbENTU1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcCgpLmVuZCgpKQpAQCAtMjA0Nyw3ICsyMDQ3LDcgQEAgY29uc3RleHBy
IGF1dG8gbmF0aXZlQ29udHJvbEJvcmRlcldpZHRoID0gMS4wZjsKIGNvbnN0ZXhwciBhdXRvIGNo
ZWNrYm94UmFkaW9Cb3JkZXJXaWR0aCA9IDEuNWY7CiBjb25zdGV4cHIgYXV0byBjaGVja2JveFJh
ZGlvQm9yZGVyRGlzYWJsZWRPcGFjaXR5ID0gMC4zZjsKIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVz
PiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9u
U2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGF1dG8gZGVmYXVsdEJvcmRlckNvbG9y
ID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUxhYmVsLCBzdHlsZUNv
bG9yT3B0aW9ucyk7CiAKQEAgLTIwNjAsNyArMjA2MCw3IEBAIENvbG9yIFJlbmRlclRoZW1lSU9T
OjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRl
cz4KICAgICByZXR1cm4gZGVmYXVsdEJvcmRlckNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2ln
biwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitDb2xvciBSZW5kZXJUaGVtZUlP
Uzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwg
T3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGJvb2wgaXNFbXB0eSA9ICFz
dGF0ZXMuY29udGFpbnNBbnkoeyBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkNoZWNrZWQsIENvbnRy
b2xTdGF0ZXM6OlN0YXRlczo6SW5kZXRlcm1pbmF0ZSB9KTsKICAgICBib29sIGlzRW5hYmxlZCA9
IHN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkVuYWJsZWQpOwpAQCAtMjEw
MCwxMiArMjEwMCwxMiBAQCBSZWZQdHI8R3JhZGllbnQ+IFJlbmRlclRoZW1lSU9TOjpjaGVja2Jv
eFJhZGlvQmFja2dyb3VuZEdyYWRpZW50KGNvbnN0IEZsb2F0UmVjdAogICAgIHJldHVybiBncmFk
aWVudDsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9JbmRpY2F0b3JD
b2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1l
SU9TOjpjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6
OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JP
cHRpb25zKQogewogICAgIGlmICghc3RhdGVzLmNvbnRhaW5zKENvbnRyb2xTdGF0ZXM6OlN0YXRl
czo6RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lz
dGVtVGVydGlhcnlMYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpOwogCi0gICAgQ29sb3IgZW5hYmxl
ZEluZGljYXRvckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBz
dHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KTsKKyAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9yQ29sb3IgPSBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwgU3R5bGVDb2xvck9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBpZiAoc3RhdGVzLmNvbnRhaW5zKENvbnRyb2xTdGF0
ZXM6OlN0YXRlczo6UHJlc3NlZCkpCiAgICAgICAgIHJldHVybiBlbmFibGVkSW5kaWNhdG9yQ29s
b3IuY29sb3JXaXRoQWxwaGFNdWx0aXBsaWVkQnkocHJlc3NlZFN0YXRlT3BhY2l0eSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggMWU2MTY4NzYwZjEx
NzQ3NzYxYThhM2MzZTViMmU4ZDZkMmQxYjg4ZC4uYzQxZjc0OTAwOTI1ZWZhMTY1ZWVlZTg5ZDY4
YjhlNjY2MTA1MzU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKQEAgLTUzLDIzICs1MywyMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQ29udHJvbFN0eWxl
ZChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0eWxlJiB1c2VyQWdlbnRTdHlsZSkg
Y29uc3QgZmluYWw7CiAKLSAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
cyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotCi0gICAgQ29s
b3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
LSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1G
b2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c1NlbGVj
dGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVM
aXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykK
LSAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICNlbmRpZgot
ICAgIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1
dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
IAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChD
b250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxsOyB9
CiAKQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogcHJpdmF0ZToKICAgICBTdHJpbmcgZmls
ZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25zdCBGb250Q2FzY2FkZSYsIGlu
dCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkgY29uc3QgZmluYWw7CiAKLSAgICBD
b2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gR2V0IHRoZSBj
b250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSBmb250LiBVc2VkIGJ5IHNvbWUgb2YgdGhlIGNvbnRy
b2xzIChsaWtlIGJ1dHRvbnMpLgogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemVGb3JGb250
KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KaW5kZXggYTE0ZmVjY2NlYmJmN2MxNWFhYjk5YWQ0MDJhYWQ3MjI2ODUy
MGM2MC4uZDQzN2Y0ODI2NjVjMzMzY2EyMzZlMGIzNzU4MjZhM2YyYWE2NGM0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjg0LDE2ICsyODQsMTYg
QEAgTlNWaWV3ICpSZW5kZXJUaGVtZU1hYzo6ZG9jdW1lbnRWaWV3Rm9yKGNvbnN0IFJlbmRlck9i
amVjdCYgbykgY29uc3QKICAgICByZXR1cm4gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZpZXco
KS5mcmFtZVZpZXcoKSwgc3RhdGVzKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRC
YWNrZ3JvdW5kQ29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9t
TlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3Jd
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzAxLDkgKzMwMSw5IEBA
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvCiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3Is
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
LSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAobG9j
YWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkgewogICAgICAgICAvLyBVc2UgYW4g
YWxwaGEgdmFsdWUgdGhhdCBpcyBzaW1pbGFyIHRvIHJlc3VsdHMgZnJvbSBibGVuZFdpdGhXaGl0
ZSgpIG9uIGxpZ2h0IGNvbG9ycy4KICAgICAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRhcmtBcHBl
YXJhbmNlQWxwaGEgPSAwLjg7CkBAIC0zMTMsMjQgKzMxMywyNCBAQCBDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xv
ciwgT3B0aQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKGNvbG9yLCBvcHRpb25zKTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZU1hYzo6c3Vw
cG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorYm9vbCBSZW5kZXJUaGVtZU1hYzo6c3VwcG9ydHNTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gbG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAobG9jYWxBcHBlYXJhbmNlLnVz
aW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05T
Q29sb3Igc2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1cm4geyB9OwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RB
UktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxB
cHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFy
YW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5j
ZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpKQogICAg
ICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3Rl
ZFRleHRDb2xvcl0pOwogICAgIHJldHVybiB7IH07CkBAIC0zNDAsMTAgKzM0MCwxMCBAQCBDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDbwogI2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9E
RV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwog
ICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkQ29udGVudEJhY2tn
cm91bmRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CkBAIC0zNTMs
MTAgKzM1MywxMCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdAogI2VuZGlmCiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwog
I2VuZGlmCkBAIC0zNjQsMTYgKzM2NCwxNiBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PAogCiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBy
ZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5hdGVTZWxlY3RlZENvbnRyb2xU
ZXh0Q29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQot
ICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBM
b2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBj
b2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM4MSwzMiArMzgxLDMyIEBA
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8CiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAg
aWYgKHVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yKCkpCiAgICAgICAgIHJldHVybiBvbGRBcXVh
Rm9jdXNSaW5nQ29sb3IoKTsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKICAgICAvLyBUaGUgY29sb3IgaXMgZXhwZWN0ZWQgdG8gYmUgb3BhcXVlLCBzaW5jZSBD
b3JlR3JhcGhpY3Mgd2lsbCBhcHBseSBvcGFjaXR5IHdoZW4gZHJhd2luZyAoYmVjYXVzZSBvcGFj
aXR5IGlzIG5vcm1hbGx5IGFuaW1hdGVkKS4KICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihb
TlNDb2xvciBrZXlib2FyZEZvY3VzSW5kaWNhdG9yQ29sb3JdKS5vcGFxdWVDb2xvcigpOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0Nv
bG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFsIHZhbHVlIGZyb20gQXBwS2l0Lgog
ICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsKIH0KICNlbmRpZgog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Ig
YWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENvbG9yXSk7CiB9CiAKQEAgLTQ0OSwxMSArNDQ5
LDExIEBAIHN0YXRpYyBTUkdCQTx1aW50OF90PiBtZW51QmFja2dyb3VuZENvbG9yKCkKICAgICBy
ZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmc8U1JHQkE8dWludDhfdD4+KHBpeGVsWzBd
LCBwaXhlbFsxXSwgcGl4ZWxbMl0sIHBpeGVsWzNdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNl
KTsKLSAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7Ci0gICAgY29uc3QgYm9vbCBm
b3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9y
VmlzaXRlZExpbmspOworICAgIGNvbnN0IGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
IGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVk
TGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OkZvclZpc2l0ZWRMaW5r
KTsKIAogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKIApAQCAtMTU3MSw3
ICsxNTcxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0TWVudUxpc3RTdHlsZShSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGUpIGMKICAgICAvLyBTZXQgdGhlIGZvcmVn
cm91bmQgY29sb3IgdG8gYmxhY2sgb3IgZ3JheSB3aGVuIHdlIGhhdmUgdGhlIGFxdWEgbG9vay4K
ICAgICBDb2xvciBjID0gQ29sb3I6OmRhcmtHcmF5OwogICAgIGlmIChlKSB7Ci0gICAgICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zID0gZS0+ZG9jdW1lbnQoKS5zdHls
ZUNvbG9yT3B0aW9ucygmc3R5bGUpOworICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSk7CiAg
ICAgICAgIGMgPSAhZS0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgPyBzeXN0ZW1Db2xvcihDU1NW
YWx1ZUJ1dHRvbnRleHQsIG9wdGlvbnMpIDogc3lzdGVtQ29sb3IoQ1NTVmFsdWVHcmF5dGV4dCwg
b3B0aW9ucyk7CiAgICAgfQogICAgIHN0eWxlLnNldENvbG9yKGMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggODVkYWFkODU3N2JkOGU3NmM3YWQ5
NzhlMmMyZGQwYzgwNGUxY2I4Yy4uMGQ0NWFkNWU5MjMwZmQyNTk3MzVmYzYxZGU4NWQwOGVlMzJh
Y2EwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBA
IC0yODUsMjUgKzI4NSwyNSBAQCBib29sIFJlbmRlclRoZW1lV2luOjpzdXBwb3J0c0hvdmVyKGNv
bnN0IFJlbmRlclN0eWxlJikgY29uc3QKICAgICByZXR1cm4gaGF2ZVRoZW1lOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVX
aW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xv
cihDT0xPUl9ISUdITElHSFQpOwogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IEdldFJWYWx1
ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvcikgfTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBUaGlzIGNvbG9yIG1hdGNoZXMg
RmlyZWZveC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAxNzYsIDE3NiwgMTc2IH07CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICBDT0xPUlJFRiBjb2xvciA9IEdl
dFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVFRFWFQpOwogICAgIHJldHVybiBTUkdCQTx1aW50OF90
PiB7IEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvcikg
fTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKG9wdGlv
bnMpOwogfQpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgc3RhdGljIGludCBjc3NWYWx1ZUlkVG9TeXND
b2xvckluZGV4KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkKICAgICB9CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lV2luOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46
OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQp
CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVdpbi5oCmluZGV4IGM4MWI1MGEzMmEyOTNlYjY3YjBiMjYyNzAzZTEwZTUwM2U4NmQ4
MjUuLjZiMDBjZjA3ODRjMmYwN2RhZWM2YzM4ZjYyY2ZkNDQ2YmQyYzdmYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCkBAIC01NCwxMiArNTQsMTIgQEAgcHVi
bGljOgogICAgIC8vIEEgbWV0aG9kIGFza2luZyBpZiB0aGUgdGhlbWUncyBjb250cm9scyBhY3R1
YWxseSBjYXJlIGFib3V0IHJlZHJhd2luZyB3aGVuIGhvdmVyZWQuCiAgICAgYm9vbCBzdXBwb3J0
c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwot
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92
ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRl
OworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBwYWludENoZWNrYm94KGNvbnN0
IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBGbG9hdFJlY3QmIHIp
IG92ZXJyaWRlCiAgICAgeyByZXR1cm4gcGFpbnRCdXR0b24obywgaSwgSW50UmVjdChyKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYWYwNDE5Y2Y2
YzQ5MjVkMWM5NDQ3MjczYTcxMDVkMWM0Yjk4NWExNy4uZDZjYzliNzFhOGFjYjMxOWFlNDViMWMw
ZTdlMDQxYjRlYmFlNjg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdl
dC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKIAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
dHlsZWRNYXJrZWRUZXh0LmNwcAppbmRleCBjOWNmYzdmZjVkYjEwMGE0MWVlNjExNDM4ODY5ZDRh
MWM3YmRlY2VmLi4wNDdmMDJhMTc5ZmE1NjEzYmQ4M2E2ZjU3OTc5YmY2YjE0MDQyNmUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCkBAIC03Myw3
ICs3Myw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJlc29sdmVTdHlsZUZvck1hcmtlZFRl
eHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAgICAgICAgYnJlYWs7CiAjaWYgRU5B
QkxFKEFQUF9ISUdITElHSFRTKQogICAgIGNhc2UgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0OiB7
Ci0gICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHls
ZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OwogICAgICAgICBzdHlsZS5iYWNr
Z3JvdW5kQ29sb3IgPSByZW5kZXJlci50aGVtZSgpLmFwcEhpZ2hsaWdodENvbG9yKHN0eWxlQ29s
b3JPcHRpb25zKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtOTIsNyArOTIsNyBAQCBzdGF0
aWMgU3R5bGVkTWFya2VkVGV4dCByZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtl
ZFRleHQmIG1hcmtlZFRleHQsCiAgICAgfQogICAgIGNhc2UgTWFya2VkVGV4dDo6VGV4dE1hdGNo
OiB7CiAgICAgICAgIC8vIFRleHQgbWF0Y2hlcyBhbHdheXMgdXNlIHRoZSBsaWdodCBzeXN0ZW0g
YXBwZWFyYW5jZS4KLSAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxl
Q29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNl
IH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlv
bnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICAgICBzdHlsZS50ZXh0U3R5bGVzLmZpbGxDb2xvciA9IHJlbmRlcmVy
LnRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9y
T3B0aW9ucyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5
bGUuY3BwCmluZGV4IGJmZjIxN2U5NDAxMmUyMWQ2YzEyYzA0ZTg4Yjg3MDljZjllNTc3ZGIuLmZj
NjhmNDNlZmRlMzZjNGNmOGJlMTUxMWVkZTg2NGZkMGZhNGE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcApAQCAtOTgsOSArOTgsOSBAQCBUZXh0UGFp
bnRTdHlsZSBjb21wdXRlVGV4dFBhaW50U3R5bGUoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBS
ZW5kZXJTdHlsZSYgbGluZQogICAgIGlmIChsaW5lU3R5bGUuaW5zaWRlRGVmYXVsdEJ1dHRvbigp
KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgICAgIGlmIChwYWdl
ICYmIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOworICAgICAgICAgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgICAgICAgICAgaWYgKHBhZ2UtPnVz
ZVN5c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgICAgICAgICBvcHRp
b25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CiAgICAgICAg
ICAgICBwYWludFN0eWxlLmZpbGxDb2xvciA9IFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5kZWZh
dWx0QnV0dG9uVGV4dENvbG9yKG9wdGlvbnMpOwogICAgICAgICAgICAgcmV0dXJuIHBhaW50U3R5
bGU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQzMGEzNDJmNjNiOTM4NDRmNDFiNzU3
YjBkZmFkOWFhYmIyN2NjYzQuLjljZTUxNmI4NjczZjM3NzQ3NDQxMWFmMmIwODQzMGJhZTVkZDE0
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRy
ZWVCdWlsZGVyLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IDQ2ZGJmNWJiMzNkNWU4NWUxNTIxYWJlNzg4YjkxN2ZlMjgxM2M3YTku
LjQzYzQ5Yzk1MGUzYjk5NWM2NWIxNTAyYzU1YjIzNjY4MjE0YTEzNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBAIC00NjMzLDE0ICs0NjM0LDE0IEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmlldyBzdGF0ZXNTdHJpbmcpCiAgICAgaWYgKCFkb2N1
bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZUZsYWdzIHN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3Mgc3RhdGU7CiAgICAgZm9yIChTdHJpbmdWaWV3IHN0YXRlU3RyaW5nIDogc3RhdGVzU3Ry
aW5nLnNwbGl0KCcsJykpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHN0YXRlU3RyaW5nLCAiYXVkaW8iKSkKLSAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAgICAgICAgc3RhdGUuYWRk
KE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwogICAgICAgICBpZiAoZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJjYXB0dXJlZGV2aWNlcyIp
KQogICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dGF0ZVN0cmluZywgInNjcmVlbmNhcHR1cmUiKSkKLSAgICAgICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgICAg
ICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVk
KTsKICAgICB9CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpCkBAIC00
NjU1LDQzICs0NjU2LDQzIEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0YXRlKCkKIAog
ICAgIGF1dG8gc3RhdGUgPSBkb2N1bWVudC0+cGFnZSgpLT5tZWRpYVN0YXRlKCk7CiAgICAgU3Ry
aW5nQnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkKICAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7Ci0gICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
IklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1Bs
YXlDYW5kaWRhdGUpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsIik7Ci0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkp
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQ
bGF5VG9FbmQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7Ci0gICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzU291cmNl
RWxlbWVudFBsYXlpbmcpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCiAgICAgICAgIHN0cmluZy5hcHBl
bmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CiAKLSAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkp
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc05l
eHRUcmFja0NvbnRyb2xFbmFibGVkKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNOZXh0VHJh
Y2tDb250cm9sRW5hYmxlZCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQcmV2aW91c1Ry
YWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1ByZXZpb3VzVHJh
Y2tDb250cm9sRW5hYmxlZCwiKTsKIAotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVy
KSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCIpOwotICAgIGlmIChz
dGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlk
ZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzQXVkaW9PclZpZGVvKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVv
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1
ZGlvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
Ikhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVs
ZW1lbnQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOwotICAgIGlmIChzdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlD
YXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLCIpOwogCiAgICAgaWYgKHN0cmlu
Zy5pc0VtcHR5KCkpCkBAIC02MTI0LDExICs2MTI1LDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OnN5
c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJr
TW9kCiAgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc1ZhbHVlKTsKICAg
ICBSRUxFQVNFX0FTU0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9yS2V5d29yZChpZCkpOwog
Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgIGlmICh1c2VEYXJrTW9kZUFwcGVh
cmFuY2UpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpCi0g
ICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICAKICAgICByZXR1cm4gc2VyaWFsaXph
dGlvbkZvckNTUyhSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3lzdGVtQ29sb3IoaWQsIG9wdGlv
bnMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhZjc2OTc2MjNjYzljZjQ0NmNlOGRjZTNjZGQ0YzJi
YTI3NDI3NzUzLi5hOGMzZTE4ZTQ3YWVjYWQwYTAyMmEwODRjNDlhMjFmNmM3MTRjMzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCisjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlclNjb3BlLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggMTUzOTkyOGJhZjRjMDU3MWQzNTUyOTY4YTFmYmNmMWYy
Yzc0YmJkZi4uOGIwM2M4MWQwNzViYjljMzMzNDQ1NzY2MzM2M2MxMjMzZTJhYzM5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
bGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogI2luY2x1ZGUgIlJlbW90
ZUNETUZhY3RvcnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDc2ZjEyOTNlNDg0OGU0ZWY0ZTI5
MDRlNTg1NzUxYzRjZjZlNGM4YTkuLjkwMjM2YWNiMWYwNDI3N2E3ODJmNTUzZjk2ZTM2YWE0YWQx
YjZkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE2MTUsNyArMTYxNSw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmIHJlcG9ydFVSTCwgUmVm
PEZvcm1EYXRhCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VuZENTUFZpb2xhdGlvblJl
cG9ydCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKHJlcG9ydFVSTCksIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKHJlcG9ydCkgfSB9LCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlEKTsKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgeyBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgV1RGTW92ZShldmVudEluaXQpIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKaW5kZXggYjJkMWRjYjdjNzY4MTU3OWExY2Y2ZmZiZDQyNGQ0MWYxMDlkMDU4Mi4u
ZDE3NzZlODFmOWM3NmY4MjRkOWY0YTMyNjQyM2UxOTBkZjg5NWE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0y
MDgsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGll
bnQKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZp
bmFsOwogICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPFdlYkNvcmU6
OkZvcm1EYXRhPiYmKSBmaW5hbDsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikg
ZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBmaW5hbDsKIAogICAgIHZv
aWQgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25zdCBOZXR3b3JrQ2FjaGU6OkNhY2hl
OjpSZXRyaWV2ZUluZm8mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKaW5kZXggMjc4MWQxMGU5YzY4ZWVjY2I1NmI3NjhiMjQ1MThkOWFjNTQxN2I4OS4uOTE2Y2Ew
ZTMxOTQyNmQxNjZhZGRjMzY0OWE2NDI1ZTYyYjRlMDhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MjYsNiArNzI2LDkgQEAgZGVmIGhlYWRlcnNfZm9y
X3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OjpN
ZWRpYUtleUVycm9yQ29kZSc6IFsnPFdlYkNvcmUvTGVnYWN5Q0RNU2Vzc2lvbi5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCisg
ICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdlYkNv
cmUvTWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSc6IFsnPFdlYkNvcmUv
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1vdXNl
RXZlbnRQb2xpY3knOiBbJzxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbic6IFsnPFdlYkNvcmUvTmV0d29y
a0xvYWRJbmZvcm1hdGlvbi5oPiddLApAQCAtNzQ4LDYgKzc1MSw3IEBAIGRlZiBoZWFkZXJzX2Zv
cl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5JzogWyc8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQnOiBbJzxX
ZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQnOiBbJzxXZWJDb3JlL1NlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlv
bic6IFsnPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2VsZWN0aW9uR2VvbWV0cnknOiBbJyJFZGl0b3JTdGF0ZS5oIiddLAogICAgICAgICAnV2ViQ29y
ZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJU
eXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCBhZDQxMWI4MDYyOThhNGI4NWU4Nzg1YmJmNDc1ZmYyZDkzY2Yx
N2VmLi5jYmNhOTA4ZTM4MzYwZDFkOWM5OTQ0MmUwOTNmYTA4OTE1MWU5NmQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
Mjg0LDcgKzI4NCw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4g
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzPiBtdXRlZFN0YXRlRmxhZ3M7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzPiBtdXRlZFN0YXRlRmxhZ3M7CiAgICAgZGVjb2Rl
ciA+PiBtdXRlZFN0YXRlRmxhZ3M7CiAgICAgaWYgKCFtdXRlZFN0YXRlRmxhZ3MpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNGEwNWQ2MGIyYWNlMTIyNDAxMzQ4YmJhOWFhMWRh
MTc0NmI4OTI0MC4uZWIxZWUwOTU5YTUxM2RiODI1N2Q2NGFkZGNlZWE1MDliN2EzZTg2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMTE5LDcgKzExOSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBmbG9hdCB0b3BDb250ZW50SW5zZXQ7CiAgICAgCiAgICAgZmxvYXQgbWVkaWFWb2x1bWU7Ci0g
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkOworICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CiAgICAgYm9vbCBtYXlT
dGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIGJvb2wgbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVk
IHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApp
bmRleCAyZGIwZjU2OWNiMjI1MDU4OWU3ZWMxNjA1OGRhZmI1YTZhNGU3YmYwLi41NDkxMDJlYjVm
ZWVhYjAwOWJmOTQ3NzUzMmQ0ZjlkNTAxZWE4ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVu
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNl
dDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA3MDFm
MWEyOTA4OGQ4NDIwMTYwYzczZTBjZDllZmQzMmRjYzZmMjNkLi4xZmIyZjI3YWQyYjkyMWE4OGVh
Y2FkOGM3OTY4NGI2ODUyMWU2N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKQEAgLTI4MTYsMTQgKzI4MTYsMTQgQEAgdm9pZCBXS1BhZ2VTZXRNZWRpYVZvbHVt
ZShXS1BhZ2VSZWYgcGFnZVJlZiwgZmxvYXQgdm9sdW1lKQogdm9pZCBXS1BhZ2VTZXRNdXRlZChX
S1BhZ2VSZWYgcGFnZVJlZiwgV0tNZWRpYU11dGVkU3RhdGUgbXV0ZWRTdGF0ZSkKIHsKICAgICBD
UkFTSF9JRl9TVVNQRU5ERUQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIGNvcmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZs
YWdzIGNvcmVTdGF0ZTsKIAogICAgIGlmIChtdXRlZFN0YXRlICYga1dLTWVkaWFBdWRpb011dGVk
KQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgaWYgKG11dGVkU3RhdGUgJiBr
V0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQpCiAgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBpZiAo
bXV0ZWRTdGF0ZSAmIGtXS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVkKQotICAgICAgICBjb3JlU3Rh
dGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJ
c011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5z
ZXRNdXRlZChjb3JlU3RhdGUpOwogfQpAQCAtMjk3MSwyNCArMjk3MSwyNCBAQCBib29sIFdLUGFn
ZUlzUGxheWluZ0F1ZGlvKFdLUGFnZVJlZiBwYWdlKQogCiBXS01lZGlhU3RhdGUgV0tQYWdlR2V0
TWVkaWFTdGF0ZShXS1BhZ2VSZWYgcGFnZSkKIHsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9JbXBsKHBhZ2UpLT5yZXBvcnRlZE1lZGlh
U3RhdGUoKTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGNvcmVT
dGF0ZSA9IHRvSW1wbChwYWdlKS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7CiAgICAgV0tNZWRpYVN0
YXRlIHN0YXRlID0ga1dLTWVkaWFJc05vdFBsYXlpbmc7CiAKLSAgICBpZiAoY29yZVN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCisgICAg
aWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFJc1BsYXlpbmdBdWRpbzsKLSAgICBp
ZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFJc1BsYXlp
bmdWaWRlbzsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkK
ICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAg
ICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAg
ICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsKLSAgICBpZiAo
Y29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
RGlzcGxheUNhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAg
ICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZTsKLSAgICBp
ZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0
ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCiAgICAg
ICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZTsKIAogICAg
IHJldHVybiBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IDAwNDRhODFhMjdhOWJhNTBjOTc4ZDY3MjVkMDY5M2RhMWZiMTA3OWMu
LjU3MmVjOTZkY2E3Yzc1ZjRiMTdiNDgyZTI3YWFlNTJkMjQ0NzFhZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTAzNyw5ICsxMDM3
LDkgQEAgLSAodm9pZClyZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShXS01lZGlhUGxheWJhY2sKIC0gKFdLTWVkaWFDYXB0dXJlU3RhdGUpY2Ft
ZXJhQ2FwdHVyZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5yZXBvcnRlZE1lZGlh
U3RhdGUoKTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkK
ICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Ci0gICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRpYUNh
cHR1cmVTdGF0ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKIH0K
QEAgLTEwNDcsOSArMTA0Nyw5IEBAIC0gKFdLTWVkaWFDYXB0dXJlU3RhdGUpY2FtZXJhQ2FwdHVy
ZVN0YXRlCiAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKW1pY3JvcGhvbmVDYXB0dXJlU3RhdGUKIHsK
ICAgICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwotICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlv
Q2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tN
ZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAo
c3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CiAg
ICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAtMTA2MSwxNiArMTA2MSwx
NiBAQCAtICh2b2lkKXNldE1pY3JvcGhvbmVDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0dXJlU3Rh
dGUpc3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9
IFtdIHsgfTsKIAogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgewot
ICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIFtjb21wbGV0aW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKICAgICBp
ZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSkKLSAgICAgICAgbXV0ZWRTdGF0
ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJl
SXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICBlbHNlIGlmIChzdGF0ZSA9
PSBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQpCi0gICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOworICAg
ICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVk
aW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21w
bGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKQEAgLTEwODMsMTYgKzEwODMsMTYgQEAg
LSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7
IH07CiAKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpIHsKLSAgICAg
ICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdzKCk7CiAgICAgaWYgKHN0
YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUpCi0gICAgICAgIG11dGVkU3RhdGUucmVt
b3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0
ZWQpOworICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgZWxzZSBpZiAoc3RhdGUgPT0gV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQotICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAg
bXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0YXRlLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CkBAIC0yMjcxLDcgKzIyNzEsNyBAQCAtICh2b2lk
KV9jbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucwogLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZQog
ewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKLSAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKKyAg
ICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIC0gKHZvaWQpX3N0b3BBbGxNZWRpYVBsYXliYWNr
CkBAIC0zNTk0LDE0ICszNTk0LDE0IEBAIC0gKEJPT0wpX21lZGlhQ2FwdHVyZUVuYWJsZWQKIC0g
KHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRlKW11dGVkU3RhdGUKIHsKICAg
ICBUSFJPV19JRl9TVVNQRU5ERUQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzIGNvcmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZUZsYWdzIGNvcmVTdGF0ZTsKIAogICAgIGlmIChtdXRlZFN0YXRlICYgX1dLTWVkaWFBdWRpb011
dGVkKQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgaWYgKG11dGVkU3RhdGUg
JiBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQpCiAgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBp
ZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVkKQotICAgICAgICBjb3Jl
U3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1
cmVJc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogCiAgICAgX3BhZ2UtPnNldE11dGVk
KGNvcmVTdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGYwOTRmNTM4OTM5NDQ5NTVmNzk4MzljMjVkOWRlZTky
NWRmNDcwMGUuLjRlNWQ3MzI1NzE0NGI1MWRkNDJhNGVmYWNjNzBlZWZjY2U4NTNlOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CkBAIC00ODY4LDcgKzQ4NjgsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfY29yc19hbGxv
d2xpc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIGNvbgogICAgIGdldFBh
Z2Uod2ViVmlldykuc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFdURk1vdmUoYWxsb3dMaXN0VmVj
dG9yKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1
cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZCBjYXB0dXJlS2luZCwgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUgY2FwdHVyZVN0
YXRlLCBib29sIGlzRnJvbURpc3BsYXlDYXB0dXJlID0gZmFsc2UpCitzdGF0aWMgdm9pZCB3ZWJr
aXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGNhcHR1cmVLaW5kLCBXZWJLaXRN
ZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wgaXNGcm9tRGlzcGxheUNhcHR1cmUg
PSBmYWxzZSkKIHsKICAgICBhdXRvJiBwYWdlID0gZ2V0UGFnZSh3ZWJWaWV3KTsKICAgICBhdXRv
IG11dGVkU3RhdGUgPSBwYWdlLm11dGVkU3RhdGVGbGFncygpOwpAQCAtNDg3NywxMyArNDg3Nywx
MyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgIGNhc2UgV0VCS0lUX01FRElBX0NBUFRV
UkVfU1RBVEVfTk9ORToKICAgICAgICAgcGFnZS5zdG9wTWVkaWFDYXB0dXJlKGNhcHR1cmVLaW5k
LCBbd2ViVmlldywgY2FwdHVyZUtpbmRdIHsKICAgICAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtp
bmQpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW86CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgICAgICBnX29iamVjdF9ub3RpZnlf
YnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfTUlDUk9QSE9O
RV9DQVBUVVJFX1NUQVRFXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6Vmlk
ZW86CiAgICAgICAgICAgICAgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdl
YlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9QX0NBTUVSQV9DQVBUVVJFX1NUQVRFXSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgogICAgICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KQEAgLTQ4OTEsMTYgKzQ4OTEsMTYgQEAgc3RhdGljIHZvaWQgd2Via2l0V2Vi
Vmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3Jl
OjoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9B
Q1RJVkU6CiAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtpbmQpIHsKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAgICAgICAg
ICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgICAgIGlmIChpc0Zyb21EaXNwbGF5Q2FwdHVyZSkKICAgICAgICAgICAgICAgICBtdXRl
ZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5D
YXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbXV0ZWRT
dGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgorICAgICAgICBjYXNl
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTQ5MDgsMTYgKzQ5MDgsMTYgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Nv
bmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjoKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9NVVRFRDoK
ICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgIG11
dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAg
aWYgKGlzRnJvbURpc3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRk
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVk
KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDk2NSw3
ICs0OTY1LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2NhbWVyYV9jYXB0dXJlX3N0YXRl
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE1lZGkKICAgICBpZiAod2Via2l0X3dlYl92
aWV3X2dldF9jYW1lcmFfY2FwdHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQ
VFVSRV9TVEFURV9OT05FKQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29u
ZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSk7CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1l
ZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZDo6VmlkZW8sIHN0YXRlKTsKIH0KIAogLyoqCkBAIC01MDA3LDcgKzUwMDcsNyBAQCB2b2lkIHdl
YmtpdF93ZWJfdmlld19zZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRlKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdAogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21pY3JvcGhvbmVf
Y2FwdHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05F
KQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0
dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLCBzdGF0ZSk7CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJW
aWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIHN0YXRl
KTsKIH0KIAogLyoqCkBAIC01MDQ5LDUgKzUwNDksNSBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19z
ZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE1l
ZAogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Rpc3BsYXlfY2FwdHVyZV9zdGF0ZSh3ZWJW
aWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FKQogICAgICAgICByZXR1cm47
CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSwgdHJ1ZSk7
CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVz
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCmluZGV4
IGUxZGE0NmYyNmIxOGM3N2YyYTE4OWVkODY1NDBiYTYxMzIyOWJjZmIuLjhhMTYyMDc3OGVkZDlj
YmZmMTIwOTliMTUyYWQ1MGI0NzllZGYxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KTsKLV9XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKTsKK19XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRp
ZXMubW0KaW5kZXggNTNiYmY0MjAxNDcxZDlkOGE0ZjY2ZTcwMWY2NDM4OGVlZWQ1ZDE1YS4uOTg1
MGE4ZmNhNjcwZGM3ODU1ZjQxMDA2N2IwNWMxMmY4MDg4MDZiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KQEAgLTI4LDI5ICsyOCwyOSBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
IHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRv
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQg
bWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lOwot
ICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBt
ZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVN
aWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
KQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJl
Y2F0ZWRBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJl
RGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0
ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAg
aWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlk
ZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYTsKIAogICAgIHJldHVybiBtZWRpYUNhcHR1
cmVTdGF0ZTsKIH0KIAotX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQorX1dLTWVkaWFNdXRl
ZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYU11dGVkU3RhdGUgbWVkaWFNdXRlZFN0YXRl
ID0gX1dLTWVkaWFOb25lTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0
ZWRTdGF0ZSB8PSBfV0tNZWRpYUF1ZGlvTXV0ZWQ7CiAgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKQogICAgICAgICBtZWRp
YU11dGVkU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkOwotICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpT
Y3JlZW5DYXB0dXJlSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlh
U2NyZWVuQ2FwdHVyZU11dGVkOwogICAgIHJldHVybiBtZWRpYU11dGVkU3RhdGU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMzI5ZGI3OTFjZjQz
MjcyNDYzNjM0MjgwMDUwNGIwOGVhODlkYjBlMy4uZTY3OTY5NWEzZmUxYTBhZWYyOGRkNWFmMDI0
OGQ2OTA2ZjM0MTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdl
Rm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmluYWw7Ci0gICAgICAgIHZv
aWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICAg
ICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9M
SU5LUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4
IDExYjdhNDA1OGE1YjY0MWFiODg0YTk3NjU3N2NmMjEwM2JjYjZiZGQuLmQ3OGY0Y2MwZDU2NTU5
NGMwZTg4MWE0NThiZmQyMzgyNzUxMjI0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTIyNyw3ICsxMjI3LDcgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYgcGFnZSwKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJh
bWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRl
KQogewogICAgIGlmICghbV91aURlbGVnYXRlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjM5MzdhYzA0Mzc3MzkyZDMwYjE4MzNkZWUw
YzAxZTZjYTE2ODlmMy4uMmI3MjQ1ODY5MTZiZjVlMWNiYjY1M2JlMWU2YTI0YjFhZDk5MWQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDksNyArNDksNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLXN0YXRpYyBjb25zdCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgYWN0aXZlQ2FwdHVyZU1hc2sgeyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSB9Oworc3RhdGljIGNvbnN0IE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgYWN0aXZlQ2FwdHVyZU1hc2sgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCkBAIC05NSw3ICs5NSw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXCiAKIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoKQogewotICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kOjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZSB7IE1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucmV2b2tl
U2FuZGJveEV4dGVuc2lvbnNJZk5lZWRlZChwYWdlKCkucHJvY2VzcygpKTsKICAgICBwcm94aWVz
KCkucmVtb3ZlKHRoaXMpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN0b3BDYXB0dXJlKCkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwogICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKLSAgICBt
X3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvKTsKKyAgICBtX3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCkBAIC04NjMsNyAr
ODYzLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3lu
Y1dpdGhXZWJDb3JlUHJlZnMoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0ZUNoYW5nZWQoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3U3RhdGUpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpjYXB0dXJlU3RhdGVDaGFuZ2VkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xk
U3RhdGUsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCiB7CiAgICAgaWYg
KCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNjRlYmZhNWU0NTlhMTZlNGNkMzdlNDkzNjlhOTA0
YWU2MmRlYjc2MC4uNjc0YmFiNGRiN2M5YzY0ZGVkODU3ODc0MWRiZDJhYjk5NmRjNDA2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hh
bmdlZCgpOwogCi0gICAgdm9pZCBjYXB0dXJlU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKTsKKyAgICB2b2lkIGNhcHR1cmVTdGF0ZUNoYW5nZWQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7CiAgICAgdm9pZCBzeW5jV2l0
aFdlYkNvcmVQcmVmcygpIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBSZXF1ZXN0QWN0aW9uIHsK
QEAgLTE2Nyw3ICsxNjcsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPERlbmllZFJlcXVlc3Q+
IG1fZGVuaWVkUmVxdWVzdHM7CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbV9jYXB0dXJlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0ZTsKICAgICBSdW5Mb29wOjpUaW1lcjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV93YXRjaGRvZ1RpbWVyOwogICAgIFNlY29u
ZHMgbV9jdXJyZW50V2F0Y2hkb2dJbnRlcnZhbDsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDYxYzA3ZjZkZmI5
YjQ2MzY1ZDc2N2U0MTMzY2JkNjhkYTBkMzJhN2MuLmQzMzFmMmNhN2QwM2E3MDNiNWNiNmRkMGM4
ZmQ4YjU5MTI4NGZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMjExMywxMSArMjExMywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlQWN0aXZp
dHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gZmxhZ3NUb1VwZAogICAgICAg
ICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpOwogICAgIGlm
IChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUgJiYgcGFnZUNs
aWVudCgpLmlzVmlzdWFsbHlJZGxlKCkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0
aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpOwotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0
aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1fbWVkaWFTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgIShtX211dGVkU3RhdGUuY29udGFp
bnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCisgICAgaWYgKGZs
YWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0YXRlLmNv
bnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgIShtX211
dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkp
KQogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSk7
CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0xvYWRpbmcgJiYgbV9w
YWdlTG9hZFN0YXRlLmlzTG9hZGluZygpKQogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFj
dGl2aXR5U3RhdGU6OklzTG9hZGluZyk7Ci0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0
eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueSh7IE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9KSkK
KyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEg
JiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfSkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQo
QWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSk7CiB9CiAKQEAgLTYyMzYsNyArNjIzNiw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWVkaWFWb2x1bWUodm9sdW1lKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgbV9tdXRlZFN0YXRlID0gc3RhdGU7CiAKQEAgLTYyNjcsNyAr
NjI2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVy
ZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVk
aWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtOTQ0
Niw3ICs5NDQ2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5hdmlnYXRpb25HZXN0dXJlU25hcHNo
b3RXYXNSZW1vdmVkKCkKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlbW92ZU5hdmlnYXRp
b25HZXN0dXJlU25hcHNob3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRl
KQordm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBpZiAoIW1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuc2hvdWxkQmVSdW5uYWJsZSgpKQpAQCAt
OTQ1Nyw3ICs5NDU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEKICAgICAgICAgdXBkYXRl
UGxheWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlLCBDYW5EZWxheU5vdGlmaWNhdGlvbjo6WWVz
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0
aW9uIGNhbkRlbGF5Tm90aWZpY2F0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlp
bmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlLCBD
YW5EZWxheU5vdGlmaWNhdGlvbiBjYW5EZWxheU5vdGlmaWNhdGlvbikKIHsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIGF1dG8gdXBkYXRlTWVkaWFDYXB0dXJlU3RhdGVJbW1lZGlhdGVs
eUlmTmVlZGVkID0gWyZdIHsKQEAgLTk0ODYsMTQgKzk0ODYsMTQgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0dXJlU3RhdGUgPSBt
X21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOwot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdNZWRpYUNhcHR1
cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
TWFzazsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlh
Q2FwdHVyZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlTWFzazsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVNYXNrOwogI2VuZGlmCiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyB9
OwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVkaWFT
dGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sg
eyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyB9OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3Mgb2xkU3RhdGUgPSBtX21lZGlhU3RhdGU7CiAKLSAgICBib29sIHBsYXlpbmdBdWRpb0No
YW5nZXMgPSAob2xkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pKSAhPSAobmV3U3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pKTsKKyAgICBib29sIHBsYXlpbmdBdWRpb0NoYW5nZXMgPSAo
b2xkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlv
KSkgIT0gKG5ld1N0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykpOwogICAgIGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQogICAgICAgICBwYWdlQ2xp
ZW50KCkuaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCk7CiAgICAgbV9tZWRpYVN0YXRlID0gbmV3
U3RhdGU7CkBAIC05NTE3LDcgKzk1MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogICAg
IGlmICgob2xkU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSAhPSAobV9tZWRpYVN0YXRlICYgcGxh
eWluZ01lZGlhTWFzaykpCiAgICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKCp0aGlzKTsKIAotICAgIGlmICgob2xkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkgIT0gKG1fbWVkaWFTdGF0ZS5jb250YWlu
c0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSkKKyAgICBp
ZiAoKG9sZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSkKICAgICAgICAgdmlkZW9Db250cm9sc01hbmFnZXJE
aWRDaGFuZ2UoKTsKIAogICAgIG1fcHJvY2Vzcy0+dXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9u
cygpOwpAQCAtOTcxNyw3ICs5NzE3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWUKICAgICBw
YWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cigqdGhpcywgY29udGV4dElkLCBwYWdlQ2xpZW50KCkucm9vdFZpZXdUb1NjcmVlbihJbnRSZWN0
KHJlY3QpKSwgaGFzVmlkZW8sIHVzZURhcmtBcHBlYXJhbmNlKCkpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlUHJveHk6OnBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgcGFnZUNsaWVudCgpLm1lZGlhU2Vzc2lvbk1hbmFnZXIo
KS5jbGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDc1MWNjNDc5ZWM5ZmQ2OWNkMzcz
MDc3MzcyODAxNzUwZTc5YjJjMmQuLmRmN2RjOWRjNzRlNmZlM2RkMmY0OWE4NzA5OGI1ZTk1ODk3
NGQ0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzk2LDEz
ICsxMzk2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCByZW5kZXJUcmVlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyVHJlZVNpemU7IH0KIAogICAgIHZvaWQgc2V0TWVkaWFWb2x1bWUo
ZmxvYXQpOwotICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwotICAgIGJv
b2wgaXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH07CisgICAg
dm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOworICAgIGJvb2wgaXNBdWRpb011dGVk
KCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9OwogICAgIHZvaWQgc2V0TWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyhib29sKTsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
b3coKSBjb25zdCB7IHJldHVybiBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7IH0KICAgICB2
b2lkIHNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBtZWRpYUNhcHR1cmVF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhcHR1cmVFbmFibGVkOyB9Ci0gICAgdm9p
ZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CisgICAgdm9pZCBzdG9w
TWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogCiAgICAgdm9pZCBwYXVzZUFsbE1l
ZGlhUGxheWJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1c3Bl
bmRBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0xNTA4
LDE4ICsxNTA4LDE4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTaG93aW5nTmF2aWdhdGlvbkdl
c3R1cmVTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaG93aW5nTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdDsgfQogCi0gICAgYm9vbCBpc1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJu
ICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvKTsgfQotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICBib29sIGlzUGxheWluZ0F1
ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsgfQorICAgIHZvaWQgaXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAgICAg
dm9pZCB1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKCk7CiAKICAgICBlbnVtIGNsYXNz
IENhbkRlbGF5Tm90aWZpY2F0aW9uIHsgTm8sIFllcyB9OwotICAgIHZvaWQgdXBkYXRlUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywg
Q2FuRGVsYXlOb3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8pOworICAgIHZv
aWQgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MsIENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2FuRGVsYXlOb3RpZmljYXRpb246
Ok5vKTsKICAgICBib29sIGlzQ2FwdHVyaW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFz
ayk7IH0KICAgICBib29sIGlzQ2FwdHVyaW5nVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlTWFz
ayk7IH0KLSAgICBib29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7IH0KLSAgICBib29sIGhhc0FjdGl2ZVZpZGVv
U3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7
IH0KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcmVwb3J0ZWRN
ZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlIHwg
KG1fbWVkaWFTdGF0ZSAtIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2sp
OyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3Rh
dGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQorICAgIGJvb2wgaGFzQWN0
aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnko
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSk7IH0KKyAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0YXRlIC0gV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0
ZWRTdGF0ZTsgfQogCiAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9w
bGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KTsKIApAQCAt
MTYwMyw3ICsxNjAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7
CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBib29sIGhhc1ZpZGVvKTsKLSAgICB2b2lk
IHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAgICAgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpOwogICAgIHZvaWQgbW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKTsKQEAgLTI5MDQsNyArMjkwNCw3
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6TGF5b3V0UG9pbnQgbV9tYXhTdGFibGVMYXlvdXRW
aWV3cG9ydE9yaWdpbjsKIAogICAgIGZsb2F0IG1fbWVkaWFWb2x1bWUgeyAxIH07Ci0gICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKICAgICBi
b29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyB7IHRydWUgfTsKICAgICBib29sIG1fbWVk
aWFQbGF5YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFDYXB0dXJl
RW5hYmxlZCB7IHRydWUgfTsKQEAgLTI5NDAsMTAgKzI5NDAsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZVdhbnRzU3luY2hyb25vdXNSZXBseSB7IGZhbHNlIH07
CiAgICAgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fbmV4dEFjdGl2aXR5U3Rh
dGVDaGFuZ2VDYWxsYmFja3M7CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogCiAgICAgLy8gVG8gbWFrZSBzdXJlIGNhcHR1cmUgaW5k
aWNhdG9ycyBhcmUgdmlzaWJsZSBsb25nIGVub3VnaCwgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0
YXRlIGlzIHRoZSBzYW1lIGFzIG1fbWVkaWFTdGF0ZSBleGNlcHQgdGhhdCB3ZSBtaWdodCBkZWxh
eSBhIGJpdCB0cmFuc2l0aW9uIGZyb20gY2FwdHVyaW5nIHRvIG5vdC1jYXB0dXJpbmcuCi0gICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fcmVwb3J0ZWRNZWRpYUNh
cHR1cmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1f
cmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZTsKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlUHJv
eHk+IG1fdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZVRpbWVyOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBEZWZhdWx0TWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgeyAzX3Mg
fTsKICAgICBTZWNvbmRzIG1fbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgeyBEZWZhdWx0TWVk
aWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MmU1NmRmZmU2ZTVmNDBiM2VhNTMyZWFk
ZTNmZDE5OGQ4ZGVmMGU1Li4xMThhNzFhOTc5NTZjOTFiNTZlNjI4MGM0MjFjZjhhMzI2MzI4ZDlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC00NjIsNyArNDYyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBD
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKICNlbmRpZgogCi0gICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorICAgIElzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gc3RhdGUp
CiAgICAgSGFuZGxlQXV0b3BsYXlFdmVudChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCBldmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4gZmxhZ3Mp
CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC00ODEsNyArNDgxLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBBZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBSZW1v
dmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBTaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBoYXNWaWRlbykKLSAg
ICBQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKKyAgICBQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU+IG1lZGlhU3RhdGUpCiAgICAgU2V0TW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlclN0YXRlKFN0cmluZyBuYW1lLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSBwaWNrZXJTdGF0ZSkKICAgICBNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA4ZDQ3YTYzZjZjYTc2YjQxZWM4NmVhN2M0
NDE3MmQ3MzBhMDQyYmE5Li5hZjQwOTYxZGEwZjlhOGVjNDg3NTA4YmYyMTQxMzIwN2ZhMDdkZjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE4
NDcsNyArMTg0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjptdXRlQ2FwdHVyZUluUGFnZXNF
eGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogCiAjZW5kaWYKIAotdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
ZmxhZ3MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgYm9vbCBtdXRlZEZvckNhcHR1cmUgPSBmbGFncy5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwog
ICAgIGlmICghbXV0ZWRGb3JDYXB0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCA5Y2YyM2FkODkyOWRiZTlhODAzYzBhYzAwNGFhMzNkYzJmMmM2NzFl
Li44NzJmMDJlMTU0NzA4MTZiYzJlY2FhYzY0ZjFhZmExMmU1OGVlZDQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDA2LDcgKzQwNiw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBtdXRlQ2FwdHVyZUluUGFnZXNFeGNlcHQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOwogICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQgcGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3MpOworICAgIHZvaWQgcGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzKTsKICAgICB2b2lk
IHBhZ2VJc0JlY29taW5nSW52aXNpYmxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcAppbmRleCBmZmRkNDMzNDU3ZWNlZmNkNmFkZDhkOWE0MjE0YmFiNDVk
ZDVlNjUwLi4xZjE3NmViZDk4OGNlMDJmZWU2ZDgyMDg0MjYyZTg0ZjFlNTZhZTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXIu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhM2Q2Y2MzMmY2NTQ5ZmEwZmFiNGEyNDUw
OGZlMjJmMDQ3ZjlkMzM1Li5kM2FhZDZlYTI2MTY4YTIxYjgzZDUzMGU3YWI2ZGQ0N2EyNjdmMjFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtNTksNyArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGFhOWQzZWNlM2Q2MjU4OWQ2YmJhZWM5
MTRiNjM1NmQ1MDRhNGU5YmEuLjVhYmM0ODZlMGM1OTEwYWRlOGI4YzZmYzhkOGY5MGE5Zjk2ZWI1
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
QEAgLTE4Niw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChXZWJD
b3JlOjpEb2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cgotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0
ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gUGx1Z2luQ29udHJvbGxlcgpAQCAtMjc2
LDExICsyNzYsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8g
eyBmYWxzZSB9OwogfTsKIAotaW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBQbHVnaW5WaWV3OjptZWRpYVN0YXRlKCkgY29uc3QKK2lubGluZSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25z
dAogewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0
YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0
ZTsKICAgICBpZiAobV9wbHVnaW5Jc1BsYXlpbmdBdWRpbykKLSAgICAgICAgbWVkaWFTdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOworICAgICAgICBt
ZWRpYVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pOwogICAgIHJldHVybiBtZWRpYVN0YXRlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDEyMGEwNGQzNmYwMzhhYzczMTkxNTUyZWNmNDVlMzIxNGUxNWI3ZWUuLmEyMzk2Y2Uy
YzI5NGU4MjZlZTg2ZDNmNzZkOWY1YTcxM2I5OTYzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC0xMjUyLDcgKzEyNTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGls
ZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaQogICAgIHJldHVy
biBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGZyYW1lVmlldyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2UuaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3Rh
dGUpOwogfQpAQCAtMTM4NCw3ICsxMzg0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGkKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY29udGV4dElkLCByZWN0LCBpc1ZpZGVvKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsK
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKGNvbnRleHRJZCwgc3RhdGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA2NDQ4MmE0MmU0ZWM3MmQ1MmFhODQ2YTU3ODQ1YTE0Njg0NjZjNzEwLi5i
OTkzOGYyYmZhNjEwMGIyOTYyM2NkMDMwNWNlMGIxNGM0MzIyMTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0zNTIsNyArMzUyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkVXNlVGls
ZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZp
bmFsOwogCi0gICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAg
ICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlv
blNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKIAogI2lmIEVOQUJMRShB
UFBfSElHSExJR0hUUykKQEAgLTM5MSw3ICszOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRk
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
KSBmaW5hbDsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIGJvb2wpIGZpbmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNmVlNDIwZjQ1YTQyNzU5ZTA2MTRj
YjUwMGNhNmVmNmI1MjRjOTA0Li5kZThjNWYzN2IwMmQxMTIxNjA4ZDI5Nzk0YzVmNWI4MDZkYzhm
ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtNDM3NSw3ICs0Mzc1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hl
bk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShGcmFtZUlkZW50aWYKICAgICAgICAgV2Vi
Q29yZTo6c2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9u
c2UoKmZyYW1lLT5jb3JlRnJhbWUoKSwgY29vcCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIG5leHRS
ZXNwb25zZVVSTCwgY29vcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBuZXh0UmVzcG9uc2VPcmln
aW4uc2VjdXJpdHlPcmlnaW4oKSwgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCB1c2Vy
QWdlbnQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpA
QCAtNTU3NSwxMyArNTU3NSwxMyBAQCB2b2lkIFdlYlBhZ2U6OnNldE1lZGlhVm9sdW1lKGZsb2F0
IHZvbHVtZSkKICAgICBtX3BhZ2UtPnNldE1lZGlhVm9sdW1lKHZvbHVtZSk7CiB9CiAKLXZvaWQg
V2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBh
Z2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UtPnNl
dE11dGVkKHN0YXRlKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5k
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2lu
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKGtpbmQp
OwpAQCAtNzQ1MSw3ICs3NDUxLDcgQEAgdm9pZCBXZWJQYWdlOjpzeW5jaHJvbml6ZUNPUlNEaXNh
YmxpbmdQYXR0ZXJuc1dpdGhOZXR3b3JrUHJvY2VzcygpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDT1JTRGlzYWJsaW5n
UGF0dGVybnMobV9pZGVudGlmaWVyLCBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyksIDApOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkK
IHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKHN0YXRlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggYzEzODU1NzNiMGJlNWZlYzgwMTUwYTk1ZmIzOTUxOTQzYTUwNDY2Ni4uYzI3ZDQw
MGI2NmQzN2RiZTBhOWU1NGQyN2FiZjQ0MGM0OWQ0MTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDQ4LDcgKzQ0OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZW5kcG9pbnQsIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKTsKICAgICB2b2lkIHNl
bmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBX
ZWJDb3JlOjpDT09QRGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBw
cmV2aW91c1Jlc3BvbnNlVVJMLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNv
b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgcHJldmlvdXNSZXNw
b25zZU9yaWdpbiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IFN0cmluZyYgcmVwb3J0VG9IZWFkZXJWYWx1ZSk7CiAgICAgdm9pZCBzZW5kVmlv
bGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5Jiwg
V2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYg
bmV4dFJlc3BvbnNlVVJMLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgbmV4dFJlc3BvbnNlT3Jp
Z2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQpOwotICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50SW5pdCYmKTsKIAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0Fy
ZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdp
bmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTEw
MjcsOSArMTAyNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVJlc291cmNlUmVxdWVzdChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRNZWRpYVZv
bHVtZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBz
ZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRv
dyhib29sKTsKLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtp
bmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZU1haW5G
cmFtZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApAQCAtMTQyMSw3ICsxNDIxLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbklkZW50aWZpZXIpOwogI2VuZGlmCiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9p
ZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzKTsKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RU
ZXh0UmVjb2duaXRpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDhhZmM0ZWE1ZTNj
ZDAxYzJhYzNhNGEzNDFmMzE2YTlhMjExMzMyZTEuLjc4MmZmMjgyYmFhM2RkOGEzOGIwYThhY2Ez
MTkzMzJhOWEzYzgxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzMsNyArMzMsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZW1iZWRkZXJPcmlnaW4sIFN0cmluZyBlbmRwb2ludCwgZW51bTpib29sIFdlYkNvcmU6
OkNPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIFVSTCBibG9ja2VkVVJMKQogICAgIFNl
bmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlv
biwgVVJMIGNvb3BVUkwsIFVSTCBwcmV2aW91c1Jlc3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIGNvb3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgU3RyaW5nIHJlZmVycmVyLCBTdHJpbmcg
dXNlckFnZW50LCBTdHJpbmcgcmVwb3J0VG9IZWFkZXJWYWx1ZSkKICAgICBTZW5kVmlvbGF0aW9u
UmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5
IGNvb3AsIGVudW06Ym9vbCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIFVS
TCBjb29wVVJMLCBVUkwgbmV4dFJlc3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGNvb3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
bmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwg
U3RyaW5nIHVzZXJBZ2VudCkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCBldmVudEluaXQpCiAK
ICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCkBAIC00MTcsOSArNDE3LDkgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgTWVkaWEKICAgICBTZXRNZWRpYVZvbHVt
ZShmbG9hdCB2b2x1bWUpCi0gICAgU2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZUZsYWdzIG11dGVkKSAtPiAoKSBBc3luYworICAgIFNldE11dGVkKE9wdGlvblNldDxX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gbXV0ZWQpIC0+ICgpIEFzeW5jCiAgICAg
U2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCi0gICAgU3Rv
cE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtp
bmQpIC0+ICgpIEFzeW5jCisgICAgU3RvcE1lZGlhQ2FwdHVyZShlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKIAogICAg
IFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCmluZGV4IDhlYTQwNDNlMTYx
NWUzMTk2NTc5YjA2MDBiNjAwZDU2ODZjNjZhNGUuLjYyZmE2MjIwMjg2NWRmYWRjNTFjMjU4NTI3
NjY3YjNmYmZhNzNhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1l
bnQubW0KQEAgLTYwLDkgKzYwLDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db21tZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RP
TVdpbmRvdy5oPgotI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Eb2N1bWVudEZyYWdtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnVsbHNjcmVl
bi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudElubGluZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRG9jdW1lbnRUeXBlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hUTUxDb2xsZWN0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFjNTc2NzkzN2M2
NTQ5ZmExY2U0OWM5Mzg1MmNhNGVlM2I3YWRlNmMuLjM1NTVkNTQ0Y2E3NGI3MTE5ZDZiMDY3NjI2
NjdlMmM0MTc1MWQwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNDMsNyArMjQzLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVt
b3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGhhc1ZpZGVvICovKSBmaW5hbDsKLSAgICB2
b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7
CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkg
ZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3Rh
dGUpIGZpbmFsOwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNz
UG9wdXAoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBhNDZiMWFkYTYwNDk3ZGE3
ZjVlZWUyN2Y4MTFlMzJlN2MwODI2ZTExLi4xNjkzZDg3NWZlMDA4NTRmOTJkNWJhMzE2ZDVmNzMx
MWQ4N2Q4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aQogICAgIFttX3dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBp
Y2tlcjpjb250ZXh0SWQgbG9jYXRpb246bG9jYXRpb24gaGFzVmlkZW86aGFzVmlkZW9dOwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgW21fd2ViVmlldyBfcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZTpjb250ZXh0SWQgc3RhdGU6c3RhdGVdOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIuaAppbmRleCA4Y2EzMjk0N2E1YjQ2ZTA2N2I4ZThiYWU0NDYzOTNlYmI5
MGU4NmVmLi4zOTY1NTVjZDFmOThiNmJjMTM0NDUwNTdlZGNhNTc2ZmZkNGViNjM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIp
OwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJv
b2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tT
dGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1
cCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCmluZGV4IDdkYmQ1ODk0NzU0MDVhMTZl
YmRkMGZhOWJjZmE2MmMzMzdlNzQxNTIuLjVjZmZiY2ZjM2Y1ZWFjNmU1ZWI4MmVlYTAzZWM4YjBj
NWE5OGU3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KQEAgLTU4LDcgKzU4LDcg
QEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXIKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJ
ZCwgV2ViQ29yZTo6SW50UmVjdChyZWN0KSwgaGFzVmlkZW8sIG1fcGFnZSA/IG1fcGFnZS0+dXNl
RGFya0FwcGVhcmFuY2UoKSA6IGZhbHNlKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAg
ICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuY2xpZW50U3RhdGVE
aWRDaGFuZ2UoKnRoaXMsIGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGMyNjRhZmE4NjJmZTg5Y2ZkODgwNTc5MWZh
YTIyZmU0MzM1MDk5NTcuLjZkNjk3ZGQ4N2JkNzA2YmE5ZGE3NDM5ZjJkYjJkNWMxNWE0NGRkMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyNDEs
NyArOTI0MSw3IEBAIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllCiAgICAgW3NlbGYgX2RldmljZVBp
Y2tlcl0tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3RJblNjcmVlbkNv
b3JkaW5hdGVzLCBoYXNWaWRlbyk7CiB9CiAKLS0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mpc3RhdGUKKy0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
KXN0YXRlCiB7CiAgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCBhNDdkYTJj
ZjRkNzQ5NDk2MGY1YzUwOGYyMmI3ZjE1MGEyN2Q4ZGE3Li5jY2Q4Y2Q3M2E0MWUzOWExYTczZWYx
OTQxNTRmMTkyOTRkMjFlOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMzNiw3ICszMzYsNyBAQCBXZWJMYXlvdXRNaWxl
c3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVz
dG9uZT4pOwogLSAodm9pZClfYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAodm9p
ZClfcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAodm9pZClfc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyKWNvbnRleHRJZCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0
aW9uIGhhc1ZpZGVvOihCT09MKWhhc1ZpZGVvOwotLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncylzdGF0ZTsKKy0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzKXN0YXRlOwogLSAodm9pZClfc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFi
bGVkOihib29sKWVuYWJsZWQ7CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck5hbWU6KE5TU3RyaW5nICopbmFtZSBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ6Ok1vY2tTdGF0ZSlzdGF0ZTsKIC0gKHZvaWQpX21vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwCmluZGV4IDZhNDNmOTI2NDgwZGZmNDZlOWE2
Mjk3M2JkYzA1ZjYyNjhjNWJhMGUuLmYzNzYyOGNmNTgwNmMwNGVhZTA0YzIyMDc4M2RiZTM5ODBj
NDgxYTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Eb2N1
bWVudE9yZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9j
dW1lbnRPcmRlci5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnRJbmxpbmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MQm9keUVsZW1lbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxEaXZFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MSHRt
bEVsZW1lbnQuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440896</attachid>
            <date>2021-10-11 23:29:28 -0700</date>
            <delta_ts>2021-10-11 23:55:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211011232927.patch</filename>
            <type>text/plain</type>
            <size>278458</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4
IDk4N2NiYTRjMzFiNzBlNThiNDFlM2E2NmFjY2YwYmEyYTZmNzU4OGUuLjM5ZjJhMDM5YzAyNThh
MTY1MzNkYjk1YTA1YWM5ODkyMzJmMThjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5
UG9saWN5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY2ODQ4NmZk
ODdmY2ZlNDRlMjhjMWM1ZDFhNzY4MmNiOWJhZTcyMzYuLjYzMjNmNWQ2NGNiYzZiYzZiMDIyZjA1
NTgzODkwNmMwM2Y3YjUzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ29tbW9uVk0u
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01XcmFw
cGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZUNvbG9yLmNwcAppbmRleCA2YzA4NWE4MDBjZGY0YWYzNGIyMzUyYzI1Y2Fi
YjEzOWViMDVlNmRlLi4wMzg2ZTM2NjA5ZTRjZThkNzQwYzc5ZjE4NjdlNzY2N2JlZDJjNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotQ29sb3IgU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1
ZUlEIGtleXdvcmQsIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zKQorQ29sb3IgU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlEIGtleXdvcmQsIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykKIHsKICAgICBpZiAoY29uc3QgY2hhciogdmFsdWVOYW1lID0g
Z2V0VmFsdWVOYW1lKGtleXdvcmQpKSB7CiAgICAgICAgIGlmIChjb25zdCBOYW1lZENvbG9yKiBu
YW1lZENvbG9yID0gZmluZENvbG9yKHZhbHVlTmFtZSwgc3RybGVuKHZhbHVlTmFtZSkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUNvbG9yLmgKaW5kZXggZTRlNThkZjljNWVmZTQ4NzUyY2U4OGYxMjQxMGNlMjM5
ZjEzOTI3Ni4uMzIxNDRmNGYxZjY1YjYwZjY4NmRmMjc2ZjI1NGU5ZjIwZGQ2Yzc3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVDb2xvci5oCkBAIC0zNywxNSArMzcsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdHJ1Y3QgU3R5bGVDb2xvciB7Ci0gICAgZW51bSBjbGFzcyBPcHRpb25zIDogdWlu
dDhfdCB7Ci0gICAgICAgIEZvclZpc2l0ZWRMaW5rID0gMSA8PCAwLAotICAgICAgICBVc2VTeXN0
ZW1BcHBlYXJhbmNlID0gMSA8PCAxLAotICAgICAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwg
MiwKLSAgICAgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSAxIDw8IDMKLSAgICB9
OworZW51bSBjbGFzcyBTdHlsZUNvbG9yT3B0aW9ucyA6IHVpbnQ4X3QgeworICAgIEZvclZpc2l0
ZWRMaW5rID0gMSA8PCAwLAorICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCisgICAg
VXNlRGFya0FwcGVhcmFuY2UgPSAxIDw8IDIsCisgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwgPSAxIDw8IDMKK307CiAKLSAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tS2V5d29yZChD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8T3B0aW9ucz4pOworc3RydWN0IFN0eWxlQ29sb3IgeworICAg
IHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pOwogICAgIHN0YXRpYyBib29sIGlzQWJzb2x1dGVDb2xvcktleXdvcmQo
Q1NTVmFsdWVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTeXN0ZW1Db2xv
cktleXdvcmQoQ1NTVmFsdWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApp
bmRleCBiYjhkNTNjY2M0NDVjNzBjZmE4MmZlY2Y2MzVkNWNiMjA0NmY2NGE3Li4yZTY1YzYyNDQ5
NzMzN2U2YjkwMGFlMzkwMGMxYTEyNmM5N2Q2Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3Rl
ckRhdGEuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChD
aGFyYWN0ZXJEYXRhKTsKIHN0YXRpYyBib29sIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oY29u
c3QgQ2hhcmFjdGVyRGF0YSYgbm9kZSkKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IG5vZGUuZG9j
dW1lbnQoKTsKLSAgICByZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6
RE9NQ0hBUkFDVEVSREFUQU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRp
b25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSkKKyAgICBy
ZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6RE9NQ0hBUkFDVEVSREFU
QU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5
cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEpCiAgICAgICAgICYm
ICFkb2N1bWVudC5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTVNVQlRSRUVNT0RJRklFRF9M
SVNURU5FUik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RN
dXRhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5oCmluZGV4IDI5NjY3Njc3NjhmMGQ3MTQ3NDJlMzZiY2U1YjYxMDg2OTc3ZjkxZmYuLjY0Yzky
NDY1ZjJhMTAzYjNhOTkwZTYxYTNjZjEyOGEwOTViMmJjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaApAQCAtMzEsNyArMzEsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVy
LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAt
NzYsNyArNzYsNyBAQCBjbGFzcyBDaGlsZExpc3RNdXRhdGlvblNjb3BlIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBDaGlsZExpc3RNdXRhdGlvblNjb3BlKENvbnRhaW5lck5vZGUmIHRhcmdldCkK
ICAgICB7Ci0gICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICBpZiAodGFyZ2V0
LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCkpCiAgICAgICAgICAgICBtX2FjY3VtdWxhdG9yID0gQ2hpbGRM
aXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6Z2V0T3JDcmVhdGUodGFyZ2V0KTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCAyYjU5YjM2YmM4OWFkMmVkZjk1Mjk5
NDUxNmRhOTg5N2EwN2Y0NzhlLi5hZDhhNzU0OTRmYmVkMDI5ZTgxNjJkMGNiYTVlZTRhOGUyMGQx
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgQUxXQVlTX0lOTElORSBOb2RlVmVjdG9yIENvbnRhaW5lck5vZGU6OnJlbW92ZUFsbENoaWxk
cmVuV2l0aFNjcmlwdEFzc2VydGlvbihDaGkKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQo
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcik7CiAgICAgICAgIFNjcmlwdERp
c2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLSAgICAg
ICAgaWYgKFVOTElLRUxZKGRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0
YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRvY3Vt
ZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGU6OkNoaWxkTGlzdCkpKSB7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11
dGF0aW9uKCp0aGlzKTsKICAgICAgICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbikK
ICAgICAgICAgICAgICAgICBtdXRhdGlvbi53aWxsUmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZThiYzU2ZTc2ZTZmNjRjOTZmNzFhZmM2M2NjMmQ3
NmQxMmZmMGNhNC4uYWRmNTM1NTJmZTA3ZjU1YTdmMTE5MzQ4MGY1NWNjMmJkZTFiYTY1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiRGVidWdQ
YWdlT3ZlcmxheXMuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZvbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgpAQCAt
MTc3LDYgKzE3OCw3IEBACiAjaW5jbHVkZSAiUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24u
aCIKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJRdWlya3MuaCIKKyNpbmNs
dWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAi
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxkSXRlcmF0
b3IuaCIKQEAgLTIzOSw2ICsyNDEsNyBAQAogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1
ZGUgIlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2
ZXJzYWwuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVG91
Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJUcmVl
V2Fsa2VyLmgiCkBAIC05NzksNyArOTgyLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzZXRMaW5rQ29s
b3IoKQogCiB2b2lkIERvY3VtZW50OjpyZXNldFZpc2l0ZWRMaW5rQ29sb3IoKQogewotICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBtX3Zpc2l0ZWRMaW5rQ29sb3IgPSBTdHlsZUNvbG9y
Ojpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlV2Via2l0TGluaywgc3R5bGVDb2xvck9wdGlvbnMo
bnVsbHB0cikgfCBTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogfQogCiB2b2lk
IERvY3VtZW50OjpyZXNldEFjdGl2ZUxpbmtDb2xvcigpCkBAIC0zNTc4LDYgKzM1ODEsMTMgQEAg
UmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IERvY3VtZW50Ojpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW8KICAgICByZXR1cm4gcGFnZS0+bGliV2ViUlRDUHJvdmlk
ZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgRG9jdW1lbnQ6OnNldFJUQ05ldHdvcmtNYW5hZ2Vy
KFJlZjxSVENOZXR3b3JrTWFuYWdlcj4mJiBydGNOZXR3b3JrTWFuYWdlcikKK3sKKyAgICBtX3J0
Y05ldHdvcmtNYW5hZ2VyID0gV1RGTW92ZShydGNOZXR3b3JrTWFuYWdlcik7Cit9CisjZW5kaWYK
KwogYm9vbCBEb2N1bWVudDo6Y2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTQ0MDMsMTggKzQ0
MTMsMTggQEAgdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlvbldpdGhNZWRpYUVsZW1l
bnQoKQogdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEoKQogewogICAgIEFTU0VS
VCghbV9hdWRpb1Byb2R1Y2Vycy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8mIGF1ZGlvUHJvZHVjZXIgOiBtX2F1ZGlvUHJvZHVj
ZXJzKQogICAgICAgICBzdGF0ZS5hZGQoYXVkaW9Qcm9kdWNlci5tZWRpYVN0YXRlKCkpOwogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0ZS5hZGQoTWVkaWFTdHJlYW1UcmFjazo6
Y2FwdHVyZVN0YXRlKCp0aGlzKSk7CiAgICAgaWYgKG1fYWN0aXZlU3BlZWNoUmVjb2duaXRpb24p
Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CiAjZW5kaWYKIAogICAgIGlmICht
X3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAgICAgc3RhdGUuYWRkKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVu
dCk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlcklu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKIAogICAgIGlmIChzdGF0ZSA9PSBtX21lZGlhU3Rh
dGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY3MjUsNyArNjczNSw3IEBAIHZvaWQgRG9jdW1lbnQ6
OmRpc3BhdGNoUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgcGVyc2lzdGVk
KQogICAgIGRpc3BhdGNoV2luZG93RXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCBwZXJzaXN0ZWQpLCB0aGlzKTsKIH0KIAotdm9pZCBE
b2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgRG9jdW1lbnQ6OmVucXVl
dWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudChUYXNr
U291cmNlOjpET01NYW5pcHVsYXRpb24sIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25FdmVudCwgV1RGTW92ZShl
dmVudEluaXQpLCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKIH0KQEAgLTc1MDksMTUgKzc1MTks
MTUgQEAgYm9vbCBEb2N1bWVudDo6dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0
aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPiBvcHRpb25zOwogICAgIGlmICh1c2VTeXN0ZW1BcHBlYXJhbmNlKCkpCi0gICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
ICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7
CiAgICAgaWYgKHVzZURhcmtBcHBlYXJhbmNlKHN0eWxlKSkKLSAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBvcHRpb25z
LmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogICAgIGlmICh1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZl
bCk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKQEAgLTc2OTQsNyArNzcwNCw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xp
ZW50JiBjbGllbnQsIGJvb2wKICAgICBwYWdlLT5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoaXQt
PnZhbHVlLCBwb3NpdGlvbiwgaXNWaWRlbywgcm91dGVTaGFyaW5nUG9saWN5LCByb3V0aW5nQ29u
dGV4dFVJRCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIERvY3VtZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQm
IGNsaWVudCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBQYWdl
KiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTgxOTksNyArODIwOSw3
IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCiAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lkIERvY3VtZW50OjpzdG9wTWVkaWFDYXB0
dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgRG9jdW1lbnQ6
OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsK
ICAgICBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKCp0aGlzLCBraW5kKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4NTA4OTAw
Ni4uZDJiZWNlYjUzYjE4MDY0NzJiYjM2M2U1MGJjZjUwMGI5NjVjYTY5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJEaXNhYmxlZEFkYXB0YXRpb25z
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRm9jdXNPcHRpb25zLmgi
CiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yQ2xpZW50LmgiCkBAIC00MywzMCArNDIsMjEgQEAKICNp
bmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
LSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3Rp
Zmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1F
dmVudC5oIgogI2luY2x1ZGUgIlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9s
aWN5LmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4u
aCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIgogI2luY2x1
ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKLSNpbmNsdWRlICJTdHlsZUNvbG9yLmgiCi0jaW5j
bHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2luY2x1
ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
IlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVk
ZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5U3RhdGUuaCIKLSNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTk2
LDExICs4NiwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFRleHRTdHJlYW07CiB9CiAKK25h
bWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBBcHBIaWdobGlnaHRTdG9yYWdlOwogY2xh
c3MgQXR0cjsKK2NsYXNzIENhbnZhc0Jhc2U7CiBjbGFzcyBDREFUQVNlY3Rpb247CiBjbGFzcyBD
U1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ1NTRm9udFNlbGVjdG9yOwpAQCAtMTMyLDYg
KzEyNyw3IEBAIGNsYXNzIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjsKIGNsYXNzIERvY3VtZW50
UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sOwogY2xhc3MgRG9jdW1lbnRU
aW1lbGluZTsKK2NsYXNzIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjsKIGNsYXNzIERvY3Vt
ZW50VHlwZTsKIGNsYXNzIEVkaXRpbmdCZWhhdmlvcjsKIGNsYXNzIEVkaXRvcjsKQEAgLTE4Myw2
ICsxNzksNyBAQCBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xp
ZW50OworY2xhc3MgTWVkaWFQcm9kdWNlcjsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKQEAg
LTE5Niw3ICsxOTMsOSBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb247CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUXVpcmtzOworY2xh
c3MgUlRDTmV0d29ya01hbmFnZXI7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFJlZ2lvbjsKIGNsYXNz
IFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrOwpAQCAtMjIzLDYgKzIyMiw3IEBAIGNsYXNzIFN0eWxlU2hlZXRD
b250ZW50czsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRB
dXRvU2l6aW5nOworY2xhc3MgVGV4dEVuY29kaW5nOwogY2xhc3MgVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVHJhbnNmb3JtU291
cmNlOwpAQCAtMjUwLDIwICsyNTAsMjkgQEAgc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBz
dHJ1Y3QgQm91bmRhcnlQb2ludDsKIHN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGE7CiBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOworc3RydWN0IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnRJbml0OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGVu
dW0gQ29sbGVjdGlvblR5cGU7CiAKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUg
OiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1
aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJpbmdV
cGRhdGVTdGVwIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRpb25zIDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgOiB1aW50OF90Owog
Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgPSBP
cHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OwogdXNpbmcgUGxhdGZvcm1EaXNwbGF5
SUQgPSB1aW50MzJfdDsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIGNsYXNzIFJlc29sdmVyOwogY2xh
c3MgU2NvcGU7CitjbGFzcyBVcGRhdGU7CiB9CiAKIGVudW0gUGFnZXNob3dFdmVudFBlcnNpc3Rl
bmNlIHsgUGFnZXNob3dFdmVudE5vdFBlcnNpc3RlZCwgUGFnZXNob3dFdmVudFBlcnNpc3RlZCB9
OwpAQCAtMzU0LDcgKzM2Myw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0g
RXZlbnRUYXJnZXQ6OldlYWtWYWx1ZVR5cGU7CiAgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OndlYWtQ
dHJGYWN0b3J5OwogCi0gICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRp
bmdzJiwgY29uc3QgVVJMJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxEb2N1bWVu
dD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJik7CiAgICAgc3RhdGljIFJlZjxE
b2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRlcihGcmFtZSYsIGNvbnN0IFVSTCYp
OwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCkBAIC00NjAs
MTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVs
dENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0OwogCi0gICAgU3RyaW5nIGNoYXJzZXQo
KSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2RpbmcoKTsgfQorICAgIGlubGluZSBTdHJp
bmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjaGFyYWN0ZXJT
ZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGlu
ZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nKCkgY29uc3Q7
CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gdGV4dEVuY29kaW5n
KCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmKTsgLy8g
VXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5LgogCkBAIC01NzksNyArNTg4LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJh
bmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKGNvbnN0
IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBjb25zdCBSZW5kZXJPYmplY3Qm
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsK
QEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJ
ZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVu
c2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNoZSogZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2FjaGUqIGV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0
Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmplY3RDYWNoZSgpOwogCkBAIC03MTMs
NyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgUlRDTmV0d29y
a01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1cm4gbV9ydGNOZXR3b3JrTWFuYWdl
ci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtN
YW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZN
b3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UlRD
TmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRp
b25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUeXBlKSBjb25zdDsKICAg
ICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbXV0
YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0gICAgYm9vbCBoYXNNdXRhdGlvbk9i
c2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzOyB9Ci0gICAg
dm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdHlw
ZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlwZXM7IH0KKyAgICBpbmxpbmUgYm9v
bCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSkg
Y29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuICFt
X211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE11dGF0aW9u
T2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBn
ZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBudWxscHRy
OyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFza1Rv
RGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJlZjxFdmVudD4mJik7CiAgICAgdm9p
ZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgZGlzcGF0Y2hQ
YWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYg
b2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAgdm9pZCBkaXNwYXRjaFBvcHN0YXRl
RXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzdGF0ZU9iamVjdCk7CiAKQEAg
LTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigp
OyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQogCi0gICAgYm9vbCBpc1NhbWVPcmln
aW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVP
cmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW5Bc1Rv
cERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRGb3JjZU5vT3BlbmVyQmFzZWRPbkNP
T1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVy
UG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IGZpbmFsOwpAQCAtMTQwMiw5
ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9k
dWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRp
b1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29n
bml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVt
ZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVj
ZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0NhcHR1
cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVk
aWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCk7CiAKQEAgLTE0MTIsNyAr
MTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCwg
Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYs
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAgIHZvaWQgc2V0UGxheWJhY2tUYXJn
ZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgUmVmPE1lZGlhUGxheWJh
Y2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCk7CkBAIC0xNDUx
LDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lk
IHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBtX2hhc0hhZENhcHR1cmVNZWRpYVN0
cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOyB9Ci0g
ICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQp
OworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgog
CkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV93cml0ZVJl
Y3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2lnbk1vZGUgeyBp
bmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0
ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBi
b29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50IHsgZmFsc2UgfTsKICAgICBC
YWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENhY2hlU3RhdGUgeyBOb3RJbkJhY2tG
b3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVy
cmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKICAg
ICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5OwogCi0g
ICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgeyAwIH07
CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7CiAK
ICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsKQEAgLTIyMjksNDMgKzIyMzUsNiBA
QCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1
bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2RpbmcoKSBj
b25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhpcy0+ZGVjb2RlcigpKQotICAgICAg
ICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7
Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlRG9jdW1lbnQo
KSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID8gdGhpcyA6IG1f
dGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5lIEFYT2JqZWN0Q2FjaGUqIERvY3Vt
ZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAotewotICAgIGlmICghaGFzRXZlckNy
ZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0KLWlubGluZSBSZWY8RG9jdW1lbnQ+
IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudChudWxscHRyLCBzZXR0aW5n
cywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRlQWNjZXNzS2V5
Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vzc0tleUNhY2hlKSkKLSAgICAgICAg
aW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsKLX0KLQotLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSBEb2N1bWVudCBjbGFzcyBkZWZp
bml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgotCi1pbmxpbmUgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgpOwotfQotCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRG9jdW1lbnQmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oCmluZGV4
IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3MThmM2UuLmRkMjUwYWUyYzg4OWRl
YjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxp
bmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRleHRFbmNvZGluZyBEb2N1bWVudDo6
dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7CiB9CiAKK2lu
bGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIHRleHRF
bmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3RyaW5nIERvY3VtZW50OjpjaGFyc2V0
KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5nKCk7IH0KKwogaW5saW5lIGNvbnN0
IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDogbV90ZW1wbGF0ZURvY3VtZW50Lmdl
dCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZVNsb3dDYXNl
KCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0NhcHR1cmluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7Cit9CisK
K2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAoreworICAgIHJldHVybiBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30KKworaW5saW5lIGJvb2wgRG9jdW1l
bnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0eU9y
aWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsgfQorCisKIC8vIFRoZXNlIGZ1bmN0
aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0aGUgRG9jdW1lbnQgY2xhc3MgZGVm
aW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4KIAogaW5saW5lIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5NTJiMTkyZTQxMjQwNTZhMDM4NTMy
ZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBhMjI2MDkxNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgog
I2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9v
bC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggNDc2ZjhkYWI5YjY1
MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uZDk2MTY0M2QyNWE1Nzc5OWVjYjIwZTI5Zjdk
MWViMjY5OWZmZDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApA
QCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKCkK
IAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8
IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRy
aWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRWYWx1ZSkpCi0gICAgICAgICYmICgo
b3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCi0g
ICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJh
Y3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KE11dGF0
aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlcykKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
TXV0YXRpb25UeXBlOjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSkpCisgICAgICAgICYmIChvcHRpb25zLmNvbnRhaW5zKE11
dGF0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT2JzZXJ2YXRpb25G
bGFnczo6QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoTXV0
YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTXV0
YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0KQogewot
ICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAoaW5pdC5jaGlsZExpc3QpCi0gICAgICAg
IG9wdGlvbnMgfD0gQ2hpbGRMaXN0OworICAgICAgICBvcHRpb25zLmFkZChNdXRhdGlvblR5cGU6
OkNoaWxkTGlzdCk7CiAgICAgaWYgKGluaXQuc3VidHJlZSkKLSAgICAgICAgb3B0aW9ucyB8PSBT
dWJ0cmVlOworICAgICAgICBvcHRpb25zLmFkZChPYnNlcnZhdGlvbkZsYWdzOjpTdWJ0cmVlKTsK
ICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVPbGRWYWx1ZS52YWx1ZV9vcihmYWxzZSkpCi0gICAgICAg
IG9wdGlvbnMgfD0gQXR0cmlidXRlT2xkVmFsdWU7CisgICAgICAgIG9wdGlvbnMuYWRkKERlbGl2
ZXJ5RmxhZ3M6OkF0dHJpYnV0ZU9sZFZhbHVlKTsKICAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
T2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBvcHRpb25zIHw9IENoYXJhY3RlckRh
dGFPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoRGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVy
RGF0YU9sZFZhbHVlKTsKIAogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlRmlsdGVy
OwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkKICAgICAgICAgICAgIGF0dHJpYnV0
ZUZpbHRlci5hZGQodmFsdWUpOwotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZUZpbHRlcjsK
KyAgICAgICAgb3B0aW9ucy5hZGQoT2JzZXJ2YXRpb25GbGFnczo6QXR0cmlidXRlRmlsdGVyKTsK
ICAgICB9CiAKLSAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVl
KCkgOiAob3B0aW9ucyAmIChBdHRyaWJ1dGVGaWx0ZXIgfCBBdHRyaWJ1dGVPbGRWYWx1ZSkpKQot
ICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZXM7CisgICAgaWYgKGluaXQuYXR0cmlidXRlcyA/
IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogb3B0aW9ucy5jb250YWluc0FueSh7IE9ic2VydmF0
aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlciwgRGVsaXZlcnlGbGFnczo6QXR0cmlidXRlT2xkVmFs
dWUgfSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6QXR0cmlidXRlcyk7CiAK
LSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkg
OiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0g
Q2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKERlbGl2ZXJ5RmxhZ3M6OkNoYXJhY3Rl
ckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSk7CiAKICAgICBpZiAoIXZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmgKaW5kZXggMmFmMjYzYmQ0YTcyNTRhMjBhM2I5MzUzMTdiNzk2OTFhZjRjYzdkYS4u
MmQzMmNhNjI0NjI0NjA4YmQ0Y2QzYzkwYTMxZGQ4YTc5NWM4MzIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCkBAIC01MywzMCArNTQsMzEgQEAgY2xh
c3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgV2luZG93RXZlbnRMb29wOwog
Ci11c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7Ci11c2luZyBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7CitlbnVtIGNsYXNz
IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhfdCB7CisgICAgLy8gTXV0YXRpb25U
eXBlCisgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgIEF0dHJpYnV0ZXMgPSAxIDw8IDEsCisg
ICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKIAotY2xhc3MgTXV0YXRpb25PYnNlcnZlciBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKLSAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOwotcHVibGljOgotICAgIGVudW0gTXV0YXRp
b25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRyaWJ1dGVz
ID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorICAgIEFsbE11dGF0
aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSwKIAotICAg
ICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3Rl
ckRhdGEKLSAgICB9OworICAgIC8vIE9ic2VydmF0aW9uRmxhZ3MKKyAgICBTdWJ0cmVlID0gMSA8
PCAzLAorICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNCwKKyAgICBBbGxPYnNlcnZhdGlvbkZs
YWdzID0gU3VidHJlZSB8IEF0dHJpYnV0ZUZpbHRlciwKIAotICAgIGVudW0gT2JzZXJ2YXRpb25G
bGFncyAgewotICAgICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0
ZXIgPSAxIDw8IDQKLSAgICB9OworICAgIC8vIERlbGl2ZXJ5RmxhZ3MKKyAgICBBdHRyaWJ1dGVP
bGRWYWx1ZSA9IDEgPDwgNSwKKyAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisg
ICAgQWxsRGVsaXZlcnlGbGFncyA9IEF0dHJpYnV0ZU9sZFZhbHVlIHwgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlLAorfTsKIAotICAgIGVudW0gRGVsaXZlcnlGbGFncyB7Ci0gICAgICAgIEF0dHJpYnV0
ZU9sZFZhbHVlID0gMSA8PCA1LAotICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8
IDYsCi0gICAgfTsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKIAorY2xhc3Mg
TXV0YXRpb25PYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2
ZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOworcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8TXV0YXRpb25PYnNlcnZlcj4gY3JlYXRlKFJlZjxNdXRhdGlv
bkNhbGxiYWNrPiYmKTsKIAogICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CkBAIC0xMTUsNiArMTE3
LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBub3RpZnlNdXRhdGlvbk9ic2VydmVycyhX
aW5kb3dFdmVudExvb3AmKTsKIAogcHJpdmF0ZToKKyAgICB1c2luZyBNdXRhdGlvblR5cGUgPSBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTsKKyAgICB1c2luZyBPYnNlcnZhdGlvbkZsYWdzID0g
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU7CisgICAgdXNpbmcgRGVsaXZlcnlGbGFncyA9IE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOworCiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZl
cihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CmluZGV4IDAyNzZlNDJiZTViZDgzZmY0MmE3OTM1NmJkZTljZTczNjA5OWNiZGUuLjJhZWM2NTI5
MGMzODQ3NzIyNmEwZjA4ODIyZmZhMzdjNWRmN2IwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDQsOSArNDQs
OSBAQCBpbmxpbmUgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8UmVmPAogICAgIEFTU0VSVCghbV9vYnNlcnZlcnMuaXNF
bXB0eSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYg
dGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
aWJ1dGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5h
bWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMg
JiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9
PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1l
KSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgYXV0byBvYnNlcnZlcnMgPSB0YXJnZXQucmVnaXN0
ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChvYnNl
cnZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggM2MwYWU1
MjM3ZDRiMmUyZWZmNzBkZGU2NjJlNWY0ZTFlNTY5MjZhZC4uMmY0NmM4MWU4ZTVlODkzMGZmY2Nj
MWRiODRkYTgwYmNhOTA0MWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ2LDM2ICs0NiwzNiBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbihOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAo
IXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlz
dCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcgPSAwOwotICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxh
Zyk7CisgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZzsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKICAgICB9CiAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JD
aGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBN
dXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKE5vZGUmIHRhcmdldCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICB7Ci0gICAgICAgIGlmICgh
dGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6QXR0cmlidXRlcykpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0
ZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0
dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwg
JmF0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgp
IGNvbnN0OwogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJlY29y
ZD4mJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlv
bk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCBoYXNPbGRW
YWx1ZShNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVy
biBvcHRpb25zICYgbV9vbGRWYWx1ZUZsYWc7IH0KKyAgICBib29sIGhhc09sZFZhbHVlKE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMu
Y29udGFpbnNBbnkobV9vbGRWYWx1ZUZsYWcpOyB9CiAKICAgICBIYXNoTWFwPFJlZjxNdXRhdGlv
bk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwog
ICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmlu
ZGV4IGM2ZjFmYjE1ZGZmOGQ1ZWJmZjJmNWM1YjdiN2VkZTNhZTNkMGViNzkuLmQzYzFmYTY2ZWQy
ZjU1NDdmMGI4MDljNjkwN2JiNDVjNGY5ZjU0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTk1LDE2ICs5NSwxNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb246OnRhawogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAot
Ym9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25G
cm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25z
dCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdAorYm9vbCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJp
YnV0ZU5hbWUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwotICAgIGlm
ICghKG1fb3B0aW9ucyAmIHR5cGUpKQorICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRl
TmFtZSk7CisgICAgaWYgKCFtX29wdGlvbnMuY29udGFpbnModHlwZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICgmbV9ub2RlICE9ICZub2RlICYmICFpc1N1YnRyZWUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyB8fCAhKG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZp
bHRlcikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJp
YnV0ZXMgfHwgIW1fb3B0aW9ucy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWF0dHJp
YnV0ZU5hbWUtPm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzExMDg0MThmMWVkNTY0
ZmFiOTViOTZmYzhhMGNmZGE1MzUzZjNlYi4uZDY4NGIxZjBiMWI4N2U4MTcwNTA2NDAwNWNhYjc5
MDUxNzA3ODQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC01NiwxMyArNTYsMTMgQEAgcHVibGljOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lz
dHJhdGlvbk5vZGVzLT5pc0VtcHR5KCk7IH0KIAotICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0
aW9uRnJvbShOb2RlJiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKLSAgICBib29sIGlzU3VidHJlZSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAg
ICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKKyAg
ICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jb250YWlucyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6U3VidHJlZSk7IH0KIAogICAgIE11dGF0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIE5vZGUmIG5v
ZGUoKSB7IHJldHVybiBtX25vZGU7IH0KLSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBkZWxpdmVyeU9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJE
YXRhT2xkVmFsdWUpOyB9Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBl
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0
aW9uVHlwZXM7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZTo6QWxsRGVsaXZlcnlGbGFnczsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11
dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlczsgfQogCiAgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IGE2ZjE5ODM2YTliZGQ1MTY2Zjg4MGNlNjA2NDMyZGMwNjFlYzQzYWYuLmU1
MzUxNDcxMDhmY2ZhZTM0ZTM3NzRmN2Q3YmY5MzQyNDUxMDkzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRl
ICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKQEAgLTIy
ODIsNyArMjI4Myw3IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+KiBO
b2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoCiAgICAgcmV0dXJuICZkYXRh
LT50cmFuc2llbnRSZWdpc3RyeTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmVnaXN0cnk+IHN0
YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNo
TWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+
JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29s
bGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBSZWdpc3Ry
eSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgdHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKICAgICBpZiAoIXJlZ2lz
dHJ5KQogICAgICAgICByZXR1cm47CkBAIC0yMjkyLDE1ICsyMjkzLDE1IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2
ZXJzRm9yTXV0YXRpCiAgICAgICAgICAgICBhdXRvIGRlbGl2ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJh
dGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG9ic2Vy
dmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAg
ICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICByZXN1bHQu
aXRlcmF0b3ItPnZhbHVlIHw9IGRlbGl2ZXJ5T3B0aW9uczsKKyAgICAgICAgICAgICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICB9CiAgICAg
fQogfQogCi1IYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK0hhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
CiB7CiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiByZXN1bHQ7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2
ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAg
IEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAm
JiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgY29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCBtdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSwg
KnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKHJlc3VsdCwgdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCks
ICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJl
bnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmlu
ZGV4IGJkYjg0MjcwNTM5ZTEzMTY2MTQxNjllMGM3ZjA2NjkyNzcyNDZiYTYuLjVkNjkzZmMyNWI0
NmNmNDk5ZTc1MzMzNjA5N2ZkOTE2NzU1MDhkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU3R5bGVWYWxpZGl0
eS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgpAQCAtNTQsNiArNTMsOCBAQCBjbGFzcyBGbG9h
dFBvaW50OwogY2xhc3MgSFRNTFF1YWxpZmllZE5hbWU7CiBjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7
CiBjbGFzcyBNYXRoTUxRdWFsaWZpZWROYW1lOworY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBj
bGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVMaXN0c05vZGVEYXRhOwpAQCAtNjcsNiArNjgsMTAg
QEAgY2xhc3MgU1ZHUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBUb3Vj
aEV2ZW50OwogCitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhf
dDsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zID0g
T3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKKwogdXNpbmcgTm9kZU9yU3Ry
aW5nID0gVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFN0cmluZz47CiAKIGNsYXNzIE5vZGUgOiBwdWJs
aWMgRXZlbnRUYXJnZXQgewpAQCAtNDk0LDcgKzQ5OSw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRh
cmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50
VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CiAKLSAgICBIYXNoTWFw
PFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUs
IGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIEhhc2hNYXA8UmVmPE11
dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKICAgICB2b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IEhh
c2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9p
ZCByZWdpc3RlclRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cAppbmRleCAxNzZiYzNiNDg5MjBmZWQwOGEyYWE5NWFhMmJhZTY2N2FlZGY0MmZkLi4zZTBmN2U1
NDM1ZWEzN2ZjNmI5ZGNmYjQxZmUzNjE4NTI1ZjJkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGYwNDliZDg0YjEyYWFkMGNkYTNlZTcxNTgyNjA5
NDM4MWYwOTEyNTMuLmM0ZjI5NTk5OTM5ZWMxNjgzMmM2ZGY2YzBjZWMwMjBiY2Q0MjUwYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKaW5kZXggYjEwNzY2NTk5
MzEwZGY0NTQ2MTczMWYzNGJiM2M5ZTljMjhjZTMzYy4uYWIyNzgzN2I5ODgzNzk2NGU4YjY4ZDM2
ZDEwZjcxODk1ZDZhNjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudC5oCkBAIC0yOSwzMCArMjksMzMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitlbnVtIGNsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3Np
dGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKKworc3RydWN0IFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCgpIHsgfQorCisgICAgU3RyaW5nIGRvY3VtZW50VVJJOworICAgIFN0cmlu
ZyByZWZlcnJlcjsKKyAgICBTdHJpbmcgYmxvY2tlZFVSSTsKKyAgICBTdHJpbmcgdmlvbGF0ZWRE
aXJlY3RpdmU7CisgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWxQb2xpY3k7CisgICAgU3RyaW5nIHNvdXJjZUZpbGU7CisgICAgU3RyaW5nIHNhbXBsZTsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gZGlzcG9zaXRpb24g
eyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UgfTsKKyAg
ICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9OworICAgIHVuc2lnbmVkIGxpbmVOdW1i
ZXIgeyAwIH07CisgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgMCB9OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0Jik7Cit9OworCiBjbGFz
cyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOwog
cHVibGljOgotICAgIGVudW0gY2xhc3MgRGlzcG9zaXRpb24gOiBib29sIHsgRW5mb3JjZSwgUmVw
b3J0IH07Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7Ci0gICAgICAgIEluaXQoKSB7
IH0KLQotICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkk7Ci0gICAgICAgIFN0cmluZyByZWZlcnJl
cjsKLSAgICAgICAgU3RyaW5nIGJsb2NrZWRVUkk7Ci0gICAgICAgIFN0cmluZyB2aW9sYXRlZERp
cmVjdGl2ZTsKLSAgICAgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKLSAgICAgICAgU3Ry
aW5nIG9yaWdpbmFsUG9saWN5OwotICAgICAgICBTdHJpbmcgc291cmNlRmlsZTsKLSAgICAgICAg
U3RyaW5nIHNhbXBsZTsKLSAgICAgICAgRGlzcG9zaXRpb24gZGlzcG9zaXRpb24geyBEaXNwb3Np
dGlvbjo6RW5mb3JjZSB9OwotICAgICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9
OwotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OwotICAgICAgICB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIgeyAwIH07Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBJbml0Jik7
Ci0gICAgfTsKKyAgICB1c2luZyBEaXNwb3NpdGlvbiA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREaXNwb3NpdGlvbjsKKyAgICB1c2luZyBJbml0ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQ7CiAKICAgICBzdGF0aWMgUmVmPFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXpl
ciA9IHsgfSwgSXNUcnVzdGVkIGlzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCiAgICAgewpAQCAt
MTExLDcgKzExNCw3IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgot
dm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgRXZlbnRJbml0Jj4oKnRoaXMpOwogICAgIGVuY29kZXIgPDwgZG9jdW1lbnRVUkk7
CkBAIC0xMjksNyArMTMyLDcgQEAgdm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIH0KIAogdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KLWJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmIGV2
ZW50SW5pdCkKK2Jvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYgZXZlbnRJ
bml0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGljX2Nhc3Q8RXZlbnRJbml0Jj4o
ZXZlbnRJbml0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NCwxMSArMTY3LDExIEBA
IGJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNlY3VyaXR5UG9saWN5CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OkRpc3Bvc2l0aW9uPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbj4gewogICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb24sCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb246OkVuZm9yY2UsCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UsCisgICAgV2ViQ29yZTo6U2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpSZXBvcnQKICAgICA+OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRl
eCA1OGQ3NTNiMjNkNjNiODcyOTU5MDA3YzVhNzA5NjczOTdjODg3ODRhLi45ODA0NDYwY2RiMmJj
NWFiNTE3MTRiNDA0YWI4NWMwY2FmZTIyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUg
IkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCBmOTVhMzFjNTM5MTJkMDNiYWZmNGNjODU3MDAyYjVjMWNkMzU5OTMy
Li5mMzQwMTQzNTlmZjdjZGJkODU3Y2ZkY2RiYmE5YjI0ZjI5MTAxYTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggODQ2NjRjM2I3NDgzNjUzYWYwOWY3OWVi
YjUzM2U3NTRiYTYzODRhMS4uOTI5NDZmMzczMTMzZTExMGRkYjExMWY1OGE5M2MxYjJjN2YwYjQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1NjU3ODI3ZDlhNjZiYjNiNzNlZmI1
NWY5MzE2MWVlODM4YjQ1YTMwLi4xYjcwNzY1YmFiYzRkNDY4MTFjMWFmZDc5NDY1MTA3YjhhMjIw
ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYzJlYjhhN2JjNDEzMjJjYThkMjA4NDQzM2Ey
MzVmZmU5N2I1ZWJiZC4uNzEzNjk5NTQ5MDVmOWYyZjFkOGUxY2RlMDYwZTQxZGNhZWNhMTQxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGlu
Zy5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcu
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDg3OTE0MjE2Y2FhMmFlNzA1
YTVjNDg5OWJkZmEwMTQ0YzM2NjA4ZGQuLjIyNzJlYmIzMGRlNzkyMTYzNjZmYjExOTM2NTgxYjky
NThiZGNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQppbmRleCBmMzgzYWRkZDE5YjBjZjAwNDZiYTUzN2NiMmQ1OGJkNGE3MTAwZTk0Li40NjIzN2Fk
NmMxZTkzNzFiZGNhZDcwZmNhZmIwZjdmZTVkZjhkNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lt
cG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgiCiAjaW1wb3J0ICJDaHJv
bWVDbGllbnQuaCIKKyNpbXBvcnQgIkRvY3VtZW50SW5saW5lcy5oIgogI2ltcG9ydCAiRnJhbWUu
aCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDVlNDFiNDkyNDE2YTM5NDBlZDZkZTEzMTJhMzE1MzNlZGQ4
MTc5MzkuLmY0OGZkOGY4NWEzM2ZmOWI3OWFlNDNkNzM0MjQ2M2MzNjhhZjhjNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwNjljYzQxNzcw
Y2M5ZmM1MWI5NTgyMjM1MzI0NjMyMzMzMjZiN2EzLi4yNDM4ZTkxNzZiMjM5YWRlOGVhMDliYmNl
ZjgxZGQ1ZGJjNTA1MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRl
ICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZpbGVJbnB1dFR5
cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA1NmYwYzc5
ZDQ1ZDkyNzY5Njk2NzIxMzgwMDUzZGYwYjQ5ZTFjN2YxLi43NGZkNDVlNmRiYmI0NTZiNTQ1M2Ix
ZDQwZjM4Y2YwNDY0MGQ3N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRGVmYXVsdFJlc291cmNl
TG9hZFByaW9yaXR5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI5Mzc5YjIwZjU5MWZmZWYwYmQ1NTdjODA4ZDhiNDk0MGFh
YTVhNzAuLjY1ZWJmYTdhNTRkOGZhZDM0YTdhZTA5YzU1YmEzMzA1ZTczNmMxMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODUsOCArODUsOCBAQAogI2lu
Y2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2YWxUcmVlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlBhZ2VJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgpAQCAtNzk3Myw3
ICs3OTczLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91
bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01l
ZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3Rh
dGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpKSB7CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgp
ICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAg
ICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBw
bGF5aW5nIGFuIGF1ZGlvIE1lZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CkBAIC03OTg4LDcgKzc5ODgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1N
ZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRp
YVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKKyAgICAgICAg
aWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5t
ZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1U
cmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTgwNDgsNyAr
ODA0OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVVcGRhdGVNZWRpYVN0YXRl
KCkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIHsKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKICAgICBp
ZiAobV9tZWRpYVN0YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm47CiAKQEAgLTgwNTksMzEg
KzgwNTksMzEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIH0K
ICNlbmRpZgogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAogewogICAgIE1lZGlhU3RhdGVGbGFncyBz
dGF0ZTsKIAogICAgIGJvb2wgaGFzQWN0aXZlVmlkZW8gPSBpc1ZpZGVvKCkgJiYgaGFzVmlkZW8o
KTsKICAgICBib29sIGhhc0F1ZGlvID0gdGhpcy0+aGFzQXVkaW8oKTsKICAgICBpZiAoaXNQbGF5
aW5nVG9FeHRlcm5hbFRhcmdldCgpKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CisgICAgICAgIHN0YXRlLmFk
ZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIGlmIChtX2hhc1BsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKSB7Ci0gICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKTsKICAgICAgICAgaWYgKCFtZWRpYVNlc3Np
b24oKS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpKQotICAgICAgICAgICAgc3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25p
dG9yaW5nKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpOwogICAgIH0KIAogICAgIGJvb2wgcmVx
dWlyZVVzZXJHZXN0dXJlID0gbV9tZWRpYVNlc3Npb24gJiYgbWVkaWFTZXNzaW9uKCkuaGFzQmVo
YXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVU
b0F1dG9wbGF5VG9FeHRlcm5hbERldmljZSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZF
X01FVEFEQVRBICYmICFyZXF1aXJlVXNlckdlc3R1cmUgJiYgIW1fZmFpbGVkVG9QbGF5VG9XaXJl
bGVzc1RhcmdldCkKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOworICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOwog
CiAgICAgaWYgKGhhc0FjdGl2ZVZpZGVvIHx8IGhhc0F1ZGlvKQotICAgICAgICBzdGF0ZS5hZGQo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKTsKKyAgICAgICAgc3Rh
dGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pOwogCiAgICAg
aWYgKGhhc0FjdGl2ZVZpZGVvICYmIGVuZGVkUGxheWJhY2soKSkKLSAgICAgICAgc3RhdGUuYWRk
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCk7CisgICAgICAgIHN0YXRl
LmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKICNlbmRpZgogCiAg
ICAgaWYgKCFpc1BsYXlpbmcoKSkKQEAgLTgwOTcsMTAgKzgwOTcsMTAgQEAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAog
ICAgIGlzUGxheWluZ0F1ZGlvID0gaXNQbGF5aW5nQXVkaW8gJiYgIW11dGVkKCk7CiAjZW5kaWYK
ICAgICBpZiAoaXNQbGF5aW5nQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZp
ZGVvKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKTsKIAogICAgIHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKaW5kZXggY2ZkMTlkM2MxNzNmMTBjZTRlZmUwYzIwYWViMmFiZTU5
MTlkMjU5Ni4uMDJkNDg4MDExNDc0NjJjOTEzZWNmOTliNmIwM2I4MDExZDBkMWVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTUyNyw3ICs1MjcsNyBAQCBwdWJs
aWM6CiAKICAgICBkb3VibGUgbWF4QnVmZmVyZWRUaW1lKCkgY29uc3Q7CiAKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdm9pZCBsYXlvdXRTaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgdmlzaWJpbGl0eURp
ZENoYW5nZSgpOwpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MgbV9tZWRpYVN0YXRlOwogICAgIE1vbm90b25pY1RpbWUgbV9jdXJyZW50UGxheWJhY2tUYXJn
ZXRJc1dpcmVsZXNzRXZlbnRGaXJlZFRpbWU7CiAgICAgYm9vbCBtX2hhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXJzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmFpbGVkVG9QbGF5
VG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCmluZGV4IGUyZjhhNGJmNWQ4Yjg1MWJiOWMxNDIzMWI4MTI4ZWMyNDg4NmI3
YzAuLjc5YWQ0ZTIyMDZkYTgwOTQ4YjJhMGI1NWZlYmIxYmI4NGM4MTY3YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCA5OWE0YmIyZWY3YTYxNDY3NGFjZjRmNzlmYTdjM2Q3Y2ZhZjk5NjIwLi4wZTM0ODZkNGY3MTA2
Y2M1NzE2N2NhZmE2NzQ4MGQ5NzIxN2Y4OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGVhMjk3ZmEyMzE5YmZiODU3ZjVmY2JmMjQ1NjY2
YjA5ODM1ZjEwOTIuLmI1ZmYwMmJkYTU1NGEwMWRhOTNiOTBhZmMwODFjNmViMDg4MGNjYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJE
YXRlSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIkRlY2ltYWwuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKaW5kZXggN2Y2ZDM5ZjNlY2UwY2ZmNzU3OTRiZWQ0YWMzNGZlZDMxNjQ3ZjUxNy4uMjkx
ZWY5YTAyODEwMmYzMmFlYzM2Yzg5Yzg2YWRiNGVjNzBmZTU3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtMzg1LDcgKzM4NSw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxS
ZWFzb24+IE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgaWYgKG1f
ZWxlbWVudC5oYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVu
dC5pc0NhcHR1cmluZygpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKGRv
Y3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKQorICAgICAgICBpZiAoZG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAjZW5kaWYKQEAgLTQwMCw3ICs0MDAsNyBAQCBFeHBlY3RlZDx2b2lkLCBNZWRpYVBsYXli
YWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbgog
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6
VXNlckdlc3R1cmVSZXF1aXJlZCk7CiAgICAgfQogCi0gICAgaWYgKHRvcERvY3VtZW50Lm1lZGlh
U3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0
aE1lZGlhRWxlbWVudCAmJiB0b3BEb2N1bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvcigpKQorICAgIGlmICh0b3BEb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYm
IHRvcERvY3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkp
CiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAodG9wRG9jdW1lbnQuaGFzSGFkVXNlcklu
dGVyYWN0aW9uKCkgJiYgZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJh
cnlVc2VyR2VzdHVyZSgpKQpAQCAtODA5LDcgKzgwOSw3IEBAIHZvaWQgTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKQogICAgIGNsaWVudCgpLnBs
YXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFFbGVtZW50
U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCit2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX2VsZW1lbnQuZG9j
dW1lbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBz
dGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCmluZGV4
IGRmNjE1MTBjZWM2NTAxMGMyZDZiZTVlNGEwYjMwOWY3MDI1MjM0NTUuLmY1YmViZDI4ZGVmODg5
YWUwMmEwMDZhYmRlNjkwMDc1YzQxNTA1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFF
bGVtZW50U2Vzc2lvbi5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQ
bGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsK
KyAgICB2b2lkIG1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyk7CiAjZW5kaWYKIAogICAgIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFj
aygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0YjFl
M2EyOWMwYTQzNmU0NmViNTZjMTllOGFjMTk3YjA5YmU0YzQ4Li44ZjZiOGNlMDhmZGI1ZDc0YjY2
ZTUzYzEyMjBjZTFiYmI1Y2Q3NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRlY2ltYWwuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MQ29sbGVjdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI5MjAyYTExNTY5ODBhNDg2YWFiOTY1
MzBiNTViNTVhNDUwNTMxODcuLjhlNjVjNGViMTAyMzM1MjFmNDhjN2Y0YjEyMGFkMmM4OTA5YTA3
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1h
dGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRl
eCA5ZThkZjJlY2IwMTA0ODM2MWIyNDRmODUwZjliY2VjOTlhNTE5ZTE5Li42ZDMxYzgxZmRlMTI4
MGQyNDUzOWI5YzlmYjJlMDI4OTdjYWIzOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTUsNyArNTUsNyBA
QAogI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkRPTVBhdGNoU3VwcG9ydC5o
IgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRl
eCAzNzQ2ODQzMjU3N2Y2NGUzZDE4YmMzNjY3Y2EyOThmNDNhM2JmNTAzLi44NGIxNjM3MDE0ZWY1
NmRhZThiY2VmMGQ3MjQ5NTYyZDIwZDBkZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC00MCw3
ICs0MCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNh
dGVJbmZvLmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVTdW1tYXJ5LmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oCmluZGV4IDk0NjQ3NGI1ODU4MTkzYjBiMzA2YzkyZTFmNWIyZThiYzFmYWM5
YmMuLjU4YzdiYjc5Mzg4YWM2ZjAzZjJjODIwZDg5NjhmYTRhMzUyMWZmNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCkBAIC0yNSwxNSAr
MjUsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFz
cyBGcmFtZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIHN0cnVjdCBOYXZpZ2F0aW9uUmVxdWVz
dGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBmOWYz
OTJjYjg0ZDgyMDJiMmI5ZWNlZjBkZTE2NDUxODAzZjM3YjYzLi45OWM5NzhkY2IzYzY0Y2RlNjk2
NTM5YmRmOWFiNWM1YjRkZjI3ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTI0MDAsNyArMjQwMCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNlbmRD
U1BWaW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwCiAg
ICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqbV9mcmFtZSwgV1RGTW92ZShyZXBv
cnRVUkwpLCBXVEZNb3ZlKHJlcG9ydCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1
cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBl
dmVudEluaXQpCit2b2lkIERvY3VtZW50TG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkK
IHsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5lbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXVEZNb3ZlKGV2ZW50SW5pdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaAppbmRleCA5ZmM0MTM3YTY5MDBlMjRhMWE4MmNlYzdjYzc1NzkzZDM0N2U5ODEy
Li40ZmJmZDcxMjAxOTlkMjdjZmE4N2JkZDU5NjczNzEwNmJjZTA4ZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNTIyLDcgKzUyMiw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPEZvcm1EYXRh
PiYmKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikgZmlu
YWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBmaW5hbDsKIAogICAg
IGJvb2wgZGlzYWxsb3dXZWJBcmNoaXZlKCkgY29uc3Q7CiAgICAgYm9vbCBkaXNhbGxvd0RhdGFS
ZXF1ZXN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApp
bmRleCA4OTA5NWZlM2RlNzMyODhlMjczMWMxMmFmM2QyNjE2OGY3Y2MzNTMwLi40MzJiZDEyYjMy
Y2U4YzBmNzRiMjBmMTFmM2YyODllOGRlN2M3MWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFdyaXRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDb250ZW50U2Vj
dXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNjgzZjg0
YzI1NDE1ZDNlYzM0NjdlMDgxMDhiODEzZjVhNzFhODIzOS4uYWU5MmFkZDg3NTYwNTFkMDU2YTIz
MDJkZGNiYzQ4OWIxMGU3NDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Np
b24uY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3kuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmY2IyMjAyZjgyODEwYWYyYTRmOGQ5ZTQ1MWNiNTc0
ZmEwYTdmZDQzLi5jM2JiMzQ2YTM5NDdjNTg5ODNlZTlkOWY4ZWIwNGM5OTI4MDM2MTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNs
dWRlICJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDEwN2YzMjQ2NGNkMWQzYmI5MjNjMmE5Zjc1MzBkYWZlYjViMTc4ZTkuLjM2
ZWUzMjc1ZDY5MjA3ZTQ1MDIxNjJmMGFiYWViODhlNThlYmM3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTAs
NyArNTAsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIK
LSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNGNmY2IxNjgx
ZjE3MzA5YWM0YTdmYzBiMjE5YWNlZjk1OTU3Yjc5ZC4uY2NiZGZhNDk2M2U0MDM5NmM3OWVhOTYz
OWNiNWEwNzliNGYzZWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01MDMs
NyArNTAzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFj
a2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KEF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxBdXRvcGxh
eUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQpAQCAtNTM0LDcgKzUz
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29u
c3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlckVuYWJsZWQoYm9vbCkgIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IGUwMDVjZWRmZmNkZWMxZGFkOTFhZmZlODZlZWFiMjJkMzgzNWQ5
OTAuLjdmOWQ4ZWM0NTRjMDM1ZjIwMjU5Y2U4OTgyNGM2NTdmNWFmMWUyZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDb21w
b3NlZFRyZWVBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJh
Z0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiZTc2ZTFiZDI3NzU1MTMxZDA4MzE2ZjJkM2JlOTli
Y2NhNjhkYzFmLi5hMTFhM2IzNDhhYmEzOTlmNjQ4NzZkZTQ5NjkyMWRmZThmMGQ2NDNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4YzQzNzdj
Yjk1NGEwYjFhMDg5ZTUyZWZhZDhhNDFkOTEwNThhOGY3Li5mZDMzMzY4YWQyMWRjNTU5Njc0YjNh
N2E2OGQyMzM0Y2U0ZjEzMzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5n
LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NTRhNWFjMDAwZTI3YzkyZGE5NDBlOWYzYTczMTJjN2I5Y2VlNmY2Yy4uZDVlYjNhZWZkMTc2YjEw
MWJlZTIzYzAxM2FmNDcxY2Y5YTQ0ODlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlYnVn
UGFnZU92ZXJsYXlzLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dFNWRy5oIgpAQCAtMjA4Miw3ICsyMDgzLDcgQEAgYm9vbCBGcmFtZVZpZXc6OnVzZURhcmtBcHBl
YXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLU9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKK09wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gRnJhbWVWaWV3OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVy
ID0gcmVuZGVyZXJGb3JDb2xvclNjaGVtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
ZDlkNDhhZjVmN2QxNDk3N2YzYTUwZGU1NjU5OTNlZGUzZDUyYTMxOC4uOTdhZGViMTAwNmZjNTU2
Yjk5ZmU1OGFmNzAwODJjN2IyZWFkYzg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01
MzgsNyArNTM4LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkU2V0Q3Vyc29yKCkgY29uc3Q7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QgZmlu
YWw7Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25z
KCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIHBs
dWdpbiBsb2FkaW5nIGlzIGRlY291cGxlZCBmcm9tIGxheW91dC4KICAgICB2b2lkIGZsdXNoQW55
UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOwpAQCAtOTU1LDcgKzk1NSw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1faXNUcmFuc3BhcmVudCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBUktfTU9E
RV9DU1MpCi0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG1fc3R5bGVDb2xvck9w
dGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBtX3N0eWxlQ29sb3JPcHRp
b25zOwogI2VuZGlmCiAKICAgICBib29sIG1faXNUcmFja2luZ1JlcGFpbnRzIHsgZmFsc2UgfTsg
Ly8gVXNlZCBmb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVk
aWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXgg
ODBhZDVhZWVmYWRmOWVjYjgzNmI5MTIzYzM4YzU0MGU2ZjRjMTUxNy4uNGUxOWU4Y2Q3MWE2NTI5
Zjk4YWY2NDgyZTZjYTVhMDUyYjFmNzM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2Vy
LmgKQEAgLTMxLDMyICszMSw1MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xh
c3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUgOiB1aW50MzJfdCB7CisgICAgSXNQbGF5aW5nQXVk
aW8gPSAxIDw8IDAsCisgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8IDEsCisgICAgSXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSA9IDEgPDwgMiwKKyAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZyA9IDEgPDwgMywKKyAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlID0g
MSA8PCA0LAorICAgIERpZFBsYXlUb0VuZCA9IDEgPDwgNSwKKyAgICBJc1NvdXJjZUVsZW1lbnRQ
bGF5aW5nID0gMSA8PCA2LAorICAgIElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcs
CisgICAgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDgsCisgICAgSGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEgPDwgOSwKKyAgICBIYXNBdWRpb09y
VmlkZW8gPSAxIDw8IDEwLAorICAgIEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTEsCisgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwKKyAgICBIYXNN
dXRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTMsCisgICAgSGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UgPSAxIDw8IDE0LAorICAgIEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNl
ID0gMSA8PCAxNSwKKyAgICBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwg
MTYsCisgICAgSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ID0gMSA8PCAxNywKKyAg
ICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTgsCisgICAgSGFzTXV0ZWRE
aXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCisgICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5
Q2FwdHVyZURldmljZSA9IDEgPDwgMjAsCit9OwordXNpbmcgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT47CisKK2VudW0gY2xh
c3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1aW50OF90IHsKKyAgICBBdWRpbywK
KyAgICBWaWRlbywKKyAgICBBdWRpb1ZpZGVvCit9OworCitlbnVtIGNsYXNzIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlIDogdWludDhfdCB7CisgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAorICAg
IEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCisgICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9
IDEgPDwgMiwKKyAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKK307Cit1c2luZyBN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlPjsKKwogY2xhc3MgTWVkaWFQcm9kdWNlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxN
ZWRpYVByb2R1Y2VyPiB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBNZWRpYVN0YXRlIHsKLSAg
ICAgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCi0gICAgICAgIElzUGxheWluZ1ZpZGVvID0g
MSA8PCAxLAotICAgICAgICBJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlID0gMSA8PCAyLAotICAg
ICAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyA9IDEgPDwgMywKLSAgICAgICAg
RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSA9IDEgPDwgNCwKLSAgICAgICAgRGlkUGxh
eVRvRW5kID0gMSA8PCA1LAotICAgICAgICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2
LAotICAgICAgICBJc05leHRUcmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA3LAotICAgICAgICBJ
c1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgOCwKLSAgICAgICAgSGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciA9IDEgPDwgOSwKLSAgICAgICAgSGFzQXVkaW9P
clZpZGVvID0gMSA8PCAxMCwKLSAgICAgICAgSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0g
MSA8PCAxMSwKLSAgICAgICAgSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwK
LSAgICAgICAgSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEzLAotICAgICAgICBI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTQsCi0gICAgICAgIEhhc0ludGVycnVw
dGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNSwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE2LAotICAgICAgICBIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAotICAgICAgICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVy
ZURldmljZSA9IDEgPDwgMTgsCi0gICAgICAgIEhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2Ug
PSAxIDw8IDE5LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0g
MSA8PCAyMCwKLSAgICB9OwotICAgIHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxN
ZWRpYVN0YXRlPjsKKyAgICB1c2luZyBNZWRpYVN0YXRlID0gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU7CisgICAgdXNpbmcgTXV0ZWRTdGF0ZSA9IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOworICAg
IHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3M7Cisg
ICAgdXNpbmcgTXV0ZWRTdGF0ZUZsYWdzID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFnczsK
KwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIElzTm90UGxheWluZyA9IHsg
fTsKICAgICBzdGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBBdWRpb0NhcHR1cmVNYXNr
ID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1
ZGlvQ2FwdHVyZURldmljZSB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdz
IFZpZGVvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURl
dmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6
Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlIH07CkBAIC02OSwyMCArODksNiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIE1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qg
PSAwOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYUNhcHR1cmVLaW5kIHsKLSAgICAgICAgQXVkaW8s
Ci0gICAgICAgIFZpZGVvLAotICAgICAgICBBdWRpb1ZpZGVvCi0gICAgfTsKLQotICAgIGVudW0g
Y2xhc3MgTXV0ZWRTdGF0ZSB7Ci0gICAgICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKLSAgICAg
ICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKLSAgICAgICAgVmlkZW9DYXB0dXJlSXNN
dXRlZCA9IDEgPDwgMiwKLSAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDMsCi0g
ICAgfTsKLQotICAgIHVzaW5nIE11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNdXRlZFN0YXRl
PjsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3RhdGVGbGFncyBBdWRpb0FuZFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3Rh
dGVGbGFncyBNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkID0geyBNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0YXRl
OjpTY3JlZW5DYXB0dXJlSXNNdXRlZCB9OwogCkBAIC05Niw0OSArMTAyLDQ5IEBAIHByb3RlY3Rl
ZDoKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZD4gewordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZD4gewog
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbworICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6VmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZT4gewordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4g
ewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1v
bml0b3JpbmcsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZywKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxl
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91
c1RyYWNrQ29udHJvbEVuYWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbywKLSAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERp
c3BsYXlDYXB0dXJlRGV2aWNlCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lciwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0F1ZGlvT3JWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0
ZWRXaXRoTWVkaWFFbGVtZW50LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNw
bGF5Q2FwdHVyZURldmljZQogICAgID47CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU+IHsKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+IHsKICAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0lzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZAogICAgID47
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4ODUzM2IzZDJiMzcxODJlMTYwNTJmZWQxMjkz
NjhhNDZlNDIyOWFmLi5jZjE3MDEzZTVkNjg2ZjAxZDUyMmQ2ZDY3Nzk2NDgyZjU5ZWU0Y2RiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExv
YWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIK
ICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTIxNzAsNyArMjE3MSw3IEBAIHZvaWQgUGFnZTo6c3Rv
cmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKIAogdm9pZCBQYWdlOjp1cGRhdGVJc1BsYXlpbmdN
ZWRpYSgpCiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yRWFjaERvY3VtZW50
KFsmXShhdXRvJiBkb2N1bWVudCkgewogICAgICAgICBzdGF0ZS5hZGQoZG9jdW1lbnQubWVkaWFT
dGF0ZSgpKTsKICAgICB9KTsKQEAgLTIyMDgsNyArMjIwOSw3IEBAIHZvaWQgUGFnZTo6cGxheWJh
Y2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpCiAKICNlbmRpZgogCi12b2lkIFBhZ2U6OnNl
dE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKK3ZvaWQgUGFnZTo6
c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZCkKIHsKICAgICBtX211
dGVkU3RhdGUgPSBtdXRlZDsKIApAQCAtMjIxNyw3ICsyMjE4LDcgQEAgdm9pZCBQYWdlOjpzZXRN
dXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCiAgICAgfSk7CiB9CiAK
LXZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCit2b2lkIFBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCkKIHsKICAgICBVTlVTRURfUEFSQU0oa2luZCk7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKQEAgLTMwMTgsNyArMzAxOSw3IEBAIHZvaWQgUGFnZTo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4CiAjZW5kaWYKIH0KIAotdm9pZCBQYWdlOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0
YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFBhZ2U6OnBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgY2hyb21lKCkuY2xpZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOTRmOGI4ZGE5MjA2OTYzNzg4YzUxNjE2NTNlNTA1Y2NjMDA1MzgzOS4uZmE4ODlmNGM0Y2Zk
YjJkZGMzYzg0MzM3YzZhYzkxN2NlMGI5Mjg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3Nyw2ICsx
NzcsMTIgQEAgZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6
IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlIDogdWludDMyX3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11
dGVkU3RhdGUgOiB1aW50OF90OworCit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
ID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+Owog
CiBlbnVtIGNsYXNzIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUs
IFVucmVzcG9uc2l2ZSB9OwogZW51bSBjbGFzcyBNYWluRnJhbWVNYWluUmVzb3VyY2UgOiBib29s
IHsgTm8sIFllcyB9OwpAQCAtNzI5LDE4ICs3MzUsMTggQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEKTsKICAgICBib29sIHVzZXNF
cGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwo
KTsgfQogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2
b2lkIHVwZGF0ZUlzUGxheWluZ01lZGlhKCk7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG11dGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KLSAgICBi
b29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9Ci0gICAgYm9vbCBpc01l
ZGlhQ2FwdHVyZU11dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOyB9OworICAgIE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0
ZWRTdGF0ZTsgfQorICAgIGlubGluZSBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0OworICAgIGlu
bGluZSBib29sIGlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdDsKICAgICB2b2lkIHNjaGVkdWxl
UGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
dm9pZCBwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCk7CiAjZW5kaWYKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZUZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAg
TWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyIG1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllcigp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWVkaWFQbGF5YmFja0V4aXN0cygpOwpA
QCAtNzYzLDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZv
aWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UG9pbnQmLCBib29s
LCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQg
cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5h
YmxlZChib29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpAQCAtOTk2LDcgKzEwMDIsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pbkxvd1F1YWxpdHlJbnRlcnBvbGF0aW9uTW9kZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGZsb2F0IG1fbWVkaWFWb2x1bWUgeyAxIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1f
bXV0ZWRTdGF0ZTsKIAogICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIGZs
b2F0IG1fem9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yIHsgMCB9OwpAQCAtMTEyMCw3ICsxMTI2LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNDbG9zaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNSZXN0b3JpbmdDYWNoZWRQYWdlIHsgZmFsc2UgfTsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBtX21lZGlhU3RhdGU7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgVGltZXIgbV9wbGF5
YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlSW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5lcy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkYTkyMjYzYTcyMzI4MzY1N2RlZjM5YTM4NTFlMjBkNjU2ZDA3MWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFQ
cm9kdWNlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitp
bmxpbmUgYm9vbCBQYWdlOjppc0F1ZGlvTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211
dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7
Cit9CisKK2lubGluZSBib29sIFBhZ2U6OmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dHJlYW1DYXB0dXJlSXNNdXRlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKaW5kZXggNzYzZmY2NGJmNGU3ZTllMGZlNDZlMTNmOGQ4MTMxNmQ4ZTNmYWE2Yy4u
MWExMjEwZmE4MzM3Y2Q5NTIwZjRlMDExYTkwNzM2NzU0ZGU1MThmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NJ
bXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
SW1hZ2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDFkYmQxNTNiOTYwZWMyY2Qz
MjVkNzk4MjAzMzJkMjhlZWM1NjRjMTMuLjI5MDkxNjAwY2IxOTc3ZjlkMzM1YzFlZmFmZWIxOTI4
ZGVmOTFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVNvdXJjZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxp
c3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpAQCAtNzc1
LDcgKzc3NSw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24o
Y29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgdW5zaWduZWQgc2hvcnQg
aHR0cFN0YXR1c0NvZGUgPSBtX3NlbGZTb3VyY2VQcm90b2NvbCA9PSAiaHR0cCIgPyBtX2h0dHBT
dGF0dXNDb2RlIDogMDsKIAogICAgIC8vIDEuIERpc3BhdGNoIHZpb2xhdGlvbiBldmVudC4KLSAg
ICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCB2aW9sYXRpb25FdmVudEluaXQ7
CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmRvY3VtZW50VVJJID0gaW5mby5kb2N1bWVudFVSSTsK
ICAgICB2aW9sYXRpb25FdmVudEluaXQucmVmZXJyZXIgPSBtX3JlZmVycmVyOwogICAgIHZpb2xh
dGlvbkV2ZW50SW5pdC5ibG9ja2VkVVJJID0gYmxvY2tlZFVSSTsKQEAgLTc4Myw3ICs3ODMsNyBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5lZmZlY3Rp
dmVEaXJlY3RpdmUgPSBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZTsKICAgICB2aW9sYXRpb25F
dmVudEluaXQub3JpZ2luYWxQb2xpY3kgPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaGVhZGVyKCk7
CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnNvdXJjZUZpbGUgPSBpbmZvLnNvdXJjZUZpbGU7Ci0g
ICAgdmlvbGF0aW9uRXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0
LmlzUmVwb3J0T25seSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRp
b246OlJlcG9ydCA6IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpF
bmZvcmNlOworICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5kaXNwb3NpdGlvbiA9IHZpb2xhdGVkRGly
ZWN0aXZlTGlzdC5pc1JlcG9ydE9ubHkoKSA/IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRE
aXNwb3NpdGlvbjo6UmVwb3J0IDogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0
aW9uOjpFbmZvcmNlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5zdGF0dXNDb2RlID0gaHR0cFN0
YXR1c0NvZGU7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmxpbmVOdW1iZXIgPSAgaW5mby5saW5l
TnVtYmVyOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5jb2x1bW5OdW1iZXIgPSBpbmZvLmNvbHVt
bk51bWJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5Q2xpZW50LmgKaW5kZXggOGUwNTE4MjY0MTQwNmYyY2M4Y2FhMmRjNTZhZTMzNjA2
MzRlNmIxZS4uZjJmZTYzODk0NjQ5NmVkYmIzMDM4NDUzOThmZjllNzM5N2MzNGJkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xp
ZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgc3RydWN0IFdFQkNPUkVfRVhQT1JUIENvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudCB7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6SW5pdCYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3MmU0ZjY5MWI0Zjk1MjU3
NWQ5MzExZTRkMGE3ZGUxN2NmZjAyMzY4Li5kMGE0ZmU0YTIwZTBhZThkMjdkZTNkNGI5ZWU2OWU1
MDdhNWEwZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5o
IgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDUwMGZkYjBmZGNjYzNlMzE5YmNk
NjFhZTIzYjRkZWVlMDVkYTlhNWYuLmExNDg4N2ZjNzc1ZTJiOTdiNjlmOWM1OTVhZTgyNzBhYWQ3
MTFjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTXV0ZXguaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCAxM2JhMTVkN2EyY2VhMTc5OTg1
YWExZjdhMGQ1MzNlOWNkNDc4ZjRjLi43MWZiMjIzNWFkZWE3YTdmMjQ1MTZmNDIxOGJkYTg5NTI3
YWQ1MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxh
eW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkJpZGlSZXNvbHZlci5oIgogI2luY2x1ZGUgIkJyZWFraW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZsb2F0aW5nT2JqZWN0cy5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckJveC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDRkOWYyYzcx
OWViYzQ5YWRkYjJiYmViZmVlYzQxYWUxYmNkY2VlZS4uZjE0NDk4MTQ1NmZmZjg4NDFjZGIxNDg1
Y2JlNjVmYzQ4YjI2OTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudFJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCmluZGV4IDgzYTBlYzM5YjQ5YmUzNTk0NmZkZDkxOTRmN2VhYjQyNzc4
MzczZDkuLjI3ZjlkNGUzMzg2OTM4ZmEzYWY4YjBhOGE2YTAxOTNiYzRhMGQ0NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRh
LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYjRlNTMzYTY3OTBjNTMzNjIxNGE0ZjUyNDNiNWJm
ZWI3YjliODgwNS4uNzc3ZDg0MDY2MWRjYmY0ZTAxODg0YTkxOWJlYWQ0ZDE0MzFmODIyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCmluZGV4IDY3ZGY2MTg0MjNiZTFjNTg2YzMyOGNkNjQzMTNkYjU2ZWQ3Y2UzOGIuLmNh
YjYzZjViMTRjZTVlYjg3ZWU0ZDg3YTgwYjM4NjVkZmI2ZTliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMTdkZjk0ZWM0MGNjMmUx
OTY0ZDA1Y2EyODMzMGQ5MDEyOTBlMjA5MS4uMTAyYzRlZTE2YzBkMWFkNGQ4MTU3ZjgxYmU0NjY2
YmY0M2QxNjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGluZy5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggZjUyNzgzYWU4YWY3ZDVkNjNjNWJjOGVhYjZjMzY5YzZk
NGFlOGFlYy4uYjBkMzcxNGIxYmM0Y2M2YmJkNDhhZGI3ZjI5MzY3NzMxNGFhMDg4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIK
QEAgLTE3OTMsNyArMTc5NCw3IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojp1c2VEYXJrQXBwZWFyYW5j
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkudXNlRGFya0FwcGVhcmFuY2UoJnN0eWxl
KCkpOwogfQogCi1PcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gUmVuZGVyT2JqZWN0Ojpz
dHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IFJl
bmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBkb2N1
bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAxMjYwMDA0ZjVjMmY3ZTFkZDAyYjI0MDg1NWQyMTU4
NTViZjZiMzNiLi5jNTM0YzlmZGQwNWQ1ODQ3MGZhN2U2NjE0ODZhNmFlYWNjZDY2OGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0xNjQsNyArMTY0LDcgQEAg
cHVibGljOgogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBlbmNsb3NpbmdGcmFnbWVudGVkRmxv
dygpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSgp
IGNvbnN0OwotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xv
ck9wdGlvbnMoKSBjb25zdDsKIAogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgdm9pZCBzZXRIYXNB
WE9iamVjdChib29sIGZsYWcpIHsgbV9oYXNBWE9iamVjdCA9IGZsYWc7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDdlZTk0NDI2Y2M1MmJhZGI0
MGZmYzRjYjdjZmJkMTI3NzRiY2U3M2EuLjFmZTYzYjE1Nzk2OWRlODA5ZThmYjNhOGU0ODAyMmZi
YjgyOTg2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdo
bGlnaHRDb2xvcigpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRl
ZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
c3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVh
cmFuY2UgfTsKKyAgICAgICAgICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVh
cmFuY2UgfTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCkuYXBwSGlnaGxpZ2h0
Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCA0OGRjZmIzYzhm
YTA2YzM3MjE1YmE0NzA0YzI1MjYwNDliZGI2MTBmLi4zNDM3Y2FjNGVkNzg4OTU0Y2E4NDVlNzIy
YmU5NDhhYTU0YTk2YmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQnJlYWtMaW5lcy5oIgogI2luY2x1ZGUgIkJy
ZWFraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkNoYXJhY3RlclByb3BlcnRpZXMuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggYjkwODJiNTY3Nzk1ZjJjZDVl
NGQ2YTc0ZDcwMzNhODVlODcxYzA1Yy4uOGNiZWJmZWJjYmJmMzhmMjgyYWJjY2M0ZjZkNTAxNWRm
OTZjODY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC02
MDMsNyArNjAzLDcgQEAgTGF5b3V0UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNl
dEZyb21NdXRlQnV0dG9uKGNvbnN0IFJlbmRlckJveCYgbXV0ZUIKIAogI2VuZGlmCiAKLUNvbG9y
IFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7
CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgp
KQpAQCAtNjExLDcgKzYxMSw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJu
IGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkp
CkBAIC02MTksMTIgKzYxOSwxMiBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVy
biBjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYg
Y29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBi
bGVuZFdpdGhXaGl0ZShjb2xvcik7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTYzMiw3ICs2MzIsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPgogICAgIHJldHVybiBjYWNoZS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
cyhvcHRpb25zKSkKQEAgLTY0MCw3ICs2NDAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgog
ICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02NDgsNyArNjQ4LDcgQEAgQ29sb3IgUmVu
ZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok8KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNh
Y2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBA
IC02NTYsNyArNjU2LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjoKICAgICByZXR1cm4gY2Fj
aGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
OjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2Fj
aGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3JzKG9wdGlvbnMpKQpAQCAtNjY0LDcgKzY2NCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjph
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPCiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02NzIsNDcgKzY3Miw0
NyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICAvLyBVc2UgYSBibHVlIGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRo
ZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIHJldHVybiBDb2xvcjo6Ymx1ZTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIHdoaXRlIGNvbG9yIGJ5IGRl
ZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAg
IHJldHVybiBDb2xvcjo6d2hpdGU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAg
ICAgLy8gVXNlIGEgZ3JleSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVtZSBk
b2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICAvLyBUaGlzIGNvbG9yIG1hdGNoZXMgRmlyZWZv
eCdzIGluYWN0aXZlIGNvbG9yLgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDE3NiwgMTc2
LCAxNzYgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBi
bGFjayBjb2xvciBieSBkZWZhdWx0LgogICAgIHJldHVybiBDb2xvcjo6YmxhY2s7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBy
ZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9u
cyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3Iob3B0aW9ucyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CkBAIC0xMjM0LDEwICsxMjM0LDEwIEBAIHZv
aWQgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkKICAgICBQYWdlOjp1cGRh
dGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7CiB9CiAK
LWF1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0IC0+IENvbG9yQ2FjaGUmCithdXRvIFJlbmRlclRoZW1lOjpjb2xv
ckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4gQ29s
b3JDYWNoZSYKIHsKICAgICBhdXRvIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rID0gb3B0aW9u
czsKLSAgICBvcHRpb25zSWdub3JpbmdWaXNpdGVkTGluay5yZW1vdmUoU3R5bGVDb2xvcjo6T3B0
aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnJl
bW92ZShTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgcmV0dXJuIG1f
Y29sb3JDYWNoZU1hcC5lbnN1cmUob3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsudG9SYXcoKSwg
W10gewogICAgICAgICByZXR1cm4gQ29sb3JDYWNoZSgpOwpAQCAtMTI4NCwxMSArMTI4NCwxMSBA
QCB2b2lkIFJlbmRlclRoZW1lOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgc3lzdGVtRm9udElELCBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJiBmbwogICAgIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNj
cmlwdGlvbihzeXN0ZW1Gb250SUQsIGZvbnREZXNjcmlwdGlvbik7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRMaW5rOgotICAgICAgICByZXR1cm4gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAy
NiwgMTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OworICAgICAgICByZXR1cm4g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspID8gU1JH
QkE8dWludDhfdD4geyA4NSwgMjYsIDEzOSB9IDogU1JHQkE8dWludDhfdD4geyAwLCAwLCAyMzgg
fTsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QWN0aXZlbGluazoKICAgICBjYXNlIENTU1ZhbHVl
QWN0aXZldGV4dDoKICAgICAgICAgcmV0dXJuIENvbG9yOjpyZWQ7CkBAIC0xMzY5LDcgKzEzNjks
NyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlk
LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xMzc3LDEzICsxMzc3LDEzIEBAIENv
bG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvCiAgICAgcmV0dXJuIGNhY2hlLnRleHRTZWFyY2hIaWdobGln
aHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93OwogfQog
CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUo
b3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hcHBIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBA
IC0xMzkxLDEzICsxMzkxLDEzIEBAIENvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uCiAgICAgcmV0dXJu
IGNhY2hlLmFwcEhpZ2hsaWdodENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93Owog
fQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25z
KTsKICAgICBpZiAoIWNhY2hlLmRlZmF1bHRCdXR0b25UZXh0Q29sb3IuaXNWYWxpZCgpKQpAQCAt
MTQwNSw3ICsxNDA1LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMKICAgICByZXR1cm4gY2Fj
aGUuZGVmYXVsdEJ1dHRvblRleHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25U
ZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFjdGl2ZWJ1dHRvbnRleHQsIG9wdGlvbnMp
OwogfQpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6c2V0Q3VzdG9tRm9j
dXNSaW5nQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGN1c3RvbUZvY3VzUmluZ0NvbG9y
KCkgPSBjb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICBpZiAoY3VzdG9tRm9jdXNSaW5nQ29sb3IoKS5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaAppbmRleCBlN2U2ZWJiMWI5ZDFlYmIxODgwN2ZiMGFhODkxNmY5YzgwMWY3
ODMxLi44NmY5ZTdkNThlMjFkMDZjYTBkMjIyM2ExZTA0NDY0Mzc0NDMyNWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTQ2LDM0ICsxNDYsMzQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0JveFNoYWRvdyhjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBUZXh0IHNlbGVjdGlvbiBjb2xvcnMu
Ci0gICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2
aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7
CisgICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciB0cmFuc2Zvcm1TZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Q7CiAKICAgICAvLyBMaXN0IGJveCBzZWxlY3Rpb24gY29sb3JzCi0gICAgQ29sb3IgYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7Cisg
ICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCi0gICAg
Q29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Q7CisgICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQogICAgIC8vIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBhcHAgaGlnaGxpZ2h0cy4K
LSAgICBDb2xvciBhcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0OwogI2VuZGlmCiAKLSAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogICAgIENvbG9yIGRhdGVQbGFjZWhvbGRlclRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4
dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgQ29sb3IgZGlzYWJsZWRUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3Qg
Q29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBDb2xv
ciBmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owot
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiBDb2xvcjo6YmxhY2s7IH0K
ICAgICBzdGF0aWMgdm9pZCBzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYpOwog
ICAgIHN0YXRpYyBmbG9hdCBwbGF0Zm9ybUZvY3VzUmluZ1dpZHRoKCkgeyByZXR1cm4gMzsgfQog
ICAgIHN0YXRpYyBmbG9hdCBwbGF0Zm9ybUZvY3VzUmluZ09mZnNldChmbG9hdCBvdXRsaW5lV2lk
dGgpIHsgcmV0dXJuIHN0ZDo6bWF4PGZsb2F0PihvdXRsaW5lV2lkdGggLSBwbGF0Zm9ybUZvY3Vz
UmluZ1dpZHRoKCksIDApOyB9CkBAIC0xODcsNyArMTg3LDcgQEAgcHVibGljOgogCiAgICAgLy8g
U3lzdGVtIGZvbnRzIGFuZCBjb2xvcnMgZm9yIENTUy4KICAgICB2b2lkIHN5c3RlbUZvbnQoQ1NT
VmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11
bU1lbnVMaXN0U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApA
QCAtMjcyLDI1ICsyNzIsMjUgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
YWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCA9IDA7CiAKICAgICAvLyBUaGUgcGxhdGZvcm0gc2Vs
ZWN0aW9uIGNvbG9yLgotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
VGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKICNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKICNpZiAhVVNFKE5FV19USEVNRSkKICAgICAvLyBNZXRob2RzIGZvciBlYWNoIGFwcGVh
cmFuY2UgdmFsdWUuCkBAIC00NTEsNyArNDUxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBDb2xv
ciBkZWZhdWx0QnV0dG9uVGV4dENvbG9yOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIENvbG9yQ2Fj
aGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIENvbG9yQ2FjaGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RTZWFyY2hGaWVsZERlY29y
YXRpb25TdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggMzJhYjVj
MmM5ODYyMzQ0MjNlYTQ5ZmY4NDFjMzU3YTNhOGRkYzZiNi4uZDFkNjIzZTY3MzBmMmMyYzVmNGQ3
YTVmMzJmYTAwOGViMjFjMjI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQWR3YWl0YS5jcHAKQEAgLTEzNSw0OSArMTM1LDQ5IEBAIGJvb2wgUmVuZGVyVGhl
bWVBZHdhaXRhOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxl
bWVudCYgZWxlCiAgICAgcmV0dXJuIGVsZW1lbnQuaXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0
b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFk
d2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1l
QWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5p
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFk
d2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4o
VGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkp
LmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRm
b3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIHJldHVy
biBUaGVtZUFkd2FpdGE6OmZvY3VzQ29sb3Iob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIHJldHVybiBUaGVtZUFkd2FpdGE6OmZv
Y3VzQ29sb3Iob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKIH0KIAogdm9pZCBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQ29sb3JzRGlk
Q2hhbmdlKCkKQEAgLTIwMyw5ICsyMDMsOSBAQCBWZWN0b3I8U3RyaW5nLCAyPiBSZW5kZXJUaGVt
ZUFkd2FpdGE6Om1lZGlhQ29udHJvbHNTY3JpcHRzKCkKIH0KICNlbmRpZgogCi1Db2xvciBSZW5k
ZXJUaGVtZUFkd2FpdGE6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wgdXNlRGFy
a0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogCiAgICAg
c3dpdGNoIChjc3NWYWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKaW5kZXggNmM3
OTkzMjNiN2RkYmJkMTU5OTAxN2Q2MGNmZWNmMDkxMjQ0MDJlYi4uOTkzMzI1YzQxNjY1ZWRkYjM0
ODk3ZmNjN2U1MzM4NzU4NThjMmI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUFkd2FpdGEuaApAQCAtNDYsMTUgKzQ2LDE1IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2Fz
Y2FkZURlc2NyaXB0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyB9OwogCi0gICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmlu
YWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAg
ICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0
Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgcGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIGJv
b2wgcGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgRmxvYXRSZWN0JikgZmluYWw7CkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soY29uc3QgUmVuZGVyT2JqZWN0JiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCiAgICAgSW50U2l6ZSBzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAppbmRleCA0YjEwMWIzOGI1Yzhl
MTRkMGE2NzdmNTA3NDNkMWQ2N2I0NTEzMTRmLi5jYjVlOGQ4ZGE4YzI5YmFlMzBhNWFjMGI1YTJk
YjZmYThkN2FlNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aApAQCAtMTE1LDEwICsxMTUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50U2VhcmNoRmll
bGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZS
RVNIKQotICAgIENvbG9yIGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJv
bFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsKLSAgICBD
b2xvciBjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWdu
LCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0
PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwor
ICAgIENvbG9yIGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVE
ZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KTsKICAgICBSZWZQdHI8R3JhZGllbnQ+IGNoZWNrYm94UmFkaW9CYWNrZ3Jv
dW5kR3JhZGllbnQoY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0
YXRlcz4pOwotICAgIENvbG9yIGNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8
Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsK
KyAgICBDb2xvciBjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xT
dGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwogCiAgICAgYm9v
bCBwYWludENoZWNrYm94KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRSYWRpbyhjb25zdCBSZW5k
ZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
QEAgLTE1NiwxMiArMTU2LDEyIEBAIHByaXZhdGU6CiAKICAgICBib29sIHN1cHBvcnRzQm94U2hh
ZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CiAKLSAgICBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBv
dmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAg
ICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAgIENvbG9y
IHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQpAQCAtMTk4LDcgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAgICBGbG9h
dFJlY3QgYWRkUm91bmRlZEJvcmRlckNsaXAoY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKTsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAg
UmV0YWluUHRyPENJQ29udGV4dD4gbV9jaUNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNjllZTQ5NjMzNjBlOGM2MDY1YzFmZjcxMWYxZmIx
NjZkZTNiNGY1ZS4uMzIxN2Q5MWVmOTg0NWM3MzMyNDY2OGUzOGUzMGY4ZDcxZDI4OTE5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTIzNywxMiAr
MTIzNywxMiBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpwYWludEZpbGVVcGxvYWRJY29uRGVjb3Jh
dGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUgogICAgIGljb24tPnBhaW50KHBhaW50
SW5mby5jb250ZXh0KCksIHRodW1ibmFpbFJlY3QpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlP
Uzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6dHJhbnNwYXJl
bnRCbGFjazsKIH0KQEAgLTEyNjIsMTMgKzEyNjIsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OnN5c3RlbUZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gKmNhY2hlZEZvY3VzUmluZ0NvbG9y
KCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9T
OjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUZvY3VzUmluZ0NvbG9yKCk7CiB9CiAKICNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdo
bGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBleHBvc2UgdGhlIHJlYWwgdmFs
dWUgZnJvbSBVSUtpdC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAyNTUsIDIzOCwgMTkw
IH07CkBAIC0xNDIzLDkgKzE0MjMsOSBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpzZXRGb2N1c1Jp
bmdDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgY2FjaGVkRm9jdXNSaW5nQ29sb3IoKSA9
IGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVl
SUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBj
b25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9
IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKIAog
ICAgIC8vIFRoZSBzeXN0ZW0gY29sb3IgY2FjaGUgYmVsb3cgY2FuJ3QgaGFuZGxlIHZpc2l0ZWQg
bGlua3MuIFRoZSBvbmx5IGNvbG9yIHZhbHVlCiAgICAgLy8gdGhhdCBjYXJlcyBhYm91dCB2aXNp
dGVkIGxpbmtzIGlzIENTU1ZhbHVlV2Via2l0TGluaywgc28gaGFuZGxlIGl0IGhlcmUgYnkKQEAg
LTE0MzcsOCArMTQzNyw4IEBAIENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NW
YWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAKICAgICBhdXRvJiBj
YWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0eWxl
Q29sb3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10gKCkg
LT4gQ29sb3IgewotICAgICAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7Ci0gICAg
ICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVs
KTsKKyAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFp
bnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICAgICAgY29uc3Qg
Ym9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICAgICAg
aWYgKCFnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIGF1dG8gaXQgPSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5maW5kKENT
U1ZhbHVlS2V5IHsgY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsIH0pOwogICAgICAgICAgICAgaWYgKGl0ID09IGdsb2JhbENTU1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcCgpLmVuZCgpKQpAQCAtMjA0Nyw3ICsyMDQ3LDcgQEAgY29uc3RleHBy
IGF1dG8gbmF0aXZlQ29udHJvbEJvcmRlcldpZHRoID0gMS4wZjsKIGNvbnN0ZXhwciBhdXRvIGNo
ZWNrYm94UmFkaW9Cb3JkZXJXaWR0aCA9IDEuNWY7CiBjb25zdGV4cHIgYXV0byBjaGVja2JveFJh
ZGlvQm9yZGVyRGlzYWJsZWRPcGFjaXR5ID0gMC4zZjsKIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVz
PiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9u
U2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGF1dG8gZGVmYXVsdEJvcmRlckNvbG9y
ID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUxhYmVsLCBzdHlsZUNv
bG9yT3B0aW9ucyk7CiAKQEAgLTIwNjAsNyArMjA2MCw3IEBAIENvbG9yIFJlbmRlclRoZW1lSU9T
OjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRl
cz4KICAgICByZXR1cm4gZGVmYXVsdEJvcmRlckNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2ln
biwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitDb2xvciBSZW5kZXJUaGVtZUlP
Uzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwg
T3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGJvb2wgaXNFbXB0eSA9ICFz
dGF0ZXMuY29udGFpbnNBbnkoeyBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkNoZWNrZWQsIENvbnRy
b2xTdGF0ZXM6OlN0YXRlczo6SW5kZXRlcm1pbmF0ZSB9KTsKICAgICBib29sIGlzRW5hYmxlZCA9
IHN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkVuYWJsZWQpOwpAQCAtMjEw
MCwxMiArMjEwMCwxMiBAQCBSZWZQdHI8R3JhZGllbnQ+IFJlbmRlclRoZW1lSU9TOjpjaGVja2Jv
eFJhZGlvQmFja2dyb3VuZEdyYWRpZW50KGNvbnN0IEZsb2F0UmVjdAogICAgIHJldHVybiBncmFk
aWVudDsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9JbmRpY2F0b3JD
b2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1l
SU9TOjpjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6
OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JP
cHRpb25zKQogewogICAgIGlmICghc3RhdGVzLmNvbnRhaW5zKENvbnRyb2xTdGF0ZXM6OlN0YXRl
czo6RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lz
dGVtVGVydGlhcnlMYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpOwogCi0gICAgQ29sb3IgZW5hYmxl
ZEluZGljYXRvckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBz
dHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KTsKKyAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9yQ29sb3IgPSBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwgU3R5bGVDb2xvck9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBpZiAoc3RhdGVzLmNvbnRhaW5zKENvbnRyb2xTdGF0
ZXM6OlN0YXRlczo6UHJlc3NlZCkpCiAgICAgICAgIHJldHVybiBlbmFibGVkSW5kaWNhdG9yQ29s
b3IuY29sb3JXaXRoQWxwaGFNdWx0aXBsaWVkQnkocHJlc3NlZFN0YXRlT3BhY2l0eSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggMWU2MTY4NzYwZjEx
NzQ3NzYxYThhM2MzZTViMmU4ZDZkMmQxYjg4ZC4uYzQxZjc0OTAwOTI1ZWZhMTY1ZWVlZTg5ZDY4
YjhlNjY2MTA1MzU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKQEAgLTUzLDIzICs1MywyMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQ29udHJvbFN0eWxl
ZChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0eWxlJiB1c2VyQWdlbnRTdHlsZSkg
Y29uc3QgZmluYWw7CiAKLSAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
cyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotCi0gICAgQ29s
b3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
LSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1G
b2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c1NlbGVj
dGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVM
aXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykK
LSAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICNlbmRpZgot
ICAgIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1
dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
IAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChD
b250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxsOyB9
CiAKQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogcHJpdmF0ZToKICAgICBTdHJpbmcgZmls
ZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25zdCBGb250Q2FzY2FkZSYsIGlu
dCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkgY29uc3QgZmluYWw7CiAKLSAgICBD
b2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gR2V0IHRoZSBj
b250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSBmb250LiBVc2VkIGJ5IHNvbWUgb2YgdGhlIGNvbnRy
b2xzIChsaWtlIGJ1dHRvbnMpLgogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemVGb3JGb250
KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KaW5kZXggYTE0ZmVjY2NlYmJmN2MxNWFhYjk5YWQ0MDJhYWQ3MjI2ODUy
MGM2MC4uZDQzN2Y0ODI2NjVjMzMzY2EyMzZlMGIzNzU4MjZhM2YyYWE2NGM0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjg0LDE2ICsyODQsMTYg
QEAgTlNWaWV3ICpSZW5kZXJUaGVtZU1hYzo6ZG9jdW1lbnRWaWV3Rm9yKGNvbnN0IFJlbmRlck9i
amVjdCYgbykgY29uc3QKICAgICByZXR1cm4gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZpZXco
KS5mcmFtZVZpZXcoKSwgc3RhdGVzKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRC
YWNrZ3JvdW5kQ29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9t
TlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3Jd
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzAxLDkgKzMwMSw5IEBA
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvCiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3Is
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
LSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAobG9j
YWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkgewogICAgICAgICAvLyBVc2UgYW4g
YWxwaGEgdmFsdWUgdGhhdCBpcyBzaW1pbGFyIHRvIHJlc3VsdHMgZnJvbSBibGVuZFdpdGhXaGl0
ZSgpIG9uIGxpZ2h0IGNvbG9ycy4KICAgICAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRhcmtBcHBl
YXJhbmNlQWxwaGEgPSAwLjg7CkBAIC0zMTMsMjQgKzMxMywyNCBAQCBDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xv
ciwgT3B0aQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKGNvbG9yLCBvcHRpb25zKTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZU1hYzo6c3Vw
cG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorYm9vbCBSZW5kZXJUaGVtZU1hYzo6c3VwcG9ydHNTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gbG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAobG9jYWxBcHBlYXJhbmNlLnVz
aW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05T
Q29sb3Igc2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1cm4geyB9OwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RB
UktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxB
cHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFy
YW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5j
ZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpKQogICAg
ICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3Rl
ZFRleHRDb2xvcl0pOwogICAgIHJldHVybiB7IH07CkBAIC0zNDAsMTAgKzM0MCwxMCBAQCBDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDbwogI2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9E
RV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwog
ICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkQ29udGVudEJhY2tn
cm91bmRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CkBAIC0zNTMs
MTAgKzM1MywxMCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdAogI2VuZGlmCiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwog
I2VuZGlmCkBAIC0zNjQsMTYgKzM2NCwxNiBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PAogCiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBy
ZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5hdGVTZWxlY3RlZENvbnRyb2xU
ZXh0Q29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQot
ICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBM
b2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBj
b2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM4MSwzMiArMzgxLDMyIEBA
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8CiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAg
aWYgKHVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yKCkpCiAgICAgICAgIHJldHVybiBvbGRBcXVh
Rm9jdXNSaW5nQ29sb3IoKTsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKICAgICAvLyBUaGUgY29sb3IgaXMgZXhwZWN0ZWQgdG8gYmUgb3BhcXVlLCBzaW5jZSBD
b3JlR3JhcGhpY3Mgd2lsbCBhcHBseSBvcGFjaXR5IHdoZW4gZHJhd2luZyAoYmVjYXVzZSBvcGFj
aXR5IGlzIG5vcm1hbGx5IGFuaW1hdGVkKS4KICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihb
TlNDb2xvciBrZXlib2FyZEZvY3VzSW5kaWNhdG9yQ29sb3JdKS5vcGFxdWVDb2xvcigpOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0Nv
bG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFsIHZhbHVlIGZyb20gQXBwS2l0Lgog
ICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsKIH0KICNlbmRpZgog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Ig
YWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENvbG9yXSk7CiB9CiAKQEAgLTQ0OSwxMSArNDQ5
LDExIEBAIHN0YXRpYyBTUkdCQTx1aW50OF90PiBtZW51QmFja2dyb3VuZENvbG9yKCkKICAgICBy
ZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmc8U1JHQkE8dWludDhfdD4+KHBpeGVsWzBd
LCBwaXhlbFsxXSwgcGl4ZWxbMl0sIHBpeGVsWzNdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNl
KTsKLSAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7Ci0gICAgY29uc3QgYm9vbCBm
b3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9y
VmlzaXRlZExpbmspOworICAgIGNvbnN0IGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
IGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVk
TGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OkZvclZpc2l0ZWRMaW5r
KTsKIAogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKIApAQCAtMTU3MSw3
ICsxNTcxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0TWVudUxpc3RTdHlsZShSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGUpIGMKICAgICAvLyBTZXQgdGhlIGZvcmVn
cm91bmQgY29sb3IgdG8gYmxhY2sgb3IgZ3JheSB3aGVuIHdlIGhhdmUgdGhlIGFxdWEgbG9vay4K
ICAgICBDb2xvciBjID0gQ29sb3I6OmRhcmtHcmF5OwogICAgIGlmIChlKSB7Ci0gICAgICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zID0gZS0+ZG9jdW1lbnQoKS5zdHls
ZUNvbG9yT3B0aW9ucygmc3R5bGUpOworICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSk7CiAg
ICAgICAgIGMgPSAhZS0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkgPyBzeXN0ZW1Db2xvcihDU1NW
YWx1ZUJ1dHRvbnRleHQsIG9wdGlvbnMpIDogc3lzdGVtQ29sb3IoQ1NTVmFsdWVHcmF5dGV4dCwg
b3B0aW9ucyk7CiAgICAgfQogICAgIHN0eWxlLnNldENvbG9yKGMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggODVkYWFkODU3N2JkOGU3NmM3YWQ5
NzhlMmMyZGQwYzgwNGUxY2I4Yy4uMGQ0NWFkNWU5MjMwZmQyNTk3MzVmYzYxZGU4NWQwOGVlMzJh
Y2EwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBA
IC0yODUsMjUgKzI4NSwyNSBAQCBib29sIFJlbmRlclRoZW1lV2luOjpzdXBwb3J0c0hvdmVyKGNv
bnN0IFJlbmRlclN0eWxlJikgY29uc3QKICAgICByZXR1cm4gaGF2ZVRoZW1lOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVX
aW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xv
cihDT0xPUl9ISUdITElHSFQpOwogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IEdldFJWYWx1
ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvcikgfTsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBUaGlzIGNvbG9yIG1hdGNoZXMg
RmlyZWZveC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAxNzYsIDE3NiwgMTc2IH07CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICBDT0xPUlJFRiBjb2xvciA9IEdl
dFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVFRFWFQpOwogICAgIHJldHVybiBTUkdCQTx1aW50OF90
PiB7IEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvcikg
fTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKG9wdGlv
bnMpOwogfQpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgc3RhdGljIGludCBjc3NWYWx1ZUlkVG9TeXND
b2xvckluZGV4KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkKICAgICB9CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lV2luOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46
OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQp
CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVdpbi5oCmluZGV4IGM4MWI1MGEzMmEyOTNlYjY3YjBiMjYyNzAzZTEwZTUwM2U4NmQ4
MjUuLjZiMDBjZjA3ODRjMmYwN2RhZWM2YzM4ZjYyY2ZkNDQ2YmQyYzdmYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCkBAIC01NCwxMiArNTQsMTIgQEAgcHVi
bGljOgogICAgIC8vIEEgbWV0aG9kIGFza2luZyBpZiB0aGUgdGhlbWUncyBjb250cm9scyBhY3R1
YWxseSBjYXJlIGFib3V0IHJlZHJhd2luZyB3aGVuIGhvdmVyZWQuCiAgICAgYm9vbCBzdXBwb3J0
c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwot
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92
ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRl
OworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBwYWludENoZWNrYm94KGNvbnN0
IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBGbG9hdFJlY3QmIHIp
IG92ZXJyaWRlCiAgICAgeyByZXR1cm4gcGFpbnRCdXR0b24obywgaSwgSW50UmVjdChyKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYWYwNDE5Y2Y2
YzQ5MjVkMWM5NDQ3MjczYTcxMDVkMWM0Yjk4NWExNy4uZDZjYzliNzFhOGFjYjMxOWFlNDViMWMw
ZTdlMDQxYjRlYmFlNjg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdl
dC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKIAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
dHlsZWRNYXJrZWRUZXh0LmNwcAppbmRleCBjOWNmYzdmZjVkYjEwMGE0MWVlNjExNDM4ODY5ZDRh
MWM3YmRlY2VmLi4wNDdmMDJhMTc5ZmE1NjEzYmQ4M2E2ZjU3OTc5YmY2YjE0MDQyNmUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCkBAIC03Myw3
ICs3Myw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJlc29sdmVTdHlsZUZvck1hcmtlZFRl
eHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAgICAgICAgYnJlYWs7CiAjaWYgRU5B
QkxFKEFQUF9ISUdITElHSFRTKQogICAgIGNhc2UgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0OiB7
Ci0gICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHls
ZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OwogICAgICAgICBzdHlsZS5iYWNr
Z3JvdW5kQ29sb3IgPSByZW5kZXJlci50aGVtZSgpLmFwcEhpZ2hsaWdodENvbG9yKHN0eWxlQ29s
b3JPcHRpb25zKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtOTIsNyArOTIsNyBAQCBzdGF0
aWMgU3R5bGVkTWFya2VkVGV4dCByZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtl
ZFRleHQmIG1hcmtlZFRleHQsCiAgICAgfQogICAgIGNhc2UgTWFya2VkVGV4dDo6VGV4dE1hdGNo
OiB7CiAgICAgICAgIC8vIFRleHQgbWF0Y2hlcyBhbHdheXMgdXNlIHRoZSBsaWdodCBzeXN0ZW0g
YXBwZWFyYW5jZS4KLSAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxl
Q29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNl
IH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlv
bnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICAgICBzdHlsZS50ZXh0U3R5bGVzLmZpbGxDb2xvciA9IHJlbmRlcmVy
LnRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9y
T3B0aW9ucyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5
bGUuY3BwCmluZGV4IGJmZjIxN2U5NDAxMmUyMWQ2YzEyYzA0ZTg4Yjg3MDljZjllNTc3ZGIuLmZj
NjhmNDNlZmRlMzZjNGNmOGJlMTUxMWVkZTg2NGZkMGZhNGE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcApAQCAtOTgsOSArOTgsOSBAQCBUZXh0UGFp
bnRTdHlsZSBjb21wdXRlVGV4dFBhaW50U3R5bGUoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBS
ZW5kZXJTdHlsZSYgbGluZQogICAgIGlmIChsaW5lU3R5bGUuaW5zaWRlRGVmYXVsdEJ1dHRvbigp
KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgICAgIGlmIChwYWdl
ICYmIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOworICAgICAgICAgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgICAgICAgICAgaWYgKHBhZ2UtPnVz
ZVN5c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgICAgICAgICBvcHRp
b25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CiAgICAgICAg
ICAgICBwYWludFN0eWxlLmZpbGxDb2xvciA9IFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5kZWZh
dWx0QnV0dG9uVGV4dENvbG9yKG9wdGlvbnMpOwogICAgICAgICAgICAgcmV0dXJuIHBhaW50U3R5
bGU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQzMGEzNDJmNjNiOTM4NDRmNDFiNzU3
YjBkZmFkOWFhYmIyN2NjYzQuLjljZTUxNmI4NjczZjM3NzQ3NDQxMWFmMmIwODQzMGJhZTVkZDE0
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRy
ZWVCdWlsZGVyLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IDQ2ZGJmNWJiMzNkNWU4NWUxNTIxYWJlNzg4YjkxN2ZlMjgxM2M3YTku
LjQzYzQ5Yzk1MGUzYjk5NWM2NWIxNTAyYzU1YjIzNjY4MjE0YTEzNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBAIC00NjMzLDE0ICs0NjM0LDE0IEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmlldyBzdGF0ZXNTdHJpbmcpCiAgICAgaWYgKCFkb2N1
bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZUZsYWdzIHN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3Mgc3RhdGU7CiAgICAgZm9yIChTdHJpbmdWaWV3IHN0YXRlU3RyaW5nIDogc3RhdGVzU3Ry
aW5nLnNwbGl0KCcsJykpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHN0YXRlU3RyaW5nLCAiYXVkaW8iKSkKLSAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAgICAgICAgc3RhdGUuYWRk
KE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwogICAgICAgICBpZiAoZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJjYXB0dXJlZGV2aWNlcyIp
KQogICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dGF0ZVN0cmluZywgInNjcmVlbmNhcHR1cmUiKSkKLSAgICAgICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgICAg
ICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVk
KTsKICAgICB9CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpCkBAIC00
NjU1LDQzICs0NjU2LDQzIEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhZ2VNZWRpYVN0YXRlKCkKIAog
ICAgIGF1dG8gc3RhdGUgPSBkb2N1bWVudC0+cGFnZSgpLT5tZWRpYVN0YXRlKCk7CiAgICAgU3Ry
aW5nQnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkKICAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8sIik7Ci0gICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
IklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1Bs
YXlDYW5kaWRhdGUpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsIik7Ci0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkp
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQ
bGF5VG9FbmQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQbGF5VG9FbmQsIik7Ci0gICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzU291cmNl
RWxlbWVudFBsYXlpbmcpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCiAgICAgICAgIHN0cmluZy5hcHBl
bmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CiAKLSAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkp
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc05l
eHRUcmFja0NvbnRyb2xFbmFibGVkKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNOZXh0VHJh
Y2tDb250cm9sRW5hYmxlZCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQcmV2aW91c1Ry
YWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1ByZXZpb3VzVHJh
Y2tDb250cm9sRW5hYmxlZCwiKTsKIAotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVy
KSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCIpOwotICAgIGlmIChz
dGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlk
ZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzQXVkaW9PclZpZGVvKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVv
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1
ZGlvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVy
ZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
Ikhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVs
ZW1lbnQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LCIpOwotICAgIGlmIChzdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmlu
Zy5hcHBlbmQoIkhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlD
YXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcu
YXBwZW5kKCJIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLCIpOwogCiAgICAgaWYgKHN0cmlu
Zy5pc0VtcHR5KCkpCkBAIC02MTI0LDExICs2MTI1LDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OnN5
c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJr
TW9kCiAgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc1ZhbHVlKTsKICAg
ICBSRUxFQVNFX0FTU0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9yS2V5d29yZChpZCkpOwog
Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgIGlmICh1c2VEYXJrTW9kZUFwcGVh
cmFuY2UpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpCi0g
ICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICAKICAgICByZXR1cm4gc2VyaWFsaXph
dGlvbkZvckNTUyhSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3lzdGVtQ29sb3IoaWQsIG9wdGlv
bnMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhZjc2OTc2MjNjYzljZjQ0NmNlOGRjZTNjZGQ0YzJi
YTI3NDI3NzUzLi5hOGMzZTE4ZTQ3YWVjYWQwYTAyMmEwODRjNDlhMjFmNmM3MTRjMzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCisjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlclNjb3BlLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggMTUzOTkyOGJhZjRjMDU3MWQzNTUyOTY4YTFmYmNmMWYy
Yzc0YmJkZi4uOGIwM2M4MWQwNzViYjljMzMzNDQ1NzY2MzM2M2MxMjMzZTJhYzM5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
bGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogI2luY2x1ZGUgIlJlbW90
ZUNETUZhY3RvcnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDc2ZjEyOTNlNDg0OGU0ZWY0ZTI5
MDRlNTg1NzUxYzRjZjZlNGM4YTkuLjkwMjM2YWNiMWYwNDI3N2E3ODJmNTUzZjk2ZTM2YWE0YWQx
YjZkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE2MTUsNyArMTYxNSw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmIHJlcG9ydFVSTCwgUmVm
PEZvcm1EYXRhCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VuZENTUFZpb2xhdGlvblJl
cG9ydCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKHJlcG9ydFVSTCksIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKHJlcG9ydCkgfSB9LCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlEKTsKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgeyBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgV1RGTW92ZShldmVudEluaXQpIH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKaW5kZXggYjJkMWRjYjdjNzY4MTU3OWExY2Y2ZmZiZDQyNGQ0MWYxMDlkMDU4Mi4u
ZDE3NzZlODFmOWM3NmY4MjRkOWY0YTMyNjQyM2UxOTBkZjg5NWE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0y
MDgsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGll
bnQKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGZp
bmFsOwogICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPFdlYkNvcmU6
OkZvcm1EYXRhPiYmKSBmaW5hbDsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikg
ZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBmaW5hbDsKIAogICAgIHZv
aWQgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25zdCBOZXR3b3JrQ2FjaGU6OkNhY2hl
OjpSZXRyaWV2ZUluZm8mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKaW5kZXggMjc4MWQxMGU5YzY4ZWVjY2I1NmI3NjhiMjQ1MThkOWFjNTQxN2I4OS4uOTE2Y2Ew
ZTMxOTQyNmQxNjZhZGRjMzY0OWE2NDI1ZTYyYjRlMDhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MjYsNiArNzI2LDkgQEAgZGVmIGhlYWRlcnNfZm9y
X3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OjpN
ZWRpYUtleUVycm9yQ29kZSc6IFsnPFdlYkNvcmUvTGVnYWN5Q0RNU2Vzc2lvbi5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCisg
ICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdlYkNv
cmUvTWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSc6IFsnPFdlYkNvcmUv
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1vdXNl
RXZlbnRQb2xpY3knOiBbJzxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbic6IFsnPFdlYkNvcmUvTmV0d29y
a0xvYWRJbmZvcm1hdGlvbi5oPiddLApAQCAtNzQ4LDYgKzc1MSw3IEBAIGRlZiBoZWFkZXJzX2Zv
cl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5JzogWyc8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQnOiBbJzxX
ZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQnOiBbJzxXZWJDb3JlL1NlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlv
bic6IFsnPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2VsZWN0aW9uR2VvbWV0cnknOiBbJyJFZGl0b3JTdGF0ZS5oIiddLAogICAgICAgICAnV2ViQ29y
ZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJU
eXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCBhZDQxMWI4MDYyOThhNGI4NWU4Nzg1YmJmNDc1ZmYyZDkzY2Yx
N2VmLi5jYmNhOTA4ZTM4MzYwZDFkOWM5OTQ0MmUwOTNmYTA4OTE1MWU5NmQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
Mjg0LDcgKzI4NCw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4g
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzPiBtdXRlZFN0YXRlRmxhZ3M7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzPiBtdXRlZFN0YXRlRmxhZ3M7CiAgICAgZGVjb2Rl
ciA+PiBtdXRlZFN0YXRlRmxhZ3M7CiAgICAgaWYgKCFtdXRlZFN0YXRlRmxhZ3MpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNGEwNWQ2MGIyYWNlMTIyNDAxMzQ4YmJhOWFhMWRh
MTc0NmI4OTI0MC4uZWIxZWUwOTU5YTUxM2RiODI1N2Q2NGFkZGNlZWE1MDliN2EzZTg2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMTE5LDcgKzExOSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBmbG9hdCB0b3BDb250ZW50SW5zZXQ7CiAgICAgCiAgICAgZmxvYXQgbWVkaWFWb2x1bWU7Ci0g
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkOworICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CiAgICAgYm9vbCBtYXlT
dGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIGJvb2wgbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVk
IHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApp
bmRleCAyZGIwZjU2OWNiMjI1MDU4OWU3ZWMxNjA1OGRhZmI1YTZhNGU3YmYwLi41NDkxMDJlYjVm
ZWVhYjAwOWJmOTQ3NzUzMmQ0ZjlkNTAxZWE4ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVu
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNl
dDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSB7IH0KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA3MDFm
MWEyOTA4OGQ4NDIwMTYwYzczZTBjZDllZmQzMmRjYzZmMjNkLi4xZmIyZjI3YWQyYjkyMWE4OGVh
Y2FkOGM3OTY4NGI2ODUyMWU2N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKQEAgLTI4MTYsMTQgKzI4MTYsMTQgQEAgdm9pZCBXS1BhZ2VTZXRNZWRpYVZvbHVt
ZShXS1BhZ2VSZWYgcGFnZVJlZiwgZmxvYXQgdm9sdW1lKQogdm9pZCBXS1BhZ2VTZXRNdXRlZChX
S1BhZ2VSZWYgcGFnZVJlZiwgV0tNZWRpYU11dGVkU3RhdGUgbXV0ZWRTdGF0ZSkKIHsKICAgICBD
UkFTSF9JRl9TVVNQRU5ERUQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIGNvcmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZs
YWdzIGNvcmVTdGF0ZTsKIAogICAgIGlmIChtdXRlZFN0YXRlICYga1dLTWVkaWFBdWRpb011dGVk
KQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgaWYgKG11dGVkU3RhdGUgJiBr
V0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQpCiAgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBpZiAo
bXV0ZWRTdGF0ZSAmIGtXS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVkKQotICAgICAgICBjb3JlU3Rh
dGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJ
c011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5z
ZXRNdXRlZChjb3JlU3RhdGUpOwogfQpAQCAtMjk3MSwyNCArMjk3MSwyNCBAQCBib29sIFdLUGFn
ZUlzUGxheWluZ0F1ZGlvKFdLUGFnZVJlZiBwYWdlKQogCiBXS01lZGlhU3RhdGUgV0tQYWdlR2V0
TWVkaWFTdGF0ZShXS1BhZ2VSZWYgcGFnZSkKIHsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9JbXBsKHBhZ2UpLT5yZXBvcnRlZE1lZGlh
U3RhdGUoKTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGNvcmVT
dGF0ZSA9IHRvSW1wbChwYWdlKS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7CiAgICAgV0tNZWRpYVN0
YXRlIHN0YXRlID0ga1dLTWVkaWFJc05vdFBsYXlpbmc7CiAKLSAgICBpZiAoY29yZVN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCisgICAg
aWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFJc1BsYXlpbmdBdWRpbzsKLSAgICBp
ZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFJc1BsYXlp
bmdWaWRlbzsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZTsKLSAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkK
ICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKLSAg
ICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAg
ICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZTsKLSAgICBpZiAo
Y29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
RGlzcGxheUNhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAg
ICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZTsKLSAgICBp
ZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0
ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCiAgICAg
ICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZTsKIAogICAg
IHJldHVybiBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IDAwNDRhODFhMjdhOWJhNTBjOTc4ZDY3MjVkMDY5M2RhMWZiMTA3OWMu
LjU3MmVjOTZkY2E3Yzc1ZjRiMTdiNDgyZTI3YWFlNTJkMjQ0NzFhZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTAzNyw5ICsxMDM3
LDkgQEAgLSAodm9pZClyZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShXS01lZGlhUGxheWJhY2sKIC0gKFdLTWVkaWFDYXB0dXJlU3RhdGUpY2Ft
ZXJhQ2FwdHVyZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5yZXBvcnRlZE1lZGlh
U3RhdGUoKTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkK
ICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Ci0gICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRpYUNh
cHR1cmVTdGF0ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKIH0K
QEAgLTEwNDcsOSArMTA0Nyw5IEBAIC0gKFdLTWVkaWFDYXB0dXJlU3RhdGUpY2FtZXJhQ2FwdHVy
ZVN0YXRlCiAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKW1pY3JvcGhvbmVDYXB0dXJlU3RhdGUKIHsK
ICAgICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwotICAgIGlmIChz
dGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlv
Q2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tN
ZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAo
c3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0Nh
cHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CiAg
ICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAtMTA2MSwxNiArMTA2MSwx
NiBAQCAtICh2b2lkKXNldE1pY3JvcGhvbmVDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0dXJlU3Rh
dGUpc3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9
IFtdIHsgfTsKIAogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgewot
ICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIFtjb21wbGV0aW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKICAgICBp
ZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSkKLSAgICAgICAgbXV0ZWRTdGF0
ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJl
SXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICBlbHNlIGlmIChzdGF0ZSA9
PSBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQpCi0gICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOworICAg
ICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVk
aW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21w
bGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKQEAgLTEwODMsMTYgKzEwODMsMTYgQEAg
LSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7
IH07CiAKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpIHsKLSAgICAg
ICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdzKCk7CiAgICAgaWYgKHN0
YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUpCi0gICAgICAgIG11dGVkU3RhdGUucmVt
b3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0
ZWQpOworICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgZWxzZSBpZiAoc3RhdGUgPT0gV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQotICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAg
bXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0YXRlLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CkBAIC0yMjcxLDcgKzIyNzEsNyBAQCAtICh2b2lk
KV9jbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucwogLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZQog
ewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKLSAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKKyAg
ICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIC0gKHZvaWQpX3N0b3BBbGxNZWRpYVBsYXliYWNr
CkBAIC0zNTk0LDE0ICszNTk0LDE0IEBAIC0gKEJPT0wpX21lZGlhQ2FwdHVyZUVuYWJsZWQKIC0g
KHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRlKW11dGVkU3RhdGUKIHsKICAg
ICBUSFJPV19JRl9TVVNQRU5ERUQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzIGNvcmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZUZsYWdzIGNvcmVTdGF0ZTsKIAogICAgIGlmIChtdXRlZFN0YXRlICYgX1dLTWVkaWFBdWRpb011
dGVkKQotICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgaWYgKG11dGVkU3RhdGUg
JiBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQpCiAgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBp
ZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhU2NyZWVuQ2FwdHVyZU11dGVkKQotICAgICAgICBjb3Jl
U3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1
cmVJc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogCiAgICAgX3BhZ2UtPnNldE11dGVk
KGNvcmVTdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGYwOTRmNTM4OTM5NDQ5NTVmNzk4MzljMjVkOWRlZTky
NWRmNDcwMGUuLjRlNWQ3MzI1NzE0NGI1MWRkNDJhNGVmYWNjNzBlZWZjY2U4NTNlOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CkBAIC00ODY4LDcgKzQ4NjgsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfY29yc19hbGxv
d2xpc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIGNvbgogICAgIGdldFBh
Z2Uod2ViVmlldykuc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFdURk1vdmUoYWxsb3dMaXN0VmVj
dG9yKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1
cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZCBjYXB0dXJlS2luZCwgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUgY2FwdHVyZVN0
YXRlLCBib29sIGlzRnJvbURpc3BsYXlDYXB0dXJlID0gZmFsc2UpCitzdGF0aWMgdm9pZCB3ZWJr
aXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGNhcHR1cmVLaW5kLCBXZWJLaXRN
ZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wgaXNGcm9tRGlzcGxheUNhcHR1cmUg
PSBmYWxzZSkKIHsKICAgICBhdXRvJiBwYWdlID0gZ2V0UGFnZSh3ZWJWaWV3KTsKICAgICBhdXRv
IG11dGVkU3RhdGUgPSBwYWdlLm11dGVkU3RhdGVGbGFncygpOwpAQCAtNDg3NywxMyArNDg3Nywx
MyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgIGNhc2UgV0VCS0lUX01FRElBX0NBUFRV
UkVfU1RBVEVfTk9ORToKICAgICAgICAgcGFnZS5zdG9wTWVkaWFDYXB0dXJlKGNhcHR1cmVLaW5k
LCBbd2ViVmlldywgY2FwdHVyZUtpbmRdIHsKICAgICAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtp
bmQpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW86CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgICAgICBnX29iamVjdF9ub3RpZnlf
YnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfTUlDUk9QSE9O
RV9DQVBUVVJFX1NUQVRFXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6Vmlk
ZW86CiAgICAgICAgICAgICAgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdl
YlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9QX0NBTUVSQV9DQVBUVVJFX1NUQVRFXSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgogICAgICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KQEAgLTQ4OTEsMTYgKzQ4OTEsMTYgQEAgc3RhdGljIHZvaWQgd2Via2l0V2Vi
Vmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3Jl
OjoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9B
Q1RJVkU6CiAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtpbmQpIHsKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAgICAgICAg
ICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgICAgIGlmIChpc0Zyb21EaXNwbGF5Q2FwdHVyZSkKICAgICAgICAgICAgICAgICBtdXRl
ZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5D
YXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbXV0ZWRT
dGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgorICAgICAgICBjYXNl
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTQ5MDgsMTYgKzQ5MDgsMTYgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Nv
bmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjoKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9NVVRFRDoK
ICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgIG11
dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAg
aWYgKGlzRnJvbURpc3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRk
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVk
KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDk2NSw3
ICs0OTY1LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2NhbWVyYV9jYXB0dXJlX3N0YXRl
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE1lZGkKICAgICBpZiAod2Via2l0X3dlYl92
aWV3X2dldF9jYW1lcmFfY2FwdHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQ
VFVSRV9TVEFURV9OT05FKQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29u
ZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSk7CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1l
ZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZDo6VmlkZW8sIHN0YXRlKTsKIH0KIAogLyoqCkBAIC01MDA3LDcgKzUwMDcsNyBAQCB2b2lkIHdl
YmtpdF93ZWJfdmlld19zZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRlKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdAogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21pY3JvcGhvbmVf
Y2FwdHVyZV9zdGF0ZSh3ZWJWaWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05F
KQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0
dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLCBzdGF0ZSk7CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJW
aWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIHN0YXRl
KTsKIH0KIAogLyoqCkBAIC01MDQ5LDUgKzUwNDksNSBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19z
ZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE1l
ZAogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Rpc3BsYXlfY2FwdHVyZV9zdGF0ZSh3ZWJW
aWV3KSA9PSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FKQogICAgICAgICByZXR1cm47
CiAKLSAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSwgdHJ1ZSk7
CisgICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVz
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCmluZGV4
IGUxZGE0NmYyNmIxOGM3N2YyYTE4OWVkODY1NDBiYTYxMzIyOWJjZmIuLjhhMTYyMDc3OGVkZDlj
YmZmMTIwOTliMTUyYWQ1MGI0NzllZGYxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KTsKLV9XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzKTsKK19XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRp
ZXMubW0KaW5kZXggNTNiYmY0MjAxNDcxZDlkOGE0ZjY2ZTcwMWY2NDM4OGVlZWQ1ZDE1YS4uOTg1
MGE4ZmNhNjcwZGM3ODU1ZjQxMDA2N2IwNWMxMmY4MDg4MDZiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KQEAgLTI4LDI5ICsyOCwyOSBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
IHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRv
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQg
bWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lOwot
ICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBt
ZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVN
aWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
KQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJl
Y2F0ZWRBY3RpdmVDYW1lcmE7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJl
RGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0
ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAg
aWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlk
ZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYTsKIAogICAgIHJldHVybiBtZWRpYUNhcHR1
cmVTdGF0ZTsKIH0KIAotX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQorX1dLTWVkaWFNdXRl
ZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBzdGF0ZSkKIHsKICAgICBfV0tNZWRpYU11dGVkU3RhdGUgbWVkaWFNdXRlZFN0YXRl
ID0gX1dLTWVkaWFOb25lTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0
ZWRTdGF0ZSB8PSBfV0tNZWRpYUF1ZGlvTXV0ZWQ7CiAgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKQogICAgICAgICBtZWRp
YU11dGVkU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkOwotICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpT
Y3JlZW5DYXB0dXJlSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlh
U2NyZWVuQ2FwdHVyZU11dGVkOwogICAgIHJldHVybiBtZWRpYU11dGVkU3RhdGU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggMzI5ZGI3OTFjZjQz
MjcyNDYzNjM0MjgwMDUwNGIwOGVhODlkYjBlMy4uZTY3OTY5NWEzZmUxYTBhZWYyOGRkNWFmMDI0
OGQ2OTA2ZjM0MTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdl
Rm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmluYWw7Ci0gICAgICAgIHZv
aWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICAg
ICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9M
SU5LUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4
IDExYjdhNDA1OGE1YjY0MWFiODg0YTk3NjU3N2NmMjEwM2JjYjZiZGQuLmQ3OGY0Y2MwZDU2NTU5
NGMwZTg4MWE0NThiZmQyMzgyNzUxMjI0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTIyNyw3ICsxMjI3LDcgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94
eSYgcGFnZSwKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJh
bWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRl
KQogewogICAgIGlmICghbV91aURlbGVnYXRlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjM5MzdhYzA0Mzc3MzkyZDMwYjE4MzNkZWUw
YzAxZTZjYTE2ODlmMy4uMmI3MjQ1ODY5MTZiZjVlMWNiYjY1M2JlMWU2YTI0YjFhZDk5MWQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNDksNyArNDksNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLXN0YXRpYyBjb25zdCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgYWN0aXZlQ2FwdHVyZU1hc2sgeyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSB9Oworc3RhdGljIGNvbnN0IE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgYWN0aXZlQ2FwdHVyZU1hc2sgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCkBAIC05NSw3ICs5NSw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXCiAKIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoKQogewotICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kOjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZSB7IE1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucmV2b2tl
U2FuZGJveEV4dGVuc2lvbnNJZk5lZWRlZChwYWdlKCkucHJvY2VzcygpKTsKICAgICBwcm94aWVz
KCkucmVtb3ZlKHRoaXMpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN0b3BDYXB0dXJlKCkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwogICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKLSAgICBt
X3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvKTsKKyAgICBtX3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCkBAIC04NjMsNyAr
ODYzLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3lu
Y1dpdGhXZWJDb3JlUHJlZnMoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0ZUNoYW5nZWQoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3U3RhdGUpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpjYXB0dXJlU3RhdGVDaGFuZ2VkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xk
U3RhdGUsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCiB7CiAgICAgaWYg
KCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNjRlYmZhNWU0NTlhMTZlNGNkMzdlNDkzNjlhOTA0
YWU2MmRlYjc2MC4uNjc0YmFiNGRiN2M5YzY0ZGVkODU3ODc0MWRiZDJhYjk5NmRjNDA2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyQ2FjaGVkU3RhdGUoKTsKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hh
bmdlZCgpOwogCi0gICAgdm9pZCBjYXB0dXJlU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKTsKKyAgICB2b2lkIGNhcHR1cmVTdGF0ZUNoYW5nZWQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7CiAgICAgdm9pZCBzeW5jV2l0
aFdlYkNvcmVQcmVmcygpIGNvbnN0OwogCiAgICAgZW51bSBjbGFzcyBSZXF1ZXN0QWN0aW9uIHsK
QEAgLTE2Nyw3ICsxNjcsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPERlbmllZFJlcXVlc3Q+
IG1fZGVuaWVkUmVxdWVzdHM7CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbV9jYXB0dXJlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0ZTsKICAgICBSdW5Mb29wOjpUaW1lcjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV93YXRjaGRvZ1RpbWVyOwogICAgIFNlY29u
ZHMgbV9jdXJyZW50V2F0Y2hkb2dJbnRlcnZhbDsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDYxYzA3ZjZkZmI5
YjQ2MzY1ZDc2N2U0MTMzY2JkNjhkYTBkMzJhN2MuLmQzMzFmMmNhN2QwM2E3MDNiNWNiNmRkMGM4
ZmQ4YjU5MTI4NGZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMjExMywxMSArMjExMywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlQWN0aXZp
dHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gZmxhZ3NUb1VwZAogICAgICAg
ICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpOwogICAgIGlm
IChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUgJiYgcGFnZUNs
aWVudCgpLmlzVmlzdWFsbHlJZGxlKCkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0
aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpOwotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0
aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1fbWVkaWFTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgIShtX211dGVkU3RhdGUuY29udGFp
bnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCisgICAgaWYgKGZs
YWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0YXRlLmNv
bnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgIShtX211
dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkp
KQogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSk7
CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0xvYWRpbmcgJiYgbV9w
YWdlTG9hZFN0YXRlLmlzTG9hZGluZygpKQogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFj
dGl2aXR5U3RhdGU6OklzTG9hZGluZyk7Ci0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0
eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueSh7IE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9KSkK
KyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEg
JiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfSkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQo
QWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSk7CiB9CiAKQEAgLTYyMzYsNyArNjIzNiw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWVkaWFWb2x1bWUodm9sdW1lKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgbV9tdXRlZFN0YXRlID0gc3RhdGU7CiAKQEAgLTYyNjcsNyAr
NjI2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVy
ZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVk
aWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtOTQ0
Niw3ICs5NDQ2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5hdmlnYXRpb25HZXN0dXJlU25hcHNo
b3RXYXNSZW1vdmVkKCkKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlbW92ZU5hdmlnYXRp
b25HZXN0dXJlU25hcHNob3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRl
KQordm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBpZiAoIW1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuc2hvdWxkQmVSdW5uYWJsZSgpKQpAQCAt
OTQ1Nyw3ICs5NDU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEKICAgICAgICAgdXBkYXRl
UGxheWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlLCBDYW5EZWxheU5vdGlmaWNhdGlvbjo6WWVz
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0
aW9uIGNhbkRlbGF5Tm90aWZpY2F0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlp
bmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlLCBD
YW5EZWxheU5vdGlmaWNhdGlvbiBjYW5EZWxheU5vdGlmaWNhdGlvbikKIHsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIGF1dG8gdXBkYXRlTWVkaWFDYXB0dXJlU3RhdGVJbW1lZGlhdGVs
eUlmTmVlZGVkID0gWyZdIHsKQEAgLTk0ODYsMTQgKzk0ODYsMTQgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0dXJlU3RhdGUgPSBt
X21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOwot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdNZWRpYUNhcHR1
cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
TWFzazsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlh
Q2FwdHVyZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlTWFzazsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVNYXNrOwogI2VuZGlmCiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyB9
OwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVkaWFT
dGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sg
eyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyB9OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3Mgb2xkU3RhdGUgPSBtX21lZGlhU3RhdGU7CiAKLSAgICBib29sIHBsYXlpbmdBdWRpb0No
YW5nZXMgPSAob2xkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pKSAhPSAobmV3U3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pKTsKKyAgICBib29sIHBsYXlpbmdBdWRpb0NoYW5nZXMgPSAo
b2xkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlv
KSkgIT0gKG5ld1N0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykpOwogICAgIGlmIChwbGF5aW5nQXVkaW9DaGFuZ2VzKQogICAgICAgICBwYWdlQ2xp
ZW50KCkuaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCk7CiAgICAgbV9tZWRpYVN0YXRlID0gbmV3
U3RhdGU7CkBAIC05NTE3LDcgKzk1MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogICAg
IGlmICgob2xkU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSAhPSAobV9tZWRpYVN0YXRlICYgcGxh
eWluZ01lZGlhTWFzaykpCiAgICAgICAgIG1fdWlDbGllbnQtPmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKCp0aGlzKTsKIAotICAgIGlmICgob2xkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkgIT0gKG1fbWVkaWFTdGF0ZS5jb250YWlu
c0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSkKKyAgICBp
ZiAoKG9sZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSkKICAgICAgICAgdmlkZW9Db250cm9sc01hbmFnZXJE
aWRDaGFuZ2UoKTsKIAogICAgIG1fcHJvY2Vzcy0+dXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9u
cygpOwpAQCAtOTcxNyw3ICs5NzE3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWUKICAgICBw
YWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cigqdGhpcywgY29udGV4dElkLCBwYWdlQ2xpZW50KCkucm9vdFZpZXdUb1NjcmVlbihJbnRSZWN0
KHJlY3QpKSwgaGFzVmlkZW8sIHVzZURhcmtBcHBlYXJhbmNlKCkpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlUHJveHk6OnBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgcGFnZUNsaWVudCgpLm1lZGlhU2Vzc2lvbk1hbmFnZXIo
KS5jbGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDc1MWNjNDc5ZWM5ZmQ2OWNkMzcz
MDc3MzcyODAxNzUwZTc5YjJjMmQuLmRmN2RjOWRjNzRlNmZlM2RkMmY0OWE4NzA5OGI1ZTk1ODk3
NGQ0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzk2LDEz
ICsxMzk2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCByZW5kZXJUcmVlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyVHJlZVNpemU7IH0KIAogICAgIHZvaWQgc2V0TWVkaWFWb2x1bWUo
ZmxvYXQpOwotICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwotICAgIGJv
b2wgaXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH07CisgICAg
dm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOworICAgIGJvb2wgaXNBdWRpb011dGVk
KCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9OwogICAgIHZvaWQgc2V0TWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyhib29sKTsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
b3coKSBjb25zdCB7IHJldHVybiBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7IH0KICAgICB2
b2lkIHNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBtZWRpYUNhcHR1cmVF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhcHR1cmVFbmFibGVkOyB9Ci0gICAgdm9p
ZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CisgICAgdm9pZCBzdG9w
TWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogCiAgICAgdm9pZCBwYXVzZUFsbE1l
ZGlhUGxheWJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1c3Bl
bmRBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0xNTA4
LDE4ICsxNTA4LDE4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTaG93aW5nTmF2aWdhdGlvbkdl
c3R1cmVTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaG93aW5nTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdDsgfQogCi0gICAgYm9vbCBpc1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJu
ICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvKTsgfQotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICBib29sIGlzUGxheWluZ0F1
ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsgfQorICAgIHZvaWQgaXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAgICAg
dm9pZCB1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKCk7CiAKICAgICBlbnVtIGNsYXNz
IENhbkRlbGF5Tm90aWZpY2F0aW9uIHsgTm8sIFllcyB9OwotICAgIHZvaWQgdXBkYXRlUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywg
Q2FuRGVsYXlOb3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8pOworICAgIHZv
aWQgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MsIENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2FuRGVsYXlOb3RpZmljYXRpb246
Ok5vKTsKICAgICBib29sIGlzQ2FwdHVyaW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFz
ayk7IH0KICAgICBib29sIGlzQ2FwdHVyaW5nVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlTWFz
ayk7IH0KLSAgICBib29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9t
ZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7IH0KLSAgICBib29sIGhhc0FjdGl2ZVZpZGVv
U3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7
IH0KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgcmVwb3J0ZWRN
ZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlIHwg
KG1fbWVkaWFTdGF0ZSAtIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2sp
OyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3Rh
dGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQorICAgIGJvb2wgaGFzQWN0
aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnko
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSk7IH0KKyAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0YXRlIC0gV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0
ZWRTdGF0ZTsgfQogCiAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9w
bGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KTsKIApAQCAt
MTYwMyw3ICsxNjAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7
CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBib29sIGhhc1ZpZGVvKTsKLSAgICB2b2lk
IHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAgICAgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpOwogICAgIHZvaWQgbW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKTsKQEAgLTI5MDQsNyArMjkwNCw3
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6TGF5b3V0UG9pbnQgbV9tYXhTdGFibGVMYXlvdXRW
aWV3cG9ydE9yaWdpbjsKIAogICAgIGZsb2F0IG1fbWVkaWFWb2x1bWUgeyAxIH07Ci0gICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKICAgICBi
b29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyB7IHRydWUgfTsKICAgICBib29sIG1fbWVk
aWFQbGF5YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFDYXB0dXJl
RW5hYmxlZCB7IHRydWUgfTsKQEAgLTI5NDAsMTAgKzI5NDAsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZVdhbnRzU3luY2hyb25vdXNSZXBseSB7IGZhbHNlIH07
CiAgICAgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fbmV4dEFjdGl2aXR5U3Rh
dGVDaGFuZ2VDYWxsYmFja3M7CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogCiAgICAgLy8gVG8gbWFrZSBzdXJlIGNhcHR1cmUgaW5k
aWNhdG9ycyBhcmUgdmlzaWJsZSBsb25nIGVub3VnaCwgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0
YXRlIGlzIHRoZSBzYW1lIGFzIG1fbWVkaWFTdGF0ZSBleGNlcHQgdGhhdCB3ZSBtaWdodCBkZWxh
eSBhIGJpdCB0cmFuc2l0aW9uIGZyb20gY2FwdHVyaW5nIHRvIG5vdC1jYXB0dXJpbmcuCi0gICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fcmVwb3J0ZWRNZWRpYUNh
cHR1cmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1f
cmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZTsKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlUHJv
eHk+IG1fdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZVRpbWVyOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBEZWZhdWx0TWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgeyAzX3Mg
fTsKICAgICBTZWNvbmRzIG1fbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgeyBEZWZhdWx0TWVk
aWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MmU1NmRmZmU2ZTVmNDBiM2VhNTMyZWFk
ZTNmZDE5OGQ4ZGVmMGU1Li4xMThhNzFhOTc5NTZjOTFiNTZlNjI4MGM0MjFjZjhhMzI2MzI4ZDlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC00NjIsNyArNDYyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBD
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKICNlbmRpZgogCi0gICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorICAgIElzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gc3RhdGUp
CiAgICAgSGFuZGxlQXV0b3BsYXlFdmVudChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCBldmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4gZmxhZ3Mp
CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC00ODEsNyArNDgxLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBBZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBSZW1v
dmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBTaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaWNrZXJMb2NhdGlvbiwgYm9vbCBoYXNWaWRlbykKLSAg
ICBQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSkKKyAgICBQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU+IG1lZGlhU3RhdGUpCiAgICAgU2V0TW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlclN0YXRlKFN0cmluZyBuYW1lLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSBwaWNrZXJTdGF0ZSkKICAgICBNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA4ZDQ3YTYzZjZjYTc2YjQxZWM4NmVhN2M0
NDE3MmQ3MzBhMDQyYmE5Li5hZjQwOTYxZGEwZjlhOGVjNDg3NTA4YmYyMTQxMzIwN2ZhMDdkZjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE4
NDcsNyArMTg0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjptdXRlQ2FwdHVyZUluUGFnZXNF
eGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogCiAjZW5kaWYKIAotdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
ZmxhZ3MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgYm9vbCBtdXRlZEZvckNhcHR1cmUgPSBmbGFncy5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwog
ICAgIGlmICghbXV0ZWRGb3JDYXB0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCA5Y2YyM2FkODkyOWRiZTlhODAzYzBhYzAwNGFhMzNkYzJmMmM2NzFl
Li44NzJmMDJlMTU0NzA4MTZiYzJlY2FhYzY0ZjFhZmExMmU1OGVlZDQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDA2LDcgKzQwNiw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBtdXRlQ2FwdHVyZUluUGFnZXNFeGNlcHQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOwogICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQgcGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3MpOworICAgIHZvaWQgcGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzKTsKICAgICB2b2lk
IHBhZ2VJc0JlY29taW5nSW52aXNpYmxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcAppbmRleCBmZmRkNDMzNDU3ZWNlZmNkNmFkZDhkOWE0MjE0YmFiNDVk
ZDVlNjUwLi4xZjE3NmViZDk4OGNlMDJmZWU2ZDgyMDg0MjYyZTg0ZjFlNTZhZTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXIu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAKaW5kZXggZDA3ZjZlNzJhNGI0OTVjZDk0MzUwOTJj
Zjc2ZTBiN2E1OWI4MjBjOS4uZGRhZjg2M2ZlNzViNzU5YjliZTgwNDU3MjllYWI0NTFlYzExMGMz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsu
Y3BwCkBAIC01NCw3ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NWFBhdGhSZXN1bHRQcml2
YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DU1NJbXBvcnRSdWxlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9ET01FeGNlcHRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudElubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0V4ZWNTdGF0ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTNkNmNjMzJmNjU0OWZhMGZhYjRhMjQ1
MDhmZTIyZjA0N2Y5ZDMzNS4uZDNhYWQ2ZWEyNjE2OGEyMWI4M2Q1MzBlN2FiNmRkNDdhMjY3ZjIx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTU5LDcgKzU5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01vdXNlRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJbmxpbmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUHJveHlTZXJ2ZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhYTlkM2VjZTNkNjI1ODlkNmJiYWVj
OTE0YjYzNTZkNTA0YTRlOWJhLi41YWJjNDg2ZTBjNTkxMGFkZThiOGM2ZmM4ZDhmOTBhOWY5NmVi
NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
CkBAIC0xODYsNyArMTg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1lZGlhQ2FuU3RhcnQoV2Vi
Q29yZTo6RG9jdW1lbnQmKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXIKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcGFnZU11dGVkU3Rh
dGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAogICAgIC8vIFBsdWdpbkNvbnRyb2xsZXIKQEAgLTI3
NiwxMSArMjc2LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BsdWdpbklzUGxheWluZ0F1ZGlv
IHsgZmFsc2UgfTsKIH07CiAKLWlubGluZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgUGx1Z2luVmlldzo6bWVkaWFTdGF0ZSgpIGNvbnN0CitpbmxpbmUgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBQbHVnaW5WaWV3OjptZWRpYVN0YXRlKCkgY29u
c3QKIHsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFT
dGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGU7CiAgICAgaWYgKG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8pCi0gICAgICAgIG1lZGlhU3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsKKyAgICAgICAg
bWVkaWFTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKTsKICAgICByZXR1cm4gbWVkaWFTdGF0ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCAxMjBhMDRkMzZmMDM4YWM3MzE5MTU1MmVjZjQ1ZTMyMTRlMTViN2VlLi5hMjM5NmNl
MmMyOTRlODI2ZWU4NmQzZjc2ZDlmNWE3MTNiOTk2MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtMTI1Miw3ICsxMjUyLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmkKICAgICByZXR1
cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmll
dyhmcmFtZVZpZXcpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgbV9wYWdlLmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHN0
YXRlKTsKIH0KQEAgLTEzODQsNyArMTM4NCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpCiAg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKGNvbnRleHRJZCwgcmVjdCwgaXNWaWRlbykpOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7
CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggNjQ0ODJhNDJlNGVjNzJkNTJhYTg0NmE1Nzg0NWExNDY4NDY2YzcxMC4u
Yjk5MzhmMmJmYTYxMDBiMjk2MjNjZDAzMDVjZTBiMTRjNDMyMjE1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMzUyLDcgKzM1Miw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBjb25zdCBm
aW5hbDsKIAotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIGlzUGxheWluZ01lZGlh
RGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwog
ICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRp
b25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgZmluYWw7CiAKICNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCkBAIC0zOTEsNyArMzkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFk
ZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
cikgZmluYWw7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmLCBib29sKSBmaW5hbDsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICB2
b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlckVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIGZpbmFsOwogICAgIHZvaWQgbW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTZlZTQyMGY0NWE0Mjc1OWUwNjE0
Y2I1MDBjYTZlZjZiNTI0YzkwNC4uZGU4YzVmMzdiMDJkMTEyMTYwOGQyOTc5NGM1ZjViODA2ZGM4
ZmVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTQzNzUsNyArNDM3NSw3IEBAIHZvaWQgV2ViUGFnZTo6c2VuZFZpb2xhdGlvblJlcG9ydFdo
ZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoRnJhbWVJZGVudGlmCiAgICAgICAgIFdl
YkNvcmU6OnNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3Bv
bnNlKCpmcmFtZS0+Y29yZUZyYW1lKCksIGNvb3AsIGRpc3Bvc2l0aW9uLCBjb29wVVJMLCBuZXh0
UmVzcG9uc2VVUkwsIGNvb3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgbmV4dFJlc3BvbnNlT3Jp
Z2luLnNlY3VyaXR5T3JpZ2luKCksIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwgdXNl
ckFnZW50KTsKIH0KIAotdm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIGF1dG8qIGZyYW1lID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkK
QEAgLTU1NzUsMTMgKzU1NzUsMTMgQEAgdm9pZCBXZWJQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9h
dCB2b2x1bWUpCiAgICAgbV9wYWdlLT5zZXRNZWRpYVZvbHVtZSh2b2x1bWUpOwogfQogCi12b2lk
IFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQ
YWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wYWdlLT5z
ZXRNdXRlZChzdGF0ZSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2lu
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtp
bmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIG1fcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShraW5k
KTsKQEAgLTc0NTEsNyArNzQ1MSw3IEBAIHZvaWQgV2ViUGFnZTo6c3luY2hyb25pemVDT1JTRGlz
YWJsaW5nUGF0dGVybnNXaXRoTmV0d29ya1Byb2Nlc3MoKQogICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0Q09SU0Rpc2FibGlu
Z1BhdHRlcm5zKG1faWRlbnRpZmllciwgbV9jb3JzRGlzYWJsaW5nUGF0dGVybnMpLCAwKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYlBhZ2U6OmlzUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
CiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJc1BsYXlpbmdNZWRpYURpZENo
YW5nZShzdGF0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IGMxMzg1NTczYjBiZTVmZWM4MDE1MGE5NWZiMzk1MTk0M2E1MDQ2NjYuLmMyN2Q0
MDBiNjZkMzdkYmUwYTllNTRkMjdhYmY0NDBjNDlkNDExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQ0OCw3ICs0NDgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBT
dHJpbmcmIGVuZHBvaW50LCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24sIFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6RGVzdGluYXRpb24sIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAgICAgdm9pZCBz
ZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5Jiwg
V2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYg
cHJldmlvdXNSZXNwb25zZVVSTCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBj
b29wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHByZXZpb3VzUmVz
cG9uc2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBTdHJpbmcmIHJlcG9ydFRvSGVhZGVyVmFsdWUpOwogICAgIHZvaWQgc2VuZFZp
b2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSYs
IFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwm
IG5leHRSZXNwb25zZVVSTCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBjb29w
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG5leHRSZXNwb25zZU9y
aWdpbiwgYm9vbCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2UsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KTsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudDo6SW5pdCYmKTsKKyAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudEluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdB
cmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3
aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CkBAIC0x
MDI3LDkgKzEwMjcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVSZXNvdXJjZVJlcXVlc3Qo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgc2V0TWVkaWFW
b2x1bWUoZmxvYXQpOwotICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQg
c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
b3coYm9vbCk7Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCB1cGRhdGVNYWlu
RnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5nKCk7CiAKQEAgLTE0MjEsNyArMTQyMSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyKTsKICNlbmRpZgogCi0gICAgdm9pZCBpc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZv
aWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyk7CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAgICAgdm9pZCByZXF1ZXN0
VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA4YWZjNGVhNWUz
Y2QwMWMyYWMzYTRhMzQxZjMxNmE5YTIxMTMzMmUxLi43ODJmZjI4MmJhYTNkZDhhMzhiMGE4YWNh
MzE5MzMyYTlhM2M4MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGVtYmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5kcG9pbnQsIGVudW06Ym9vbCBXZWJDb3Jl
OjpDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGVudW06dWludDhfdCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBVUkwgYmxvY2tlZFVSTCkKICAgICBT
ZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdUb0NPT1BSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVy
UG9saWN5IGNvb3AsIGVudW06Ym9vbCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24gZGlzcG9zaXRp
b24sIFVSTCBjb29wVVJMLCBVUkwgcHJldmlvdXNSZXNwb25zZVVSTCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBjb29wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHByZXZpb3VzUmVzcG9uc2VPcmlnaW4sIFN0cmluZyByZWZlcnJlciwgU3RyaW5n
IHVzZXJBZ2VudCwgU3RyaW5nIHJlcG9ydFRvSGVhZGVyVmFsdWUpCiAgICAgU2VuZFZpb2xhdGlv
blJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGlj
eSBjb29wLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBV
UkwgY29vcFVSTCwgVVJMIG5leHRSZXNwb25zZVVSTCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBjb29wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IG5leHRSZXNwb25zZU9yaWdpbiwgYm9vbCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2Us
IFN0cmluZyB1c2VyQWdlbnQpCi0gICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQorICAgIEVucXVldWVTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQgZXZlbnRJbml0KQog
CiAgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKIApAQCAtNDE3LDkgKzQxNyw5IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICAjIE1lZGlhCiAgICAgU2V0TWVkaWFWb2x1
bWUoZmxvYXQgdm9sdW1lKQotICAgIFNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGVGbGFncyBtdXRlZCkgLT4gKCkgQXN5bmMKKyAgICBTZXRNdXRlZChPcHRpb25TZXQ8
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+IG11dGVkKSAtPiAoKSBBc3luYwogICAg
IFNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBtYXlTdGFydE1lZGlhKQotICAgIFN0
b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBr
aW5kKSAtPiAoKSBBc3luYworICAgIFN0b3BNZWRpYUNhcHR1cmUoZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCiAKICAg
ICBTZXRDYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoYm9vbCBjYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwpCiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9vbCBjYW5SdW5Nb2RhbCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQppbmRleCA4ZWE0MDQzZTE2
MTVlMzE5NjU3OWIwNjAwYjYwMGQ1Njg2YzY2YTRlLi42MmZhNjIyMDI4NjVkZmFkYzUxYzI1ODUy
NzY2N2IzZmJmYTczYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRG9jdW1lbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3Vt
ZW50Lm1tCkBAIC02MCw5ICs2MCw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NTU1N0eWxlRGVjbGFy
YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29tbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9E
T01XaW5kb3cuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRG9jdW1lbnRGcmFnbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaD4KKyNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRJbmxpbmVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0RvY3VtZW50VHlwZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9IVE1MQ29sbGVjdGlvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxYzU3Njc5Mzdj
NjU0OWZhMWNlNDljOTM4NTJjYTRlZTNiN2FkZTZjLi4zNTU1ZDU0NGNhNzRiNzExOWQ2YjA2NzYy
NjY3ZTJjNDE3NTFkMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjQzLDcgKzI0Myw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJl
bW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBoYXNWaWRlbyAqLykgZmluYWw7Ci0gICAg
dm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFs
OwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wp
IGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShj
b25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0
YXRlKSBmaW5hbDsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlz
c1BvcHVwKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYTQ2YjFhZGE2MDQ5N2Rh
N2Y1ZWVlMjdmODExZTMyZTdjMDgyNmUxMS4uMTY5M2Q4NzVmZTAwODU0ZjkyZDViYTMxNmQ1Zjcz
MTFkODdkOGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTEyOSw3ICsxMTI5LDcgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGkKICAgICBbbV93ZWJWaWV3IF9zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXI6Y29udGV4dElkIGxvY2F0aW9uOmxvY2F0aW9uIGhhc1ZpZGVvOmhhc1ZpZGVvXTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVE
aWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQs
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFttX3dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2U6Y29udGV4dElkIHN0YXRlOnN0YXRlXTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLmgKaW5kZXggOGNhMzI5NDdhNWI0NmUwNjdiOGU4YmFlNDQ2MzkzZWJi
OTBlODZlZi4uMzk2NTU1Y2QxZjk4YjZiYzEzNDQ1MDU3ZWRjYTU3NmZmZDRlYjYzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
KTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBi
b29sIGhhc1ZpZGVvKTsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyk7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRl
KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2Nr
U3RhdGUpOwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9w
dXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQppbmRleCA3ZGJkNTg5NDc1NDA1YTE2
ZWJkZDBmYTliY2ZhNjJjMzM3ZTc0MTUyLi41Y2ZmYmNmYzNmNWVhYzZlNWViODJlZWEwM2VjOGIw
YzVhOThlNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
Yk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCkBAIC01OCw3ICs1OCw3
IEBAIHZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyCiAgICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0
SWQsIFdlYkNvcmU6OkludFJlY3QocmVjdCksIGhhc1ZpZGVvLCBtX3BhZ2UgPyBtX3BhZ2UtPnVz
ZURhcmtBcHBlYXJhbmNlKCkgOiBmYWxzZSk7CiB9CiAKLXZvaWQgV2ViTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlcjo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewog
ICAgIFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLmNsaWVudFN0YXRl
RGlkQ2hhbmdlKCp0aGlzLCBjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjMjY0YWZhODYyZmU4OWNmZDg4MDU3OTFm
YWEyMmZlNDMzNTA5OTU3Li42ZDY5N2RkODdiZDcwNmJhOWRhNzQzOWYyZGIyZDVjMTVhNDRkZDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC05MjQx
LDcgKzkyNDEsNyBAQCAtICh2b2lkKV9zaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZQogICAgIFtzZWxmIF9kZXZpY2VQ
aWNrZXJdLT5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCByZWN0SW5TY3JlZW5D
b29yZGluYXRlcywgaGFzVmlkZW8pOwogfQogCi0tICh2b2lkKV9wbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyKWNvbnRleHRJZCBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzKXN0YXRlCistICh2b2lkKV9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0
YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyKWNvbnRleHRJZCBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cylzdGF0ZQogewogICAgIFtzZWxmIF9kZXZpY2VQaWNrZXJdLT5wbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggYTQ3ZGEy
Y2Y0ZDc0OTQ5NjBmNWM1MDhmMjJiN2YxNTBhMjdkOGRhNy4uY2NkOGNkNzNhNDFlMzlhMWE3M2Vm
MTk0MTU0ZjE5Mjk0ZDIxZTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0zMzYsNyArMzM2LDcgQEAgV2ViTGF5b3V0TWls
ZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+KTsKIC0gKHZvaWQpX2FkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OihXZWJDb3Jl
OjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZDsKIC0gKHZv
aWQpX3JlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OihXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZDsKIC0gKHZvaWQpX3Nob3dQbGF5
YmFja1RhcmdldFBpY2tlcjooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciljb250ZXh0SWQgbG9jYXRpb246KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilsb2Nh
dGlvbiBoYXNWaWRlbzooQk9PTCloYXNWaWRlbzsKLS0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mpc3RhdGU7CistICh2b2lkKV9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyKWNvbnRleHRJZCBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncylzdGF0ZTsKIC0gKHZvaWQpX3NldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5h
YmxlZDooYm9vbCllbmFibGVkOwogLSAodm9pZClfc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJOYW1lOihOU1N0cmluZyAqKW5hbWUgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpc3RhdGU7CiAtICh2b2lkKV9tb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckRpc21pc3NQb3B1cDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcAppbmRleCA2YTQzZjkyNjQ4MGRmZjQ2ZTlh
NjI5NzNiZGMwNWY2MjY4YzViYTBlLi5mMzc2MjhjZjU4MDZjMDRlYWUwNGMyMjA3ODNkYmUzOTgw
YzQ4MWEyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9j
dW1lbnRPcmRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rv
Y3VtZW50T3JkZXIuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
IAotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3Vt
ZW50SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTEJvZHlFbGVtZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9IVE1MRGl2RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTEh0
bWxFbGVtZW50Lmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440900</attachid>
            <date>2021-10-11 23:55:32 -0700</date>
            <delta_ts>2021-10-12 08:16:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211011235531.patch</filename>
            <type>text/plain</type>
            <size>278582</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4
IDk4N2NiYTRjMzFiNzBlNThiNDFlM2E2NmFjY2YwYmEyYTZmNzU4OGUuLjM5ZjJhMDM5YzAyNThh
MTY1MzNkYjk1YTA1YWM5ODkyMzJmMThjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5
UG9saWN5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY2ODQ4NmZk
ODdmY2ZlNDRlMjhjMWM1ZDFhNzY4MmNiOWJhZTcyMzYuLjYzMjNmNWQ2NGNiYzZiYzZiMDIyZjA1
NTgzODkwNmMwM2Y3YjUzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ29tbW9uVk0u
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01XcmFw
cGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZUNvbG9yLmNwcAppbmRleCA2YzA4NWE4MDBjZGY0YWYzNGIyMzUyYzI1Y2Fi
YjEzOWViMDVlNmRlLi4wMzg2ZTM2NjA5ZTRjZThkNzQwYzc5ZjE4NjdlNzY2N2JlZDJjNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotQ29sb3IgU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1
ZUlEIGtleXdvcmQsIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zKQorQ29sb3IgU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlEIGtleXdvcmQsIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykKIHsKICAgICBpZiAoY29uc3QgY2hhciogdmFsdWVOYW1lID0g
Z2V0VmFsdWVOYW1lKGtleXdvcmQpKSB7CiAgICAgICAgIGlmIChjb25zdCBOYW1lZENvbG9yKiBu
YW1lZENvbG9yID0gZmluZENvbG9yKHZhbHVlTmFtZSwgc3RybGVuKHZhbHVlTmFtZSkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUNvbG9yLmgKaW5kZXggZTRlNThkZjljNWVmZTQ4NzUyY2U4OGYxMjQxMGNlMjM5
ZjEzOTI3Ni4uMzIxNDRmNGYxZjY1YjYwZjY4NmRmMjc2ZjI1NGU5ZjIwZGQ2Yzc3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVDb2xvci5oCkBAIC0zNywxNSArMzcsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdHJ1Y3QgU3R5bGVDb2xvciB7Ci0gICAgZW51bSBjbGFzcyBPcHRpb25zIDogdWlu
dDhfdCB7Ci0gICAgICAgIEZvclZpc2l0ZWRMaW5rID0gMSA8PCAwLAotICAgICAgICBVc2VTeXN0
ZW1BcHBlYXJhbmNlID0gMSA8PCAxLAotICAgICAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwg
MiwKLSAgICAgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSAxIDw8IDMKLSAgICB9
OworZW51bSBjbGFzcyBTdHlsZUNvbG9yT3B0aW9ucyA6IHVpbnQ4X3QgeworICAgIEZvclZpc2l0
ZWRMaW5rID0gMSA8PCAwLAorICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCisgICAg
VXNlRGFya0FwcGVhcmFuY2UgPSAxIDw8IDIsCisgICAgVXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwgPSAxIDw8IDMKK307CiAKLSAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tS2V5d29yZChD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8T3B0aW9ucz4pOworc3RydWN0IFN0eWxlQ29sb3IgeworICAg
IHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pOwogICAgIHN0YXRpYyBib29sIGlzQWJzb2x1dGVDb2xvcktleXdvcmQo
Q1NTVmFsdWVJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTeXN0ZW1Db2xv
cktleXdvcmQoQ1NTVmFsdWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApp
bmRleCBiYjhkNTNjY2M0NDVjNzBjZmE4MmZlY2Y2MzVkNWNiMjA0NmY2NGE3Li4yZTY1YzYyNDQ5
NzMzN2U2YjkwMGFlMzkwMGMxYTEyNmM5N2Q2Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3Rl
ckRhdGEuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChD
aGFyYWN0ZXJEYXRhKTsKIHN0YXRpYyBib29sIGNhblVzZVNldERhdGFPcHRpbWl6YXRpb24oY29u
c3QgQ2hhcmFjdGVyRGF0YSYgbm9kZSkKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IG5vZGUuZG9j
dW1lbnQoKTsKLSAgICByZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6
RE9NQ0hBUkFDVEVSREFUQU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRp
b25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSkKKyAgICBy
ZXR1cm4gIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6RE9NQ0hBUkFDVEVSREFU
QU1PRElGSUVEX0xJU1RFTkVSKSAmJiAhZG9jdW1lbnQuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5
cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEpCiAgICAgICAgICYm
ICFkb2N1bWVudC5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTVNVQlRSRUVNT0RJRklFRF9M
SVNURU5FUik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RN
dXRhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5oCmluZGV4IDI5NjY3Njc3NjhmMGQ3MTQ3NDJlMzZiY2U1YjYxMDg2OTc3ZjkxZmYuLjY0Yzky
NDY1ZjJhMTAzYjNhOTkwZTYxYTNjZjEyOGEwOTViMmJjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaApAQCAtMzEsNyArMzEsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVy
LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAt
NzYsNyArNzYsNyBAQCBjbGFzcyBDaGlsZExpc3RNdXRhdGlvblNjb3BlIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBDaGlsZExpc3RNdXRhdGlvblNjb3BlKENvbnRhaW5lck5vZGUmIHRhcmdldCkK
ICAgICB7Ci0gICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICBpZiAodGFyZ2V0
LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCkpCiAgICAgICAgICAgICBtX2FjY3VtdWxhdG9yID0gQ2hpbGRM
aXN0TXV0YXRpb25BY2N1bXVsYXRvcjo6Z2V0T3JDcmVhdGUodGFyZ2V0KTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCAyYjU5YjM2YmM4OWFkMmVkZjk1Mjk5
NDUxNmRhOTg5N2EwN2Y0NzhlLi5hZDhhNzU0OTRmYmVkMDI5ZTgxNjJkMGNiYTVlZTRhOGUyMGQx
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgQUxXQVlTX0lOTElORSBOb2RlVmVjdG9yIENvbnRhaW5lck5vZGU6OnJlbW92ZUFsbENoaWxk
cmVuV2l0aFNjcmlwdEFzc2VydGlvbihDaGkKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQo
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcik7CiAgICAgICAgIFNjcmlwdERp
c2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLSAgICAg
ICAgaWYgKFVOTElLRUxZKGRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0
YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0KSkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRvY3Vt
ZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGU6OkNoaWxkTGlzdCkpKSB7CiAgICAgICAgICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11
dGF0aW9uKCp0aGlzKTsKICAgICAgICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbikK
ICAgICAgICAgICAgICAgICBtdXRhdGlvbi53aWxsUmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZThiYzU2ZTc2ZTZmNjRjOTZmNzFhZmM2M2NjMmQ3
NmQxMmZmMGNhNC4uYWRmNTM1NTJmZTA3ZjU1YTdmMTE5MzQ4MGY1NWNjMmJkZTFiYTY1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiRGVidWdQ
YWdlT3ZlcmxheXMuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZvbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgpAQCAt
MTc3LDYgKzE3OCw3IEBACiAjaW5jbHVkZSAiUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24u
aCIKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJRdWlya3MuaCIKKyNpbmNs
dWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAi
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxkSXRlcmF0
b3IuaCIKQEAgLTIzOSw2ICsyNDEsNyBAQAogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1
ZGUgIlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2
ZXJzYWwuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVG91
Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJUcmVl
V2Fsa2VyLmgiCkBAIC05NzksNyArOTgyLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzZXRMaW5rQ29s
b3IoKQogCiB2b2lkIERvY3VtZW50OjpyZXNldFZpc2l0ZWRMaW5rQ29sb3IoKQogewotICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBtX3Zpc2l0ZWRMaW5rQ29sb3IgPSBTdHlsZUNvbG9y
Ojpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlV2Via2l0TGluaywgc3R5bGVDb2xvck9wdGlvbnMo
bnVsbHB0cikgfCBTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogfQogCiB2b2lk
IERvY3VtZW50OjpyZXNldEFjdGl2ZUxpbmtDb2xvcigpCkBAIC0zNTc4LDYgKzM1ODEsMTMgQEAg
UmVmUHRyPFJUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlckNvbm5lY3Rpb24+IERvY3VtZW50Ojpj
cmVhdGVSVENEYXRhQ2hhbm5lbFJlbW8KICAgICByZXR1cm4gcGFnZS0+bGliV2ViUlRDUHJvdmlk
ZXIoKS5jcmVhdGVSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uKCk7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCX1JUQykKK3ZvaWQgRG9jdW1lbnQ6OnNldFJUQ05ldHdvcmtNYW5hZ2Vy
KFJlZjxSVENOZXR3b3JrTWFuYWdlcj4mJiBydGNOZXR3b3JrTWFuYWdlcikKK3sKKyAgICBtX3J0
Y05ldHdvcmtNYW5hZ2VyID0gV1RGTW92ZShydGNOZXR3b3JrTWFuYWdlcik7Cit9CisjZW5kaWYK
KwogYm9vbCBEb2N1bWVudDo6Y2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTQ0MDMsMTggKzQ0
MTMsMTggQEAgdm9pZCBEb2N1bWVudDo6bm90ZVVzZXJJbnRlcmFjdGlvbldpdGhNZWRpYUVsZW1l
bnQoKQogdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEoKQogewogICAgIEFTU0VS
VCghbV9hdWRpb1Byb2R1Y2Vycy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZTsKICAgICBmb3IgKGF1dG8mIGF1ZGlvUHJvZHVjZXIgOiBtX2F1ZGlvUHJvZHVj
ZXJzKQogICAgICAgICBzdGF0ZS5hZGQoYXVkaW9Qcm9kdWNlci5tZWRpYVN0YXRlKCkpOwogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0ZS5hZGQoTWVkaWFTdHJlYW1UcmFjazo6
Y2FwdHVyZVN0YXRlKCp0aGlzKSk7CiAgICAgaWYgKG1fYWN0aXZlU3BlZWNoUmVjb2duaXRpb24p
Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CiAjZW5kaWYKIAogICAgIGlmICht
X3VzZXJIYXNJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkKLSAgICAgICAgc3RhdGUuYWRkKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVu
dCk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlcklu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKIAogICAgIGlmIChzdGF0ZSA9PSBtX21lZGlhU3Rh
dGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY3MjUsNyArNjczNSw3IEBAIHZvaWQgRG9jdW1lbnQ6
OmRpc3BhdGNoUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgcGVyc2lzdGVk
KQogICAgIGRpc3BhdGNoV2luZG93RXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5wYWdlc2hvd0V2ZW50LCBwZXJzaXN0ZWQpLCB0aGlzKTsKIH0KIAotdm9pZCBE
b2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgRG9jdW1lbnQ6OmVucXVl
dWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudChUYXNr
U291cmNlOjpET01NYW5pcHVsYXRpb24sIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25FdmVudCwgV1RGTW92ZShl
dmVudEluaXQpLCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKIH0KQEAgLTc1MDksMTUgKzc1MTks
MTUgQEAgYm9vbCBEb2N1bWVudDo6dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IERvY3VtZW50OjpzdHlsZUNvbG9yT3B0
aW9ucyhjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPiBvcHRpb25zOwogICAgIGlmICh1c2VTeXN0ZW1BcHBlYXJhbmNlKCkpCi0gICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAg
ICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7
CiAgICAgaWYgKHVzZURhcmtBcHBlYXJhbmNlKHN0eWxlKSkKLSAgICAgICAgb3B0aW9ucy5hZGQo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBvcHRpb25z
LmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogICAgIGlmICh1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZl
bCk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKQEAgLTc2OTQsNyArNzcwNCw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xp
ZW50JiBjbGllbnQsIGJvb2wKICAgICBwYWdlLT5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoaXQt
PnZhbHVlLCBwb3NpdGlvbiwgaXNWaWRlbywgcm91dGVTaGFyaW5nUG9saWN5LCByb3V0aW5nQ29u
dGV4dFVJRCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIERvY3VtZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQm
IGNsaWVudCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBQYWdl
KiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTgxOTksNyArODIwOSw3
IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCiAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lkIERvY3VtZW50OjpzdG9wTWVkaWFDYXB0
dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgRG9jdW1lbnQ6
OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsK
ICAgICBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKCp0aGlzLCBraW5kKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggMzg2ZTM3ODI4MDg4ZjNmZDFlYTdiZmM4MDY4MmU5NWE4NTA4OTAw
Ni4uZDJiZWNlYjUzYjE4MDY0NzJiYjM2M2U1MGJjZjUwMGI5NjVjYTY5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJEaXNhYmxlZEFkYXB0YXRpb25z
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRm9jdXNPcHRpb25zLmgi
CiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yQ2xpZW50LmgiCkBAIC00MywzMCArNDIsMjEgQEAKICNp
bmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
LSNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3Rp
Zmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1F
dmVudC5oIgogI2luY2x1ZGUgIlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJSVENOZXR3b3JrTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9s
aWN5LmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4u
aCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIgogI2luY2x1
ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKLSNpbmNsdWRlICJTdHlsZUNvbG9yLmgiCi0jaW5j
bHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2luY2x1
ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
IlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIlVzZXJBY3Rpb25FbGVtZW50U2V0LmgiCiAjaW5jbHVk
ZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5U3RhdGUuaCIKLSNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTk2
LDExICs4NiwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFRleHRTdHJlYW07CiB9CiAKK25h
bWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBBcHBIaWdobGlnaHRTdG9yYWdlOwogY2xh
c3MgQXR0cjsKK2NsYXNzIENhbnZhc0Jhc2U7CiBjbGFzcyBDREFUQVNlY3Rpb247CiBjbGFzcyBD
U1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ1NTRm9udFNlbGVjdG9yOwpAQCAtMTMyLDYg
KzEyNyw3IEBAIGNsYXNzIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjsKIGNsYXNzIERvY3VtZW50
UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sOwogY2xhc3MgRG9jdW1lbnRU
aW1lbGluZTsKK2NsYXNzIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjsKIGNsYXNzIERvY3Vt
ZW50VHlwZTsKIGNsYXNzIEVkaXRpbmdCZWhhdmlvcjsKIGNsYXNzIEVkaXRvcjsKQEAgLTE4Myw2
ICsxNzksNyBAQCBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xp
ZW50OworY2xhc3MgTWVkaWFQcm9kdWNlcjsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKQEAg
LTE5Niw3ICsxOTMsOSBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb247CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUXVpcmtzOworY2xh
c3MgUlRDTmV0d29ya01hbmFnZXI7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFJlZ2lvbjsKIGNsYXNz
IFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrOwpAQCAtMjIzLDYgKzIyMiw3IEBAIGNsYXNzIFN0eWxlU2hlZXRD
b250ZW50czsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRB
dXRvU2l6aW5nOworY2xhc3MgVGV4dEVuY29kaW5nOwogY2xhc3MgVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVHJhbnNmb3JtU291
cmNlOwpAQCAtMjUwLDIwICsyNTAsMjkgQEAgc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBz
dHJ1Y3QgQm91bmRhcnlQb2ludDsKIHN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGE7CiBzdHJ1Y3Qg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOworc3RydWN0IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnRJbml0OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGVu
dW0gQ29sbGVjdGlvblR5cGU7CiAKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUg
OiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1
aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJpbmdV
cGRhdGVTdGVwIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRpb25zIDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgOiB1aW50OF90Owog
Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgPSBP
cHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OwogdXNpbmcgUGxhdGZvcm1EaXNwbGF5
SUQgPSB1aW50MzJfdDsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIGNsYXNzIFJlc29sdmVyOwogY2xh
c3MgU2NvcGU7CitjbGFzcyBVcGRhdGU7CiB9CiAKIGVudW0gUGFnZXNob3dFdmVudFBlcnNpc3Rl
bmNlIHsgUGFnZXNob3dFdmVudE5vdFBlcnNpc3RlZCwgUGFnZXNob3dFdmVudFBlcnNpc3RlZCB9
OwpAQCAtMzU0LDcgKzM2Myw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0g
RXZlbnRUYXJnZXQ6OldlYWtWYWx1ZVR5cGU7CiAgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OndlYWtQ
dHJGYWN0b3J5OwogCi0gICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRp
bmdzJiwgY29uc3QgVVJMJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxEb2N1bWVu
dD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJik7CiAgICAgc3RhdGljIFJlZjxE
b2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRlcihGcmFtZSYsIGNvbnN0IFVSTCYp
OwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCkBAIC00NjAs
MTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVs
dENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0OwogCi0gICAgU3RyaW5nIGNoYXJzZXQo
KSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2RpbmcoKTsgfQorICAgIGlubGluZSBTdHJp
bmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjaGFyYWN0ZXJT
ZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGlu
ZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nKCkgY29uc3Q7
CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gdGV4dEVuY29kaW5n
KCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmKTsgLy8g
VXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5LgogCkBAIC01NzksNyArNTg4LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJh
bmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKGNvbnN0
IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBjb25zdCBSZW5kZXJPYmplY3Qm
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsK
QEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCB1cGRhdGVMYXlvdXRJ
ZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVuc2lvbnNDaGVjayA9IEFsbERpbWVu
c2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNoZSogZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2FjaGUqIGV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0
Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmplY3RDYWNoZSgpOwogCkBAIC03MTMs
NyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgUlRDTmV0d29y
a01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1cm4gbV9ydGNOZXR3b3JrTWFuYWdl
ci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtN
YW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZN
b3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UlRD
TmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRp
b25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUeXBlKSBjb25zdDsKICAg
ICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbXV0
YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0gICAgYm9vbCBoYXNNdXRhdGlvbk9i
c2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzOyB9Ci0gICAg
dm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgdHlw
ZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlwZXM7IH0KKyAgICBpbmxpbmUgYm9v
bCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSkg
Y29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuICFt
X211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE11dGF0aW9u
T2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBn
ZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBudWxscHRy
OyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFza1Rv
RGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJlZjxFdmVudD4mJik7CiAgICAgdm9p
ZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYpOwogICAgIHZvaWQgZGlzcGF0Y2hQ
YWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYg
b2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAgdm9pZCBkaXNwYXRjaFBvcHN0YXRl
RXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzdGF0ZU9iamVjdCk7CiAKQEAg
LTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigp
OyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQogCi0gICAgYm9vbCBpc1NhbWVPcmln
aW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVP
cmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW5Bc1Rv
cERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRGb3JjZU5vT3BlbmVyQmFzZWRPbkNP
T1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVy
UG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IGZpbmFsOwpAQCAtMTQwMiw5
ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQXVkaW9Qcm9k
dWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBdWRp
b1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lkIHNldEFjdGl2ZVNwZWVjaFJlY29n
bml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KKyAgICBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVt
ZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVj
ZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0NhcHR1
cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVk
aWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCk7CiAKQEAgLTE0MTIsNyAr
MTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiwgYm9vbCwg
Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYs
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAgIHZvaWQgc2V0UGxheWJhY2tUYXJn
ZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgUmVmPE1lZGlhUGxheWJh
Y2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgYm9vbCk7CkBAIC0xNDUx
LDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lk
IHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBtX2hhc0hhZENhcHR1cmVNZWRpYVN0
cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOyB9Ci0g
ICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQp
OworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgog
CkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV93cml0ZVJl
Y3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2lnbk1vZGUgeyBp
bmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0
ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBi
b29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50IHsgZmFsc2UgfTsKICAgICBC
YWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENhY2hlU3RhdGUgeyBOb3RJbkJhY2tG
b3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVy
cmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKICAg
ICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5OwogCi0g
ICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgeyAwIH07
CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7CiAK
ICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsKQEAgLTIyMjksNDMgKzIyMzUsNiBA
QCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChEb2N1
bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2RpbmcoKSBj
b25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhpcy0+ZGVjb2RlcigpKQotICAgICAg
ICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7
Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1lbnQ6OnRlbXBsYXRlRG9jdW1lbnQo
KSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0ID8gdGhpcyA6IG1f
dGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5lIEFYT2JqZWN0Q2FjaGUqIERvY3Vt
ZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAotewotICAgIGlmICghaGFzRXZlckNy
ZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0KLWlubGluZSBSZWY8RG9jdW1lbnQ+
IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudChudWxscHRyLCBzZXR0aW5n
cywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRlQWNjZXNzS2V5
Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vzc0tleUNhY2hlKSkKLSAgICAgICAg
aW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsKLX0KLQotLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSBEb2N1bWVudCBjbGFzcyBkZWZp
bml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgotCi1pbmxpbmUgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgpOwotfQotCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRG9jdW1lbnQmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oCmluZGV4
IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3MThmM2UuLmRkMjUwYWUyYzg4OWRl
YjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRJbmxp
bmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRleHRFbmNvZGluZyBEb2N1bWVudDo6
dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4dEVuY29kaW5nKCk7CiB9CiAKK2lu
bGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIHRleHRF
bmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3RyaW5nIERvY3VtZW50OjpjaGFyc2V0
KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5nKCk7IH0KKwogaW5saW5lIGNvbnN0
IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDogbV90ZW1wbGF0ZURvY3VtZW50Lmdl
dCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZVNsb3dDYXNl
KCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0NhcHR1cmluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7Cit9CisK
K2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAoreworICAgIHJldHVybiBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30KKworaW5saW5lIGJvb2wgRG9jdW1l
bnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0eU9y
aWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsgfQorCisKIC8vIFRoZXNlIGZ1bmN0
aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0aGUgRG9jdW1lbnQgY2xhc3MgZGVm
aW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4KIAogaW5saW5lIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5NTJiMTkyZTQxMjQwNTZhMDM4NTMy
ZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBhMjI2MDkxNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJET01SZWN0TGlzdC5oIgog
I2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9v
bC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggNDc2ZjhkYWI5YjY1
MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uZDk2MTY0M2QyNWE1Nzc5OWVjYjIwZTI5Zjdk
MWViMjY5OWZmZDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApA
QCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6On5NdXRhdGlvbk9ic2VydmVyKCkK
IAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9wdGlvbnMoTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9wdGlvbnMgJiAoQXR0cmlidXRlcyB8
IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAgICAmJiAoKG9wdGlvbnMgJiBBdHRy
aWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRWYWx1ZSkpCi0gICAgICAgICYmICgo
b3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZUZpbHRlcikpCi0g
ICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEpIHx8ICEob3B0aW9ucyAmIENoYXJh
Y3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KE11dGF0
aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlcykKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
TXV0YXRpb25UeXBlOjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSkpCisgICAgICAgICYmIChvcHRpb25zLmNvbnRhaW5zKE11
dGF0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT2JzZXJ2YXRpb25G
bGFnczo6QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoTXV0
YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSB8fCAhb3B0aW9ucy5jb250YWlucyhEZWxpdmVyeUZs
YWdzOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTXV0
YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0KQogewot
ICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAoaW5pdC5jaGlsZExpc3QpCi0gICAgICAg
IG9wdGlvbnMgfD0gQ2hpbGRMaXN0OworICAgICAgICBvcHRpb25zLmFkZChNdXRhdGlvblR5cGU6
OkNoaWxkTGlzdCk7CiAgICAgaWYgKGluaXQuc3VidHJlZSkKLSAgICAgICAgb3B0aW9ucyB8PSBT
dWJ0cmVlOworICAgICAgICBvcHRpb25zLmFkZChPYnNlcnZhdGlvbkZsYWdzOjpTdWJ0cmVlKTsK
ICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVPbGRWYWx1ZS52YWx1ZV9vcihmYWxzZSkpCi0gICAgICAg
IG9wdGlvbnMgfD0gQXR0cmlidXRlT2xkVmFsdWU7CisgICAgICAgIG9wdGlvbnMuYWRkKERlbGl2
ZXJ5RmxhZ3M6OkF0dHJpYnV0ZU9sZFZhbHVlKTsKICAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
T2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBvcHRpb25zIHw9IENoYXJhY3RlckRh
dGFPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoRGVsaXZlcnlGbGFnczo6Q2hhcmFjdGVy
RGF0YU9sZFZhbHVlKTsKIAogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlRmlsdGVy
OwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewogICAgICAgICBmb3IgKGF1dG8mIHZh
bHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkKICAgICAgICAgICAgIGF0dHJpYnV0
ZUZpbHRlci5hZGQodmFsdWUpOwotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZUZpbHRlcjsK
KyAgICAgICAgb3B0aW9ucy5hZGQoT2JzZXJ2YXRpb25GbGFnczo6QXR0cmlidXRlRmlsdGVyKTsK
ICAgICB9CiAKLSAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVl
KCkgOiAob3B0aW9ucyAmIChBdHRyaWJ1dGVGaWx0ZXIgfCBBdHRyaWJ1dGVPbGRWYWx1ZSkpKQot
ICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZXM7CisgICAgaWYgKGluaXQuYXR0cmlidXRlcyA/
IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogb3B0aW9ucy5jb250YWluc0FueSh7IE9ic2VydmF0
aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlciwgRGVsaXZlcnlGbGFnczo6QXR0cmlidXRlT2xkVmFs
dWUgfSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6QXR0cmlidXRlcyk7CiAK
LSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkg
OiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0g
Q2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKERlbGl2ZXJ5RmxhZ3M6OkNoYXJhY3Rl
ckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSk7CiAKICAgICBpZiAoIXZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmgKaW5kZXggMmFmMjYzYmQ0YTcyNTRhMjBhM2I5MzUzMTdiNzk2OTFhZjRjYzdkYS4u
MmQzMmNhNjI0NjI0NjA4YmQ0Y2QzYzkwYTMxZGQ4YTc5NWM4MzIzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCkBAIC01MywzMCArNTQsMzEgQEAgY2xh
c3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgV2luZG93RXZlbnRMb29wOwog
Ci11c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7Ci11c2luZyBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7CitlbnVtIGNsYXNz
IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhfdCB7CisgICAgLy8gTXV0YXRpb25U
eXBlCisgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgIEF0dHJpYnV0ZXMgPSAxIDw8IDEsCisg
ICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKIAotY2xhc3MgTXV0YXRpb25PYnNlcnZlciBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKLSAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOwotcHVibGljOgotICAgIGVudW0gTXV0YXRp
b25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRyaWJ1dGVz
ID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorICAgIEFsbE11dGF0
aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSwKIAotICAg
ICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwgQXR0cmlidXRlcyB8IENoYXJhY3Rl
ckRhdGEKLSAgICB9OworICAgIC8vIE9ic2VydmF0aW9uRmxhZ3MKKyAgICBTdWJ0cmVlID0gMSA8
PCAzLAorICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNCwKKyAgICBBbGxPYnNlcnZhdGlvbkZs
YWdzID0gU3VidHJlZSB8IEF0dHJpYnV0ZUZpbHRlciwKIAotICAgIGVudW0gT2JzZXJ2YXRpb25G
bGFncyAgewotICAgICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0
ZXIgPSAxIDw8IDQKLSAgICB9OworICAgIC8vIERlbGl2ZXJ5RmxhZ3MKKyAgICBBdHRyaWJ1dGVP
bGRWYWx1ZSA9IDEgPDwgNSwKKyAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCisg
ICAgQWxsRGVsaXZlcnlGbGFncyA9IEF0dHJpYnV0ZU9sZFZhbHVlIHwgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlLAorfTsKIAotICAgIGVudW0gRGVsaXZlcnlGbGFncyB7Ci0gICAgICAgIEF0dHJpYnV0
ZU9sZFZhbHVlID0gMSA8PCA1LAotICAgICAgICBDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgPSAxIDw8
IDYsCi0gICAgfTsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKIAorY2xhc3Mg
TXV0YXRpb25PYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2
ZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOworcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8TXV0YXRpb25PYnNlcnZlcj4gY3JlYXRlKFJlZjxNdXRhdGlv
bkNhbGxiYWNrPiYmKTsKIAogICAgIH5NdXRhdGlvbk9ic2VydmVyKCk7CkBAIC0xMTUsNiArMTE3
LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBub3RpZnlNdXRhdGlvbk9ic2VydmVycyhX
aW5kb3dFdmVudExvb3AmKTsKIAogcHJpdmF0ZToKKyAgICB1c2luZyBNdXRhdGlvblR5cGUgPSBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTsKKyAgICB1c2luZyBPYnNlcnZhdGlvbkZsYWdzID0g
TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU7CisgICAgdXNpbmcgRGVsaXZlcnlGbGFncyA9IE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOworCiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZl
cihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
CmluZGV4IDAyNzZlNDJiZTViZDgzZmY0MmE3OTM1NmJkZTljZTczNjA5OWNiZGUuLjJhZWM2NTI5
MGMzODQ3NzIyNmEwZjA4ODIyZmZhMzdjNWRmN2IwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDQsOSArNDQs
OSBAQCBpbmxpbmUgTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8UmVmPAogICAgIEFTU0VSVCghbV9vYnNlcnZlcnMuaXNF
bXB0eSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYg
dGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
aWJ1dGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5h
bWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMg
JiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9
PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1l
KSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgYXV0byBvYnNlcnZlcnMgPSB0YXJnZXQucmVnaXN0
ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChvYnNl
cnZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggM2MwYWU1
MjM3ZDRiMmUyZWZmNzBkZGU2NjJlNWY0ZTFlNTY5MjZhZC4uMmY0NmM4MWU4ZTVlODkzMGZmY2Nj
MWRiODRkYTgwYmNhOTA0MWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ2LDM2ICs0NiwzNiBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVh
dGVGb3JDaGlsZExpc3RNdXRhdGlvbihOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAo
IXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlz
dCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcgPSAwOwotICAgICAgICByZXR1cm4gY3JlYXRl
SWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxh
Zyk7CisgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZzsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsKICAgICB9CiAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JD
aGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBN
dXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgICAgICByZXR1cm4g
Y3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YSwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1
ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKE5vZGUmIHRhcmdldCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICB7Ci0gICAgICAgIGlmICgh
dGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNl
cnZlcjo6QXR0cmlidXRlcykpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0
YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0
ZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0
dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwg
JmF0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgp
IGNvbnN0OwogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJlY29y
ZD4mJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlv
bk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5
cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCBoYXNPbGRW
YWx1ZShNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVy
biBvcHRpb25zICYgbV9vbGRWYWx1ZUZsYWc7IH0KKyAgICBib29sIGhhc09sZFZhbHVlKE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMu
Y29udGFpbnNBbnkobV9vbGRWYWx1ZUZsYWcpOyB9CiAKICAgICBIYXNoTWFwPFJlZjxNdXRhdGlv
bk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwog
ICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmlu
ZGV4IGM2ZjFmYjE1ZGZmOGQ1ZWJmZjJmNWM1YjdiN2VkZTNhZTNkMGViNzkuLmQzYzFmYTY2ZWQy
ZjU1NDdmMGI4MDljNjkwN2JiNDVjNGY5ZjU0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTk1LDE2ICs5NSwxNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb246OnRhawogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAot
Ym9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25G
cm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25z
dCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdAorYm9vbCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11
dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJp
YnV0ZU5hbWUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwotICAgIGlm
ICghKG1fb3B0aW9ucyAmIHR5cGUpKQorICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRl
TmFtZSk7CisgICAgaWYgKCFtX29wdGlvbnMuY29udGFpbnModHlwZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICgmbV9ub2RlICE9ICZub2RlICYmICFpc1N1YnRyZWUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcyB8fCAhKG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZp
bHRlcikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJp
YnV0ZXMgfHwgIW1fb3B0aW9ucy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWF0dHJp
YnV0ZU5hbWUtPm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzExMDg0MThmMWVkNTY0
ZmFiOTViOTZmYzhhMGNmZGE1MzUzZjNlYi4uZDY4NGIxZjBiMWI4N2U4MTcwNTA2NDAwNWNhYjc5
MDUxNzA3ODQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC01NiwxMyArNTYsMTMgQEAgcHVibGljOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lz
dHJhdGlvbnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lz
dHJhdGlvbk5vZGVzLT5pc0VtcHR5KCk7IH0KIAotICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0
aW9uRnJvbShOb2RlJiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKLSAgICBib29sIGlzU3VidHJlZSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAg
ICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKKyAg
ICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jb250YWlucyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6U3VidHJlZSk7IH0KIAogICAgIE11dGF0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIE5vZGUmIG5v
ZGUoKSB7IHJldHVybiBtX25vZGU7IH0KLSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9u
cyBkZWxpdmVyeU9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25P
YnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJE
YXRhT2xkVmFsdWUpOyB9Ci0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbXV0YXRpb25UeXBl
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbE11dGF0
aW9uVHlwZXM7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZTo6QWxsRGVsaXZlcnlGbGFnczsgfQorICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11
dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlczsgfQogCiAgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IGE2ZjE5ODM2YTliZGQ1MTY2Zjg4MGNlNjA2NDMyZGMwNjFlYzQzYWYuLmU1
MzUxNDcxMDhmY2ZhZTM0ZTM3NzRmN2Q3YmY5MzQyNDUxMDkzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRl
ICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKQEAgLTIy
ODIsNyArMjI4Myw3IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+KiBO
b2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoCiAgICAgcmV0dXJuICZkYXRh
LT50cmFuc2llbnRSZWdpc3RyeTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUmVnaXN0cnk+IHN0
YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihIYXNo
TWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+
JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29s
bGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBSZWdpc3Ry
eSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUgdHlw
ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKIHsKICAgICBpZiAoIXJlZ2lz
dHJ5KQogICAgICAgICByZXR1cm47CkBAIC0yMjkyLDE1ICsyMjkzLDE1IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2
ZXJzRm9yTXV0YXRpCiAgICAgICAgICAgICBhdXRvIGRlbGl2ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJh
dGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG9ic2Vy
dmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBkZWxpdmVyeU9wdGlvbnMpOwogICAg
ICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICByZXN1bHQu
aXRlcmF0b3ItPnZhbHVlIHw9IGRlbGl2ZXJ5T3B0aW9uczsKKyAgICAgICAgICAgICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChkZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICB9CiAgICAg
fQogfQogCi1IYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxp
dmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSkKK0hhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
CiB7CiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVs
aXZlcnlPcHRpb25zPiByZXN1bHQ7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2
ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAg
IEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAm
JiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgY29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCBtdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSwg
KnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVy
c0Zvck11dGF0aW9uKHJlc3VsdCwgdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCks
ICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJl
bnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmlu
ZGV4IGJkYjg0MjcwNTM5ZTEzMTY2MTQxNjllMGM3ZjA2NjkyNzcyNDZiYTYuLjVkNjkzZmMyNWI0
NmNmNDk5ZTc1MzMzNjA5N2ZkOTE2NzU1MDhkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU3R5bGVWYWxpZGl0
eS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgpAQCAtNTQsNiArNTMsOCBAQCBjbGFzcyBGbG9h
dFBvaW50OwogY2xhc3MgSFRNTFF1YWxpZmllZE5hbWU7CiBjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7
CiBjbGFzcyBNYXRoTUxRdWFsaWZpZWROYW1lOworY2xhc3MgTXV0YXRpb25PYnNlcnZlcjsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBj
bGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVMaXN0c05vZGVEYXRhOwpAQCAtNjcsNiArNjgsMTAg
QEAgY2xhc3MgU1ZHUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBUb3Vj
aEV2ZW50OwogCitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhf
dDsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zID0g
T3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKKwogdXNpbmcgTm9kZU9yU3Ry
aW5nID0gVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFN0cmluZz47CiAKIGNsYXNzIE5vZGUgOiBwdWJs
aWMgRXZlbnRUYXJnZXQgewpAQCAtNDk0LDcgKzQ5OSw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRh
cmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50
VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CiAKLSAgICBIYXNoTWFw
PFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJl
Z2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUs
IGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOworICAgIEhhc2hNYXA8UmVmPE11
dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKICAgICB2b2lkIHJlZ2lzdGVyTXV0YXRpb25PYnNl
cnZlcihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMsIGNvbnN0IEhh
c2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
TXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9p
ZCByZWdpc3RlclRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cAppbmRleCAxNzZiYzNiNDg5MjBmZWQwOGEyYWE5NWFhMmJhZTY2N2FlZGY0MmZkLi4zZTBmN2U1
NDM1ZWEzN2ZjNmI5ZGNmYjQxZmUzNjE4NTI1ZjJkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGYwNDliZDg0YjEyYWFkMGNkYTNlZTcxNTgyNjA5
NDM4MWYwOTEyNTMuLmM0ZjI5NTk5OTM5ZWMxNjgzMmM2ZGY2YzBjZWMwMjBiY2Q0MjUwYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKaW5kZXggYjEwNzY2NTk5
MzEwZGY0NTQ2MTczMWYzNGJiM2M5ZTljMjhjZTMzYy4uYWIyNzgzN2I5ODgzNzk2NGU4YjY4ZDM2
ZDEwZjcxODk1ZDZhNjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudC5oCkBAIC0yOSwzMCArMjksMzMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitlbnVtIGNsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3Np
dGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKKworc3RydWN0IFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCgpIHsgfQorCisgICAgU3RyaW5nIGRvY3VtZW50VVJJOworICAgIFN0cmlu
ZyByZWZlcnJlcjsKKyAgICBTdHJpbmcgYmxvY2tlZFVSSTsKKyAgICBTdHJpbmcgdmlvbGF0ZWRE
aXJlY3RpdmU7CisgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWxQb2xpY3k7CisgICAgU3RyaW5nIHNvdXJjZUZpbGU7CisgICAgU3RyaW5nIHNhbXBsZTsK
KyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gZGlzcG9zaXRpb24g
eyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UgfTsKKyAg
ICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9OworICAgIHVuc2lnbmVkIGxpbmVOdW1i
ZXIgeyAwIH07CisgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgMCB9OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0Jik7Cit9OworCiBjbGFz
cyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOwog
cHVibGljOgotICAgIGVudW0gY2xhc3MgRGlzcG9zaXRpb24gOiBib29sIHsgRW5mb3JjZSwgUmVw
b3J0IH07Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7Ci0gICAgICAgIEluaXQoKSB7
IH0KLQotICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkk7Ci0gICAgICAgIFN0cmluZyByZWZlcnJl
cjsKLSAgICAgICAgU3RyaW5nIGJsb2NrZWRVUkk7Ci0gICAgICAgIFN0cmluZyB2aW9sYXRlZERp
cmVjdGl2ZTsKLSAgICAgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVjdGl2ZTsKLSAgICAgICAgU3Ry
aW5nIG9yaWdpbmFsUG9saWN5OwotICAgICAgICBTdHJpbmcgc291cmNlRmlsZTsKLSAgICAgICAg
U3RyaW5nIHNhbXBsZTsKLSAgICAgICAgRGlzcG9zaXRpb24gZGlzcG9zaXRpb24geyBEaXNwb3Np
dGlvbjo6RW5mb3JjZSB9OwotICAgICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9
OwotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OwotICAgICAgICB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIgeyAwIH07Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBJbml0Jik7
Ci0gICAgfTsKKyAgICB1c2luZyBEaXNwb3NpdGlvbiA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnREaXNwb3NpdGlvbjsKKyAgICB1c2luZyBJbml0ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQ7CiAKICAgICBzdGF0aWMgUmVmPFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXpl
ciA9IHsgfSwgSXNUcnVzdGVkIGlzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCiAgICAgewpAQCAt
MTExLDcgKzExNCw3IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgot
dm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Y29uc3QgRXZlbnRJbml0Jj4oKnRoaXMpOwogICAgIGVuY29kZXIgPDwgZG9jdW1lbnRVUkk7
CkBAIC0xMjksNyArMTMyLDcgQEAgdm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIH0KIAogdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KLWJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmIGV2
ZW50SW5pdCkKK2Jvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYgZXZlbnRJ
bml0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGljX2Nhc3Q8RXZlbnRJbml0Jj4o
ZXZlbnRJbml0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NCwxMSArMTY3LDExIEBA
IGJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNlY3VyaXR5UG9saWN5CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OkRpc3Bvc2l0aW9uPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbj4gewogICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb24sCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6RGlzcG9zaXRpb246OkVuZm9yY2UsCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2UsCisgICAgV2ViQ29yZTo6U2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpSZXBvcnQKICAgICA+OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRl
eCA1OGQ3NTNiMjNkNjNiODcyOTU5MDA3YzVhNzA5NjczOTdjODg3ODRhLi45ODA0NDYwY2RiMmJj
NWFiNTE3MTRiNDA0YWI4NWMwY2FmZTIyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzMsOCArMzMsOCBAQAogI2luY2x1ZGUg
IkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCBmOTVhMzFjNTM5MTJkMDNiYWZmNGNjODU3MDAyYjVjMWNkMzU5OTMy
Li5mMzQwMTQzNTlmZjdjZGJkODU3Y2ZkY2RiYmE5YjI0ZjI5MTAxYTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggODQ2NjRjM2I3NDgzNjUzYWYwOWY3OWVi
YjUzM2U3NTRiYTYzODRhMS4uOTI5NDZmMzczMTMzZTExMGRkYjExMWY1OGE5M2MxYjJjN2YwYjQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1NjU3ODI3ZDlhNjZiYjNiNzNlZmI1
NWY5MzE2MWVlODM4YjQ1YTMwLi4xYjcwNzY1YmFiYzRkNDY4MTFjMWFmZDc5NDY1MTA3YjhhMjIw
ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYzJlYjhhN2JjNDEzMjJjYThkMjA4NDQzM2Ey
MzVmZmU5N2I1ZWJiZC4uNzEzNjk5NTQ5MDVmOWYyZjFkOGUxY2RlMDYwZTQxZGNhZWNhMTQxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiQ29sb3JCbGVuZGlu
Zy5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcu
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDg3OTE0MjE2Y2FhMmFlNzA1
YTVjNDg5OWJkZmEwMTQ0YzM2NjA4ZGQuLjIyNzJlYmIzMGRlNzkyMTYzNjZmYjExOTM2NTgxYjky
NThiZGNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQppbmRleCBmMzgzYWRkZDE5YjBjZjAwNDZiYTUzN2NiMmQ1OGJkNGE3MTAwZTk0Li40NjIzN2Fk
NmMxZTkzNzFiZGNhZDcwZmNhZmIwZjdmZTVkZjhkNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lt
cG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgiCiAjaW1wb3J0ICJDaHJv
bWVDbGllbnQuaCIKKyNpbXBvcnQgIkRvY3VtZW50SW5saW5lcy5oIgogI2ltcG9ydCAiRnJhbWUu
aCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDVlNDFiNDkyNDE2YTM5NDBlZDZkZTEzMTJhMzE1MzNlZGQ4
MTc5MzkuLmJmNTQzMmFmMzE2ZTVhNzRhZjJhZDI3M2YxMTUyNmU0ZGI0NWIyY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDkgKzIzLDExIEBA
CiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVtZW50LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgIkdDUmVhY2hhYmxlUmVmLmgiCiAjaW5jbHVkZSAiSFRNTFNsb3RFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXgg
MDY5Y2M0MTc3MGNjOWZjNTFiOTU4MjIzNTMyNDYzMjMzMzI2YjdhMy4uMjQzOGU5MTc2YjIzOWFk
ZThlYTA5YmJjZWY4MWRkNWRiYzUwNTAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXIu
aCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJG
aWxlSW5wdXRUeXBlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5k
ZXggNTZmMGM3OWQ0NWQ5Mjc2OTY5NjcyMTM4MDA1M2RmMGI0OWUxYzdmMS4uNzRmZDQ1ZTZkYmJi
NDU2YjU0NTNiMWQ0MGYzOGNmMDQ2NDBkNzdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRlZmF1
bHRSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyOTM3OWIyMGY1OTFmZmVmMGJkNTU3Yzgw
OGQ4YjQ5NDBhYWE1YTcwLi42NWViZmE3YTU0ZDhmYWQzNGE3YWUwOWM1NWJhMzMwNWU3MzZjMTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTg1LDggKzg1
LDggQEAKICNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIKICNpbmNsdWRlICJOZXR3
b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJlZS5oIgotI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJQYWdlSW5saW5lcy5o
IgogI2luY2x1ZGUgIlBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIK
QEAgLTc5NzMsNyArNzk3Myw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkT3ZlcnJp
ZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgICAg
IGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQo
KS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1T
cmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5jb250YWlu
c0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNl
KSkgewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyB0cnVl
IGJlY2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNrIik7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtNzk4OCw3ICs3OTg4LDcgQEAgYm9vbCBIVE1M
TWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9u
KFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0
KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7
CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRv
Y3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAgICAgICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBwbGF5aW5nIGFuIGF1ZGlvIE1l
ZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBA
IC04MDQ4LDcgKzgwNDgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlVXBkYXRl
TWVkaWFTdGF0ZSgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlTWVkaWFTdGF0ZSgp
CiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gbWVkaWFTdGF0
ZSgpOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRl
KCk7CiAgICAgaWYgKG1fbWVkaWFTdGF0ZSA9PSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC04MDU5LDMxICs4MDU5LDMxIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlTWVkaWFT
dGF0ZSgpCiB9CiAjZW5kaWYKIAotTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAorTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QKIHsKICAgICBNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGU7CiAKICAgICBib29sIGhhc0FjdGl2ZVZpZGVvID0gaXNWaWRlbygpICYm
IGhhc1ZpZGVvKCk7CiAgICAgYm9vbCBoYXNBdWRpbyA9IHRoaXMtPmhhc0F1ZGlvKCk7CiAgICAg
aWYgKGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSkKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpOworICAgICAg
ICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxE
ZXZpY2UpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBpZiAo
bV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycykgewotICAgICAgICBzdGF0
ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lcik7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcik7CiAgICAgICAgIGlmICgh
bWVkaWFTZXNzaW9uKCkud2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSkKLSAgICAgICAg
ICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNr
VGFyZ2V0TW9uaXRvcmluZyk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKTsKICAgICB9CiAKICAg
ICBib29sIHJlcXVpcmVVc2VyR2VzdHVyZSA9IG1fbWVkaWFTZXNzaW9uICYmIG1lZGlhU2Vzc2lv
bigpLmhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVz
ZXJHZXN0dXJlVG9BdXRvcGxheVRvRXh0ZXJuYWxEZXZpY2UpOwogICAgIGlmIChtX3JlYWR5U3Rh
dGUgPj0gSEFWRV9NRVRBREFUQSAmJiAhcmVxdWlyZVVzZXJHZXN0dXJlICYmICFtX2ZhaWxlZFRv
UGxheVRvV2lyZWxlc3NUYXJnZXQpCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKTsKKyAgICAgICAgc3Rh
dGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2Fu
ZGlkYXRlKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyB8fCBoYXNBdWRpbykKLSAgICAgICAg
c3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbyk7Cisg
ICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVv
KTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyAmJiBlbmRlZFBsYXliYWNrKCkpCi0gICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpOworICAg
ICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCk7CiAj
ZW5kaWYKIAogICAgIGlmICghaXNQbGF5aW5nKCkpCkBAIC04MDk3LDEwICs4MDk3LDEwIEBAIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRl
KCkgY29uc3QKICAgICBpc1BsYXlpbmdBdWRpbyA9IGlzUGxheWluZ0F1ZGlvICYmICFtdXRlZCgp
OwogI2VuZGlmCiAgICAgaWYgKGlzUGxheWluZ0F1ZGlvKQotICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOworICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsKIAogICAgIGlmICho
YXNBY3RpdmVWaWRlbykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OklzUGxheWluZ1ZpZGVvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1BsYXlpbmdWaWRlbyk7CiAKICAgICByZXR1cm4gc3RhdGU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGNmZDE5ZDNjMTczZjEwY2U0ZWZlMGMy
MGFlYjJhYmU1OTE5ZDI1OTYuLjAyZDQ4ODAxMTQ3NDYyYzkxM2VjZjk5YjZiMDNiODAxMWQwZDFl
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01MjcsNyArNTI3
LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIG1heEJ1ZmZlcmVkVGltZSgpIGNvbnN0OwogCi0g
ICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0U2l6ZUNoYW5nZWQoKTsKICAgICB2b2lkIHZp
c2liaWxpdHlEaWRDaGFuZ2UoKTsKQEAgLTEyMTQsNyArMTIxNCw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0gICAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBNb25vdG9uaWNUaW1lIG1fY3VycmVudFBs
YXliYWNrVGFyZ2V0SXNXaXJlbGVzc0V2ZW50RmlyZWRUaW1lOwogICAgIGJvb2wgbV9oYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Zh
aWxlZFRvUGxheVRvV2lyZWxlc3NUYXJnZXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlMmY4YTRiZjVkOGI4NTFiYjljMTQyMzFiODEy
OGVjMjQ4ODZiN2MwLi43OWFkNGUyMjA2ZGE4MDk0OGIyYTBiNTVmZWJiMWJiODRjODE2N2EwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRPTUZvcm1EYXRh
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudFRyYXZl
cnNhbC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKaW5kZXggOTlhNGJiMmVmN2E2MTQ2NzRhY2Y0Zjc5ZmE3YzNkN2NmYWY5OTYyMC4uMGUz
NDg2ZDRmNzEwNmNjNTcxNjdjYWZhNjc0ODBkOTcyMTdmODk1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGlu
Zy5oIgogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBlYTI5N2ZhMjMxOWJmYjg1N2Y1
ZmNiZjI0NTY2NmIwOTgzNWYxMDkyLi5iNWZmMDJiZGE1NTRhMDFkYTkzYjkwYWZjMDgxYzZlYjA4
ODBjY2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aW5jbHVkZSAiRGF0ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaCIKICNpbmNsdWRlICJEZWNpbWFsLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbWFpbElucHV0VHlwZS5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uY3BwCmluZGV4IDdmNmQzOWYzZWNlMGNmZjc1Nzk0YmVkNGFjMzRmZWQzMTY0
N2Y1MTcuLjI5MWVmOWEwMjgxMDJmMzJhZWMzNmM4OWM4NmFkYjRlYzcwZmU1NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtMzEsNyArMzEsNyBA
QAogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKQEAgLTM4NSw3ICszODUsNyBAQCBFeHBlY3RlZDx2b2lkLCBNZWRpYVBsYXli
YWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbgog
ICAgIGlmIChtX2VsZW1lbnQuaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSkgewogICAgICAgICBp
ZiAoZG9jdW1lbnQuaXNDYXB0dXJpbmcoKSkKICAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAg
ICAgIGlmIChkb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbykKKyAgICAgICAgaWYgKGRvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogI2VuZGlmCkBAIC00MDAsNyArNDAwLDcgQEAgRXhwZWN0ZWQ8dm9pZCwg
TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tT
dGF0ZUNoYW4KICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpOwogICAgIH0KIAotICAgIGlmICh0b3BEb2N1
bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50
ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgJiYgdG9wRG9jdW1lbnQucXVpcmtzKCkubmVlZHNQZXJE
b2N1bWVudEF1dG9wbGF5QmVoYXZpb3IoKSkKKyAgICBpZiAodG9wRG9jdW1lbnQubWVkaWFTdGF0
ZSgpICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlh
RWxlbWVudCAmJiB0b3BEb2N1bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0b3BsYXlC
ZWhhdmlvcigpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKHRvcERvY3VtZW50Lmhh
c0hhZFVzZXJJbnRlcmFjdGlvbigpICYmIGRvY3VtZW50LnF1aXJrcygpLnNob3VsZEF1dG9wbGF5
Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKSkKQEAgLTgwOSw3ICs4MDksNyBAQCB2b2lkIE1lZGlh
RWxlbWVudFNlc3Npb246OnBsYXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCkKICAgICBj
bGllbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpOwogfQogCi12b2lkIE1l
ZGlhRWxlbWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRl
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgbV9l
bGVtZW50LmRvY3VtZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSgqdGhpcywgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uaAppbmRleCBkZjYxNTEwY2VjNjUwMTBjMmQ2YmU1ZTRhMGIzMDlmNzAyNTIzNDU1Li5mNWJl
YmQyOGRlZjg4OWFlMDJhMDA2YWJkZTY5MDA3NWM0MTUwNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGlzUGxheWluZ1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdm9pZCBtZWRpYVN0YXRlRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CisgICAgdm9pZCBtZWRpYVN0YXRlRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MpOwogI2VuZGlmCiAKICAgICBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZp
ZGVvUGxheWJhY2soKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
aW5kZXggNGIxZTNhMjljMGE0MzZlNDZlYjU2YzE5ZThhYzE5N2IwOWJlNGM0OC4uOGY2YjhjZTA4
ZmRiNWQ3NGI2NmU1M2MxMjIwY2UxYmJiNWNkNzY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEZWNpbWFsLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAyOTIwMmExMTU2OTgw
YTQ4NmFhYjk2NTMwYjU1YjU1YTQ1MDUzMTg3Li44ZTY1YzRlYjEwMjMzNTIxZjQ4YzdmNGIxMjBh
ZDJjODkwOWEwN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRGVjbGFy
YXRpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKaW5kZXggOWU4ZGYyZWNiMDEwNDgzNjFiMjQ0Zjg1MGY5YmNlYzk5YTUxOWUxOS4uNmQz
MWM4MWZkZTEyODBkMjQ1MzliOWM5ZmIyZTAyODk3Y2FiMzk1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAKICNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKICNpbmNsdWRlICJET01QYXRj
aFN1cHBvcnQuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5o
IgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKaW5kZXggMzc0Njg0MzI1NzdmNjRlM2QxOGJjMzY2N2NhMjk4ZjQzYTNiZjUwMy4uODRi
MTYzNzAxNGVmNTZkYWU4YmNlZjBkNzI0OTU2MmQyMGQwZGRkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNw
cApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUg
IkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIkNlcnRpZmljYXRlU3VtbWFyeS5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFRocmVhZGFibGVMb2FkZXIu
aCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5PcGVuZXJQb2xpY3kuaAppbmRleCA5NDY0NzRiNTg1ODE5M2IwYjMwNmM5MmUxZjVi
MmU4YmMxZmFjOWJjLi41OGM3YmI3OTM4OGFjNmYwM2YyYzgyMGQ4OTY4ZmE0YTM1MjFmZjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3ku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaApA
QCAtMjUsMTUgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9s
aWN5OworY2xhc3MgRnJhbWU7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOwogCiBzdHJ1Y3QgTmF2aWdh
dGlvblJlcXVlc3RlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
aW5kZXggZjlmMzkyY2I4NGQ4MjAyYjJiOWVjZWYwZGUxNjQ1MTgwM2YzN2I2My4uOTljOTc4ZGNi
M2M2NGNkZTY5NjUzOWJkZjlhYjVjNWI0ZGYyNzg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0yNDAwLDcgKzI0MDAsNyBAQCB2b2lkIERvY3VtZW50TG9h
ZGVyOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRh
PiYmIHJlcAogICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKm1fZnJhbWUsIFdU
Rk1vdmUocmVwb3J0VVJMKSwgV1RGTW92ZShyZXBvcnQpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQogCi12b2lkIERvY3VtZW50TG9hZGVyOjplbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBl
dmVudEluaXQpCiB7CiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoV1RGTW92ZShldmVudEluaXQpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggOWZjNDEzN2E2OTAwZTI0YTFhODJjZWM3Y2M3NTc5
M2QzNDdlOTgxMi4uNGZiZmQ3MTIwMTk5ZDI3Y2ZhODdiZGQ1OTY3MzcxMDZiY2UwOGRiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTUyMiw3ICs1MjIsNyBAQCBw
cml2YXRlOgogICAgIC8vIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYsIFJl
ZjxGb3JtRGF0YT4mJikgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJikgZmlu
YWw7CiAKICAgICBib29sIGRpc2FsbG93V2ViQXJjaGl2ZSgpIGNvbnN0OwogICAgIGJvb2wgZGlz
YWxsb3dEYXRhUmVxdWVzdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdy
aXRlci5jcHAKaW5kZXggODkwOTVmZTNkZTczMjg4ZTI3MzFjMTJhZjNkMjYxNjhmN2NjMzUzMC4u
NDMyYmQxMmIzMmNlOGMwZjc0YjIwZjExZjNmMjg5ZThkZTdjNzFiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3Vi
bWlzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCmlu
ZGV4IDY4M2Y4NGMyNTQxNWQzZWMzNDY3ZTA4MTA4YjgxM2Y1YTcxYTgyMzkuLmFlOTJhZGQ4NzU2
MDUxZDA1NmEyMzAyZGRjYmM0ODliMTBlNzQ4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFNl
Y3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZmNiMjIwMmY4MjgxMGFmMmE0Zjhk
OWU0NTFjYjU3NGZhMGE3ZmQ0My4uYzNiYjM0NmEzOTQ3YzU4OTgzZWU5ZDlmOGViMDRjOTkyODAz
NjE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC01NSw3ICs1NSw3
IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9y
Q2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCAxMDdmMzI0NjRjZDFkM2JiOTIzYzJhOWY3NTMwZGFmZWI1
YjE3OGU5Li4zNmVlMzI3NWQ2OTIwN2U0NTAyMTYyZjBhYmFlYjg4ZTU4ZWJjNzViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTUwLDcgKzUwLDcgQEAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IDRjZmNiMTY4MWYxNzMwOWFjNGE3ZmMwYjIxOWFjZWY5NTk1N2I3OWQuLmNjYmRmYTQ5NjNlNDAz
OTZjNzllYTk2MzljYjVhMDc5YjRmM2VkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aApAQCAtNTAzLDcgKzUwMyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChBdXRvcGxheUV2ZW50LCBPcHRpb25T
ZXQ8QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKQEAg
LTUzNCw3ICs1MzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIsIGNvbnN0IEludFBvaW50JiwgYm9vbCAvKmlzVmlkZW8qLykgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpICB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
bW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBlMDA1Y2VkZmZjZGVjMWRhZDkxYWZmZTg2ZWVh
YjIyZDM4MzVkOTkwLi43ZjlkOGVjNDU0YzAzNWYyMDI1OWNlODk4MjRjNjU3ZjVhZjFlMmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkNvbXBvc2Vk
VHJlZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0V2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggYmU3NmUxYmQyNzc1NTEzMWQwODMx
NmYyZDNiZTk5YmNjYTY4ZGMxZi4uYTExYTNiMzQ4YWJhMzk5ZjY0ODc2ZGU0OTY5MjFkZmU4ZjBk
NjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzAsNyAr
MzAsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5k
ZXggOGM0Mzc3Y2I5NTRhMGIxYTA4OWU1MmVmYWQ4YTQxZDkxMDU4YThmNy4uZmQzMzM2OGFkMjFk
YzU1OTY3NGIzYTdhNjhkMjMzNGNlNGYxMzM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRU
aW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCmluZGV4IDU0YTVhYzAwMGUyN2M5MmRhOTQwZTlmM2E3MzEyYzdiOWNlZTZmNmMuLmQ1ZWIz
YWVmZDE3NmIxMDFiZWUyM2MwMTNhZjQ3MWNmOWE0NDg5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNs
dWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRTVkcuaCIKQEAgLTIwODIsNyArMjA4Myw3IEBAIGJvb2wgRnJhbWVWaWV3Ojp1
c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1PcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRnJhbWVWaWV3OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNv
bnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IEZyYW1lVmlldzo6c3R5bGVDb2xvck9w
dGlvbnMoKSBjb25zdAogewogI2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQogICAgIGlmIChhdXRv
KiByZW5kZXJlciA9IHJlbmRlcmVyRm9yQ29sb3JTY2hlbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCmluZGV4IGQ5ZDQ4YWY1ZjdkMTQ5NzdmM2E1MGRlNTY1OTkzZWRlM2Q1MmEzMTguLjk3YWRl
YjEwMDZmYzU1NmI5OWZlNThhZjcwMDgyYzdiMmVhZGM4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaApAQCAtNTM4LDcgKzUzOCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFNldEN1cnNv
cigpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSgp
IGNvbnN0IGZpbmFsOwotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNv
bG9yT3B0aW9ucygpIGNvbnN0OworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5
bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRo
b2Qgb25jZSBwbHVnaW4gbG9hZGluZyBpcyBkZWNvdXBsZWQgZnJvbSBsYXlvdXQuCiAgICAgdm9p
ZCBmbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKQEAgLTk1NSw3ICs5NTUsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX2lzVHJhbnNwYXJlbnQgeyBmYWxzZSB9OwogI2lmIEVOQUJM
RShEQVJLX01PREVfQ1NTKQotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBtX3N0
eWxlQ29sb3JPcHRpb25zOworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gbV9zdHls
ZUNvbG9yT3B0aW9uczsKICNlbmRpZgogCiAgICAgYm9vbCBtX2lzVHJhY2tpbmdSZXBhaW50cyB7
IGZhbHNlIH07IC8vIFVzZWQgZm9yIHRlc3RpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL01lZGlhUHJvZHVjZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNl
ci5oCmluZGV4IDgwYWQ1YWVlZmFkZjllY2I4MzZiOTEyM2MzOGM1NDBlNmY0YzE1MTcuLjRlMTll
OGNkNzFhNjUyOWY5OGFmNjQ4MmU2Y2E1YTA1MmIxZjczOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVk
aWFQcm9kdWNlci5oCkBAIC0zMSwzMiArMzEsNTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlIDogdWludDMyX3QgeworICAgIElz
UGxheWluZ0F1ZGlvID0gMSA8PCAwLAorICAgIElzUGxheWluZ1ZpZGVvID0gMSA8PCAxLAorICAg
IElzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UgPSAxIDw8IDIsCisgICAgUmVxdWlyZXNQbGF5YmFj
a1RhcmdldE1vbml0b3JpbmcgPSAxIDw8IDMsCisgICAgRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSA9IDEgPDwgNCwKKyAgICBEaWRQbGF5VG9FbmQgPSAxIDw8IDUsCisgICAgSXNTb3Vy
Y2VFbGVtZW50UGxheWluZyA9IDEgPDwgNiwKKyAgICBJc05leHRUcmFja0NvbnRyb2xFbmFibGVk
ID0gMSA8PCA3LAorICAgIElzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA4LAor
ICAgIEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIgPSAxIDw8IDksCisgICAg
SGFzQXVkaW9PclZpZGVvID0gMSA8PCAxMCwKKyAgICBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UgPSAxIDw8IDExLAorICAgIEhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTIs
CisgICAgSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEzLAorICAgIEhhc011dGVk
VmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNCwKKyAgICBIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2Fw
dHVyZURldmljZSA9IDEgPDwgMTUsCisgICAgSGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZp
Y2UgPSAxIDw8IDE2LAorICAgIEhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCA9IDEg
PDwgMTcsCisgICAgSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE4LAorICAg
IEhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE5LAorICAgIEhhc0ludGVycnVw
dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDIwLAorfTsKK3VzaW5nIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+Owor
CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIDogdWludDhfdCB7Cisg
ICAgQXVkaW8sCisgICAgVmlkZW8sCisgICAgQXVkaW9WaWRlbworfTsKKworZW51bSBjbGFzcyBN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3QgeworICAgIEF1ZGlvSXNNdXRlZCA9IDEg
PDwgMCwKKyAgICBBdWRpb0NhcHR1cmVJc011dGVkID0gMSA8PCAxLAorICAgIFZpZGVvQ2FwdHVy
ZUlzTXV0ZWQgPSAxIDw8IDIsCisgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDMsCit9
OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZT47CisKIGNsYXNzIE1lZGlhUHJvZHVjZXIgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8TWVkaWFQcm9kdWNlcj4gewogcHVibGljOgotICAgIGVudW0gY2xhc3MgTWVkaWFT
dGF0ZSB7Ci0gICAgICAgIElzUGxheWluZ0F1ZGlvID0gMSA8PCAwLAotICAgICAgICBJc1BsYXlp
bmdWaWRlbyA9IDEgPDwgMSwKLSAgICAgICAgSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSA9IDEg
PDwgMiwKLSAgICAgICAgUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcgPSAxIDw8IDMs
Ci0gICAgICAgIEV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUgPSAxIDw8IDQsCi0gICAg
ICAgIERpZFBsYXlUb0VuZCA9IDEgPDwgNSwKLSAgICAgICAgSXNTb3VyY2VFbGVtZW50UGxheWlu
ZyA9IDEgPDwgNiwKLSAgICAgICAgSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgNywK
LSAgICAgICAgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDgsCi0gICAgICAg
IEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIgPSAxIDw8IDksCi0gICAgICAg
IEhhc0F1ZGlvT3JWaWRlbyA9IDEgPDwgMTAsCi0gICAgICAgIEhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSA9IDEgPDwgMTEsCi0gICAgICAgIEhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSA9
IDEgPDwgMTIsCi0gICAgICAgIEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMywK
LSAgICAgICAgSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE0LAotICAgICAgICBI
YXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTUsCi0gICAgICAgIEhhc0lu
dGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNiwKLSAgICAgICAgSGFzVXNlcklu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ID0gMSA8PCAxNywKLSAgICAgICAgSGFzQWN0aXZlRGlz
cGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE4LAotICAgICAgICBIYXNNdXRlZERpc3BsYXlDYXB0
dXJlRGV2aWNlID0gMSA8PCAxOSwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVy
ZURldmljZSA9IDEgPDwgMjAsCi0gICAgfTsKLSAgICB1c2luZyBNZWRpYVN0YXRlRmxhZ3MgPSBP
cHRpb25TZXQ8TWVkaWFTdGF0ZT47CisgICAgdXNpbmcgTWVkaWFTdGF0ZSA9IE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOworICAgIHVzaW5nIE11dGVkU3RhdGUgPSBNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZTsKKyAgICB1c2luZyBNZWRpYVN0YXRlRmxhZ3MgPSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzOworICAgIHVzaW5nIE11dGVkU3RhdGVGbGFncyA9IE1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlRmxhZ3M7CisKICAgICBzdGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBJc05vdFBs
YXlpbmcgPSB7IH07CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgQXVkaW9D
YXB0dXJlTWFzayA9IHsgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBN
ZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE1lZGlh
U3RhdGVGbGFncyBWaWRlb0NhcHR1cmVNYXNrID0geyBNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCBN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSB9OwpAQCAtNjksMjAg
Kzg5LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0
ZSgpIGNvbnN0ID0gMDsKIAotICAgIGVudW0gY2xhc3MgTWVkaWFDYXB0dXJlS2luZCB7Ci0gICAg
ICAgIEF1ZGlvLAotICAgICAgICBWaWRlbywKLSAgICAgICAgQXVkaW9WaWRlbwotICAgIH07Ci0K
LSAgICBlbnVtIGNsYXNzIE11dGVkU3RhdGUgewotICAgICAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8
IDAsCi0gICAgICAgIEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCi0gICAgICAgIFZpZGVv
Q2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDIsCi0gICAgICAgIFNjcmVlbkNhcHR1cmVJc011dGVkID0g
MSA8PCAzLAotICAgIH07Ci0KLSAgICB1c2luZyBNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8
TXV0ZWRTdGF0ZT47CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNdXRlZFN0YXRlRmxhZ3MgQXVkaW9B
bmRWaWRlb0NhcHR1cmVJc011dGVkID0geyBNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVk
LCBNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkIH07CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBNdXRlZFN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCA9IHsgTXV0ZWRTdGF0
ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCwg
TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQgfTsKIApAQCAtOTYsNDkgKzEwMiw0OSBA
QCBwcm90ZWN0ZWQ6CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ+IHsKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywKLSAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sCi0gICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8KKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbwogICAgID47CiB9OwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU+
IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywKLSAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8sCi0gICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsCi0g
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQsCi0gICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcsCi0g
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29u
dHJvbEVuYWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVy
LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09y
VmlkZW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmlj
ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzVXNlcklu
dGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURl
dmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZQorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OklzUGxheWluZ0F1ZGlvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nVmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9Q
bGF5Q2FuZGlkYXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
RGlkUGxheVRvRW5kLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SXNTb3VyY2VFbGVtZW50UGxheWluZywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXIsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBdWRpb09yVmlkZW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2Fw
dHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVy
ZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1Vz
ZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURl
dmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVy
cnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlPiB7Cit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
PiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkLAotICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggODg1MzNiM2QyYjM3MTgyZTE2
MDUyZmVkMTI5MzY4YTQ2ZTQyMjlhZi4uY2YxNzAxM2U1ZDY4NmYwMWQ1MjJkNmQ2Nzc5NjQ4MmY1
OWVlNGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGlu
ZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJF
ZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0yMTcwLDcgKzIxNzEsNyBAQCB2b2lk
IFBhZ2U6OnN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdlZCgpCiAKIHZvaWQgUGFnZTo6dXBkYXRl
SXNQbGF5aW5nTWVkaWEoKQogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBz
dGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvckVh
Y2hEb2N1bWVudChbJl0oYXV0byYgZG9jdW1lbnQpIHsKICAgICAgICAgc3RhdGUuYWRkKGRvY3Vt
ZW50Lm1lZGlhU3RhdGUoKSk7CiAgICAgfSk7CkBAIC0yMjA4LDcgKzIyMDksNyBAQCB2b2lkIFBh
Z2U6OnBsYXliYWNrQ29udHJvbHNNZWRpYUVuZ2luZUNoYW5nZWQoKQogCiAjZW5kaWYKIAotdm9p
ZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCit2
b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCiB7
CiAgICAgbV9tdXRlZFN0YXRlID0gbXV0ZWQ7CiAKQEAgLTIyMTcsNyArMjIxOCw3IEBAIHZvaWQg
UGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQogICAg
IH0pOwogfQogCi12b2lkIFBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlS2luZCBraW5kKQordm9pZCBQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJv
ZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0zMDE4LDcgKzMwMTksNyBAQCB2b2lkIFBhZ2U6
OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyIGNvbnRleAogI2VuZGlmCiB9CiAKLXZvaWQgUGFnZTo6cGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9p
ZCBQYWdlOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIGNocm9tZSgpLmNsaWVudCgpLnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IDk0ZjhiOGRhOTIwNjk2Mzc4OGM1MTYxNjUzZTUwNWNjYzAwNTM4MzkuLmZh
ODg5ZjRjNGNmZGIyZGRjM2M4NDMzN2M2YWM5MTdjZTBiOTI4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBA
IC0xNzcsNiArMTc3LDEyIEBAIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNz
IERpZFdyYXAgOiBib29sOwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90
OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OworZW51
bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90OworZW51bSBjbGFzcyBN
ZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKKwordXNpbmcgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT47Cit1c2luZyBN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlPjsKIAogZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBS
ZXNwb25zaXZlLCBVbnJlc3BvbnNpdmUgfTsKIGVudW0gY2xhc3MgTWFpbkZyYW1lTWFpblJlc291
cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTcyOSwxOCArNzM1LDE4IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCk7CiAgICAg
Ym9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklELmlz
RXBoZW1lcmFsKCk7IH0KIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRp
YVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlOyB9CisgICAgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRl
OyB9CiAgICAgdm9pZCB1cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwotICAgIE1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRl
OyB9Ci0gICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUu
Y29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfQotICAg
IGJvb2wgaXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkKTsgfTsK
KyAgICBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX211dGVkU3RhdGU7IH0KKyAgICBpbmxpbmUgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25z
dDsKKyAgICBpbmxpbmUgYm9vbCBpc01lZGlhQ2FwdHVyZU11dGVkKCkgY29uc3Q7CiAgICAgdm9p
ZCBzY2hlZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlKCk7CiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIHZvaWQgcGxheWJhY2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpOwogI2Vu
ZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlRmxhZ3MpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TXV0ZWQoTWVkaWFQcm9k
dWNlck11dGVkU3RhdGVGbGFncyk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BNZWRp
YUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
KTsKIAogICAgIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllciBtZWRpYVNlc3Npb25Hcm91cElk
ZW50aWZpZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1lZGlhUGxheWJhY2tF
eGlzdHMoKTsKQEAgLTc2Myw3ICs3NjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
KTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFBv
aW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsK
KyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlckVuYWJsZWQoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKTsKQEAgLTk5Niw3ICsxMDAyLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faW5Mb3dRdWFsaXR5SW50ZXJwb2xhdGlvbk1vZGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZCB7IHRy
dWUgfTsKICAgICBmbG9hdCBtX21lZGlhVm9sdW1lIHsgMSB9OwotICAgIE1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncyBtX211dGVkU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBtX211dGVkU3RhdGU7CiAKICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvciB7IDEg
fTsKICAgICBmbG9hdCBtX3pvb21lZE91dFBhZ2VTY2FsZUZhY3RvciB7IDAgfTsKQEAgLTExMjAs
NyArMTEyNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2luZyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2lzUmVzdG9yaW5nQ2FjaGVkUGFnZSB7IGZhbHNlIH07CiAKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIFRp
bWVyIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUlubGluZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGE5MjI2M2E3MjMyODM2NTdkZWYzOWEzODUxZTIwZDY1
NmQwNzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5l
cy5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworaW5saW5lIGJvb2wgUGFnZTo6aXNBdWRpb011dGVkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpOworfQorCitpbmxpbmUgYm9vbCBQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDc2M2ZmNjRiZjRlN2U5ZTBmZTQ2ZTEzZjhkODEzMTZk
OGUzZmFhNmMuLjFhMTIxMGZhODMzN2NkOTUyMGY0ZTAxMWE5MDczNjc1NGRlNTE4ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5j
bHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCAxZGJkMTUz
Yjk2MGVjMmNkMzI1ZDc5ODIwMzMyZDI4ZWVjNTY0YzEzLi4yOTA5MTYwMGNiMTk3N2Y5ZDMzNWMx
ZWZhZmViMTkyOGRlZjkxZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJDb250
ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3lTb3VyY2VMaXN0LmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRm9ybURhdGEu
aCIKQEAgLTc3NSw3ICs3NzUsNyBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0
VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIHVuc2ln
bmVkIHNob3J0IGh0dHBTdGF0dXNDb2RlID0gbV9zZWxmU291cmNlUHJvdG9jb2wgPT0gImh0dHAi
ID8gbV9odHRwU3RhdHVzQ29kZSA6IDA7CiAKICAgICAvLyAxLiBEaXNwYXRjaCB2aW9sYXRpb24g
ZXZlbnQuCi0gICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCB2aW9sYXRpb25F
dmVudEluaXQ7CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQgdmlvbGF0aW9u
RXZlbnRJbml0OwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5kb2N1bWVudFVSSSA9IGluZm8uZG9j
dW1lbnRVUkk7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnJlZmVycmVyID0gbV9yZWZlcnJlcjsK
ICAgICB2aW9sYXRpb25FdmVudEluaXQuYmxvY2tlZFVSSSA9IGJsb2NrZWRVUkk7CkBAIC03ODMs
NyArNzgzLDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihj
b25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICB2aW9sYXRpb25FdmVudElu
aXQuZWZmZWN0aXZlRGlyZWN0aXZlID0gZWZmZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmU7CiAgICAg
dmlvbGF0aW9uRXZlbnRJbml0Lm9yaWdpbmFsUG9saWN5ID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0
LmhlYWRlcigpOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5zb3VyY2VGaWxlID0gaW5mby5zb3Vy
Y2VGaWxlOwotICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5kaXNwb3NpdGlvbiA9IHZpb2xhdGVkRGly
ZWN0aXZlTGlzdC5pc1JlcG9ydE9ubHkoKSA/IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
OkRpc3Bvc2l0aW9uOjpSZXBvcnQgOiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNw
b3NpdGlvbjo6RW5mb3JjZTsKKyAgICB2aW9sYXRpb25FdmVudEluaXQuZGlzcG9zaXRpb24gPSB2
aW9sYXRlZERpcmVjdGl2ZUxpc3QuaXNSZXBvcnRPbmx5KCkgPyBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50RGlzcG9zaXRpb246OlJlcG9ydCA6IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnREaXNwb3NpdGlvbjo6RW5mb3JjZTsKICAgICB2aW9sYXRpb25FdmVudEluaXQuc3RhdHVzQ29k
ZSA9IGh0dHBTdGF0dXNDb2RlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5saW5lTnVtYmVyID0g
IGluZm8ubGluZU51bWJlcjsKICAgICB2aW9sYXRpb25FdmVudEluaXQuY29sdW1uTnVtYmVyID0g
aW5mby5jb2x1bW5OdW1iZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oCmluZGV4IDhlMDUxODI2NDE0MDZmMmNjOGNhYTJk
YzU2YWUzMzYwNjM0ZTZiMWUuLmYyZmU2Mzg5NDY0OTZlZGJiMzAzODQ1Mzk4ZmY5ZTczOTdjMzRi
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeUNsaWVudC5oCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBD
b250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQgewogCiAgICAgdmlydHVhbCB2b2lkIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPEZvcm1EYXRhPiYmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50SW5pdCYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNzJlNGY2
OTFiNGY5NTI1NzVkOTMxMWU0ZDBhN2RlMTdjZmYwMjM2OC4uZDBhNGZlNGEyMGUwYWU4ZDI3ZGUz
ZDRiOWVlNjllNTA3YTVhMGVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQ29u
dGVudFR5cGUuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkludFJlY3QuaCIKICNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgiCkBAIC00MSw2ICs0MCw3
IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRU
cmFjay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXIuaD4KICNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA1MDBmZGIwZmRj
Y2MzZTMxOWJjZDYxYWUyM2I0ZGVlZTA1ZGE5YTVmLi5hMTQ4ODdmYzc3NWUyYjk3YjY5ZjljNTk1
YWU4MjcwYWFkNzExYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1
ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRGF0YU11dGV4Lmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKaW5kZXggMTNiYTE1ZDdh
MmNlYTE3OTk4NWFhMWY3YTBkNTMzZTljZDQ3OGY0Yy4uNzFmYjIyMzVhZGVhN2E3ZjI0NTE2ZjQy
MThiZGE4OTUyN2FkNTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xl
Z2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lM
aW5lTGF5b3V0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJCaWRpUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJCcmVha2luZ0NvbnRleHQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGbG9hdGluZ09iamVj
dHMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSW5saW5lSXRl
cmF0b3JCb3guaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4
IGQ0ZDlmMmM3MTllYmM0OWFkZGIyYmJlYmZlZWM0MWFlMWJjZGNlZWUuLmYxNDQ5ODE0NTZmZmY4
ODQxY2RiMTQ4NWNiZTY1ZmM0OGIyNjk2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRSZWdpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA4M2EwZWMzOWI0OWJlMzU5NDZmZGQ5MTk0
ZjdlYWI0Mjc3ODM3M2Q5Li4yN2Y5ZDRlMzM4NjkzOGZhM2FmOGIwYThhNmEwMTkzYmM0YTBkNDUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJD
b250ZW50RGF0YS5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCiAjaW5jbHVkZSAiRWxl
bWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGI0ZTUzM2E2NzkwYzUzMzYyMTRh
NGY1MjQzYjViZmViN2I5Yjg4MDUuLjc3N2Q4NDA2NjFkY2JmNGUwMTg4NGE5MTliZWFkNGQxNDMx
ZjgyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCaXRtYXBJ
bWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9udENhY2hl
LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAppbmRleCA2N2RmNjE4NDIzYmUxYzU4NmMzMjhjZDY0MzEzZGI1NmVk
N2NlMzhiLi5jYWI2M2Y1YjE0Y2U1ZWI4N2VlNGQ4N2E4MGIzODY1ZGZiNmU5YjFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5o
IgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5k
bGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDE3ZGY5
NGVjNDBjYzJlMTk2NGQwNWNhMjgzMzBkOTAxMjkwZTIwOTEuLjEwMmM0ZWUxNmMwZDFhZDRkODE1
N2Y4MWJlNDY2NmJmNDNkMTY4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvbG9yQmxlbmRpbmcuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGY1Mjc4M2FlOGFmN2Q1ZDYzYzViYzhl
YWI2YzM2OWM2ZDRhZThhZWMuLmIwZDM3MTRiMWJjNGNjNmJiZDQ4YWRiN2YyOTM2NzczMTRhYTA4
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKICNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGlu
Zy5oIgogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRmxv
YXRRdWFkLmgiCkBAIC0xNzkzLDcgKzE3OTQsNyBAQCBib29sIFJlbmRlck9iamVjdDo6dXNlRGFy
a0FwcGVhcmFuY2UoKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudCgpLnVzZURhcmtBcHBlYXJh
bmNlKCZzdHlsZSgpKTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IFJlbmRl
ck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAorT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmc3R5bGUoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMTI2MDAwNGY1YzJmN2UxZGQwMmIy
NDA4NTVkMjE1ODU1YmY2YjMzYi4uYzUzNGM5ZmRkMDVkNTg0NzBmYTdlNjYxNDg2YTZhZWFjY2Q2
NjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMTY0LDcg
KzE2NCw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZW5jbG9zaW5nRnJh
Z21lbnRlZEZsb3coKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRGFya0Fw
cGVhcmFuY2UoKSBjb25zdDsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5
bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIHZv
aWQgc2V0SGFzQVhPYmplY3QoYm9vbCBmbGFnKSB7IG1faGFzQVhPYmplY3QgPSBmbGFnOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA3ZWU5NDQy
NmNjNTJiYWRiNDBmZmM0Y2I3Y2ZiZDEyNzc0YmNlNzNhLi4xZmU2M2IxNTc5NjlkZTgwOWU4ZmIz
YThlNDgwMjJmYmI4Mjk4NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBDb2xvciBSZW5kZXJSZXBsYWNlZDo6Y2Fs
Y3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
SGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VT
eXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgICAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VT
eXN0ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZSgpLmFw
cEhpZ2hsaWdodENvbG9yKHN0eWxlQ29sb3JPcHRpb25zKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXgg
NDhkY2ZiM2M4ZmEwNmMzNzIxNWJhNDcwNGMyNTI2MDQ5YmRiNjEwZi4uMzQzN2NhYzRlZDc4ODk1
NGNhODQ1ZTcyMmJlOTQ4YWE1NGE5NmJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJyZWFrTGluZXMuaCIKICNp
bmNsdWRlICJCcmVha2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJDaGFyYWN0ZXJQcm9wZXJ0aWVz
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IGI5MDgyYjU2
Nzc5NWYyY2Q1ZTRkNmE3NGQ3MDMzYTg1ZTg3MWMwNWMuLjhjYmViZmViY2JiZjM4ZjI4MmFiY2Nj
NGY2ZDUwMTVkZjk2Yzg2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcApAQCAtNjAzLDcgKzYwMyw3IEBAIExheW91dFBvaW50IFJlbmRlclRoZW1lOjp2b2x1bWVT
bGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihjb25zdCBSZW5kZXJCb3gmIG11dGVCCiAKICNlbmRp
ZgogCi1Db2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hl
KG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
LmlzVmFsaWQoKSkKQEAgLTYxMSw3ICs2MTEsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPgog
ICAgIHJldHVybiBjYWNoZS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
OjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9w
dGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpKQpAQCAtNjE5LDEyICs2MTksMTIgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb24K
ICAgICByZXR1cm4gY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAK
LUNvbG9yIFJlbmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29u
c3QgQ29sb3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAg
ICByZXR1cm4gYmxlbmRXaXRoV2hpdGUoY29sb3IpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2Fj
aGUuYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c1Nl
bGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02MzIsNyArNjMyLDcgQEAgQ29s
b3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8m
IGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02NDAsNyArNjQwLDcgQEAgQ29sb3IgUmVuZGVyVGhl
bWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb24KICAgICByZXR1cm4gY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8m
IGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQpAQCAtNjQ4LDcgKzY0OCw3IEBA
IENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpKQpAQCAtNjU2LDcgKzY1Niw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6CiAgICAg
cmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUg
PSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTY2NCw3ICs2NjQsNyBAQCBDb2xvciBSZW5k
ZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6TwogICAgIHJldHVybiBjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2Fj
aGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLmlzVmFsaWQoKSAmJiBz
dXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAtNjcy
LDQ3ICs2NzIsNDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjoKICAgICByZXR1cm4gY2FjaGUu
aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgLy8gVXNlIGEgYmx1ZSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBw
bGF0Zm9ybSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICByZXR1cm4gQ29sb3I6
OmJsdWU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSB3aGl0ZSBj
b2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0
aGluZy4KICAgICByZXR1cm4gQ29sb3I6OndoaXRlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdAogewogICAgIC8vIFVzZSBhIGdyZXkgY29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZv
cm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgLy8gVGhpcyBjb2xvciBtYXRj
aGVzIEZpcmVmb3gncyBpbmFjdGl2ZSBjb2xvci4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4g
eyAxNzYsIDE3NiwgMTc2IH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
Ly8gVXNlIGEgYmxhY2sgY29sb3IgYnkgZGVmYXVsdC4KICAgICByZXR1cm4gQ29sb3I6OmJsYWNr
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKG9w
dGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKG9wdGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKG9wdGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKG9wdGlvbnMpOwogfQpAQCAtMTIzNCwxMCArMTIz
NCwxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCiAgICAg
UGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVu
dCgpOwogfQogCi1hdXRvIFJlbmRlclRoZW1lOjpjb2xvckNhY2hlKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xvckNhY2hlJgorYXV0byBSZW5kZXJU
aGVtZTo6Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0IC0+IENvbG9yQ2FjaGUmCiB7CiAgICAgYXV0byBvcHRpb25zSWdub3JpbmdWaXNpdGVkTGlu
ayA9IG9wdGlvbnM7Ci0gICAgb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsucmVtb3ZlKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBvcHRpb25zSWdub3JpbmdWaXNp
dGVkTGluay5yZW1vdmUoU3R5bGVDb2xvck9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKIAogICAg
IHJldHVybiBtX2NvbG9yQ2FjaGVNYXAuZW5zdXJlKG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5r
LnRvUmF3KCksIFtdIHsKICAgICAgICAgcmV0dXJuIENvbG9yQ2FjaGUoKTsKQEAgLTEyODQsMTEg
KzEyODQsMTEgQEAgdm9pZCBSZW5kZXJUaGVtZTo6c3lzdGVtRm9udChDU1NWYWx1ZUlEIHN5c3Rl
bUZvbnRJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgZm8KICAgICB1cGRhdGVDYWNoZWRTeXN0
ZW1Gb250RGVzY3JpcHRpb24oc3lzdGVtRm9udElELCBmb250RGVzY3JpcHRpb24pOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsK
ICAgICBjYXNlIENTU1ZhbHVlV2Via2l0TGluazoKLSAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspID8gU1JHQkE8dWludDhf
dD4geyA4NSwgMjYsIDEzOSB9IDogU1JHQkE8dWludDhfdD4geyAwLCAwLCAyMzggfTsKKyAgICAg
ICAgcmV0dXJuIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OkZvclZpc2l0ZWRM
aW5rKSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAxMzkgfSA6IFNSR0JBPHVpbnQ4X3Q+IHsg
MCwgMCwgMjM4IH07CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEFjdGl2ZWxpbms6CiAgICAgY2Fz
ZSBDU1NWYWx1ZUFjdGl2ZXRleHQ6CiAgICAgICAgIHJldHVybiBDb2xvcjo6cmVkOwpAQCAtMTM2
OSw3ICsxMzY5LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQg
Y3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGkKICAgICB9CiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6dGV4dFNlYXJj
aEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFj
YWNoZS50ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IuaXNWYWxpZCgpKQpAQCAtMTM3NywxMyArMTM3
NywxMyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6dGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpbwogICAgIHJldHVybiBjYWNoZS50ZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybVRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gQ29sb3I6Onll
bGxvdzsKIH0KIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLUNvbG9yIFJlbmRlclRoZW1l
OjphcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBj
b2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYXBwSGlnaGxpZ2h0Q29sb3IuaXNW
YWxpZCgpKQpAQCAtMTM5MSwxMyArMTM5MSwxMyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YXBwSGln
aGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbgog
ICAgIHJldHVybiBjYWNoZS5hcHBIaWdobGlnaHRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWU6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gQ29sb3I6
OnllbGxvdzsKIH0KICNlbmRpZgogCi1Db2xvciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2Fj
aGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5kZWZhdWx0QnV0dG9uVGV4dENvbG9yLmlzVmFs
aWQoKSkKQEAgLTE0MDUsNyArMTQwNSw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjpkZWZhdWx0QnV0
dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zCiAgICAg
cmV0dXJuIGNhY2hlLmRlZmF1bHRCdXR0b25UZXh0Q29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRo
ZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICByZXR1cm4gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBY3RpdmVidXR0b250ZXh0
LCBvcHRpb25zKTsKIH0KQEAgLTE0NjUsNyArMTQ2NSw3IEBAIHZvaWQgUmVuZGVyVGhlbWU6OnNl
dEN1c3RvbUZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBjdXN0b21Gb2N1
c1JpbmdDb2xvcigpID0gY29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpmb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKGN1c3RvbUZvY3VzUmluZ0NvbG9yKCkuaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm4gY3VzdG9tRm9jdXNSaW5nQ29sb3IoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggZTdlNmViYjFiOWQxZWJiMTg4MDdmYjBhYTg5
MTZmOWM4MDFmNzgzMS4uODZmOWU3ZDU4ZTIxZDA2Y2EwZDIyMjNhMWUwNDQ2NDM3NDQzMjVkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTE0NiwzNCArMTQ2LDM0
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNCb3hTaGFkb3coY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gVGV4dCBzZWxlY3Rp
b24gY29sb3JzLgotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Q7Ci0gICAgdmlydHVhbCBDb2xvciB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
Y29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAg
IENvbG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgdHJh
bnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9y
IGluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0OwogCiAgICAgLy8gTGlzdCBib3ggc2VsZWN0aW9uIGNvbG9ycwotICAgIENv
bG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0g
ICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CiAKICAgICAvLyBIaWdobGlnaHRpbmcgY29sb3IgZm9yIHNlYXJjaCBtYXRj
aGVzLgotICAgIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogI2lmIEVOQUJMRShBUFBf
SElHSExJR0hUUykKICAgICAvLyBEZWZhdWx0IGhpZ2hsaWdodGluZyBjb2xvciBmb3IgYXBwIGhp
Z2hsaWdodHMuCi0gICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhcHBIaWdobGlnaHRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKICNlbmRpZgogCi0gICAgQ29sb3IgZGVmYXVs
dEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owor
ICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CiAKICAgICBDb2xvciBkYXRlUGxhY2Vob2xkZXJUZXh0Q29sb3IoY29uc3Qg
Q29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIENvbG9yIGRpc2FibGVkVGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29s
b3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgQ29sb3IgZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7IHJldHVybiBDb2xvcjo6YmxhY2s7IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5n
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgeyByZXR1cm4gQ29sb3I6
OmJsYWNrOyB9CiAgICAgc3RhdGljIHZvaWQgc2V0Q3VzdG9tRm9jdXNSaW5nQ29sb3IoY29uc3Qg
Q29sb3ImKTsKICAgICBzdGF0aWMgZmxvYXQgcGxhdGZvcm1Gb2N1c1JpbmdXaWR0aCgpIHsgcmV0
dXJuIDM7IH0KICAgICBzdGF0aWMgZmxvYXQgcGxhdGZvcm1Gb2N1c1JpbmdPZmZzZXQoZmxvYXQg
b3V0bGluZVdpZHRoKSB7IHJldHVybiBzdGQ6Om1heDxmbG9hdD4ob3V0bGluZVdpZHRoIC0gcGxh
dGZvcm1Gb2N1c1JpbmdXaWR0aCgpLCAwKTsgfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIFN5c3RlbSBmb250cyBhbmQgY29sb3JzIGZvciBDU1MuCiAgICAgdm9pZCBzeXN0
ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICB2
aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAgIHZpcnR1YWwg
aW50IG1pbmltdW1NZW51TGlzdFNpemUoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCB7IHJldHVy
biAwOyB9CiAKQEAgLTI3MiwyNSArMjcyLDI1IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQgc3lzdGVtRm9u
dElELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3QgPSAwOwogCiAgICAgLy8gVGhlIHBs
YXRmb3JtIHNlbGVjdGlvbiBjb2xvci4KLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7Cisg
ICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
OwogCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0
dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBDb2xv
ciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGln
aGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAjaWYgRU5B
QkxFKEFQUF9ISUdITElHSFRTKQotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKICNlbmRpZgogCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybURlZmF1
bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsK
KyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAjaWYgIVVTRShORVdfVEhFTUUpCiAgICAgLy8gTWV0aG9kcyBmb3Ig
ZWFjaCBhcHBlYXJhbmNlIHZhbHVlLgpAQCAtNDUxLDcgKzQ1MSw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgQ29sb3IgZGVmYXVsdEJ1dHRvblRleHRDb2xvcjsKICAgICB9OwogCi0gICAgdmlydHVh
bCBDb2xvckNhY2hlJiBjb2xvckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvckNhY2hlJiBjb2xvckNhY2hlKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0U2VhcmNo
RmllbGREZWNvcmF0aW9uU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCmlu
ZGV4IDMyYWI1YzJjOTg2MjM0NDIzZWE0OWZmODQxYzM1N2EzYThkZGM2YjYuLmQxZDYyM2U2NzMw
ZjJjMmM1ZjRkN2E1ZjMyZmEwMDhlYjIxYzIyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0xMzUsNDkgKzEzNSw0OSBAQCBib29s
IFJlbmRlclRoZW1lQWR3YWl0YTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhU
TUxJbnB1dEVsZW1lbnQmIGVsZQogICAgIHJldHVybiBlbGVtZW50LmlzUGFzc3dvcmRGaWVsZCgp
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpw
bGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVt
ZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAK
LUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5n
bGV0b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1l
QWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNp
bmdsZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuaW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdh
aXRhOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUZvY3Vz
UmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
LSAgICByZXR1cm4gVGhlbWVBZHdhaXRhOjpmb2N1c0NvbG9yKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICByZXR1cm4gVGhlbWVB
ZHdhaXRhOjpmb2N1c0NvbG9yKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9y
bUNvbG9yc0RpZENoYW5nZSgpCkBAIC0yMDMsOSArMjAzLDkgQEAgVmVjdG9yPFN0cmluZywgMj4g
UmVuZGVyVGhlbWVBZHdhaXRhOjptZWRpYUNvbnRyb2xzU2NyaXB0cygpCiB9CiAjZW5kaWYKIAot
Q29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVl
SUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVBZHdhaXRhOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBjb25zdCBi
b29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5j
ZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KTsKIAogICAgIHN3aXRjaCAoY3NzVmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVj
YXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
QWR3YWl0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5o
CmluZGV4IDZjNzk5MzIzYjdkZGJiZDE1OTkwMTdkNjBjZmVjZjA5MTI0NDAyZWIuLjk5MzMyNWM0
MTY2NWVkZGIzNDg5N2ZjYzdlNTMzODc1ODU4YzJiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKQEAgLTQ2LDE1ICs0NiwxNSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJ
RCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgfTsKIAotICAgIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9y
IHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkgZmluYWw7
CiAKICAgICBib29sIHBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwpAQCAtODcsNyArODcsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgog
Ci0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlE
LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJM
RShEQVRBTElTVF9FTEVNRU5UKQogICAgIEludFNpemUgc2xpZGVyVGlja1NpemUoKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXggNGIx
MDFiMzhiNWM4ZTE0ZDBhNjc3ZjUwNzQzZDFkNjdiNDUxMzE0Zi4uY2I1ZThkOGRhOGMyOWJhZTMw
YTVhYzBiNWEyZGI2ZmE4ZDdhZTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLmgKQEAgLTExNSwxMCArMTE1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWlu
dFNlYXJjaEZpZWxkRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKElPU19GT1JNX0NP
TlRST0xfUkVGUkVTSCkKLSAgICBDb2xvciBjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9u
U2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
Pik7Ci0gICAgQ29sb3IgY2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVy
bmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPik7CisgICAgQ29sb3IgY2hlY2tib3hSYWRpb0JvcmRlckNvbG9y
KE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNl
QWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAgICAgUmVmUHRyPEdyYWRpZW50PiBjaGVja2JveFJh
ZGlvQmFja2dyb3VuZEdyYWRpZW50KGNvbnN0IEZsb2F0UmVjdCYsIE9wdGlvblNldDxDb250cm9s
U3RhdGVzOjpTdGF0ZXM+KTsKLSAgICBDb2xvciBjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3Io
T3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPik7CisgICAgQ29sb3IgY2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNl
dDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsK
IAogICAgIGJvb2wgcGFpbnRDaGVja2JveChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICBib29sIHBhaW50UmFkaW8o
Y29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikg
b3ZlcnJpZGU7CkBAIC0xNTYsMTIgKzE1NiwxMiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzdXBw
b3J0c0JveFNoYWRvdyhjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgQ29s
b3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykK
LSAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTE5OCw3ICsxOTgsNyBAQCBwcml2YXRlOgog
CiAgICAgRmxvYXRSZWN0IGFkZFJvdW5kZWRCb3JkZXJDbGlwKGNvbnN0IFJlbmRlck9iamVjdCYg
Ym94LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBDb2xvciBzeXN0
ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IG92ZXJyaWRlOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgVVNFKFNZU1RFTV9QUkVW
SUVXKQogICAgIFJldGFpblB0cjxDSUNvbnRleHQ+IG1fY2lDb250ZXh0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDY5ZWU0OTYzMzYwZThjNjA2NWMx
ZmY3MTFmMWZiMTY2ZGUzYjRmNWUuLjMyMTdkOTFlZjk4NDVjNzMzMjQ2NjhlMzhlMzBmOGQ3MWQy
ODkxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAg
LTEyMzcsMTIgKzEyMzcsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2Fk
SWNvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFIKICAgICBpY29uLT5w
YWludChwYWludEluZm8uY29udGV4dCgpLCB0aHVtYm5haWxSZWN0KTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVJT1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gQ29sb3I6
OnRyYW5zcGFyZW50QmxhY2s7CiB9CkBAIC0xMjYyLDEzICsxMjYyLDEzIEBAIENvbG9yIFJlbmRl
clRoZW1lSU9TOjpzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpCiAgICAgcmV0dXJuICpjYWNoZWRGb2N1
c1JpbmdDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1Jp
bmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpOwogfQog
CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRm
b3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogZXhwb3NlIHRo
ZSByZWFsIHZhbHVlIGZyb20gVUlLaXQuCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMjU1
LCAyMzgsIDE5MCB9OwpAQCAtMTQyMyw5ICsxNDIzLDkgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6
c2V0Rm9jdXNSaW5nQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGNhY2hlZEZvY3VzUmlu
Z0NvbG9yKCkgPSBjb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7Ci0gICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIGNvbnN0IGJvb2wgZm9yVmlz
aXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVk
TGluayk7CiAKICAgICAvLyBUaGUgc3lzdGVtIGNvbG9yIGNhY2hlIGJlbG93IGNhbid0IGhhbmRs
ZSB2aXNpdGVkIGxpbmtzLiBUaGUgb25seSBjb2xvciB2YWx1ZQogICAgIC8vIHRoYXQgY2FyZXMg
YWJvdXQgdmlzaXRlZCBsaW5rcyBpcyBDU1NWYWx1ZVdlYmtpdExpbmssIHNvIGhhbmRsZSBpdCBo
ZXJlIGJ5CkBAIC0xNDM3LDggKzE0MzcsOCBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6TwogCiAg
ICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIHJldHVybiBjYWNoZS5z
eXN0ZW1TdHlsZUNvbG9ycy5lbnN1cmUoY3NzVmFsdWVJRCwgW3RoaXMsIGNzc1ZhbHVlSUQsIG9w
dGlvbnNdICgpIC0+IENvbG9yIHsKLSAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5j
ZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpOwotICAgICAgICBjb25zdCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID0g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRl
cmZhY2VMZXZlbCk7CisgICAgICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAg
ICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7
CiAgICAgICAgIGlmICghZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBhdXRvIGl0ID0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFw
KCkuZmluZChDU1NWYWx1ZUtleSB7IGNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCB9KTsKICAgICAgICAgICAgIGlmIChpdCA9PSBnbG9i
YWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5lbmQoKSkKQEAgLTIwNDcsNyArMjA0Nyw3IEBA
IGNvbnN0ZXhwciBhdXRvIG5hdGl2ZUNvbnRyb2xCb3JkZXJXaWR0aCA9IDEuMGY7CiBjb25zdGV4
cHIgYXV0byBjaGVja2JveFJhZGlvQm9yZGVyV2lkdGggPSAxLjVmOwogY29uc3RleHByIGF1dG8g
Y2hlY2tib3hSYWRpb0JvcmRlckRpc2FibGVkT3BhY2l0eSA9IDAuM2Y7CiAKLUNvbG9yIFJlbmRl
clRoZW1lSU9TOjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0
ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVD
b2xvck9wdGlvbnMpCitDb2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JvcmRlckNv
bG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKIHsKICAgICBhdXRvIGRlZmF1bHRC
b3JkZXJDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlMYWJl
bCwgc3R5bGVDb2xvck9wdGlvbnMpOwogCkBAIC0yMDYwLDcgKzIwNjAsNyBAQCBDb2xvciBSZW5k
ZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3Rh
dGVzOjpTdGF0ZXM+CiAgICAgcmV0dXJuIGRlZmF1bHRCb3JkZXJDb2xvcjsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRl
cm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVu
ZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5h
dGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKIHsKICAgICBib29sIGlz
RW1wdHkgPSAhc3RhdGVzLmNvbnRhaW5zQW55KHsgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpDaGVj
a2VkLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkluZGV0ZXJtaW5hdGUgfSk7CiAgICAgYm9vbCBp
c0VuYWJsZWQgPSBzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVk
KTsKQEAgLTIxMDAsMTIgKzIxMDAsMTIgQEAgUmVmUHRyPEdyYWRpZW50PiBSZW5kZXJUaGVtZUlP
Uzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRHcmFkaWVudChjb25zdCBGbG9hdFJlY3QKICAgICBy
ZXR1cm4gZ3JhZGllbnQ7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlv
SW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitDb2xvciBS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250
cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBz
dHlsZUNvbG9yT3B0aW9ucykKIHsKICAgICBpZiAoIXN0YXRlcy5jb250YWlucyhDb250cm9sU3Rh
dGVzOjpTdGF0ZXM6OkVuYWJsZWQpKQogICAgICAgICByZXR1cm4gc3lzdGVtQ29sb3IoQ1NTVmFs
dWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKIAotICAgIENv
bG9yIGVuYWJsZWRJbmRpY2F0b3JDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0
ZW1MYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSk7CisgICAgQ29sb3IgZW5hYmxlZEluZGljYXRvckNvbG9yID0gc3lzdGVtQ29s
b3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHN0YXRlcy5jb250YWlucyhD
b250cm9sU3RhdGVzOjpTdGF0ZXM6OlByZXNzZWQpKQogICAgICAgICByZXR1cm4gZW5hYmxlZElu
ZGljYXRvckNvbG9yLmNvbG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNzZWRTdGF0ZU9wYWNp
dHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDFl
NjE2ODc2MGYxMTc0Nzc2MWE4YTNjM2U1YjJlOGQ2ZDJkMWI4OGQuLmM0MWY3NDkwMDkyNWVmYTE2
NWVlZWU4OWQ2OGI4ZTY2NjEwNTM1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5oCkBAIC01MywyMyArNTMsMjMgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0Nv
bnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFn
ZW50U3R5bGUpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
LQotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBD
b2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
LSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9y
IHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc3Vw
cG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworCisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7Cisg
ICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgdHJhbnNmb3JtU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7
CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3Ig
cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCi0gICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7
CiAjZW5kaWYKLSAgICBDb2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9y
bURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QgZmluYWw7CiAKICAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6
ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXpl
OjpTbWFsbDsgfQogCkBAIC0xNTksNyArMTU5LDcgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAg
U3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IEZpbGVMaXN0KiwgY29uc3QgRm9udENh
c2NhZGUmLCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpIGNvbnN0IGZpbmFs
OwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAogICAgIC8v
IEdldCB0aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0aGUgZm9udC4gVXNlZCBieSBzb21lIG9m
IHRoZSBjb250cm9scyAobGlrZSBidXR0b25zKS4KICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xT
aXplRm9yRm9udChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGExNGZlY2NjZWJiZjdjMTVhYWI5OWFkNDAy
YWFkNzIyNjg1MjBjNjAuLmQ0MzdmNDgyNjY1YzMzM2NhMjM2ZTBiMzc1ODI2YTNmMmFhNjRjNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTI4NCwx
NiArMjg0LDE2IEBAIE5TVmlldyAqUmVuZGVyVGhlbWVNYWM6OmRvY3VtZW50Vmlld0Zvcihjb25z
dCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiAgICAgcmV0dXJuIFRoZW1lTWFjOjplbnN1cmVkVmll
dygmby52aWV3KCkuZnJhbWVWaWV3KCksIHN0YXRlcyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
TWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Ug
bG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2Vs
ZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQp
Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJu
IGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0QmFja2dy
b3VuZENvbG9yXSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTMwMSw5
ICszMDEsOSBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwogI2VuZGlmCiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lTWFjOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
Y29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFu
Y2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5j
ZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAg
ICAgaWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpIHsKICAgICAgICAg
Ly8gVXNlIGFuIGFscGhhIHZhbHVlIHRoYXQgaXMgc2ltaWxhciB0byByZXN1bHRzIGZyb20gYmxl
bmRXaXRoV2hpdGUoKSBvbiBsaWdodCBjb2xvcnMuCiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9h
dCBkYXJrQXBwZWFyYW5jZUFscGhhID0gMC44OwpAQCAtMzEzLDI0ICszMTMsMjQgQEAgQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBD
b2xvciYgY29sb3IsIE9wdGkKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihjb2xvciwgb3B0aW9ucyk7CiB9CiAKLWJvb2wgUmVuZGVyVGhl
bWVNYWM6OnN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK2Jvb2wgUmVuZGVyVGhlbWVNYWM6OnN1cHBv
cnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2Nh
bEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBl
YXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKSk7CiAgICAgcmV0dXJuIGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCk7
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBw
ZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBjb2xvckZyb21O
U0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9yXSk7CiAgICAgcmV0dXJuIHsgfTsKIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYg
SEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKICAgICBpZiAobG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFu
Y2UoKSkKICAgICAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBoYXNp
emVkU2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1cm4geyB9OwpAQCAtMzQwLDEwICszNDAs
MTAgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ28KICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJU
aGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShP
U19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxv
Y2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFw
cGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3RlZENv
bnRlbnRCYWNrZ3JvdW5kQ29sb3JdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMp
OwpAQCAtMzUzLDEwICszNTMsMTAgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3QKICNlbmRpZgog
fQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
ck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShv
cHRpb25zKTsKICNlbmRpZgpAQCAtMzY0LDE2ICszNjQsMTYgQEAgQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDwKIAogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBv
cHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFw
cGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBw
ZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgYWx0ZXJuYXRlU2VsZWN0
ZWRDb250cm9sVGV4dENvbG9yXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0
Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVf
U1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRl
eHRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CkBAIC0zODEsMzIg
KzM4MSwzMiBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PAogI2VuZGlmCiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGlmICh1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpKQogICAgICAgICByZXR1
cm4gb2xkQXF1YUZvY3VzUmluZ0NvbG9yKCk7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Ug
bG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURh
cmtBcHBlYXJhbmNlKSk7CiAgICAgLy8gVGhlIGNvbG9yIGlzIGV4cGVjdGVkIHRvIGJlIG9wYXF1
ZSwgc2luY2UgQ29yZUdyYXBoaWNzIHdpbGwgYXBwbHkgb3BhY2l0eSB3aGVuIGRyYXdpbmcgKGJl
Y2F1c2Ugb3BhY2l0eSBpcyBub3JtYWxseSBhbmltYXRlZCkuCiAgICAgcmV0dXJuIGNvbG9yRnJv
bU5TQ29sb3IoW05TQ29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSkub3BhcXVlQ29s
b3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0
eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlND
b2xvcihbTlNDb2xvciBmaW5kSGlnaGxpZ2h0Q29sb3JdKTsKIH0KIAogI2lmIEVOQUJMRShBUFBf
SElHSExJR0hUUykKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lTWFjOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1ZSBmcm9t
IEFwcEtpdC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAyNTUsIDIzOCwgMTkwIH07CiB9
CiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9y
KFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0pOwogfQogCkBAIC00
NDksMTEgKzQ0OSwxMSBAQCBzdGF0aWMgU1JHQkE8dWludDhfdD4gbWVudUJhY2tncm91bmRDb2xv
cigpCiAgICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nPFNSR0JBPHVpbnQ4X3Q+
PihwaXhlbFswXSwgcGl4ZWxbMV0sIHBpeGVsWzJdLCBwaXhlbFszXSk7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wgdXNlU3lzdGVtQXBw
ZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVt
QXBwZWFyYW5jZSk7Ci0gICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwotICAgIGNv
bnN0IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFu
Y2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJh
bmNlKTsKKyAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wg
Zm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JW
aXNpdGVkTGluayk7CiAKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAK
QEAgLTE1NzEsNyArMTU3MSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0
U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlKSBjCiAgICAgLy8gU2V0
IHRoZSBmb3JlZ3JvdW5kIGNvbG9yIHRvIGJsYWNrIG9yIGdyYXkgd2hlbiB3ZSBoYXZlIHRoZSBh
cXVhIGxvb2suCiAgICAgQ29sb3IgYyA9IENvbG9yOjpkYXJrR3JheTsKICAgICBpZiAoZSkgewot
ICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucyA9IGUtPmRvY3Vt
ZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKTsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zID0gZS0+ZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygm
c3R5bGUpOwogICAgICAgICBjID0gIWUtPmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpID8gc3lzdGVt
Q29sb3IoQ1NTVmFsdWVCdXR0b250ZXh0LCBvcHRpb25zKSA6IHN5c3RlbUNvbG9yKENTU1ZhbHVl
R3JheXRleHQsIG9wdGlvbnMpOwogICAgIH0KICAgICBzdHlsZS5zZXRDb2xvcihjKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IDg1ZGFhZDg1Nzdi
ZDhlNzZjN2FkOTc4ZTJjMmRkMGM4MDRlMWNiOGMuLjBkNDVhZDVlOTIzMGZkMjU5NzM1ZmM2MWRl
ODVkMDhlZTMyYWNhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcApAQCAtMjg1LDI1ICsyODUsMjUgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbjo6c3VwcG9y
dHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0CiAgICAgcmV0dXJuIGhhdmVUaGVtZTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIENPTE9SUkVGIGNvbG9yID0g
R2V0U3lzQ29sb3IoQ09MT1JfSElHSExJR0hUKTsKICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4g
eyBHZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29sb3IpLCBHZXRCVmFsdWUoY29sb3IpIH07
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBjb2xv
ciBtYXRjaGVzIEZpcmVmb3guCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYs
IDE3NiB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgQ09MT1JSRUYg
Y29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9ISUdITElHSFRURVhUKTsKICAgICByZXR1cm4gU1JH
QkE8dWludDhfdD4geyBHZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29sb3IpLCBHZXRCVmFs
dWUoY29sb3IpIH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBv
cHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihvcHRpb25zKTsKIH0KQEAgLTEwMDIsNyArMTAwMiw3IEBAIHN0YXRpYyBpbnQgY3NzVmFs
dWVJZFRvU3lzQ29sb3JJbmRleChDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQpCiAgICAgfQogfQogCi1D
b2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lV2luOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9E
RV9TVVBQT1JUKQogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAppbmRleCBjODFiNTBhMzJhMjkzZWI2N2IwYjI2MjcwM2Ux
MGU1MDNlODZkODI1Li42YjAwY2YwNzg0YzJmMDdkYWVjNmMzOGY2MmNmZDQ0NmJkMmM3ZmI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaApAQCAtNTQsMTIgKzU0
LDEyIEBAIHB1YmxpYzoKICAgICAvLyBBIG1ldGhvZCBhc2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29u
dHJvbHMgYWN0dWFsbHkgY2FyZSBhYm91dCByZWRyYXdpbmcgd2hlbiBob3ZlcmVkLgogICAgIGJv
b2wgc3VwcG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBv
dmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsK
KyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgQ29sb3Igc3lz
dGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBvdmVycmlkZTsKKyAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgcGFpbnRDaGVj
a2JveChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgRmxv
YXRSZWN0JiByKSBvdmVycmlkZQogICAgIHsgcmV0dXJuIHBhaW50QnV0dG9uKG8sIGksIEludFJl
Y3QocikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4
IGFmMDQxOWNmNmM0OTI1ZDFjOTQ0NzI3M2E3MTA1ZDFjNGI5ODVhMTcuLmQ2Y2M5YjcxYThhY2Iz
MTlhZTQ1YjFjMGU3ZTA0MWI0ZWJhZTY4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKaW5kZXggYzljZmM3ZmY1ZGIxMDBhNDFlZTYx
MTQzODg2OWQ0YTFjN2JkZWNlZi4uMDQ3ZjAyYTE3OWZhNTYxM2JkODNhNmY1Nzk3OWJmNmIxNDA0
MjZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNw
cApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgU3R5bGVkTWFya2VkVGV4dCByZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtlZFRleHQmIG1hcmtlZFRleHQsCiAgICAgICAgIGJyZWFr
OwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICBjYXNlIE1hcmtlZFRleHQ6OkFwcEhp
Z2hsaWdodDogewotICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVD
b2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2Ug
fTsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cyA9IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICAgICAgICAg
c3R5bGUuYmFja2dyb3VuZENvbG9yID0gcmVuZGVyZXIudGhlbWUoKS5hcHBIaWdobGlnaHRDb2xv
cihzdHlsZUNvbG9yT3B0aW9ucyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTkyLDcgKzky
LDcgQEAgc3RhdGljIFN0eWxlZE1hcmtlZFRleHQgcmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChj
b25zdCBNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LAogICAgIH0KICAgICBjYXNlIE1hcmtlZFRleHQ6
OlRleHRNYXRjaDogewogICAgICAgICAvLyBUZXh0IG1hdGNoZXMgYWx3YXlzIHVzZSB0aGUgbGln
aHQgc3lzdGVtIGFwcGVhcmFuY2UuCi0gICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVt
QXBwZWFyYW5jZSB9OworICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxl
Q29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9
OwogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgc3R5bGUudGV4dFN0eWxlcy5maWxsQ29sb3Ig
PSByZW5kZXJlci50aGVtZSgpLnN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwg
c3R5bGVDb2xvck9wdGlvbnMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludFN0eWxlLmNwcAppbmRleCBiZmYyMTdlOTQwMTJlMjFkNmMxMmMwNGU4OGI4NzA5Y2Y5
ZTU3N2RiLi5mYzY4ZjQzZWZkZTM2YzRjZjhiZTE1MTFlZGU4NjRmZDBmYTRhN2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKQEAgLTk4LDkgKzk4LDkg
QEAgVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0eWxlKGNvbnN0IEZyYW1lJiBmcmFt
ZSwgY29uc3QgUmVuZGVyU3R5bGUmIGxpbmUKICAgICBpZiAobGluZVN0eWxlLmluc2lkZURlZmF1
bHRCdXR0b24oKSkgewogICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFnZSgpOwogICAgICAg
ICBpZiAocGFnZSAmJiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpKSB7Ci0gICAg
ICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICAgICAg
ICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9uczsKICAgICAgICAgICAgIGlm
IChwYWdlLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkpCi0gICAgICAgICAgICAgICAgb3B0aW9ucy5h
ZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgICAg
ICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2Up
OwogICAgICAgICAgICAgcGFpbnRTdHlsZS5maWxsQ29sb3IgPSBSZW5kZXJUaGVtZTo6c2luZ2xl
dG9uKCkuZGVmYXVsdEJ1dHRvblRleHRDb2xvcihvcHRpb25zKTsKICAgICAgICAgICAgIHJldHVy
biBwYWludFN0eWxlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAppbmRleCA0MzBhMzQyZjYzYjkz
ODQ0ZjQxYjc1N2IwZGZhZDlhYWJiMjdjY2M0Li45Y2U1MTZiODY3M2YzNzc0NzQ0MTFhZjJiMDg0
MzBiYWU1ZGQxNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJUcmVlQnVpbGRlci5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJCdXR0b24uaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0NmRiZjViYjMzZDVlODVlMTUyMWFiZTc4OGI5MTdm
ZTI4MTNjN2E5Li40M2M0OWM5NTBlM2I5OTVjNjViMTUwMmM1NWIyMzY2ODIxNGExMzUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUaW1l
bGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpAQCAtNDYzMywxNCArNDYzNCwxNCBAQCB2
b2lkIEludGVybmFsczo6c2V0UGFnZU11dGVkKFN0cmluZ1ZpZXcgc3RhdGVzU3RyaW5nKQogICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvciAoU3RyaW5nVmlldyBzdGF0ZVN0cmluZyA6
IHN0YXRlc1N0cmluZy5zcGxpdCgnLCcpKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShzdGF0ZVN0cmluZywgImF1ZGlvIikpCi0gICAgICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKKyAgICAgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKICAgICAg
ICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5nLCAiY2FwdHVy
ZWRldmljZXMiKSkKICAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJzY3JlZW5jYXB0dXJlIikpCi0gICAgICAgICAgICBzdGF0
ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwor
ICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CiAgICAgfQogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFn
ZSgpKQpAQCAtNDY1NSw0MyArNDY1Niw0MyBAQCBTdHJpbmcgSW50ZXJuYWxzOjpwYWdlTWVkaWFT
dGF0ZSgpCiAKICAgICBhdXRvIHN0YXRlID0gZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFTdGF0ZSgp
OwogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpCisgICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpCiAg
ICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ0F1ZGlvLCIpOwotICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCisg
ICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1ZpZGVvLCIpOwotICAg
IGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQogICAgICAgICBzdHJp
bmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFy
Z2V0TW9uaXRvcmluZykpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykpCiAgICAgICAgIHN0
cmluZy5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLCIpOwotICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERl
dmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLCIpOwot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQ
bGF5VG9FbmQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6RGlkUGxheVRvRW5kKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRvRW5k
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcpKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLCIpOwogCi0gICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJv
bEVuYWJsZWQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
IklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVk
KSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQ
cmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAKLSAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lcikpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKSkKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwiKTsK
LSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
QXVkaW9PclZpZGVvKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0F1
ZGlvT3JWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURl
dmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwi
KTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwiKTsKLSAgICBp
ZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRW
aWRlb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJp
bmcuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRX
aXRoTWVkaWFFbGVtZW50KSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwiKTsKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0
aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UpKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSwiKTsKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0
ZWREaXNwbGF5Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSwiKTsKIAogICAg
IGlmIChzdHJpbmcuaXNFbXB0eSgpKQpAQCAtNjEyNCwxMSArNjEyNSwxMSBAQCBTdHJpbmcgSW50
ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFsdWUsIGJv
b2wgdXNlRGFya01vZAogICAgIENTU1ZhbHVlSUQgaWQgPSBjc3NWYWx1ZUtleXdvcmRJRChjc3NW
YWx1ZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoU3R5bGVDb2xvcjo6aXNTeXN0ZW1Db2xvcktleXdv
cmQoaWQpKTsKIAotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOwor
ICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9uczsKICAgICBpZiAodXNlRGFy
a01vZGVBcHBlYXJhbmNlKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFj
ZUxldmVsKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CiAgICAgCiAgICAgcmV0dXJu
IHNlcmlhbGl6YXRpb25Gb3JDU1MoUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnN5c3RlbUNvbG9y
KGlkLCBvcHRpb25zKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggYWY3Njk3NjIzY2M5Y2Y0NDZjZThk
Y2UzY2RkNGMyYmEyNzQyNzc1My4uYThjM2UxOGU0N2FlY2FkMGEwMjJhMDg0YzQ5YTIxZjZjNzE0
YzM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgor
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3Vy
Y2UuaCIKICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJz
ZXJTY29wZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDE1Mzk5MjhiYWY0YzA1NzFkMzU1Mjk2
OGExZmJjZjFmMmM3NGJiZGYuLjhiMDNjODFkMDc1YmI5YzMzMzQ0NTc2NjMzNjNjMTIzM2UyYWMz
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICNpbmNs
dWRlICJSZW1vdGVDRE1GYWN0b3J5UHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA3NmYxMjkzZTQ4
NDhlNGVmNGUyOTA0ZTU4NTc1MWM0Y2Y2ZTRjOGE5Li45MDIzNmFjYjFmMDQyNzdhNzgyZjU1M2Y5
NmUzNmFhNGFkMWI2ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNjE1LDcgKzE2MTUsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiByZXBv
cnRVUkwsIFJlZjxGb3JtRGF0YQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDU1BW
aW9sYXRpb25SZXBvcnQgeyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgV1RGTW92ZShyZXBvcnRV
UkwpLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShyZXBvcnQpIH0gfSwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjplbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IHsgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQsIFdURk1vdmUoZXZlbnRJbml0KSB9LCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IGIyZDFkY2I3Yzc2ODE1NzlhMWNmNmZmYmQ0MjRkNDFm
MTA5ZDA1ODIuLmQxNzc2ZTgxZjljNzZmODI0ZDlmNGEzMjY0MjNlMTkwZGY4OTVhNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ29udGVudFNlY3VyaXR5
UG9saWN5Q2xpZW50CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIgPSAwKSBmaW5hbDsKICAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYsIFJl
ZjxXZWJDb3JlOjpGb3JtRGF0YT4mJikgZmluYWw7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
OjpJbml0JiYpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJikgZmluYWw7
CiAKICAgICB2b2lkIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoY29uc3QgTmV0d29ya0Nh
Y2hlOjpDYWNoZTo6UmV0cmlldmVJbmZvJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CmluZGV4IDI3ODFkMTBlOWM2OGVlY2NiNTZiNzY4YjI0NTE4ZDlhYzU0MTdi
ODkuLjkxNmNhMGUzMTk0MjZkMTY2YWRkYzM2NDlhNjQyNWU2MmI0ZTA4YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNzI2LDYgKzcyNiw5IEBAIGRlZiBo
ZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lv
bkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUnOiBbJzxXZWJDb3JlL0xlZ2FjeUNETVNlc3Npb24u
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QnOiBbJzxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVyLmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQn
OiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHknOiBb
JzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJD
b3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKQEAgLTc0OCw2ICs3NTEsNyBAQCBkZWYg
aGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlJvdXRlU2hhcmluZ1Bv
bGljeSc6IFsnPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFi
bGVkJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JzogWyc8V2ViQ29yZS9TZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rp
b25EaXJlY3Rpb24nOiBbJzxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYWQ0MTFiODA2Mjk4YTRiODVlODc4NWJiZjQ3
NWZmMmQ5M2NmMTdlZi4uY2JjYTkwOGUzODM2MGQxZDljOTk0NDJlMDkzZmEwODkxNTFlOTZkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKQEAgLTI4NCw3ICsyODQsNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYVZvbHVtZSkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncz4gbXV0ZWRTdGF0ZUZsYWdzOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncz4gbXV0ZWRTdGF0ZUZsYWdzOwog
ICAgIGRlY29kZXIgPj4gbXV0ZWRTdGF0ZUZsYWdzOwogICAgIGlmICghbXV0ZWRTdGF0ZUZsYWdz
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDRhMDVkNjBiMmFjZTEyMjQwMTM0
OGJiYTlhYTFkYTE3NDZiODkyNDAuLmViMWVlMDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5Yjdh
M2U4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTExOSw3ICsxMTksNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0OwogICAgIAogICAgIGZsb2F0IG1lZGlh
Vm9sdW1lOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRl
ZDsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkOwogICAg
IGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBib29sIG1lZGlhUGxheWJhY2tJ
c1N1c3BlbmRlZCB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKaW5kZXggMmRiMGY1NjljYjIyNTA1ODllN2VjMTYwNThkYWZiNWE2YTRlN2JmMC4u
NTQ5MTAyZWI1ZmVlYWIwMDliZjk0Nzc1MzJkNGY5ZDUwMWVhOGU1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVBy
b3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYXB0dXJlU3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggNzAxZjFhMjkwODhkODQyMDE2MGM3M2UwY2Q5ZWZkMzJkY2M2ZjIzZC4uMWZiMmYyN2Fk
MmI5MjFhODhlYWNhZDhjNzk2ODRiNjg1MjFlNjdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yODE2LDE0ICsyODE2LDE0IEBAIHZvaWQgV0tQYWdlU2V0
TWVkaWFWb2x1bWUoV0tQYWdlUmVmIHBhZ2VSZWYsIGZsb2F0IHZvbHVtZSkKIHZvaWQgV0tQYWdl
U2V0TXV0ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLTWVkaWFNdXRlZFN0YXRlIG11dGVkU3RhdGUp
CiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CiAKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlh
QXVkaW9NdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwogICAgIGlmIChtdXRl
ZFN0YXRlICYga1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkKQogICAgICAgICBjb3JlU3RhdGUu
YWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7
CiAgICAgaWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZCkKLSAgICAg
ICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3Jl
ZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKIAogICAgIHRvSW1wbChw
YWdlUmVmKS0+c2V0TXV0ZWQoY29yZVN0YXRlKTsKIH0KQEAgLTI5NzEsMjQgKzI5NzEsMjQgQEAg
Ym9vbCBXS1BhZ2VJc1BsYXlpbmdBdWRpbyhXS1BhZ2VSZWYgcGFnZSkKIAogV0tNZWRpYVN0YXRl
IFdLUGFnZUdldE1lZGlhU3RhdGUoV0tQYWdlUmVmIHBhZ2UpCiB7Ci0gICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGNvcmVTdGF0ZSA9IHRvSW1wbChwYWdlKS0+cmVw
b3J0ZWRNZWRpYVN0YXRlKCk7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBjb3JlU3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwogICAg
IFdLTWVkaWFTdGF0ZSBzdGF0ZSA9IGtXS01lZGlhSXNOb3RQbGF5aW5nOwogCi0gICAgaWYgKGNv
cmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nQXVkaW8pCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSXNQbGF5aW5nQXVk
aW87Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OklzUGxheWluZ1ZpZGVvKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCiAgICAgICAgIHN0YXRlIHw9IGtXS01l
ZGlhSXNQbGF5aW5nVmlkZW87Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAo
Y29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoY29y
ZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWRBdWRpb0NhcHR1cmVE
ZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7
Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZp
Y2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2
aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZp
Y2U7CiAKICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwMDQ0YTgxYTI3YTliYTUwYzk3OGQ2NzI1ZDA2OTNk
YTFmYjEwNzljLi41NzJlYzk2ZGNhN2M3NWY0YjE3YjQ4MmUyN2FhZTUyZDI0NDcxYWUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEw
MzcsOSArMTAzNyw5IEBAIC0gKHZvaWQpcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tNZWRpYVBsYXliYWNrCiAtIChXS01lZGlhQ2FwdHVy
ZVN0YXRlKWNhbWVyYUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVw
b3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlOwotICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVk
VmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgcmV0dXJu
IFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0
ZU5vbmU7CiB9CkBAIC0xMDQ3LDkgKzEwNDcsOSBAQCAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKWNh
bWVyYUNhcHR1cmVTdGF0ZQogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSltaWNyb3Bob25lQ2FwdHVy
ZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsK
LSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAg
cmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2Up
CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011
dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0
ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKIH0KQEAgLTEwNjEs
MTYgKzEwNjEsMTYgQEAgLSAodm9pZClzZXRNaWNyb3Bob25lQ2FwdHVyZVN0YXRlOihXS01lZGlh
Q2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOigKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIgPSBbXSB7IH07CiAKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0
ZU5vbmUpIHsKLSAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdz
KCk7CiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUpCi0gICAgICAg
IG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1
ZGlvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgZWxzZSBp
ZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQotICAgICAgICBtdXRlZFN0YXRl
LmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011
dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0
YXRlLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIp
XSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CkBAIC0xMDgzLDE2ICsx
MDgzLDE2IEBAIC0gKHZvaWQpc2V0Q2FtZXJhQ2FwdHVyZVN0YXRlOihXS01lZGlhQ2FwdHVyZVN0
YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkCiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyID0gW10geyB9OwogCiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVOb25l
KSB7Ci0gICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgW2NvbXBs
ZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOwog
ICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlKQotICAgICAgICBtdXRl
ZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0Nh
cHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGVsc2UgaWYgKHN0
YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKLSAgICAgICAgbXV0ZWRTdGF0ZS5hZGQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7
CisgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
OjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAtMjI3MSw3ICsyMjcxLDcg
QEAgLSAodm9pZClfY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMKIC0gKHZvaWQpX3N0b3BNZWRp
YUNhcHR1cmUKIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7Ci0gICAgX3BhZ2UtPnN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbyk7CisgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQogCiAtICh2b2lkKV9zdG9wQWxsTWVk
aWFQbGF5YmFjawpAQCAtMzU5NCwxNCArMzU5NCwxNCBAQCAtIChCT09MKV9tZWRpYUNhcHR1cmVF
bmFibGVkCiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0
YXRlCiB7CiAgICAgVEhST1dfSUZfU1VTUEVOREVEOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CiAKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01l
ZGlhQXVkaW9NdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwogICAgIGlmICht
dXRlZFN0YXRlICYgX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkKQogICAgICAgICBjb3JlU3Rh
dGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRl
ZCk7CiAgICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZCkKLSAg
ICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpT
Y3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKIAogICAgIF9wYWdl
LT5zZXRNdXRlZChjb3JlU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBmMDk0ZjUzODkzOTQ0OTU1Zjc5ODM5
YzI1ZDlkZWU5MjVkZjQ3MDBlLi40ZTVkNzMyNTcxNDRiNTFkZDQyYTRlZmFjYzcwZWVmY2NlODUz
ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcApAQCAtNDg2OCw3ICs0ODY4LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2NvcnNfYWxsb3dsaXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBjb24K
ICAgICBnZXRQYWdlKHdlYlZpZXcpLnNldENPUlNEaXNhYmxpbmdQYXR0ZXJucyhXVEZNb3ZlKGFs
bG93TGlzdFZlY3RvcikpOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJl
TWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRl
IGNhcHR1cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZhbHNlKQorc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBjYXB0dXJlS2lu
ZCwgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUgY2FwdHVyZVN0YXRlLCBib29sIGlzRnJvbURpc3Bs
YXlDYXB0dXJlID0gZmFsc2UpCiB7CiAgICAgYXV0byYgcGFnZSA9IGdldFBhZ2Uod2ViVmlldyk7
CiAgICAgYXV0byBtdXRlZFN0YXRlID0gcGFnZS5tdXRlZFN0YXRlRmxhZ3MoKTsKQEAgLTQ4Nzcs
MTMgKzQ4NzcsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2Fw
dHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjoKICAgICBjYXNlIFdFQktJVF9N
RURJQV9DQVBUVVJFX1NUQVRFX05PTkU6CiAgICAgICAgIHBhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShj
YXB0dXJlS2luZCwgW3dlYlZpZXcsIGNhcHR1cmVLaW5kXSB7CiAgICAgICAgICAgICBzd2l0Y2gg
KGNhcHR1cmVLaW5kKSB7Ci0gICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAgICAgICAgICAgICAgICAgZ19vYmpl
Y3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdlYlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X01JQ1JPUEhPTkVfQ0FQVFVSRV9TVEFURV0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9DQU1FUkFfQ0FQVFVSRV9TVEFU
RV0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgorICAgICAgICAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoK
ICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CkBAIC00ODkxLDE2ICs0ODkxLDE2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViQ29yZTo6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX01FRElBX0NBUFRV
UkVfU1RBVEVfQUNUSVZFOgogICAgICAgICBzd2l0Y2ggKGNhcHR1cmVLaW5kKSB7Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW86Cisg
ICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
OgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRl
bzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6
VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9tRGlzcGxheUNhcHR1cmUpCiAgICAgICAgICAg
ICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6
OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKKyAg
ICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC00OTA4LDE2ICs0OTA4LDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
Q29yZTo6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX01FRElBX0NBUFRVUkVfU1RB
VEVfTVVURUQ6CiAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtpbmQpIHsKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAgICAg
ICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgICAgIGlmIChpc0Zyb21EaXNwbGF5Q2FwdHVyZSkKICAgICAgICAgICAgICAgICBtdXRl
ZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0
ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNN
dXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgorICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
QEAgLTQ5NjUsNyArNDk2NSw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jYW1lcmFfY2Fw
dHVyZV9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRNZWRpCiAgICAgaWYgKHdl
YmtpdF93ZWJfdmlld19nZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUod2ViVmlldykgPT0gV0VCS0lU
X01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Via2l0
V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUpOworICAgIHdlYmtpdFdlYlZpZXdD
b25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSk7CiB9CiAKIC8qKgpAQCAtNTAwNyw3ICs1MDA3LDcg
QEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X21pY3JvcGhvbmVfY2FwdHVyZV9zdGF0ZShXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXQKICAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9t
aWNyb3Bob25lX2NhcHR1cmVfc3RhdGUod2ViVmlldykgPT0gV0VCS0lUX01FRElBX0NBUFRVUkVf
U1RBVEVfTk9ORSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Via2l0V2ViVmlld0NvbmZpZ3Vy
ZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kOjpBdWRpbywgc3RhdGUpOworICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNh
cHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLCBzdGF0ZSk7CiB9CiAKIC8qKgpAQCAtNTA0OSw1ICs1MDQ5LDUgQEAgdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfc2V0X2Rpc3BsYXlfY2FwdHVyZV9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXRNZWQKICAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9kaXNwbGF5X2NhcHR1cmVf
c3RhdGUod2ViVmlldykgPT0gV0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJW
aWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3Rh
dGUsIHRydWUpOworICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmll
dywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSwg
dHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRp
YVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRp
ZXMuaAppbmRleCBlMWRhNDZmMjZiMThjNzdmMmExODllZDg2NTQwYmE2MTMyMjliY2ZiLi44YTE2
MjA3NzhlZGQ5Y2JmZjEyMDk5YjE1MmFkNTBiNDc5ZWRmMTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyk7Ci1fV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOworX1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CitfV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlh
TXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01l
ZGlhVXRpbGl0aWVzLm1tCmluZGV4IDUzYmJmNDIwMTQ3MWQ5ZDhhNGY2NmU3MDFmNjQzODhlZWVk
NWQxNWEuLjk4NTBhOGZjYTY3MGRjNzg1NWY0MTAwNjdiMDVjMTJmODA4ODA2YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCkBAIC0yOCwy
OSArMjgsMjkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK19XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVE
ZXByZWNhdGVkIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkTm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkK
ICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1
ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2
aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmE7CiAKICAgICByZXR1cm4g
bWVkaWFDYXB0dXJlU3RhdGU7CiB9CiAKLV9XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRl
ZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKK19X
S01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgX1dLTWVkaWFNdXRlZFN0YXRlIG1lZGlh
TXV0ZWRTdGF0ZSA9IF9XS01lZGlhTm9uZU11dGVkOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkKKyAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKQogICAgICAg
ICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFBdWRpb011dGVkOwogICAgIGlmIChzdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCkKICAg
ICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZDsKLSAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5D
YXB0dXJlSXNNdXRlZCkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0ZWRTdGF0ZSB8
PSBfV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZDsKICAgICByZXR1cm4gbWVkaWFNdXRlZFN0YXRl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDMy
OWRiNzkxY2Y0MzI3MjQ2MzYzNDI4MDA1MDRiMDhlYTg5ZGIwZTMuLmU2Nzk2OTVhM2ZlMWEwYWVm
MjhkZDVhZjAyNDhkNjkwNmYzNDE5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lk
IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikg
ZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYp
IGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOwot
ICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgICAgIHZvaWQgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmlu
YWw7CiAgICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYg
SEFWRShBUFBfTElOS1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQppbmRleCAxMWI3YTQwNThhNWI2NDFhYjg4NGE5NzY1NzdjZjIxMDNiY2I2YmRkLi5kNzhm
NGNjMGQ1NjU1OTRjMGU4ODFhNDU4YmZkMjM4Mjc1MTIyNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEyMjcsNyArMTIyNyw3IEBAIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lv
bkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAotdm9pZCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6bWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGIzOTM3YWMwNDM3NzM5MmQz
MGIxODMzZGVlMGMwMWU2Y2ExNjg5ZjMuLjJiNzI0NTg2OTE2YmY1ZTFjYmI2NTNiZTFlNmEyNGIx
YWQ5OTFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQ5LDcg
KzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1zdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfTsKK3N0YXRpYyBjb25zdCBNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNrIHsgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQpAQCAtOTUsNyArOTUsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVwog
CiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6flVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCkKIHsKLSAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyB9LCBbXSB7IH0pOworICAgIG1fcGFnZS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyB9LCBbXSB7IH0pOwogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRv
bigpLnJldm9rZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQocGFnZSgpLnByb2Nlc3MoKSk7CiAg
ICAgcHJveGllcygpLnJlbW92ZSh0aGlzKTsKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSgpCiB7CiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3Rz
KCk7Ci0gICAgbV9wYWdlLnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbyk7CisgICAgbV9wYWdlLnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQogCiB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQpA
QCAtODYzLDcgKzg2Myw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVDaGFuZ2Vk
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG9sZFN0YXRlLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQog
ewogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDY0ZWJmYTVlNDU5YTE2ZTRjZDM3
ZTQ5MzY5YTkwNGFlNjJkZWI3NjAuLjY3NGJhYjRkYjdjOWM2NGRlZDg1Nzg3NDFkYmQyYWI5OTZk
YzQwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtODgsNyArODgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hlZFN0YXRlKCk7CiAgICAgdm9pZCBjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKTsKIAotICAgIHZvaWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7CisgICAgdm9pZCBjYXB0dXJlU3Rh
dGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpOwogICAgIHZv
aWQgc3luY1dpdGhXZWJDb3JlUHJlZnMoKSBjb25zdDsKIAogICAgIGVudW0gY2xhc3MgUmVxdWVz
dEFjdGlvbiB7CkBAIC0xNjcsNyArMTY3LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxEZW5p
ZWRSZXF1ZXN0PiBtX2RlbmllZFJlcXVlc3RzOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9jYXB0dXJlU3RhdGU7CiAgICAgUnVuTG9vcDo6VGltZXI8
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fd2F0Y2hkb2dUaW1lcjsK
ICAgICBTZWNvbmRzIG1fY3VycmVudFdhdGNoZG9nSW50ZXJ2YWw7CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2
MWMwN2Y2ZGZiOWI0NjM2NWQ3NjdlNDEzM2NiZDY4ZGEwZDMyYTdjLi5kMzMxZjJjYTdkMDNhNzAz
YjVjYjZkZDBjOGZkOGI1OTEyODRmZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTIxMTMsMTEgKzIxMTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVw
ZGF0ZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IGZsYWdzVG9V
cGQKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93
KTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxl
ICYmIHBhZ2VDbGllbnQoKS5pc1Zpc3VhbGx5SWRsZSgpKQogICAgICAgICBtX2FjdGl2aXR5U3Rh
dGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKTsKLSAgICBpZiAoZmxhZ3NUb1Vw
ZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnMo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmICEobV9tdXRlZFN0
YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkpKQor
ICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1fbWVk
aWFTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8p
ICYmICEobV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpKSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJ
c0F1ZGlibGUpOwogICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNMb2Fk
aW5nICYmIG1fcGFnZUxvYWRTdGF0ZS5pc0xvYWRpbmcoKSkKICAgICAgICAgbV9hY3Rpdml0eVN0
YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0xvYWRpbmcpOwotICAgIGlmIChmbGFnc1RvVXBkYXRl
ICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlhU3RhdGUuY29udGFp
bnNBbnkoeyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVE
ZXZpY2UsICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVE
ZXZpY2UgfSkpCisgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1
cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueSh7IE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsICBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQogICAgICAgICBtX2FjdGl2aXR5
U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEpOwogfQogCkBAIC02MjM2
LDcgKzYyMzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9s
dW1lKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZvbHVtZSkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fbXV0ZWRTdGF0ZSA9IHN0YXRlOwogCkBA
IC02MjY3LDcgKzYyNjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFDYXB0dXJlRW5h
YmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BN
ZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
KTsKQEAgLTk0NDYsNyArOTQ0Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpuYXZpZ2F0aW9uR2Vz
dHVyZVNuYXBzaG90V2FzUmVtb3ZlZCgpCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZW1v
dmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdTdGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQogewogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgaWYgKCFtX3Byb2Nlc3MtPnRocm90dGxlcigpLnNob3VsZEJlUnVubmFi
bGUoKSkKQEAgLTk0NTcsNyArOTQ1Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhCiAgICAg
ICAgIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmlj
YXRpb246Olllcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlLCBDYW5EZWxh
eU5vdGlmaWNhdGlvbiBjYW5EZWxheU5vdGlmaWNhdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBu
ZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVsYXlOb3RpZmljYXRpb24pCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBhdXRvIHVwZGF0ZU1lZGlhQ2FwdHVyZVN0YXRl
SW1tZWRpYXRlbHlJZk5lZWRlZCA9IFsmXSB7CkBAIC05NDg2LDE0ICs5NDg2LDE0IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5lCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhQ2FwdHVy
ZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlTWFzazsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFDYXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBuZXdNZWRpYUNhcHR1cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKICNlbmRpZgogCi0gICAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sgeyBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8gfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUg
PSBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBwbGF5aW5n
TWVkaWFNYXNrIHsgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLCBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8gfTsKKyAgICBNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOwogCi0gICAgYm9vbCBwbGF5
aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ0F1ZGlvKSkgIT0gKG5ld1N0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7CisgICAgYm9vbCBwbGF5aW5nQXVkaW9D
aGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbykpICE9IChuZXdTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nQXVkaW8pKTsKICAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKICAgICAg
ICAgcGFnZUNsaWVudCgpLmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOwogICAgIG1fbWVkaWFT
dGF0ZSA9IG5ld1N0YXRlOwpAQCAtOTUxNyw3ICs5NTE3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgbmUKICAgICBpZiAoKG9sZFN0YXRlICYgcGxheWluZ01lZGlhTWFzaykgIT0gKG1fbWVkaWFT
dGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spKQogICAgICAgICBtX3VpQ2xpZW50LT5pc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSgqdGhpcyk7CiAKLSAgICBpZiAoKG9sZFN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpICE9IChtX21lZGlhU3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVv
KSkpCisgICAgaWYgKChvbGRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvKSkgIT0gKG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkpCiAgICAgICAgIHZpZGVvQ29udHJv
bHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CiAKICAgICBtX3Byb2Nlc3MtPnVwZGF0ZUF1ZGlibGVNZWRp
YUFzc2VydGlvbnMoKTsKQEAgLTk3MTcsNyArOTcxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllCiAgICAgcGFnZUNsaWVudCgpLm1lZGlhU2Vzc2lvbk1hbmFnZXIoKS5zaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgcGFnZUNsaWVudCgpLnJvb3RWaWV3VG9TY3Jl
ZW4oSW50UmVjdChyZWN0KSksIGhhc1ZpZGVvLCB1c2VEYXJrQXBwZWFyYW5jZSgpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIHBhZ2VDbGllbnQoKS5tZWRpYVNlc3Np
b25NYW5hZ2VyKCkuY2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIGNvbnRleHRJZCwgc3RhdGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3NTFjYzQ3OWVj
OWZkNjljZDM3MzA3NzM3MjgwMTc1MGU3OWIyYzJkLi5kZjdkYzlkYzc0ZTZmZTNkZDJmNDlhODcw
OThiNWU5NTg5NzRkNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTM5NiwxMyArMTM5NiwxMyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgcmVuZGVyVHJlZVNp
emUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVTaXplOyB9CiAKICAgICB2b2lkIHNldE1l
ZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9
KTsKLSAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5j
b250YWlucyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQp
OyB9OworICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVG
bGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKKyAgICBib29sIGlz
QXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfTsKICAgICB2b2lkIHNl
dE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCk7CiAgICAgYm9vbCBtYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93
OyB9CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wpOwogICAgIGJvb2wgbWVk
aWFDYXB0dXJlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDYXB0dXJlRW5hYmxlZDsg
fQotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOworICAg
IHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJl
S2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKIAogICAgIHZvaWQg
cGF1c2VBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzdXNwZW5kQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpAQCAtMTUwOCwxOCArMTUwOCwxOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2hvd2luZ05h
dmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBjb25zdCB7IHJldHVybiBtX2lzU2hvd2luZ05hdmln
YXRpb25HZXN0dXJlU25hcHNob3Q7IH0KIAotICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25z
dCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7IH0KLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgYm9vbCBp
c1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7IH0KKyAgICB2b2lkIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MpOwogICAgIHZvaWQgdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSgpOwogCiAgICAg
ZW51bSBjbGFzcyBDYW5EZWxheU5vdGlmaWNhdGlvbiB7IE5vLCBZZXMgfTsKLSAgICB2b2lkIHVw
ZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MsIENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2FuRGVsYXlOb3RpZmljYXRpb246Ok5v
KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlmaWNhdGlvbiA9IENhbkRlbGF5Tm90
aWZpY2F0aW9uOjpObyk7CiAgICAgYm9vbCBpc0NhcHR1cmluZ0F1ZGlvKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlv
Q2FwdHVyZU1hc2spOyB9CiAgICAgYm9vbCBpc0NhcHR1cmluZ1ZpZGVvKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OlZpZGVv
Q2FwdHVyZU1hc2spOyB9Ci0gICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpOyB9Ci0gICAgYm9vbCBoYXNB
Y3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0Fu
eShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2UpOyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHJlcG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1
cmVTdGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVNYXNrKTsgfQotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBtdXRlZFN0YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KKyAgICBi
b29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNv
bnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpOyB9CisgICAgYm9vbCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQorICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcmVwb3J0ZWRNZWRpYVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlIHwgKG1fbWVkaWFTdGF0ZSAtIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2spOyB9CisgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlRmxhZ3MoKSBjb25zdCB7IHJl
dHVybiBtX211dGVkU3RhdGU7IH0KIAogICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJD
b3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdz
Pik7CiAKQEAgLTE2MDMsNyArMTYwMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2Vi
Q29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7
Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAgICB2
b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CkBAIC0yOTA0
LDcgKzI5MDQsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkxheW91dFBvaW50IG1fbWF4U3Rh
YmxlTGF5b3V0Vmlld3BvcnRPcmlnaW47CiAKICAgICBmbG9hdCBtX21lZGlhVm9sdW1lIHsgMSB9
OwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtX211dGVkU3Rh
dGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtX211dGVkU3Rh
dGU7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cgeyB0cnVlIH07CiAgICAg
Ym9vbCBtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21l
ZGlhQ2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CkBAIC0yOTQwLDEwICsyOTQwLDEwIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkg
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX25leHRB
Y3Rpdml0eVN0YXRlQ2hhbmdlQ2FsbGJhY2tzOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAogICAgIC8vIFRvIG1ha2Ugc3VyZSBj
YXB0dXJlIGluZGljYXRvcnMgYXJlIHZpc2libGUgbG9uZyBlbm91Z2gsIG1fcmVwb3J0ZWRNZWRp
YUNhcHR1cmVTdGF0ZSBpcyB0aGUgc2FtZSBhcyBtX21lZGlhU3RhdGUgZXhjZXB0IHRoYXQgd2Ug
bWlnaHQgZGVsYXkgYSBiaXQgdHJhbnNpdGlvbiBmcm9tIGNhcHR1cmluZyB0byBub3QtY2FwdHVy
aW5nLgotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX3JlcG9y
dGVkTWVkaWFDYXB0dXJlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGU7CiAgICAgUnVuTG9vcDo6VGltZXI8
V2ViUGFnZVByb3h5PiBtX3VwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGVUaW1lcjsKICAg
ICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgRGVmYXVsdE1lZGlhQ2FwdHVyZVJlcG9ydGluZ0Rl
bGF5IHsgM19zIH07CiAgICAgU2Vjb25kcyBtX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5IHsg
RGVmYXVsdE1lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5IH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzJlNTZkZmZlNmU1ZjQw
YjNlYTUzMmVhZGUzZmQxOThkOGRlZjBlNS4uMTE4YTcxYTk3OTU2YzkxYjU2ZTYyODBjNDIxY2Y4
YTMyNjMyOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNDYyLDcgKzQ2Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxlciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAotICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKKyAgICBJc1BsYXlp
bmdNZWRpYURpZENoYW5nZShPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU+IHN0YXRlKQogICAgIEhhbmRsZUF1dG9wbGF5RXZlbnQoZW51bTp1aW50OF90IFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQgZXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50Rmxh
Z3M+IGZsYWdzKQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNDgxLDcgKzQ4MSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQp
CiAgICAgUmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgU2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgcGlja2VyTG9jYXRpb24sIGJvb2wgaGFz
VmlkZW8pCi0gICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUpCisgICAgUGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgT3B0aW9uU2V0PFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBtZWRpYVN0YXRlKQogICAgIFNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgU2V0TW9ja01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShTdHJpbmcgbmFtZSwgZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUgcGlja2VyU3RhdGUpCiAg
ICAgTW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOGQ0N2E2M2Y2Y2E3NmI0
MWVjODZlYTdjNDQxNzJkNzMwYTA0MmJhOS4uYWY0MDk2MWRhMGY5YThlYzQ4NzUwOGJmMjE0MTMy
MDdmYTA3ZGY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bXV0ZUNhcHR1
cmVJblBhZ2VzRXhjZXB0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIAogI2VuZGlm
CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzIGZsYWdzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VNdXRlZFN0YXRlQ2hh
bmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIGJvb2wgbXV0ZWRGb3JDYXB0dXJl
ID0gZmxhZ3MuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICBpZiAoIW11dGVkRm9yQ2FwdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggOWNmMjNhZDg5MjlkYmU5YTgwM2MwYWMwMDRhYTMz
ZGMyZjJjNjcxZS4uODcyZjAyZTE1NDcwODE2YmMyZWNhYWM2NGYxYWZhMTJlNThlZWQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTQwNiw3ICs0MDYs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbXV0ZUNhcHR1cmVJblBhZ2VzRXhjZXB0KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHBhZ2VNdXRlZFN0YXRl
Q2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyk7
CiAgICAgdm9pZCBwYWdlSXNCZWNvbWluZ0ludmlzaWJsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggZmZkZDQzMzQ1N2VjZWZjZDZhZGQ4ZDlh
NDIxNGJhYjQ1ZGQ1ZTY1MC4uMWYxNzZlYmQ5ODhjZTAyZmVlNmQ4MjA4NDI2MmU4NGYxZTU2YWU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UaW1lUmFuZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5
ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01E
b2N1bWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwCmluZGV4IGQwN2Y2ZTcyYTRiNDk1
Y2Q5NDM1MDkyY2Y3NmUwYjdhNTliODIwYzkuLmRkYWY4NjNmZTc1Yjc1OWI5YmU4MDQ1NzI5ZWFi
NDUxZWMxMTBjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURv
Y3VtZW50R3RrLmNwcApAQCAtNTQsNyArNTQsNyBAQAogI2luY2x1ZGUgIldlYktpdERPTVhQYXRo
UmVzdWx0UHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJbmxpbmVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GdWxsc2NyZWVuTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNFeGVjU3RhdGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGEzZDZjYzMyZjY1NDlm
YTBmYWI0YTI0NTA4ZmUyMmYwNDdmOWQzMzUuLmQzYWFkNmVhMjYxNjhhMjFiODNkNTMwZTdhYjZk
ZDQ3YTI2N2YyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZUV2
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSW5saW5lcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0
aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYWE5ZDNlY2UzZDYy
NTg5ZDZiYmFlYzkxNGI2MzU2ZDUwNGE0ZTliYS4uNWFiYzQ4NmUwYzU5MTBhZGU4YjhjNmZjOGQ4
ZjkwYTlmOTZlYjU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYUNh
blN0YXJ0KFdlYkNvcmU6OkRvY3VtZW50Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHBh
Z2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQbHVnaW5Db250cm9s
bGVyCkBAIC0yNzYsMTEgKzI3NiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wbHVnaW5Jc1Bs
YXlpbmdBdWRpbyB7IGZhbHNlIH07CiB9OwogCi1pbmxpbmUgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25zdAoraW5saW5l
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgUGx1Z2luVmlldzo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlOwogICAgIGlmIChtX3BsdWdpbklzUGxheWluZ0F1ZGlvKQotICAgICAgICBt
ZWRpYVN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7
CisgICAgICAgIG1lZGlhU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbyk7CiAgICAgcmV0dXJuIG1lZGlhU3RhdGU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggMTIwYTA0ZDM2ZjAzOGFjNzMxOTE1NTJlY2Y0NWUzMjE0ZTE1Yjdl
ZS4uYTIzOTZjZTJjMjk0ZTgyNmVlODZkM2Y3NmQ5ZjVhNzEzYjk5NjM5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTEyNTIsNyArMTI1Miw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZp
CiAgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdG
b3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fcGFnZS5pc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShzdGF0ZSk7CiB9CkBAIC0xMzg0LDcgKzEzODQsNyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3QsIGlzVmlkZW8pKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IHN0YXRlKQogewogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDY0NDgyYTQyZTRlYzcyZDUyYWE4NDZhNTc4NDVhMTQ2
ODQ2NmM3MTAuLmI5OTM4ZjJiZmE2MTAwYjI5NjIzY2QwMzA1Y2UwYjE0YzQzMjIxNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTM1Miw3ICszNTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3
JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
KSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogCiAj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQpAQCAtMzkxLDcgKzM5MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZVBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdl
YkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmlu
YWw7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9j
a01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKSBmaW5hbDsKICAgICB2b2lkIG1v
Y2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU2ZWU0MjBmNDVh
NDI3NTllMDYxNGNiNTAwY2E2ZWY2YjUyNGM5MDQuLmRlOGM1ZjM3YjAyZDExMjE2MDhkMjk3OTRj
NWY1YjgwNmRjOGZlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC00Mzc1LDcgKzQzNzUsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRWaW9sYXRp
b25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKEZyYW1lSWRlbnRpZgog
ICAgICAgICBXZWJDb3JlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJv
bUNPT1BSZXNwb25zZSgqZnJhbWUtPmNvcmVGcmFtZSgpLCBjb29wLCBkaXNwb3NpdGlvbiwgY29v
cFVSTCwgbmV4dFJlc3BvbnNlVVJMLCBjb29wT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIG5leHRS
ZXNwb25zZU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25T
b3VyY2UsIHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBhdXRvKiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC01NTc1LDEzICs1NTc1LDEzIEBAIHZvaWQgV2ViUGFnZTo6c2V0TWVkaWFW
b2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIG1fcGFnZS0+c2V0TWVkaWFWb2x1bWUodm9sdW1lKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IG1fcGFnZS0+c2V0TXV0ZWQoc3RhdGUpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBtX3BhZ2UtPnN0b3BNZWRpYUNh
cHR1cmUoa2luZCk7CkBAIC03NDUxLDcgKzc0NTEsNyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNocm9u
aXplQ09SU0Rpc2FibGluZ1BhdHRlcm5zV2l0aE5ldHdvcmtQcm9jZXNzKCkKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENP
UlNEaXNhYmxpbmdQYXR0ZXJucyhtX2lkZW50aWZpZXIsIG1fY29yc0Rpc2FibGluZ1BhdHRlcm5z
KSwgMCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlOjpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIHN0YXRlKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2Uoc3RhdGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBjMTM4NTU3M2IwYmU1ZmVjODAxNTBhOTVmYjM5NTE5NDNhNTA0
NjY2Li5jMjdkNDAwYjY2ZDM3ZGJlMGE5ZTU0ZDI3YWJmNDQwYzQ5ZDQxMTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NDgsNyArNDQ4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdp
biwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpOwog
ICAgIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5l
clBvbGljeSYsIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBj
b25zdCBVUkwmIHByZXZpb3VzUmVzcG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBw
cmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiByZXBvcnRUb0hlYWRlclZhbHVlKTsKICAgICB2
b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNl
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwg
Y29uc3QgVVJMJiBuZXh0UmVzcG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBuZXh0
UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRo
ZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBp
bnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmlj
aWFsPwpAQCAtMTAyNyw5ICsxMDI3LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVzb3Vy
Y2VSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcik7CiAKICAgICB2b2lk
IHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Ms
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KGJvb2wpOwotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQg
dXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygpOwogCkBAIC0xNDIxLDcgKzE0MjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAgIHZvaWQgaXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KTsKKyAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZv
aWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
OGFmYzRlYTVlM2NkMDFjMmFjM2E0YTM0MWYzMTZhOWEyMTEzMzJlMS4uNzgyZmYyODJiYWEzZGQ4
YTM4YjBhOGFjYTMxOTMzMmE5YTNjODEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbmRDT0VQQ09SUFZpb2xh
dGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJv
b2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgVVJMIGJsb2NrZWRV
UkwpCiAgICAgU2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpDcm9zc09y
aWdpbk9wZW5lclBvbGljeSBjb29wLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9u
IGRpc3Bvc2l0aW9uLCBVUkwgY29vcFVSTCwgVVJMIHByZXZpb3VzUmVzcG9uc2VVUkwsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBwcmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBTdHJpbmcgcmVmZXJy
ZXIsIFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZXBvcnRUb0hlYWRlclZhbHVlKQogICAgIFNl
bmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNw
b3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBuZXh0UmVzcG9uc2VVUkwsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0
aW9uU291cmNlLCBTdHJpbmcgdXNlckFnZW50KQotICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBFbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0IGV2
ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAKQEAgLTQxNyw5
ICs0MTcsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgIyBNZWRpYQogICAgIFNl
dE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKLSAgICBTZXRNdXRlZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0TXV0ZWQo
T3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiBtdXRlZCkgLT4gKCkg
QXN5bmMKICAgICBTZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRp
YSkKLSAgICBTdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKKyAgICBTdG9wTWVkaWFDYXB0dXJlKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKSAtPiAoKSBB
c3luYwogCiAgICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGJvb2wgY2FuUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgIFNldENhblJ1bk1vZGFsKGJvb2wgY2FuUnVu
TW9kYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1l
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0KaW5kZXgg
OGVhNDA0M2UxNjE1ZTMxOTY1NzliMDYwMGI2MDBkNTY4NmM2NmE0ZS4uNjJmYTYyMjAyODY1ZGZh
ZGM1MWMyNTg1Mjc2NjdiM2ZiZmE3M2E0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01Eb2N1bWVudC5tbQpAQCAtNjAsOSArNjAsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9DU1NT
dHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbW1lbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1l
bnRGdWxsc2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50SW5saW5lcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Eb2N1bWVudFR5cGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSFRNTENvbGxlY3Rpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
MWM1NzY3OTM3YzY1NDlmYTFjZTQ5YzkzODUyY2E0ZWUzYjdhZGU2Yy4uMzU1NWQ1NDRjYTc0Yjcx
MTlkNmIwNjc2MjY2N2UyYzQxNzUxZDAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI0Myw3ICsy
NDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAg
ICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgLyogaGFzVmlkZW8gKi8pIGZp
bmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5h
YmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlckRpc21pc3NQb3B1cCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGE0NmIx
YWRhNjA0OTdkYTdmNWVlZTI3ZjgxMWUzMmU3YzA4MjZlMTEuLjE2OTNkODc1ZmUwMDg1NGY5MmQ1
YmEzMTZkNWY3MzExZDg3ZDhhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTExMjksNyArMTEy
OSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpCiAgICAgW21fd2ViVmlldyBfc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyOmNvbnRleHRJZCBsb2NhdGlvbjpsb2NhdGlvbiBoYXNWaWRlbzpoYXNW
aWRlb107CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBbbV93ZWJWaWV3IF9wbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOmNvbnRleHRJZCBzdGF0ZTpzdGF0ZV07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IDhjYTMyOTQ3YTViNDZlMDY3YjhlOGJh
ZTQ0NjM5M2ViYjkwZTg2ZWYuLjM5NjU1NWNkMWY5OGI2YmMxMzQ0NTA1N2VkY2E1NzZmZmQ0ZWI2
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAg
dm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6TW9ja1N0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc1BvcHVwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KaW5kZXggN2RiZDU4
OTQ3NTQwNWExNmViZGQwZmE5YmNmYTYyYzMzN2U3NDE1Mi4uNWNmZmJjZmMzZjVlYWM2ZTVlYjgy
ZWVhMDNlYzhiMGM1YTk4ZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQpAQCAt
NTgsNyArNTgsNyBAQCB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcgogICAgIFdlYkNvcmU6OldlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhp
cywgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRlbywgbV9wYWdlID8g
bV9wYWdlLT51c2VEYXJrQXBwZWFyYW5jZSgpIDogZmFsc2UpOwogfQogCi12b2lkIFdlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3Zv
aWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKIHsKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5j
bGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYzI2NGFmYTg2MmZlODlj
ZmQ4ODA1NzkxZmFhMjJmZTQzMzUwOTk1Ny4uNmQ2OTdkZDg3YmQ3MDZiYTlkYTc0MzlmMmRiMmQ1
YzE1YTQ0ZGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtOTI0MSw3ICs5MjQxLDcgQEAgLSAodm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
OihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWUKICAgICBbc2Vs
ZiBfZGV2aWNlUGlja2VyXS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgcmVj
dEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvKTsKIH0KIAotLSAodm9pZClfcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZQorLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3Mpc3RhdGUKIHsKICAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+cGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmlu
ZGV4IGE0N2RhMmNmNGQ3NDk0OTYwZjVjNTA4ZjIyYjdmMTUwYTI3ZDhkYTcuLmNjZDhjZDczYTQx
ZTM5YTFhNzNlZjE5NDE1NGYxOTI5NGQyMWU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtMzM2LDcgKzMzNiw3IEBAIFdl
YkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6
TGF5b3V0TWlsZXN0b25lPik7CiAtICh2b2lkKV9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0
SWQ7CiAtICh2b2lkKV9yZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDooV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQ7CiAtICh2b2lk
KV9zaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpbG9jYXRpb24gaGFzVmlkZW86KEJPT0wpaGFzVmlkZW87Ci0tICh2b2lkKV9wbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKXN0YXRlOworLSAodm9pZClfcGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3Mpc3RhdGU7CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlckVuYWJsZWQ6KGJvb2wpZW5hYmxlZDsKIC0gKHZvaWQpX3NldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTmFtZTooTlNTdHJpbmcgKiluYW1lIHN0YXRlOihXZWJDb3JlOjpNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKXN0YXRlOwogLSAodm9pZClfbW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXA7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRlci5jcHAKaW5kZXggNmE0M2Y5MjY0
ODBkZmY0NmU5YTYyOTczYmRjMDVmNjI2OGM1YmEwZS4uZjM3NjI4Y2Y1ODA2YzA0ZWFlMDRjMjIw
NzgzZGJlMzk4MGM0ODFhMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9Eb2N1bWVudElubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxCb2R5RWxlbWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTERpdkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxIdG1sRWxlbWVudC5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440936</attachid>
            <date>2021-10-12 08:16:55 -0700</date>
            <delta_ts>2021-10-12 15:00:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211012081655.patch</filename>
            <type>text/plain</type>
            <size>279800</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA3ZWE0ZWQx
ZjczZTBiNDBkM2I1MGExNDAzNGQ4ZmY3NDE5NWYzZDM3Li45OGEyODM4ZGRhZDI2YzQzYWZlOWQ5
NjkyZjAxZThmMDFiNjcxYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKQEAgLTEwMyw2ICsxMDMsOCBAQCBKU0RPTVdpbmRvd0Jhc2U6OkpT
RE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2lu
ZG93PgogICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CiB9CiAKK0pTRE9NV2luZG93
QmFzZTo6fkpTRE9NV2luZG93QmFzZSgpID0gZGVmYXVsdDsKKwogU1VQUFJFU1NfQVNBTiBpbmxp
bmUgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmluaXRTdGF0aWNHbG9iYWxzKEpTQzo6Vk0mIHZtKQog
ewogICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA3NmIwYzE2MjUyNWYzOGY4ZGY5ZmNiNzc1MDMz
MjRhMWIxZjQ1YTU3Li42ZjJjNjNhYjc3OTY3NTFhOTMzNjhjYTJlNDNmN2MxNTM4OWZkNmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNTYs
NiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VB
Y2Nlc3M+CiAgICAgc3RhdGljIHZvaWQgc3Vic3BhY2VGb3IoSlNDOjpWTSYpIHsgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAgfkpTRE9NV2luZG93QmFzZSgpOwogICAgIHZv
aWQgdXBkYXRlRG9jdW1lbnQoKTsKIAogICAgIERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0IHsg
cmV0dXJuICptX3dyYXBwZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTg3Y2JhNGMzMWI3MGU1OGI0MWUzYTY2YWNj
ZjBiYTJhNmY3NTg4ZS4uMzlmMmEwMzljMDI1OGExNjUzM2RiOTVhMDVhYzk4OTIzMmYxOGM5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJKU05vZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNjY4NDg2ZmQ4N2ZjZmU0NGUyOGMxYzVkMWE3NjgyY2I5YmFl
NzIzNi4uNjMyM2Y1ZDY0Y2JjNmJjNmIwMjJmMDU1ODM4OTA2YzAzZjdiNTNiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCmluZGV4
IDZjMDg1YTgwMGNkZjRhZjM0YjIzNTJjMjVjYWJiMTM5ZWIwNWU2ZGUuLjAzODZlMzY2MDllNGNl
OGQ3NDBjNzlmMTg2N2U3NjY3YmVkMmM2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUNvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db2xvciBTdHlsZUNv
bG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29yZCwgT3B0aW9uU2V0PE9wdGlv
bnM+IG9wdGlvbnMpCitDb2xvciBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVl
SUQga2V5d29yZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKQogewogICAg
IGlmIChjb25zdCBjaGFyKiB2YWx1ZU5hbWUgPSBnZXRWYWx1ZU5hbWUoa2V5d29yZCkpIHsKICAg
ICAgICAgaWYgKGNvbnN0IE5hbWVkQ29sb3IqIG5hbWVkQ29sb3IgPSBmaW5kQ29sb3IodmFsdWVO
YW1lLCBzdHJsZW4odmFsdWVOYW1lKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAppbmRleCBlNGU1
OGRmOWM1ZWZlNDg3NTJjZTg4ZjEyNDEwY2UyMzlmMTM5Mjc2Li4zMjE0NGY0ZjFmNjViNjBmNjg2
ZGYyNzZmMjU0ZTlmMjBkZDZjNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKQEAgLTM3LDE1
ICszNywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBTdHlsZUNvbG9yIHsK
LSAgICBlbnVtIGNsYXNzIE9wdGlvbnMgOiB1aW50OF90IHsKLSAgICAgICAgRm9yVmlzaXRlZExp
bmsgPSAxIDw8IDAsCi0gICAgICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCi0gICAg
ICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAotICAgICAgICBVc2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbCA9IDEgPDwgMwotICAgIH07CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRp
b25zIDogdWludDhfdCB7CisgICAgRm9yVmlzaXRlZExpbmsgPSAxIDw8IDAsCisgICAgVXNlU3lz
dGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKKyAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwgMiwK
KyAgICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEgPDwgMworfTsKIAotICAgIHN0
YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxPcHRpb25z
Pik7CitzdHJ1Y3QgU3R5bGVDb2xvciB7CisgICAgc3RhdGljIENvbG9yIGNvbG9yRnJvbUtleXdv
cmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAgICAgc3RhdGlj
IGJvb2wgaXNBYnNvbHV0ZUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IGJiOGQ1M2NjYzQ0NWM3MGNmYTgyZmVj
ZjYzNWQ1Y2IyMDQ2ZjY0YTcuLjJlNjVjNjI0NDk3MzM3ZTZiOTAwYWUzOTAwYzFhMTI2Yzk3ZDZj
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENoYXJhY3RlckRhdGEpOwogc3RhdGljIGJvb2wg
Y2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihjb25zdCBDaGFyYWN0ZXJEYXRhJiBub2RlKQogewog
ICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZS5kb2N1bWVudCgpOwotICAgIHJldHVybiAhZG9jdW1l
bnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElT
VEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9i
c2VydmVyOjpDaGFyYWN0ZXJEYXRhKQorICAgIHJldHVybiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJU
eXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElTVEVORVIpICYmICFkb2N1
bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkKICAgICAgICAgJiYgIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShE
b2N1bWVudDo6RE9NU1VCVFJFRU1PRElGSUVEX0xJU1RFTkVSKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXggMjk2Njc2Nzc2OGYwZDcxNDc0
MmUzNmJjZTViNjEwODY5NzdmOTFmZi4uNjRjOTI0NjVmMmExMDNiM2E5OTBlNjFhM2NmMTI4YTA5
NWIyYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
CkBAIC0zMSw3ICszMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIENoaWxkTGlz
dE11dGF0aW9uU2NvcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IENoaWxkTGlzdE11dGF0aW9u
U2NvcGUoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKHRhcmdldC5k
b2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNo
aWxkTGlzdCkpCisgICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkKICAgICAg
ICAgICAgIG1fYWNjdW11bGF0b3IgPSBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpnZXRP
ckNyZWF0ZSh0YXJnZXQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
CmluZGV4IDJiNTliMzZiYzg5YWQyZWRmOTUyOTk0NTE2ZGE5ODk3YTA3ZjQ3OGUuLmFkOGE3NTQ5
NGZiZWQwMjllODE2MmQwY2JhNWVlNGE4ZTIwZDE2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBBTFdBWVNfSU5MSU5FIE5vZGVWZWN0b3Ig
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hpbGRyZW5XaXRoU2NyaXB0QXNzZXJ0aW9uKENoaQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6UGFyc2VyKTsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQg
c2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKSkg
eworICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09m
VHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkpIHsKICAgICAgICAg
ICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogICAgICAgICAgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQogICAgICAgICAgICAgICAgIG11dGF0aW9uLndp
bGxSZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBl
OGJjNTZlNzZlNmY2NGM5NmY3MWFmYzYzY2MyZDc2ZDEyZmYwY2E0Li5hZGY1MzU1MmZlMDdmNTVh
N2YxMTkzNDgwZjU1Y2MyYmRlMWJhNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYy
LDYgKzYyLDcgQEAKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1ZGUgIkRl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Rm9udExvYWRlci5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCkBAIC0xNzcsNiArMTc4LDcgQEAKICNpbmNsdWRlICJQ
c2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5o
IgogI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpAQCAtMjM5LDYgKzI0MSw3IEBACiAj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKQEAgLTk3OSw3ICs5ODIsNyBA
QCB2b2lkIERvY3VtZW50OjpyZXNldExpbmtDb2xvcigpCiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0
VmlzaXRlZExpbmtDb2xvcigpCiB7Ci0gICAgbV92aXNpdGVkTGlua0NvbG9yID0gU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtpdExpbmssIHN0eWxlQ29sb3JPcHRpb25z
KG51bGxwdHIpIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3JPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0Nv
bG9yKCkKQEAgLTM1NzgsNiArMzU4MSwxMyBAQCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtbwogICAg
IHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfUlRDKQordm9pZCBE
b2N1bWVudDo6c2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0
Y05ldHdvcmtNYW5hZ2VyKQoreworICAgIG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0
Y05ldHdvcmtNYW5hZ2VyKTsKK30KKyNlbmRpZgorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0
ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQpAQCAtNDQwMywxOCArNDQxMywxOCBAQCB2b2lkIERvY3VtZW50Ojpub3Rl
VXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVJ
c1BsYXlpbmdNZWRpYSgpCiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlvUHJvZHVjZXJzLmhhc051bGxS
ZWZlcmVuY2VzKCkpOwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvciAoYXV0byYg
YXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNlcnMpCiAgICAgICAgIHN0YXRlLmFkZChhdWRp
b1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRoaXMpKTsKICAgICBp
ZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CisgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFF
bGVtZW50KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
VXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpOwog
CiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjcy
NSw3ICs2NzM1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2Vz
aG93RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudChQ
YWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHBl
cnNpc3RlZCksIHRoaXMpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZl
bnRJbml0KQordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBv
bGljeXZpb2xhdGlvbkV2ZW50LCBXVEZNb3ZlKGV2ZW50SW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6
OlllcykpOwogfQpAQCAtNzUwOSwxNSArNzUxOSwxNSBAQCBib29sIERvY3VtZW50Ojp1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1P
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25z
KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSkgY29uc3QKIHsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgaWYgKHVzZVN5
c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRGFya0FwcGVhcmFuY2Uo
c3R5bGUpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKCkp
Ci0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICByZXR1cm4gb3B0aW9uczsKIH0K
IApAQCAtNzY5NCw3ICs3NzA0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgYm9vbAogICAgIHBhZ2Ut
PnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHBvc2l0aW9uLCBpc1ZpZGVvLCBy
b3V0ZVNoYXJpbmdQb2xpY3ksIHJvdXRpbmdDb250ZXh0VUlEKTsKIH0KIAotdm9pZCBEb2N1bWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKK3ZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAg
aWYgKCFwYWdlKQpAQCAtODE5OSw3ICs4MjA5LDcgQEAgdm9pZCBEb2N1bWVudDo6b3JpZW50YXRp
b25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
LXZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZCBraW5kKQordm9pZCBEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENh
cHR1cmUoKnRoaXMsIGtpbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzODZlMzc4Mjgw
ODhmM2ZkMWVhN2JmYzgwNjgyZTk1YTg1MDg5MDA2Li5mZWU1MTIxMjI5MjMwYzBkZDk3YTBlYmUz
ZWRlYTRlYzBkMTU3NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVudEV2ZW50
VGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGb2N1c09wdGlvbnMuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3JDbGll
bnQuaCIKQEAgLTQzLDMwICs0MiwyMSBAQAogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgi
Ci0jaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgotI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKLSNpbmNsdWRlICJSZWdpb24uaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRlclB0ci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0aERpcmVjdGlvbi5oIgot
I2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKLSNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiVXNl
ckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlZpc2liaWxpdHlTdGF0ZS5oIgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtOTYsMTEgKzg2LDE2IEBAIG5hbWVzcGFjZSBXVEYg
ewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9u
SUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNs
YXNzIEFwcEhpZ2hsaWdodFN0b3JhZ2U7CiBjbGFzcyBBdHRyOworY2xhc3MgQ2FudmFzQmFzZTsK
IGNsYXNzIENEQVRBU2VjdGlvbjsKIGNsYXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWU7CiBjbGFz
cyBDU1NGb250U2VsZWN0b3I7CkBAIC0xMzIsNiArMTI3LDcgQEAgY2xhc3MgRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJl
ZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lOworY2xhc3MgRG9jdW1lbnRUaW1l
bGluZXNDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRWRpdGluZ0JlaGF2
aW9yOwogY2xhc3MgRWRpdG9yOwpAQCAtMTgzLDYgKzE3OSw3IEBAIGNsYXNzIExvY2F0aW9uOwog
Y2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CitjbGFzcyBNZWRpYVByb2R1Y2VyOwog
Y2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKIGNsYXNzIE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpAQCAtMTk2LDcgKzE5Myw5IEBAIGNsYXNzIFBsYXRm
b3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxp
ZmllZE5hbWU7CiBjbGFzcyBRdWlya3M7CitjbGFzcyBSVENOZXR3b3JrTWFuYWdlcjsKIGNsYXNz
IFJhbmdlOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyVHJlZUJ1aWxkZXI7CiBjbGFzcyBS
ZW5kZXJWaWV3OwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7CkBAIC0yMjMs
NiArMjIyLDcgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExp
c3Q7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEF1dG9TaXppbmc7CitjbGFzcyBUZXh0RW5jb2Rp
bmc7CiBjbGFzcyBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFRleHRSZXNvdXJj
ZURlY29kZXI7CiBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CkBAIC0yNTAsMjAgKzI1MCwyOSBAQCBz
dHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVzdDsKIHN0cnVjdCBCb3VuZGFyeVBvaW50Owogc3RydWN0
IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7Citz
dHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogZW51bSBDb2xsZWN0aW9uVHlwZTsKIAorZW51bSBj
bGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90OworZW51bSBjbGFzcyBNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgOiB1aW50MTZfdDsKK2VudW0g
Y2xhc3MgU3R5bGVDb2xvck9wdGlvbnMgOiB1aW50OF90OworZW51bSBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7CiAKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZT47CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCiBuYW1lc3BhY2Ug
U3R5bGUgewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBTY29wZTsKK2NsYXNzIFVwZGF0ZTsKIH0K
IAogZW51bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgeyBQYWdlc2hvd0V2ZW50Tm90UGVyc2lz
dGVkLCBQYWdlc2hvd0V2ZW50UGVyc2lzdGVkIH07CkBAIC0zNTQsNyArMzYzLDcgQEAgcHVibGlj
OgogICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBFdmVudFRhcmdldDo6V2Vha1ZhbHVlVHlwZTsK
ICAgICB1c2luZyBFdmVudFRhcmdldDo6d2Vha1B0ckZhY3Rvcnk7CiAKLSAgICBzdGF0aWMgUmVm
PERvY3VtZW50PiBjcmVhdGUoY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBpbmxp
bmUgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJM
Jik7CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cihGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwogCkBAIC00NjAsMTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgZGVmYXVsdENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0Owog
Ci0gICAgU3RyaW5nIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2Rpbmco
KTsgfQorICAgIGlubGluZSBTdHJpbmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBjaGFyYWN0ZXJTZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4
dEVuY29kaW5nIHRleHRFbmNvZGluZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2Rpbmcg
dGV4dEVuY29kaW5nKCkgY29uc3Q7CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qg
eyByZXR1cm4gdGV4dEVuY29kaW5nKCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJp
bmcgZW5jb2RpbmcoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNl
dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5
LgogCkBAIC01NzksNyArNTg4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHVzZURhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3Qg
UmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3Im
LCBjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxS
YW5nZT4gY3JlYXRlUmFuZ2UoKTsKQEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVu
c2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNo
ZSogZXhpc3RpbmdBWE9iamVjdENhY2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2Fj
aGUqIGV4aXN0aW5nQVhPYmplY3RDYWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFY
T2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmpl
Y3RDYWNoZSgpOwogCkBAIC03MTMsNyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgUlRDTmV0d29ya01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1
cm4gbV9ydGNOZXR3b3JrTWFuYWdlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01h
bmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRj
TmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2Vy
PiYmKTsKICNlbmRpZgogCiAgICAgYm9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUs
IGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2
ZW50OjpUeXBlKSBjb25zdDsKICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0g
ICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25P
YnNlcnZlclR5cGVzOyB9Ci0gICAgdm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgdHlwZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlw
ZXM7IH0KKyAgICBpbmxpbmUgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSkgY29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuICFtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0K
KyAgICB2b2lkIGFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyB0eXBlcykgeyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBD
U1NTdHlsZURlY2xhcmF0aW9uKiBnZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmKSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJl
ZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYp
OwogICAgIHZvaWQgZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5j
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5n
ZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAg
dm9pZCBkaXNwYXRjaFBvcHN0YXRlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiBzdGF0ZU9iamVjdCk7CiAKQEAgLTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1
cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250
ZXh0OjpzZWN1cml0eU9yaWdpbigpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQog
Ci0gICAgYm9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2Vj
dXJpdHlPcmlnaW4oKS5pc1NhbWVPcmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUg
Ym9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRG
b3JjZU5vT3BlbmVyQmFzZWRPbkNPT1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQwMiw5ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lk
IHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50
ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0
IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAg
ICBpbmxpbmUgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hh
bmdlKCk7CiAKQEAgLTE0MTIsNyArMTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2
b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQ
bGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7Cisg
ICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxh
eWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAg
IHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgYm9vbCk7CkBAIC0xNDUxLDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICB2b2lkIHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBt
X2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0
ZUNoYW5nZWQoKTsKICNlbmRpZgogCkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVk
Qm9vbCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1fbWVkaWFTdGF0ZTsKICAgICBib29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVt
ZW50IHsgZmFsc2UgfTsKICAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENh
Y2hlU3RhdGUgeyBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJl
ZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0
YXRlIHsgQ29tcGxldGUgfTsKICAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5OwogCi0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlv
bk9ic2VydmVyVHlwZXMgeyAwIH07CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRh
dGlvbk9ic2VydmVyVHlwZXM7CiAKICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsK
QEAgLTIyMjksNDMgKzIyMzUsNiBAQCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3Vt
ZW50Ojp0ZXh0RW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhp
cy0+ZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICBy
ZXR1cm4gVGV4dEVuY29kaW5nKCk7Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1l
bnQ6OnRlbXBsYXRlRG9jdW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9j
dW1lbnRIb3N0ID8gdGhpcyA6IG1fdGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5l
IEFYT2JqZWN0Q2FjaGUqIERvY3VtZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAot
ewotICAgIGlmICghaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIHJldHVybiBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0K
LWlubGluZSBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNl
dHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1
bWVudChudWxscHRyLCBzZXR0aW5ncywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50
OjppbnZhbGlkYXRlQWNjZXNzS2V5Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vz
c0tleUNhY2hlKSkKLSAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsK
LX0KLQotLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRo
ZSBEb2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgot
Ci1pbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgp
OwotfQotCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29u
c3QgRG9jdW1lbnQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50SW5saW5lcy5oCmluZGV4IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3
MThmM2UuLmRkMjUwYWUyYzg4OWRlYjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRl
eHRFbmNvZGluZyBEb2N1bWVudDo6dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4
dEVuY29kaW5nKCk7CiB9CiAKK2lubGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygp
IGNvbnN0IHsgcmV0dXJuIHRleHRFbmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3Ry
aW5nIERvY3VtZW50OjpjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5n
KCk7IH0KKwogaW5saW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVu
dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDog
bV90ZW1wbGF0ZURvY3VtZW50LmdldCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQg
RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZVNsb3dDYXNlKCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0Nh
cHR1cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5n
KG1fbWVkaWFTdGF0ZSk7Cit9CisKK2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30K
KworaW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25z
dCB7IHJldHVybiBzZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsg
fQorCisKIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0
aGUgRG9jdW1lbnQgY2xhc3MgZGVmaW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4K
IAogaW5saW5lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5
NTJiMTkyZTQxMjQwNTZhMDM4NTMyZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBh
MjI2MDkxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIK
ICNpbmNsdWRlICJFZGl0aW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKaW5kZXggNDc2ZjhkYWI5YjY1MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uZDk2MTY0
M2QyNWE1Nzc5OWVjYjIwZTI5ZjdkMWViMjY5OWZmZDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6
On5NdXRhdGlvbk9ic2VydmVyKCkKIAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9w
dGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9w
dGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAg
ICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRW
YWx1ZSkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAm
IEF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEp
IHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRp
b25zLmNvbnRhaW5zQW55KE11dGF0aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlcykKKyAgICAgICAg
JiYgKG9wdGlvbnMuY29udGFpbnMoTXV0YXRpb25UeXBlOjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9u
cy5jb250YWlucyhEZWxpdmVyeUZsYWdzOjpBdHRyaWJ1dGVPbGRWYWx1ZSkpCisgICAgICAgICYm
IChvcHRpb25zLmNvbnRhaW5zKE11dGF0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMu
Y29udGFpbnMoT2JzZXJ2YXRpb25GbGFnczo6QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYg
KG9wdGlvbnMuY29udGFpbnMoTXV0YXRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhKSB8fCAhb3B0aW9u
cy5jb250YWlucyhEZWxpdmVyeUZsYWdzOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpKTsKIH0KIAog
RXhjZXB0aW9uT3I8dm9pZD4gTXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZShOb2RlJiBub2RlLCBj
b25zdCBJbml0JiBpbml0KQogewotICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnMg
PSAwOworICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAoaW5p
dC5jaGlsZExpc3QpCi0gICAgICAgIG9wdGlvbnMgfD0gQ2hpbGRMaXN0OworICAgICAgICBvcHRp
b25zLmFkZChNdXRhdGlvblR5cGU6OkNoaWxkTGlzdCk7CiAgICAgaWYgKGluaXQuc3VidHJlZSkK
LSAgICAgICAgb3B0aW9ucyB8PSBTdWJ0cmVlOworICAgICAgICBvcHRpb25zLmFkZChPYnNlcnZh
dGlvbkZsYWdzOjpTdWJ0cmVlKTsKICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVPbGRWYWx1ZS52YWx1
ZV9vcihmYWxzZSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlT2xkVmFsdWU7CisgICAg
ICAgIG9wdGlvbnMuYWRkKERlbGl2ZXJ5RmxhZ3M6OkF0dHJpYnV0ZU9sZFZhbHVlKTsKICAgICBp
ZiAoaW5pdC5jaGFyYWN0ZXJEYXRhT2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBv
cHRpb25zIHw9IENoYXJhY3RlckRhdGFPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoRGVs
aXZlcnlGbGFnczo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKIAogICAgIEhhc2hTZXQ8QXRvbVN0
cmluZz4gYXR0cmlidXRlRmlsdGVyOwogICAgIGlmIChpbml0LmF0dHJpYnV0ZUZpbHRlcikgewog
ICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5pdC5hdHRyaWJ1dGVGaWx0ZXIudmFsdWUoKSkK
ICAgICAgICAgICAgIGF0dHJpYnV0ZUZpbHRlci5hZGQodmFsdWUpOwotICAgICAgICBvcHRpb25z
IHw9IEF0dHJpYnV0ZUZpbHRlcjsKKyAgICAgICAgb3B0aW9ucy5hZGQoT2JzZXJ2YXRpb25GbGFn
czo6QXR0cmlidXRlRmlsdGVyKTsKICAgICB9CiAKLSAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8g
aW5pdC5hdHRyaWJ1dGVzLnZhbHVlKCkgOiAob3B0aW9ucyAmIChBdHRyaWJ1dGVGaWx0ZXIgfCBB
dHRyaWJ1dGVPbGRWYWx1ZSkpKQotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZXM7CisgICAg
aWYgKGluaXQuYXR0cmlidXRlcyA/IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogb3B0aW9ucy5j
b250YWluc0FueSh7IE9ic2VydmF0aW9uRmxhZ3M6OkF0dHJpYnV0ZUZpbHRlciwgRGVsaXZlcnlG
bGFnczo6QXR0cmlidXRlT2xkVmFsdWUgfSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE11dGF0aW9u
VHlwZTo6QXR0cmlidXRlcyk7CiAKLSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5j
aGFyYWN0ZXJEYXRhLnZhbHVlKCkgOiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkp
Ci0gICAgICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0
ZXJEYXRhID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKERl
bGl2ZXJ5RmxhZ3M6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRk
KE11dGF0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSk7CiAKICAgICBpZiAoIXZhbGlkYXRlT3B0aW9u
cyhvcHRpb25zKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKaW5kZXggMmFmMjYzYmQ0YTcyNTRhMjBhM2I5
MzUzMTdiNzk2OTFhZjRjYzdkYS4uMmQzMmNhNjI0NjI0NjA4YmQ0Y2QzYzkwYTMxZGQ4YTc5NWM4
MzIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCkBA
IC01MywzMCArNTQsMzEgQEAgY2xhc3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwogY2xh
c3MgV2luZG93RXZlbnRMb29wOwogCi11c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IHVu
c2lnbmVkIGNoYXI7Ci11c2luZyBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IHVuc2ln
bmVkIGNoYXI7CitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhf
dCB7CisgICAgLy8gTXV0YXRpb25UeXBlCisgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgIEF0
dHJpYnV0ZXMgPSAxIDw8IDEsCisgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKIAotY2xhc3Mg
TXV0YXRpb25PYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2
ZXI+IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOwotcHVi
bGljOgotICAgIGVudW0gTXV0YXRpb25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAw
LAotICAgICAgICBBdHRyaWJ1dGVzID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0g
MSA8PCAyLAorICAgIEFsbE11dGF0aW9uVHlwZXMgPSBDaGlsZExpc3QgfCBBdHRyaWJ1dGVzIHwg
Q2hhcmFjdGVyRGF0YSwKIAotICAgICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwg
QXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEKLSAgICB9OworICAgIC8vIE9ic2VydmF0aW9uRmxh
Z3MKKyAgICBTdWJ0cmVlID0gMSA8PCAzLAorICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNCwK
KyAgICBBbGxPYnNlcnZhdGlvbkZsYWdzID0gU3VidHJlZSB8IEF0dHJpYnV0ZUZpbHRlciwKIAot
ICAgIGVudW0gT2JzZXJ2YXRpb25GbGFncyAgewotICAgICAgICBTdWJ0cmVlID0gMSA8PCAzLAot
ICAgICAgICBBdHRyaWJ1dGVGaWx0ZXIgPSAxIDw8IDQKLSAgICB9OworICAgIC8vIERlbGl2ZXJ5
RmxhZ3MKKyAgICBBdHRyaWJ1dGVPbGRWYWx1ZSA9IDEgPDwgNSwKKyAgICBDaGFyYWN0ZXJEYXRh
T2xkVmFsdWUgPSAxIDw8IDYsCisgICAgQWxsRGVsaXZlcnlGbGFncyA9IEF0dHJpYnV0ZU9sZFZh
bHVlIHwgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlLAorfTsKIAotICAgIGVudW0gRGVsaXZlcnlGbGFn
cyB7Ci0gICAgICAgIEF0dHJpYnV0ZU9sZFZhbHVlID0gMSA8PCA1LAotICAgICAgICBDaGFyYWN0
ZXJEYXRhT2xkVmFsdWUgPSAxIDw8IDYsCi0gICAgfTsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlPjsKIAorY2xhc3MgTXV0YXRpb25PYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE11
dGF0aW9uT2JzZXJ2ZXIpOworcHVibGljOgogICAgIHN0YXRpYyBSZWY8TXV0YXRpb25PYnNlcnZl
cj4gY3JlYXRlKFJlZjxNdXRhdGlvbkNhbGxiYWNrPiYmKTsKIAogICAgIH5NdXRhdGlvbk9ic2Vy
dmVyKCk7CkBAIC0xMTUsNiArMTE3LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBub3Rp
ZnlNdXRhdGlvbk9ic2VydmVycyhXaW5kb3dFdmVudExvb3AmKTsKIAogcHJpdmF0ZToKKyAgICB1
c2luZyBNdXRhdGlvblR5cGUgPSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTsKKyAgICB1c2lu
ZyBPYnNlcnZhdGlvbkZsYWdzID0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU7CisgICAgdXNp
bmcgRGVsaXZlcnlGbGFncyA9IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOworCiAgICAgZXhw
bGljaXQgTXV0YXRpb25PYnNlcnZlcihSZWY8TXV0YXRpb25DYWxsYmFjaz4mJik7CiAgICAgdm9p
ZCBkZWxpdmVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXAuY3BwCmluZGV4IDAyNzZlNDJiZTViZDgzZmY0MmE3OTM1NmJkZTlj
ZTczNjA5OWNiZGUuLjJhZWM2NTI5MGMzODQ3NzIyNmEwZjA4ODIyZmZhMzdjNWRmN2IwZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwLmNwcApAQCAtNDQsOSArNDQsOSBAQCBpbmxpbmUgTXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKEhhc2hNYXA8UmVmPAogICAgIEFT
U0VSVCghbV9vYnNlcnZlcnMuaXNFbXB0eSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE11dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6
Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5
cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnLCBjb25z
dCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3Jl
YXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBl
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxp
ZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9u
T2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUp
OworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmli
dXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CiAgICAgYXV0byBvYnNl
cnZlcnMgPSB0YXJnZXQucmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKHR5cGUsIGF0dHJpYnV0
ZU5hbWUpOwogICAgIGlmIChvYnNlcnZlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwLmgKaW5kZXggM2MwYWU1MjM3ZDRiMmUyZWZmNzBkZGU2NjJlNWY0ZTFlNTY5MjZhZC4u
MmY0NmM4MWU4ZTVlODkzMGZmY2NjMWRiODRkYTgwYmNhOTA0MWI5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKQEAgLTMwLDcg
KzMwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ2LDM2ICs0Niwz
NiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JDaGlsZExpc3RNdXRhdGlvbihOb2RlJiB0YXJnZXQp
CiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2
ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCkpCisgICAgICAgIGlmICghdGFy
Z2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU6OkNoaWxkTGlzdCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgICAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcgPSAwOwot
ICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpD
aGlsZExpc3QsIG9sZFZhbHVlRmxhZyk7CisgICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zIG9sZFZhbHVlRmxhZzsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdl
dCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlzdCwgb2xkVmFsdWVGbGFnKTsK
ICAgICB9CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwPiBjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSYgdGFyZ2V0KQog
ICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVy
c09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgaWYgKCF0
YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2Vy
dmVyOjpDaGFyYWN0ZXJEYXRhLCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFs
dWUpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6
OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQXR0cmlidXRlc011
dGF0aW9uKE5vZGUmIHRhcmdldCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkK
ICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZl
cnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcykpCisgICAgICAgIGlmICghdGFy
Z2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcywgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1
dGVOYW1lKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBl
OjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAogICAgIGJvb2wg
aXNPbGRWYWx1ZVJlcXVlc3RlZCgpIGNvbnN0OwogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVj
b3JkKFJlZjxNdXRhdGlvblJlY29yZD4mJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQo
Tm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0
cmlidXRlTmFtZSA9IG51bGxwdHIpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9s
ZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIp
OwogCi0gICAgYm9vbCBoYXNPbGRWYWx1ZShNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBv
cHRpb25zKSBjb25zdCB7IHJldHVybiBvcHRpb25zICYgbV9vbGRWYWx1ZUZsYWc7IH0KKyAgICBi
b29sIGhhc09sZFZhbHVlKE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9wdGlvbnMpIGNv
bnN0IHsgcmV0dXJuIG9wdGlvbnMuY29udGFpbnNBbnkobV9vbGRWYWx1ZUZsYWcpOyB9CiAKICAg
ICBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+IG1fb2JzZXJ2ZXJzOwogICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG1f
b2xkVmFsdWVGbGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGM2ZjFmYjE1ZGZmOGQ1ZWJmZjJmNWM1YjdiN2VkZTNh
ZTNkMGViNzkuLmQzYzFmYTY2ZWQyZjU1NDdmMGI4MDljNjkwN2JiNDVjNGY5ZjU0YTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5j
cHAKQEAgLTk1LDE2ICs5NSwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxHQ1JlYWNoYWJs
ZVJlZjxOb2RlPj4+IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnRhawogICAgIHJldHVy
biByZXR1cm5WYWx1ZTsKIH0KIAotYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpz
aG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11
dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25z
dAorYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRp
b25Gcm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCh0eXBl
ID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0
dHJpYnV0ZU5hbWUpOwotICAgIGlmICghKG1fb3B0aW9ucyAmIHR5cGUpKQorICAgIEFTU0VSVCgo
dHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1
dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CisgICAgaWYgKCFtX29wdGlvbnMuY29udGFpbnMo
dHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICgmbV9ub2RlICE9ICZub2Rl
ICYmICFpc1N1YnRyZWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUg
IT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyB8fCAhKG1fb3B0aW9ucyAmIE11dGF0aW9u
T2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcikpCisgICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgfHwgIW1fb3B0aW9ucy5jb250YWlucyhNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlRmlsdGVyKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBpZiAoIWF0dHJpYnV0ZU5hbWUtPm5hbWVzcGFjZVVSSSgpLmlzTnVsbCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgK
aW5kZXggMzExMDg0MThmMWVkNTY0ZmFiOTViOTZmYzhhMGNmZGE1MzUzZjNlYi4uZDY4NGIxZjBi
MWI4N2U4MTcwNTA2NDAwNWNhYjc5MDUxNzA3ODQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC01NiwxMyArNTYsMTMgQEAg
cHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdDUmVhY2hhYmxlUmVmPE5vZGU+
Pj4gdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKICAgICBib29sIGhhc1RyYW5zaWVudFJl
Z2lzdHJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVz
ICYmICFtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzLT5pc0VtcHR5KCk7IH0KIAotICAgIGJv
b2wgc2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiwgTXV0YXRpb25PYnNlcnZlcjo6TXV0
YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKLSAg
ICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2Jz
ZXJ2ZXI6OlN1YnRyZWU7IH0KKyAgICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9k
ZSYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
aWJ1dGVOYW1lKSBjb25zdDsKKyAgICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b3B0aW9ucy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6U3VidHJlZSk7IH0K
IAogICAgIE11dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKCkgeyByZXR1cm4gbV9vYnNlcnZlci5n
ZXQoKTsgfQogICAgIE5vZGUmIG5vZGUoKSB7IHJldHVybiBtX25vZGU7IH0KLSAgICBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMgJiAoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUgfCBNdXRhdGlv
bk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOyB9Ci0gICAgTXV0YXRpb25PYnNlcnZl
ck9wdGlvbnMgbXV0YXRpb25UeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0
aW9uT2JzZXJ2ZXI6OkFsbE11dGF0aW9uVHlwZXM7IH0KKyAgICBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiBN
dXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QWxsRGVsaXZlcnlGbGFnczsgfQorICAgIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25zIG11dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMgJiBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QWxsTXV0YXRpb25UeXBlczsgfQogCiAg
ICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0
b3ImKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGE2ZjE5ODM2YTliZGQ1MTY2Zjg4MGNl
NjA2NDMyZGMwNjFlYzQzYWYuLmU1MzUxNDcxMDhmY2ZhZTM0ZTM3NzRmN2Q3YmY5MzQyNDUxMDkz
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb250ZXh0
TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRh
VHJhbnNmZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVt
ZW50UmFyZURhdGEuaCIKQEAgLTIyODIsNyArMjI4Myw3IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbio+KiBOb2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cnkoCiAgICAgcmV0dXJuICZkYXRhLT50cmFuc2llbnRSZWdpc3RyeTsKIH0KIAotdGVtcGxhdGU8
dHlwZW5hbWUgUmVnaXN0cnk+IHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNl
cnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9k
ZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBz
dGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFz
aE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25z
PiYgb2JzZXJ2ZXJzLCBSZWdpc3RyeSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFt
ZSkKIHsKICAgICBpZiAoIXJlZ2lzdHJ5KQogICAgICAgICByZXR1cm47CkBAIC0yMjkyLDE1ICsy
MjkzLDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQg
Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpCiAgICAgICAgICAgICBhdXRvIGRlbGl2
ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJhdGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7CiAgICAgICAgICAg
ICBhdXRvIHJlc3VsdCA9IG9ic2VydmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBk
ZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAg
ICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlIHw9IGRlbGl2ZXJ5T3B0aW9uczsK
KyAgICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChkZWxpdmVyeU9wdGlv
bnMpOwogICAgICAgICB9CiAgICAgfQogfQogCi1IYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVy
PiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRhdGlv
bk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK0hhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9u
T2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7CiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZl
cj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZXN1bHQ7Ci0gICAgQVNTRVJUKCh0
eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwg
IWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0
aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7
CiAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCBtdXRhdGlv
bk9ic2VydmVyUmVnaXN0cnkoKSwgKnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGNv
bGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKHJlc3VsdCwgdHJhbnNpZW50TXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJ5KCksICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBm
b3IgKE5vZGUqIG5vZGUgPSBwYXJlbnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnRO
b2RlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGJkYjg0MjcwNTM5ZTEzMTY2MTQxNjllMGM3ZjA2Njky
NzcyNDZiYTYuLjVkNjkzZmMyNWI0NmNmNDk5ZTc1MzMzNjA5N2ZkOTE2NzU1MDhkYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAj
aW5jbHVkZSAiU3R5bGVWYWxpZGl0eS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgpAQCAtNTQs
NiArNTMsOCBAQCBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgSFRNTFF1YWxpZmllZE5hbWU7CiBj
bGFzcyBIVE1MU2xvdEVsZW1lbnQ7CiBjbGFzcyBNYXRoTUxRdWFsaWZpZWROYW1lOworY2xhc3Mg
TXV0YXRpb25PYnNlcnZlcjsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBj
bGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVMaXN0c05vZGVE
YXRhOwpAQCAtNjcsNiArNjgsMTAgQEAgY2xhc3MgU1ZHUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNo
YWRvd1Jvb3Q7CiBjbGFzcyBUb3VjaEV2ZW50OwogCitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25UeXBlIDogdWludDhfdDsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0g
T3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBl
PjsKKwogdXNpbmcgTm9kZU9yU3RyaW5nID0gVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFN0cmluZz47
CiAKIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewpAQCAtNDk0LDcgKzQ5OSw3IEBA
IHB1YmxpYzoKICAgICBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YUNvbmN1cnJlbnRs
eSgpIGZpbmFsOwogICAgIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkg
ZmluYWw7CiAKLSAgICBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNv
cmREZWxpdmVyeU9wdGlvbnM+IHJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUp
OworICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJP
cHRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKICAgICB2b2lk
IHJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyJiwgTXV0YXRpb25PYnNl
cnZlck9wdGlvbnMsIGNvbnN0IEhhc2hTZXQ8QXRvbVN0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7
CiAgICAgdm9pZCB1bnJlZ2lzdGVyTXV0YXRpb25PYnNlcnZlcihNdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uJik7CiAgICAgdm9pZCByZWdpc3RlclRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIo
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCAxNzZiYzNiNDg5MjBmZWQwOGEyYWE5NWFhMmJh
ZTY2N2FlZGY0MmZkLi4zZTBmN2U1NDM1ZWEzN2ZjNmI5ZGNmYjQxZmUzNjE4NTI1ZjJkZjEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjcs
NyArMjcsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5o
IgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIk1l
ZGlhTGlzdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGYwNDliZDg0
YjEyYWFkMGNkYTNlZTcxNTgyNjA5NDM4MWYwOTEyNTMuLmM0ZjI5NTk5OTM5ZWMxNjgzMmM2ZGY2
YzBjZWMwMjBiY2Q0MjUwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNs
dWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJDdXJyZW50U2NyaXB0
SW5jcmVtZW50ZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJF
bGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50LmgKaW5kZXggYjEwNzY2NTk5MzEwZGY0NTQ2MTczMWYzNGJiM2M5ZTljMjhjZTMzYy4uYWIy
NzgzN2I5ODgzNzk2NGU4YjY4ZDM2ZDEwZjcxODk1ZDZhNjBmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oCkBAIC0yOSwzMCArMjks
MzMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKKwor
c3RydWN0IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAg
ICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCgpIHsgfQorCisgICAgU3RyaW5nIGRv
Y3VtZW50VVJJOworICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBTdHJpbmcgYmxvY2tlZFVSSTsK
KyAgICBTdHJpbmcgdmlvbGF0ZWREaXJlY3RpdmU7CisgICAgU3RyaW5nIGVmZmVjdGl2ZURpcmVj
dGl2ZTsKKyAgICBTdHJpbmcgb3JpZ2luYWxQb2xpY3k7CisgICAgU3RyaW5nIHNvdXJjZUZpbGU7
CisgICAgU3RyaW5nIHNhbXBsZTsKKyAgICBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlz
cG9zaXRpb24gZGlzcG9zaXRpb24geyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9z
aXRpb246OkVuZm9yY2UgfTsKKyAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlIHsgMCB9Owor
ICAgIHVuc2lnbmVkIGxpbmVOdW1iZXIgeyAwIH07CisgICAgdW5zaWduZWQgY29sdW1uTnVtYmVy
IHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnRJbml0Jik7Cit9OworCiBjbGFzcyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQpOwogcHVibGljOgotICAgIGVudW0gY2xhc3MgRGlzcG9zaXRpb24g
OiBib29sIHsgRW5mb3JjZSwgUmVwb3J0IH07Ci0KLSAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5p
dCB7Ci0gICAgICAgIEluaXQoKSB7IH0KLQotICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkk7Ci0g
ICAgICAgIFN0cmluZyByZWZlcnJlcjsKLSAgICAgICAgU3RyaW5nIGJsb2NrZWRVUkk7Ci0gICAg
ICAgIFN0cmluZyB2aW9sYXRlZERpcmVjdGl2ZTsKLSAgICAgICAgU3RyaW5nIGVmZmVjdGl2ZURp
cmVjdGl2ZTsKLSAgICAgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5OwotICAgICAgICBTdHJpbmcg
c291cmNlRmlsZTsKLSAgICAgICAgU3RyaW5nIHNhbXBsZTsKLSAgICAgICAgRGlzcG9zaXRpb24g
ZGlzcG9zaXRpb24geyBEaXNwb3NpdGlvbjo6RW5mb3JjZSB9OwotICAgICAgICB1bnNpZ25lZCBz
aG9ydCBzdGF0dXNDb2RlIHsgMCB9OwotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9
OwotICAgICAgICB1bnNpZ25lZCBjb2x1bW5OdW1iZXIgeyAwIH07Ci0KLSAgICAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBJbml0Jik7Ci0gICAgfTsKKyAgICB1c2luZyBEaXNwb3NpdGlvbiA9IFNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjsKKyAgICB1c2luZyBJbml0ID0g
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7CiAKICAgICBzdGF0aWMgUmVmPFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBJbml0JiBpbml0aWFsaXplciA9IHsgfSwgSXNUcnVzdGVkIGlzVHJ1c3RlZCA9IElzVHJ1
c3RlZDo6Tm8pCiAgICAgewpAQCAtMTExLDcgKzExNCw3IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudEluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgRXZlbnRJbml0Jj4oKnRoaXMpOwogICAgIGVu
Y29kZXIgPDwgZG9jdW1lbnRVUkk7CkBAIC0xMjksNyArMTMyLDcgQEAgdm9pZCBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudDo6SW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQmIGV2ZW50SW5pdCkKK2Jvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCYgZXZlbnRJbml0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rh
dGljX2Nhc3Q8RXZlbnRJbml0Jj4oZXZlbnRJbml0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTE2NCwxMSArMTY3LDExIEBAIGJvb2wgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5CiAKIG5hbWVzcGFj
ZSBXVEYgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlv
bj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgV2ViQ29yZTo6U2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb24sCi0gICAgV2ViQ29yZTo6U2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OkVuZm9yY2UsCi0gICAgV2ViQ29y
ZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydAorICAg
IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbiwKKyAgICBX
ZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2Us
CisgICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpS
ZXBvcnQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcAppbmRleCA1OGQ3NTNiMjNkNjNiODcyOTU5MDA3YzVhNzA5NjczOTdj
ODg3ODRhLi45ODA0NDYwY2RiMmJjNWFiNTE3MTRiNDA0YWI4NWMwY2FmZTIyYTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzMs
OCArMzMsOCBAQAogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCBmOTVhMzFjNTM5MTJkMDNiYWZm
NGNjODU3MDAyYjVjMWNkMzU5OTMyLi5mMzQwMTQzNTlmZjdjZGJkODU3Y2ZkY2RiYmE5YjI0ZjI5
MTAxYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjgsNyAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0
ZUVkaXRDb21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggODQ2
NjRjM2I3NDgzNjUzYWYwOWY3OWViYjUzM2U3NTRiYTYzODRhMS4uOTI5NDZmMzczMTMzZTExMGRk
YjExMWY1OGE5M2MxYjJjN2YwYjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBA
IC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1
NjU3ODI3ZDlhNjZiYjNiNzNlZmI1NWY5MzE2MWVlODM4YjQ1YTMwLi4xYjcwNzY1YmFiYzRkNDY4
MTFjMWFmZDc5NDY1MTA3YjhhMjIwODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKICNpbmNs
dWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYzJlYjhh
N2JjNDEzMjJjYThkMjA4NDQzM2EyMzVmZmU5N2I1ZWJiZC4uNzEzNjk5NTQ5MDVmOWYyZjFkOGUx
Y2RlMDYwZTQxZGNhZWNhMTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAj
aW5jbHVkZSAiQ29sb3JCbGVuZGluZy5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
ZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmlu
ZGV4IDg3OTE0MjE2Y2FhMmFlNzA1YTVjNDg5OWJkZmEwMTQ0YzM2NjA4ZGQuLjIyNzJlYmIzMGRl
NzkyMTYzNjZmYjExOTM2NTgxYjkyNThiZGNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkJyZWFrQmxvY2tx
dW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
Yy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCBmMzgzYWRkZDE5YjBjZjAwNDZiYTUzN2NiMmQ1
OGJkNGE3MTAwZTk0Li40NjIzN2FkNmMxZTkzNzFiZGNhZDcwZmNhZmIwZjdmZTVkZjhkNTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpA
QCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hy
b21lLmgiCiAjaW1wb3J0ICJDaHJvbWVDbGllbnQuaCIKKyNpbXBvcnQgIkRvY3VtZW50SW5saW5l
cy5oIgogI2ltcG9ydCAiRnJhbWUuaCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IDVlNDFiNDkyNDE2YTM5
NDBlZDZkZTEzMTJhMzE1MzNlZGQ4MTc5MzkuLmJmNTQzMmFmMzE2ZTVhNzRhZjJhZDI3M2YxMTUy
NmU0ZGI0NWIyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHAKQEAgLTIzLDkgKzIzLDExIEBACiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVtZW50LmgiCiAK
ICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkdDUmVhY2hhYmxlUmVmLmgiCiAjaW5j
bHVkZSAiSFRNTFNsb3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKaW5kZXggMDY5Y2M0MTc3MGNjOWZjNTFiOTU4MjIzNTMyNDYzMjMzMzI2
YjdhMy4uMjQzOGU5MTc2YjIzOWFkZThlYTA5YmJjZWY4MWRkNWRiYzUwNTAzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNs
dWRlICJEYXRlVGltZUNob29zZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGaWxlSW5wdXRUeXBlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAKaW5kZXggNTZmMGM3OWQ0NWQ5Mjc2OTY5NjcyMTM4MDA1M2RmMGI0
OWUxYzdmMS4uNzRmZDQ1ZTZkYmJiNDU2YjU0NTNiMWQ0MGYzOGNmMDQ2NDBkNzdhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlz
dC5oIgogI2luY2x1ZGUgIkRlZmF1bHRSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgotI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyOTM3
OWIyMGY1OTFmZmVmMGJkNTU3YzgwOGQ4YjQ5NDBhYWE1YTcwLi42NWViZmE3YTU0ZDhmYWQzNGE3
YWUwOWM1NWJhMzMwNWU3MzZjMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTg1LDggKzg1LDggQEAKICNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmlj
ZXMuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVy
dmFsVHJlZS5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNp
bmNsdWRlICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBpY3R1cmVJblBpY3R1cmVTdXBwb3J0
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1UZXh0VHJhY2suaCIKQEAgLTc5NzMsNyArNzk3Myw3IEBAIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0
Zm9ybU1lZGlhCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCi0gICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1l
ZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykgJiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAg
ICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgp
Lm1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJ
RklFUiwgInJldHVybmluZyB0cnVlIGJlY2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVh
bVRyYWNrIik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtNzk4OCw3
ICs3OTg4LDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91
bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhh
c01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlh
U3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpKSB7CisgICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVj
dCgpICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SXNQbGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAg
ICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVz
ZSBwbGF5aW5nIGFuIGF1ZGlvIE1lZGlhU3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CkBAIC04MDQ4LDcgKzgwNDgsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNjaGVkdWxlVXBkYXRlTWVkaWFTdGF0ZSgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dXBkYXRlTWVkaWFTdGF0ZSgpCiB7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIHN0YXRlID0gbWVkaWFTdGF0ZSgpOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CiAgICAgaWYgKG1fbWVkaWFTdGF0ZSA9PSBzdGF0ZSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC04MDU5LDMxICs4MDU5LDMxIEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6dXBkYXRlTWVkaWFTdGF0ZSgpCiB9CiAjZW5kaWYKIAotTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAorTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkg
Y29uc3QKIHsKICAgICBNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAKICAgICBib29sIGhhc0FjdGl2
ZVZpZGVvID0gaXNWaWRlbygpICYmIGhhc1ZpZGVvKCk7CiAgICAgYm9vbCBoYXNBdWRpbyA9IHRo
aXMtPmhhc0F1ZGlvKCk7CiAgICAgaWYgKGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSkKLSAg
ICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKICAgICBpZiAobV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVycykgewotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcik7CisgICAgICAgIHN0YXRlLmFkZChN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0
ZW5lcik7CiAgICAgICAgIGlmICghbWVkaWFTZXNzaW9uKCkud2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWQoKSkKLSAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyk7CisgICAgICAgICAgICBzdGF0
ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25p
dG9yaW5nKTsKICAgICB9CiAKICAgICBib29sIHJlcXVpcmVVc2VyR2VzdHVyZSA9IG1fbWVkaWFT
ZXNzaW9uICYmIG1lZGlhU2Vzc2lvbigpLmhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVt
ZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9BdXRvcGxheVRvRXh0ZXJuYWxEZXZpY2Up
OwogICAgIGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9NRVRBREFUQSAmJiAhcmVxdWlyZVVzZXJH
ZXN0dXJlICYmICFtX2ZhaWxlZFRvUGxheVRvV2lyZWxlc3NUYXJnZXQpCi0gICAgICAgIHN0YXRl
LmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2Fu
ZGlkYXRlKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRl
cm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyB8
fCBoYXNBdWRpbykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0F1ZGlvT3JWaWRlbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQXVkaW9PclZpZGVvKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbyAmJiBlbmRl
ZFBsYXliYWNrKCkpCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpEaWRQbGF5VG9FbmQpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6OkRpZFBsYXlUb0VuZCk7CiAjZW5kaWYKIAogICAgIGlmICghaXNQbGF5aW5nKCkpCkBAIC04
MDk3LDEwICs4MDk3LDEwIEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QKICAgICBpc1BsYXlpbmdBdWRpbyA9IGlzUGxh
eWluZ0F1ZGlvICYmICFtdXRlZCgpOwogI2VuZGlmCiAgICAgaWYgKGlzUGxheWluZ0F1ZGlvKQot
ICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKTsKIAogICAgIGlmIChoYXNBY3RpdmVWaWRlbykKLSAgICAgICAgc3RhdGUuYWRkKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKTsKKyAgICAgICAgc3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyk7CiAKICAgICByZXR1
cm4gc3RhdGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGNm
ZDE5ZDNjMTczZjEwY2U0ZWZlMGMyMGFlYjJhYmU1OTE5ZDI1OTYuLjAyZDQ4ODAxMTQ3NDYyYzkx
M2VjZjk5YjZiMDNiODAxMWQwZDFlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC01MjcsNyArNTI3LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIG1heEJ1ZmZl
cmVkVGltZSgpIGNvbnN0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1l
ZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0U2l6ZUNo
YW5nZWQoKTsKICAgICB2b2lkIHZpc2liaWxpdHlEaWRDaGFuZ2UoKTsKQEAgLTEyMTQsNyArMTIx
NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKICAgICBNb25v
dG9uaWNUaW1lIG1fY3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0V2ZW50RmlyZWRUaW1l
OwogICAgIGJvb2wgbV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2ZhaWxlZFRvUGxheVRvV2lyZWxlc3NUYXJnZXQgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlMmY4YTRi
ZjVkOGI4NTFiYjljMTQyMzFiODEyOGVjMjQ4ODZiN2MwLi43OWFkNGUyMjA2ZGE4MDk0OGIyYTBi
NTVmZWJiMWJiODRjODE2N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOTlhNGJiMmVmN2E2MTQ2NzRhY2Y0Zjc5
ZmE3YzNkN2NmYWY5OTYyMC4uMGUzNDg2ZDRmNzEwNmNjNTcxNjdjYWZhNjc0ODBkOTcyMTdmODk1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgogI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRl
eCBlYTI5N2ZhMjMxOWJmYjg1N2Y1ZmNiZjI0NTY2NmIwOTgzNWYxMDkyLi5iNWZmMDJiZGE1NTRh
MDFkYTkzYjkwYWZjMDgxYzZlYjA4ODBjY2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRGF0ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUg
IkRhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJEZWNpbWFsLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNs
dWRlICJFbWFpbElucHV0VHlwZS5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDdmNmQzOWYzZWNlMGNm
Zjc1Nzk0YmVkNGFjMzRmZWQzMTY0N2Y1MTcuLjI5MWVmOWEwMjgxMDJmMzJhZWMzNmM4OWM4NmFk
YjRlYzcwZmU1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTM4NSw3ICszODUsNyBAQCBFeHBl
Y3RlZDx2b2lkLCBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpwbGF5YmFja1N0YXRlQ2hhbgogICAgIGlmIChtX2VsZW1lbnQuaGFzTWVkaWFTdHJlYW1TcmNP
YmplY3QoKSkgewogICAgICAgICBpZiAoZG9jdW1lbnQuaXNDYXB0dXJpbmcoKSkKICAgICAgICAg
ICAgIHJldHVybiB7IH07Ci0gICAgICAgIGlmIChkb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKKyAgICAgICAgaWYgKGRvY3Vt
ZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRp
bykKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogI2VuZGlmCkBAIC00MDAsNyArNDAw
LDcgQEAgRXhwZWN0ZWQ8dm9pZCwgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVt
ZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW4KICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQpOwogICAg
IH0KIAotICAgIGlmICh0b3BEb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgJiYgdG9wRG9jdW1l
bnQucXVpcmtzKCkubmVlZHNQZXJEb2N1bWVudEF1dG9wbGF5QmVoYXZpb3IoKSkKKyAgICBpZiAo
dG9wRG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1Vz
ZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCAmJiB0b3BEb2N1bWVudC5xdWlya3MoKS5uZWVk
c1BlckRvY3VtZW50QXV0b3BsYXlCZWhhdmlvcigpKQogICAgICAgICByZXR1cm4geyB9OwogCiAg
ICAgaWYgKHRvcERvY3VtZW50Lmhhc0hhZFVzZXJJbnRlcmFjdGlvbigpICYmIGRvY3VtZW50LnF1
aXJrcygpLnNob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKSkKQEAgLTgwOSw3
ICs4MDksNyBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrVGFyZ2V0UGlja2Vy
V2FzRGlzbWlzc2VkKCkKICAgICBjbGllbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21p
c3NlZCgpOwogfQogCi12b2lkIE1lZGlhRWxlbWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFu
Z2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBNZWRpYUVsZW1l
bnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkucGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAppbmRleCBkZjYxNTEwY2VjNjUwMTBjMmQ2YmU1ZTRh
MGIzMDlmNzAyNTIzNDU1Li5mNWJlYmQyOGRlZjg4OWFlMDJhMDA2YWJkZTY5MDA3NWM0MTUwNWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtOTUsNyAr
OTUsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxheWluZ1RvV2lyZWxlc3NQbGF5YmFja1Rh
cmdldCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBtZWRpYVN0YXRlRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBtZWRpYVN0YXRlRGlkQ2hh
bmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogI2VuZGlmCiAKICAgICBib29sIHJl
cXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNGIxZTNhMjljMGE0MzZlNDZlYjU2YzE5ZThhYzE5
N2IwOWJlNGM0OC4uOGY2YjhjZTA4ZmRiNWQ3NGI2NmU1M2MxMjIwY2UxYmJiNWNkNzY4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEZWNpbWFsLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCAyOTIwMmExMTU2OTgwYTQ4NmFhYjk2NTMwYjU1YjU1YTQ1MDUzMTg3Li44ZTY1YzRl
YjEwMjMzNTIxZjQ4YzdmNGIxMjBhZDJjODkwOWEwN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiRGVjbGFyYXRpdmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggOWU4ZGYyZWNiMDEwNDgzNjFiMjQ0Zjg1
MGY5YmNlYzk5YTUxOWUxOS4uNmQzMWM4MWZkZTEyODBkMjQ1MzliOWM5ZmIyZTAyODk3Y2FiMzk1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNsdWRlICJET01FeGNlcHRpb24u
aCIKICNpbmNsdWRlICJET01QYXRjaFN1cHBvcnQuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIK
LSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggMzc0Njg0MzI1NzdmNjRlM2QxOGJjMzY2
N2NhMjk4ZjQzYTNiZjUwMy4uODRiMTYzNzAxNGVmNTZkYWU4YmNlZjBkNzI0OTU2MmQyMGQwZGRk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIkNlcnRp
ZmljYXRlU3VtbWFyeS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaAppbmRleCA5NDY0NzRi
NTg1ODE5M2IwYjMwNmM5MmUxZjViMmU4YmMxZmFjOWJjLi41OGM3YmI3OTM4OGFjNmYwM2YyYzgy
MGQ4OTY4ZmE0YTM1MjFmZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5PcGVuZXJQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kuaApAQCAtMjUsMTUgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ29udGVudFNlY3VyaXR5UG9saWN5OworY2xhc3MgRnJhbWU7CiBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOwogCiBzdHJ1Y3QgTmF2aWdhdGlvblJlcXVlc3RlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggZjlmMzkyY2I4NGQ4MjAyYjJiOWVjZWYwZGUxNjQ1
MTgwM2YzN2I2My4uOTljOTc4ZGNiM2M2NGNkZTY5NjUzOWJkZjlhYjVjNWI0ZGYyNzg1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0yNDAwLDcgKzI0MDAs
NyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmIHJl
cG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcAogICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRp
b25SZXBvcnQoKm1fZnJhbWUsIFdURk1vdmUocmVwb3J0VVJMKSwgV1RGTW92ZShyZXBvcnQpLCBW
aW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQogCi12b2lkIERv
Y3VtZW50TG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBEb2N1bWVudExv
YWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV1RGTW92ZShldmVudEluaXQp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggOWZjNDEzN2E2
OTAwZTI0YTFhODJjZWM3Y2M3NTc5M2QzNDdlOTgxMi4uNGZiZmQ3MTIwMTk5ZDI3Y2ZhODdiZGQ1
OTY3MzcxMDZiY2UwOGRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgK
QEAgLTUyMiw3ICs1MjIsNyBAQCBwcml2YXRlOgogICAgIC8vIENvbnRlbnRTZWN1cml0eVBvbGlj
eUNsaWVudAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRDU1BWaW9s
YXRpb25SZXBvcnQoVVJMJiYsIFJlZjxGb3JtRGF0YT4mJikgZmluYWw7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudEluaXQmJikgZmluYWw7CiAKICAgICBib29sIGRpc2FsbG93V2ViQXJjaGl2ZSgp
IGNvbnN0OwogICAgIGJvb2wgZGlzYWxsb3dEYXRhUmVxdWVzdCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXggODkwOTVmZTNkZTczMjg4ZTI3MzFj
MTJhZjNkMjYxNjhmN2NjMzUzMC4uNDMyYmQxMmIzMmNlOGMwZjc0YjIwZjExZjNmMjg5ZThkZTdj
NzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Rm9ybVN1Ym1pc3Npb24uY3BwCmluZGV4IDY4M2Y4NGMyNTQxNWQzZWMzNDY3ZTA4MTA4YjgxM2Y1
YTcxYTgyMzkuLmFlOTJhZGQ4NzU2MDUxZDA1NmEyMzAyZGRjYmM0ODliMTBlNzQ4NDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAtMzQsNyArMzQsNyBAQAog
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NRm9ybURh
dGEuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJGb3JtRGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
ZmNiMjIwMmY4MjgxMGFmMmE0ZjhkOWU0NTFjYjU3NGZhMGE3ZmQ0My4uYzNiYjM0NmEzOTQ3YzU4
OTgzZWU5ZDlmOGViMDRjOTkyODAzNjE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGlj
TG9nZ2luZ0tleXMuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxMDdmMzI0NjRjZDFk
M2JiOTIzYzJhOWY3NTMwZGFmZWI1YjE3OGU5Li4zNmVlMzI3NWQ2OTIwN2U0NTAyMTYyZjBhYmFl
Yjg4ZTU4ZWJjNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAKICNpbmNsdWRlICJEYXRl
Q29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5j
bHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDRjZmNiMTY4MWYxNzMwOWFjNGE3ZmMwYjIxOWFjZWY5NTk1
N2I3OWQuLmNjYmRmYTQ5NjNlNDAzOTZjNzllYTk2MzljYjVhMDc5YjRmM2VkMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNTAzLDcgKzUwMyw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJh
bWVWaWV3JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChB
dXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKICNpZiBF
TkFCTEUoV0VCX0NSWVBUTykKQEAgLTUzNCw3ICs1MzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFBvaW50JiwgYm9vbCAvKmlzVmlk
ZW8qLykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpICB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0
ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNz
UG9wdXAoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBlMDA1Y2Vk
ZmZjZGVjMWRhZDkxYWZmZTg2ZWVhYjIyZDM4MzVkOTkwLi43ZjlkOGVjNDU0YzAzNWYyMDI1OWNl
ODk4MjRjNjU3ZjVhZjFlMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkNvbXBvc2VkVHJlZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlz
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RHJhZ0V2ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXgg
YmU3NmUxYmQyNzc1NTEzMWQwODMxNmYyZDNiZTk5YmNjYTY4ZGMxZi4uYTExYTNiMzQ4YWJhMzk5
ZjY0ODc2ZGU0OTY5MjFkZmU4ZjBkNjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVk
aXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggOGM0Mzc3Y2I5NTRhMGIxYTA4OWU1MmVmYWQ4YTQxZDkx
MDU4YThmNy4uZmQzMzM2OGFkMjFkYzU1OTY3NGIzYTdhNjhkMjMzNGNlNGYxMzM5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQu
aCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDU0YTVhYzAwMGUyN2M5MmRhOTQwZTlmM2E3
MzEyYzdiOWNlZTZmNmMuLmQ1ZWIzYWVmZDE3NmIxMDFiZWUyM2MwMTNhZjQ3MWNmOWE0NDg5ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1ZGUg
IkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTVkcuaCIKQEAgLTIwODIsNyArMjA4Myw3
IEBAIGJvb2wgRnJhbWVWaWV3Ojp1c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1PcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRnJhbWVWaWV3Ojpz
dHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IEZy
YW1lVmlldzo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAogewogI2lmIEVOQUJMRShEQVJLX01P
REVfQ1NTKQogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlcmVyRm9yQ29sb3JTY2hlbWUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGQ5ZDQ4YWY1ZjdkMTQ5NzdmM2E1MGRlNTY1
OTkzZWRlM2Q1MmEzMTguLjk3YWRlYjEwMDZmYzU1NmI5OWZlNThhZjcwMDgyYzdiMmVhZGM4NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNTM4LDcgKzUzOCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIHNob3VsZFNldEN1cnNvcigpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCB1c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OworICAgIE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKIAogICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qgb25jZSBwbHVnaW4gbG9hZGluZyBpcyBkZWNvdXBsZWQg
ZnJvbSBsYXlvdXQuCiAgICAgdm9pZCBmbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsK
QEAgLTk1NSw3ICs5NTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzVHJhbnNwYXJlbnQg
eyBmYWxzZSB9OwogI2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQotICAgIE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBtX3N0eWxlQ29sb3JPcHRpb25zOworICAgIE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4gbV9zdHlsZUNvbG9yT3B0aW9uczsKICNlbmRpZgogCiAgICAgYm9vbCBt
X2lzVHJhY2tpbmdSZXBhaW50cyB7IGZhbHNlIH07IC8vIFVzZWQgZm9yIHRlc3RpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCmluZGV4IDgwYWQ1YWVlZmFkZjllY2I4MzZiOTEyM2Mz
OGM1NDBlNmY0YzE1MTcuLjRlMTllOGNkNzFhNjUyOWY5OGFmNjQ4MmU2Y2E1YTA1MmIxZjczOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCkBAIC0zMSwzMiArMzEsNTIgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
IDogdWludDMyX3QgeworICAgIElzUGxheWluZ0F1ZGlvID0gMSA8PCAwLAorICAgIElzUGxheWlu
Z1ZpZGVvID0gMSA8PCAxLAorICAgIElzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UgPSAxIDw8IDIs
CisgICAgUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcgPSAxIDw8IDMsCisgICAgRXh0
ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSA9IDEgPDwgNCwKKyAgICBEaWRQbGF5VG9FbmQg
PSAxIDw8IDUsCisgICAgSXNTb3VyY2VFbGVtZW50UGxheWluZyA9IDEgPDwgNiwKKyAgICBJc05l
eHRUcmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA3LAorICAgIElzUHJldmlvdXNUcmFja0NvbnRy
b2xFbmFibGVkID0gMSA8PCA4LAorICAgIEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlz
dGVuZXIgPSAxIDw8IDksCisgICAgSGFzQXVkaW9PclZpZGVvID0gMSA8PCAxMCwKKyAgICBIYXNB
Y3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDExLAorICAgIEhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSA9IDEgPDwgMTIsCisgICAgSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAx
IDw8IDEzLAorICAgIEhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNCwKKyAgICBI
YXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTUsCisgICAgSGFzSW50ZXJy
dXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE2LAorICAgIEhhc1VzZXJJbnRlcmFjdGVk
V2l0aE1lZGlhRWxlbWVudCA9IDEgPDwgMTcsCisgICAgSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVE
ZXZpY2UgPSAxIDw8IDE4LAorICAgIEhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8
IDE5LAorICAgIEhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDIwLAor
fTsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU+OworCitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1
cmVLaW5kIDogdWludDhfdCB7CisgICAgQXVkaW8sCisgICAgVmlkZW8sCisgICAgQXVkaW9WaWRl
bworfTsKKworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3Qgewor
ICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKKyAgICBBdWRpb0NhcHR1cmVJc011dGVkID0gMSA8
PCAxLAorICAgIFZpZGVvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDIsCisgICAgU2NyZWVuQ2FwdHVy
ZUlzTXV0ZWQgPSAxIDw8IDMsCit9OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CisKIGNsYXNzIE1lZGlhUHJv
ZHVjZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQcm9kdWNlcj4gewogcHVibGljOgot
ICAgIGVudW0gY2xhc3MgTWVkaWFTdGF0ZSB7Ci0gICAgICAgIElzUGxheWluZ0F1ZGlvID0gMSA8
PCAwLAotICAgICAgICBJc1BsYXlpbmdWaWRlbyA9IDEgPDwgMSwKLSAgICAgICAgSXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSA9IDEgPDwgMiwKLSAgICAgICAgUmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcgPSAxIDw8IDMsCi0gICAgICAgIEV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5k
aWRhdGUgPSAxIDw8IDQsCi0gICAgICAgIERpZFBsYXlUb0VuZCA9IDEgPDwgNSwKLSAgICAgICAg
SXNTb3VyY2VFbGVtZW50UGxheWluZyA9IDEgPDwgNiwKLSAgICAgICAgSXNOZXh0VHJhY2tDb250
cm9sRW5hYmxlZCA9IDEgPDwgNywKLSAgICAgICAgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJs
ZWQgPSAxIDw8IDgsCi0gICAgICAgIEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVu
ZXIgPSAxIDw8IDksCi0gICAgICAgIEhhc0F1ZGlvT3JWaWRlbyA9IDEgPDwgMTAsCi0gICAgICAg
IEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTEsCi0gICAgICAgIEhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTIsCi0gICAgICAgIEhhc011dGVkQXVkaW9DYXB0
dXJlRGV2aWNlID0gMSA8PCAxMywKLSAgICAgICAgSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2Ug
PSAxIDw8IDE0LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEg
PDwgMTUsCi0gICAgICAgIEhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAx
NiwKLSAgICAgICAgSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ID0gMSA8PCAxNywK
LSAgICAgICAgSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE4LAotICAgICAg
ICBIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOSwKLSAgICAgICAgSGFzSW50
ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMjAsCi0gICAgfTsKLSAgICB1c2lu
ZyBNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFTdGF0ZT47CisgICAgdXNpbmcgTWVk
aWFTdGF0ZSA9IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOworICAgIHVzaW5nIE11dGVkU3RhdGUg
PSBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTsKKyAgICB1c2luZyBNZWRpYVN0YXRlRmxhZ3MgPSBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzOworICAgIHVzaW5nIE11dGVkU3RhdGVGbGFncyA9
IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3M7CisKICAgICBzdGF0aWMgY29uc3RleHByIE1l
ZGlhU3RhdGVGbGFncyBJc05vdFBsYXlpbmcgPSB7IH07CiAgICAgc3RhdGljIGNvbnN0ZXhwciBN
ZWRpYVN0YXRlRmxhZ3MgQXVkaW9DYXB0dXJlTWFzayA9IHsgTWVkaWFTdGF0ZTo6SGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSwgTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgfTsKICAgICBz
dGF0aWMgY29uc3RleHByIE1lZGlhU3RhdGVGbGFncyBWaWRlb0NhcHR1cmVNYXNrID0geyBNZWRp
YVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc011dGVk
VmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVy
ZURldmljZSB9OwpAQCAtNjksMjAgKzg5LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBNZWRp
YVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0ID0gMDsKIAotICAgIGVudW0gY2xhc3MgTWVk
aWFDYXB0dXJlS2luZCB7Ci0gICAgICAgIEF1ZGlvLAotICAgICAgICBWaWRlbywKLSAgICAgICAg
QXVkaW9WaWRlbwotICAgIH07Ci0KLSAgICBlbnVtIGNsYXNzIE11dGVkU3RhdGUgewotICAgICAg
ICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCi0gICAgICAgIEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAx
IDw8IDEsCi0gICAgICAgIFZpZGVvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDIsCi0gICAgICAgIFNj
cmVlbkNhcHR1cmVJc011dGVkID0gMSA8PCAzLAotICAgIH07Ci0KLSAgICB1c2luZyBNdXRlZFN0
YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TXV0ZWRTdGF0ZT47CiAgICAgc3RhdGljIGNvbnN0ZXhwciBN
dXRlZFN0YXRlRmxhZ3MgQXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkID0geyBNdXRlZFN0YXRl
OjpBdWRpb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkIH07
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNdXRlZFN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1DYXB0dXJl
SXNNdXRlZCA9IHsgTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6
VmlkZW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQgfTsK
IApAQCAtOTYsNDkgKzEwMiw0OSBAQCBwcm90ZWN0ZWQ6CiAKIG5hbWVzcGFjZSBXVEYgewogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQ+IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLAot
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8s
Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW8KKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbwog
ICAgID47CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU+IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlLAotICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlk
ZW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1RvRXh0ZXJuYWxEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlk
YXRlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5
VG9FbmQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzU291
cmNlRWxlbWVudFBsYXlpbmcsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLAotICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNl
LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1
cHRlZFZpZGVvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LAotICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVy
ZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZQorICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLAorICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8sCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rh
cmdldE1vbml0b3JpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZywKKyAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQs
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJh
Y2tDb250cm9sRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8sCisgICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVW
aWRlb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1
cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJ
bnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0
dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
TXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UKICAgICA+Owog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkLAotICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkLAot
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJ
c011dGVkLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3Jl
ZW5DYXB0dXJlSXNNdXRlZAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRl
ZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVy
ZUlzTXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRl
b0NhcHR1cmVJc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggODg1MzNiM2QyYjM3MTgyZTE2MDUyZmVkMTI5MzY4YTQ2ZTQyMjlhZi4uY2YxNzAxM2U1ZDY4
NmYwMWQ1MjJkNmQ2Nzc5NjQ4MmY1OWVlNGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MCw2
ICs1MCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0y
MTcwLDcgKzIxNzEsNyBAQCB2b2lkIFBhZ2U6OnN0b3JhZ2VCbG9ja2luZ1N0YXRlQ2hhbmdlZCgp
CiAKIHZvaWQgUGFnZTo6dXBkYXRlSXNQbGF5aW5nTWVkaWEoKQogewotICAgIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIHN0YXRlOwogICAgIGZvckVhY2hEb2N1bWVudChbJl0oYXV0byYgZG9jdW1lbnQpIHsKICAg
ICAgICAgc3RhdGUuYWRkKGRvY3VtZW50Lm1lZGlhU3RhdGUoKSk7CiAgICAgfSk7CkBAIC0yMjA4
LDcgKzIyMDksNyBAQCB2b2lkIFBhZ2U6OnBsYXliYWNrQ29udHJvbHNNZWRpYUVuZ2luZUNoYW5n
ZWQoKQogCiAjZW5kaWYKIAotdm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlRmxhZ3MgbXV0ZWQpCit2b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3MgbXV0ZWQpCiB7CiAgICAgbV9tdXRlZFN0YXRlID0gbXV0ZWQ7CiAKQEAgLTIy
MTcsNyArMjIxOCw3IEBAIHZvaWQgUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzIG11dGVkKQogICAgIH0pOwogfQogCi12b2lkIFBhZ2U6OnN0b3BNZWRpYUNhcHR1
cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQordm9pZCBQYWdlOjpzdG9w
TWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGtpbmQpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0zMDE4LDcg
KzMwMTksNyBAQCB2b2lkIFBhZ2U6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleAogI2VuZGlmCiB9CiAKLXZvaWQgUGFn
ZTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQordm9pZCBQYWdlOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0
YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIGNocm9tZSgp
LmNsaWVudCgpLnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4
dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDk0ZjhiOGRhOTIwNjk2Mzc4OGM1MTYx
NjUzZTUwNWNjYzAwNTM4MzkuLmZhODg5ZjRjNGNmZGIyZGRjM2M4NDMzN2M2YWM5MTdjZTBiOTI4
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNzcsNiArMTc3LDEyIEBAIGVudW0gY2xhc3MgQ2FuV3Jh
cCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdyYXAgOiBib29sOwogZW51bSBjbGFzcyBSb3V0ZVNo
YXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgOiB1aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVp
bnQzMl90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4
X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKKwordXNp
bmcgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZT47Cit1c2luZyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9u
U2V0PE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPjsKIAogZW51bSBjbGFzcyBFdmVudFRocm90dGxp
bmdCZWhhdmlvciA6IGJvb2wgeyBSZXNwb25zaXZlLCBVbnJlc3BvbnNpdmUgfTsKIGVudW0gY2xh
c3MgTWFpbkZyYW1lTWFpblJlc291cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTcyOSwxOCAr
NzM1LDE4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlc3Npb25JRChQ
QUw6OlNlc3Npb25JRCk7CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7IH0KIAotICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRl
OyB9CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9tZWRpYVN0YXRlOyB9CiAgICAgdm9pZCB1cGRhdGVJc1BsYXlpbmdNZWRpYSgp
OwotICAgIE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9Ci0gICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7
IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKTsgfQotICAgIGJvb2wgaXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVh
bUNhcHR1cmVJc011dGVkKTsgfTsKKyAgICBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11
dGVkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KKyAgICBpbmxpbmUgYm9v
bCBpc0F1ZGlvTXV0ZWQoKSBjb25zdDsKKyAgICBpbmxpbmUgYm9vbCBpc01lZGlhQ2FwdHVyZU11
dGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzY2hlZHVsZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBk
YXRlKCk7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZvaWQgcGxheWJhY2tDb250cm9sc01lZGlh
RW5naW5lQ2hhbmdlZCgpOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNdXRl
ZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyk7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJv
ZHVjZXJNZWRpYUNhcHR1cmVLaW5kKTsKIAogICAgIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmll
ciBtZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIG1lZGlhUGxheWJhY2tFeGlzdHMoKTsKQEAgLTc2Myw3ICs3NjksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IEludFBvaW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25z
dCBTdHJpbmcmKTsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0
cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAo
KTsKQEAgLTk5Niw3ICsxMDAyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5Mb3dRdWFsaXR5
SW50ZXJwb2xhdGlvbk1vZGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNs
aWVudENhbGxzRW5hYmxlZCB7IHRydWUgfTsKICAgICBmbG9hdCBtX21lZGlhVm9sdW1lIHsgMSB9
OwotICAgIE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtX211dGVkU3RhdGU7CisgICAg
TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtX211dGVkU3RhdGU7CiAKICAgICBmbG9hdCBt
X3BhZ2VTY2FsZUZhY3RvciB7IDEgfTsKICAgICBmbG9hdCBtX3pvb21lZE91dFBhZ2VTY2FsZUZh
Y3RvciB7IDAgfTsKQEAgLTExMjAsNyArMTEyNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
Q2xvc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUmVzdG9yaW5nQ2FjaGVkUGFnZSB7IGZh
bHNlIH07CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRl
OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogCiAjaWYg
RU5BQkxFKFZJREVPKQogICAgIFRpbWVyIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVU
aW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGE5MjI2M2E3MjMy
ODM2NTdkZWYzOWEzODUxZTIwZDY1NmQwNzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlSW5saW5lcy5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW5saW5lIGJvb2wgUGFnZTo6aXNBdWRpb011
dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworfQorCitpbmxpbmUgYm9vbCBQYWdlOjpp
c01lZGlhQ2FwdHVyZU11dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tdXRlZFN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDc2M2ZmNjRiZjRl
N2U5ZTBmZTQ2ZTEzZjhkODEzMTZkOGUzZmFhNmMuLjFhMTIxMGZhODMzN2NkOTUyMGY0ZTAxMWE5
MDczNjc1NGRlNTE4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlh
bGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBA
IC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUgIkNT
U1N0eWxlUnVsZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcAppbmRleCAxZGJkMTUzYjk2MGVjMmNkMzI1ZDc5ODIwMzMyZDI4ZWVjNTY0YzEzLi4y
OTA5MTYwMGNiMTk3N2Y5ZDMzNWMxZWZhZmViMTkyOGRlZjkxZGM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuaCIKICNpbmNsdWRl
ICJDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5n
TGlzdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKQEAgLTc3NSw3ICs3NzUsNyBAQCB2b2lkIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlv
bGF0ZWREaXJlYwogICAgIHVuc2lnbmVkIHNob3J0IGh0dHBTdGF0dXNDb2RlID0gbV9zZWxmU291
cmNlUHJvdG9jb2wgPT0gImh0dHAiID8gbV9odHRwU3RhdHVzQ29kZSA6IDA7CiAKICAgICAvLyAx
LiBEaXNwYXRjaCB2aW9sYXRpb24gZXZlbnQuCi0gICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCB2aW9sYXRpb25FdmVudEluaXQ7CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQgdmlvbGF0aW9uRXZlbnRJbml0OwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5k
b2N1bWVudFVSSSA9IGluZm8uZG9jdW1lbnRVUkk7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnJl
ZmVycmVyID0gbV9yZWZlcnJlcjsKICAgICB2aW9sYXRpb25FdmVudEluaXQuYmxvY2tlZFVSSSA9
IGJsb2NrZWRVUkk7CkBAIC03ODMsNyArNzgzLDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMK
ICAgICB2aW9sYXRpb25FdmVudEluaXQuZWZmZWN0aXZlRGlyZWN0aXZlID0gZWZmZWN0aXZlVmlv
bGF0ZWREaXJlY3RpdmU7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0Lm9yaWdpbmFsUG9saWN5ID0g
dmlvbGF0ZWREaXJlY3RpdmVMaXN0LmhlYWRlcigpOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5z
b3VyY2VGaWxlID0gaW5mby5zb3VyY2VGaWxlOwotICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5kaXNw
b3NpdGlvbiA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5pc1JlcG9ydE9ubHkoKSA/IFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpSZXBvcnQgOiBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6RW5mb3JjZTsKKyAgICB2aW9sYXRpb25FdmVu
dEluaXQuZGlzcG9zaXRpb24gPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaXNSZXBvcnRPbmx5KCkg
PyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OlJlcG9ydCA6IFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjo6RW5mb3JjZTsKICAgICB2aW9sYXRp
b25FdmVudEluaXQuc3RhdHVzQ29kZSA9IGh0dHBTdGF0dXNDb2RlOwogICAgIHZpb2xhdGlvbkV2
ZW50SW5pdC5saW5lTnVtYmVyID0gIGluZm8ubGluZU51bWJlcjsKICAgICB2aW9sYXRpb25FdmVu
dEluaXQuY29sdW1uTnVtYmVyID0gaW5mby5jb2x1bW5OdW1iZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oCmluZGV4IDhl
MDUxODI2NDE0MDZmMmNjOGNhYTJkYzU2YWUzMzYwNjM0ZTZiMWUuLmYyZmU2Mzg5NDY0OTZlZGJi
MzAzODQ1Mzk4ZmY5ZTczOTdjMzRiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oCkBAIC01MSw3ICs1MSw3IEBAIHN0
cnVjdCBXRUJDT1JFX0VYUE9SVCBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQgewogCiAgICAg
dmlydHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPEZv
cm1EYXRhPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKaW5kZXggNzJlNGY2OTFiNGY5NTI1NzVkOTMxMWU0ZDBhN2RlMTdjZmYwMjM2OC4u
ZDBhNGZlNGEyMGUwYWU4ZDI3ZGUzZDRiOWVlNjllNTA3YTVhMGVmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xv
YmFsU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMZWdhY3lDRE1TZXNz
aW9uLmgiCkBAIC00MSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdl
cy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcAppbmRleCA1MDBmZGIwZmRjY2MzZTMxOWJjZDYxYWUyM2I0ZGVlZTA1ZGE5YTVmLi5hMTQ4
ODdmYzc3NWUyYjk3YjY5ZjljNTk1YWU4MjcwYWFkNzExYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
V2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYv
RGF0YU11dGV4Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91
dC5jcHAKaW5kZXggMTNiYTE1ZDdhMmNlYTE3OTk4NWFhMWY3YTBkNTMzZTljZDQ3OGY0Yy4uNzFm
YjIyMzVhZGVhN2E3ZjI0NTE2ZjQyMThiZGE4OTUyN2FkNTJhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCaWRpUmVzb2x2ZXIuaCIKICNpbmNs
dWRlICJCcmVha2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNp
bmNsdWRlICJGbG9hdGluZ09iamVjdHMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgi
CiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3JCb3guaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IGQ0ZDlmMmM3MTllYmM0OWFkZGIyYmJlYmZlZWM0MWFlMWJj
ZGNlZWUuLmYxNDQ5ODE0NTZmZmY4ODQxY2RiMTQ4NWNiZTY1ZmM0OGIyNjk2ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjUsNyArMjUsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRSZWdpb24u
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA4M2Ew
ZWMzOWI0OWJlMzU5NDZmZGQ5MTk0ZjdlYWI0Mjc3ODM3M2Q5Li4yN2Y5ZDRlMzM4NjkzOGZhM2Fm
OGIwYThhNmEwMTkzYmM0YTBkNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3Qu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVs
aW5lLmgiCiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVu
dEhhbmRsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4
IGI0ZTUzM2E2NzkwYzUzMzYyMTRhNGY1MjQzYjViZmViN2I5Yjg4MDUuLjc3N2Q4NDA2NjFkY2Jm
NGUwMTg4NGE5MTliZWFkNGQxNDMxZjgyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCA2N2RmNjE4NDIzYmUx
YzU4NmMzMjhjZDY0MzEzZGI1NmVkN2NlMzhiLi5jYWI2M2Y1YjE0Y2U1ZWI4N2VlNGQ4N2E4MGIz
ODY1ZGZiNmU5YjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
cy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCmluZGV4IDE3ZGY5NGVjNDBjYzJlMTk2NGQwNWNhMjgzMzBkOTAxMjkwZTIwOTEu
LjEwMmM0ZWUxNmMwZDFhZDRkODE1N2Y4MWJlNDY2NmJmNDNkMTY4M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkNvbG9yQmxlbmRpbmcuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGY1
Mjc4M2FlOGFmN2Q1ZDYzYzViYzhlYWI2YzM2OWM2ZDRhZThhZWMuLmIwZDM3MTRiMWJjNGNjNmJi
ZDQ4YWRiN2YyOTM2NzczMTRhYTA4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCkBAIC0xNzkzLDcgKzE3OTQsNyBAQCBib29s
IFJlbmRlck9iamVjdDo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdAogICAgIHJldHVybiBkb2N1
bWVudCgpLnVzZURhcmtBcHBlYXJhbmNlKCZzdHlsZSgpKTsKIH0KIAotT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IFJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAor
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxlQ29sb3JPcHRp
b25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygm
c3R5bGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXgg
MTI2MDAwNGY1YzJmN2UxZGQwMmIyNDA4NTVkMjE1ODU1YmY2YjMzYi4uYzUzNGM5ZmRkMDVkNTg0
NzBmYTdlNjYxNDg2YTZhZWFjY2Q2NjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaApAQCAtMTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJGcmFnbWVu
dGVkRmxvdyogZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3coKSBjb25zdDsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdDsKLSAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKKyAgICBPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CiAKICNpZiBB
U1NFUlRfRU5BQkxFRAogICAgIHZvaWQgc2V0SGFzQVhPYmplY3QoYm9vbCBmbGFnKSB7IG1faGFz
QVhPYmplY3QgPSBmbGFnOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAppbmRleCA3ZWU5NDQyNmNjNTJiYWRiNDBmZmM0Y2I3Y2ZiZDEyNzc0YmNlNzNhLi4x
ZmU2M2IxNTc5NjlkZTgwOWU4ZmIzYThlNDgwMjJmYmI4Mjk4NjY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBDb2xv
ciBSZW5kZXJSZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogICAgICAg
ICAgICAgICAgICAgICBpZiAoIWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICAgICAg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHls
ZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgICAgICAgICAg
ICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0
eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0aGVtZSgpLmFwcEhpZ2hsaWdodENvbG9yKHN0eWxlQ29sb3JPcHRpb25zKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAKaW5kZXggNDhkY2ZiM2M4ZmEwNmMzNzIxNWJhNDcwNGMyNTI2MDQ5YmRi
NjEwZi4uMzQzN2NhYzRlZDc4ODk1NGNhODQ1ZTcyMmJlOTQ4YWE1NGE5NmJlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkJyZWFrTGluZXMuaCIKICNpbmNsdWRlICJCcmVha2luZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJDaGFyYWN0ZXJQcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFk
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwCmluZGV4IGI5MDgyYjU2Nzc5NWYyY2Q1ZTRkNmE3NGQ3MDMzYTg1ZTg3MWMwNWMuLjhj
YmViZmViY2JiZjM4ZjI4MmFiY2NjNGY2ZDUwMTVkZjk2Yzg2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtNjAzLDcgKzYwMyw3IEBAIExheW91dFBvaW50
IFJlbmRlclRoZW1lOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihjb25zdCBSZW5k
ZXJCb3gmIG11dGVCCiAKICNlbmRpZgogCi1Db2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0
byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTYxMSw3ICs2MTEsNyBAQCBDb2xv
ciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPgogICAgIHJldHVybiBjYWNoZS5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYg
Y2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQpAQCAtNjE5LDEyICs2MTksMTIgQEAgQ29s
b3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb24KICAgICByZXR1cm4gY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gYmxlbmRXaXRoV2hpdGUoY29sb3IpOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9w
dGlvbnMpOwogICAgIGlmICghY2FjaGUuYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLmlz
VmFsaWQoKSAmJiBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBA
IC02MzIsNyArNjMyLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2Fj
aGUuYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBp
ZiAoIWNhY2hlLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLmlzVmFsaWQoKSAmJiBz
dXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02NDAsNyArNjQw
LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb24KICAgICByZXR1cm4gY2FjaGUuaW5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVM
aXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBp
ZiAoIWNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgp
KQpAQCAtNjQ4LDcgKzY0OCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAgICAgcmV0dXJu
IGNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJU
aGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNv
bG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQpAQCAtNjU2LDcgKzY1Niw3IEBAIENvbG9yIFJl
bmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6CiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2Fj
aGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3Vw
cG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTY2NCw3
ICs2NjQsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6TwogICAgIHJldHVybiBjYWNoZS5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9w
dGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yLmlzVmFsaWQoKSAmJiBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3JzKG9wdGlvbnMpKQpAQCAtNjcyLDQ3ICs2NzIsNDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6Omlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjoKICAgICByZXR1cm4gY2FjaGUuaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVXNlIGEgYmx1ZSBjb2xv
ciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGlu
Zy4KICAgICByZXR1cm4gQ29sb3I6OmJsdWU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsK
ICAgICAvLyBVc2UgYSB3aGl0ZSBjb2xvciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVt
ZSBkb2Vzbid0IGRlZmluZSBhbnl0aGluZy4KICAgICByZXR1cm4gQ29sb3I6OndoaXRlOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJU
aGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGdyZXkgY29sb3IgYnkg
ZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAg
ICAgLy8gVGhpcyBjb2xvciBtYXRjaGVzIEZpcmVmb3gncyBpbmFjdGl2ZSBjb2xvci4KICAgICBy
ZXR1cm4gU1JHQkE8dWludDhfdD4geyAxNzYsIDE3NiwgMTc2IH07CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVXNlIGEgYmxhY2sgY29sb3IgYnkgZGVmYXVsdC4KICAg
ICByZXR1cm4gQ29sb3I6OmJsYWNrOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKG9wdGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKG9wdGlvbnMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKG9wdGlvbnMpOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IHJldHVybiBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKG9wdGlvbnMp
OwogfQpAQCAtMTIzNCwxMCArMTIzNCwxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUNv
bG9yc0RpZENoYW5nZSgpCiAgICAgUGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xv
YmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOwogfQogCi1hdXRvIFJlbmRlclRoZW1lOjpjb2xvckNh
Y2hlKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xv
ckNhY2hlJgorYXV0byBSZW5kZXJUaGVtZTo6Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0IC0+IENvbG9yQ2FjaGUmCiB7CiAgICAgYXV0byBvcHRp
b25zSWdub3JpbmdWaXNpdGVkTGluayA9IG9wdGlvbnM7Ci0gICAgb3B0aW9uc0lnbm9yaW5nVmlz
aXRlZExpbmsucmVtb3ZlKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAg
ICBvcHRpb25zSWdub3JpbmdWaXNpdGVkTGluay5yZW1vdmUoU3R5bGVDb2xvck9wdGlvbnM6OkZv
clZpc2l0ZWRMaW5rKTsKIAogICAgIHJldHVybiBtX2NvbG9yQ2FjaGVNYXAuZW5zdXJlKG9wdGlv
bnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnRvUmF3KCksIFtdIHsKICAgICAgICAgcmV0dXJuIENvbG9y
Q2FjaGUoKTsKQEAgLTEyODQsMTEgKzEyODQsMTEgQEAgdm9pZCBSZW5kZXJUaGVtZTo6c3lzdGVt
Rm9udChDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgZm8K
ICAgICB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oc3lzdGVtRm9udElELCBmb250
RGVzY3JpcHRpb24pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFs
dWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVl
SWQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBz
d2l0Y2ggKGNzc1ZhbHVlSWQpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0TGluazoKLSAgICAg
ICAgcmV0dXJuIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRl
ZExpbmspID8gU1JHQkE8dWludDhfdD4geyA4NSwgMjYsIDEzOSB9IDogU1JHQkE8dWludDhfdD4g
eyAwLCAwLCAyMzggfTsKKyAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
ck9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAxMzkg
fSA6IFNSR0JBPHVpbnQ4X3Q+IHsgMCwgMCwgMjM4IH07CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtp
dEFjdGl2ZWxpbms6CiAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZXRleHQ6CiAgICAgICAgIHJldHVy
biBDb2xvcjo6cmVkOwpAQCAtMTM2OSw3ICsxMzY5LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGkKICAgICB9CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZTo6dGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUo
b3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS50ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IuaXNWYWxp
ZCgpKQpAQCAtMTM3NywxMyArMTM3NywxMyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6dGV4dFNlYXJj
aEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpbwogICAg
IHJldHVybiBjYWNoZS50ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3I7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsK
ICAgICByZXR1cm4gQ29sb3I6OnllbGxvdzsKIH0KIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKLUNvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdo
bGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUu
YXBwSGlnaGxpZ2h0Q29sb3IuaXNWYWxpZCgpKQpAQCAtMTM5MSwxMyArMTM5MSwxMyBAQCBDb2xv
ciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbgogICAgIHJldHVybiBjYWNoZS5hcHBIaWdobGlnaHRDb2xvcjsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICByZXR1cm4gQ29sb3I6OnllbGxvdzsKIH0KICNlbmRpZgogCi1Db2xvciBSZW5kZXJU
aGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5kZWZhdWx0
QnV0dG9uVGV4dENvbG9yLmlzVmFsaWQoKSkKQEAgLTE0MDUsNyArMTQwNSw3IEBAIENvbG9yIFJl
bmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zCiAgICAgcmV0dXJuIGNhY2hlLmRlZmF1bHRCdXR0b25UZXh0Q29sb3I7
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gc3lzdGVtQ29sb3IoQ1NT
VmFsdWVBY3RpdmVidXR0b250ZXh0LCBvcHRpb25zKTsKIH0KQEAgLTE0NjUsNyArMTQ2NSw3IEBA
IHZvaWQgUmVuZGVyVGhlbWU6OnNldEN1c3RvbUZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKICAgICBjdXN0b21Gb2N1c1JpbmdDb2xvcigpID0gY29sb3I7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKGN1c3RvbUZv
Y3VzUmluZ0NvbG9yKCkuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gY3VzdG9tRm9jdXNSaW5n
Q29sb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggZTdlNmVi
YjFiOWQxZWJiMTg4MDdmYjBhYTg5MTZmOWM4MDFmNzgzMS4uODZmOWU3ZDU4ZTIxZDA2Y2EwZDIy
MjNhMWUwNDQ2NDM3NDQzMjVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKQEAgLTE0NiwzNCArMTQ2LDM0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNCb3hTaGFkb3coY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CiAgICAgLy8gVGV4dCBzZWxlY3Rpb24gY29sb3JzLgotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owot
ICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciB0cmFuc2Zvcm1TZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7CisgICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owor
ICAgIHZpcnR1YWwgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgLy8gTGlzdCBib3ggc2Vs
ZWN0aW9uIGNvbG9ycwotICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBh
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAg
Q29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsK
KyAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKICAgICAvLyBIaWdobGlnaHRpbmcg
Y29sb3IgZm9yIHNlYXJjaCBtYXRjaGVzLgotICAgIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIHRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICAvLyBEZWZhdWx0IGhpZ2hsaWdo
dGluZyBjb2xvciBmb3IgYXBwIGhpZ2hsaWdodHMuCi0gICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhcHBI
aWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKICNlbmRp
ZgogCi0gICAgQ29sb3IgZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKICAgICBDb2xvciBkYXRlUGxhY2Vo
b2xkZXJUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tn
cm91bmRDb2xvcikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIENvbG9yIGRpc2FibGVkVGV4dENvbG9y
KGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7IHJl
dHVybiBDb2xvcjo6YmxhY2s7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgeyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CiAgICAgc3RhdGljIHZvaWQgc2V0Q3VzdG9t
Rm9jdXNSaW5nQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICBzdGF0aWMgZmxvYXQgcGxhdGZvcm1G
b2N1c1JpbmdXaWR0aCgpIHsgcmV0dXJuIDM7IH0KICAgICBzdGF0aWMgZmxvYXQgcGxhdGZvcm1G
b2N1c1JpbmdPZmZzZXQoZmxvYXQgb3V0bGluZVdpZHRoKSB7IHJldHVybiBzdGQ6Om1heDxmbG9h
dD4ob3V0bGluZVdpZHRoIC0gcGxhdGZvcm1Gb2N1c1JpbmdXaWR0aCgpLCAwKTsgfQpAQCAtMTg3
LDcgKzE4Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFN5c3RlbSBmb250cyBhbmQgY29sb3JzIGZv
ciBDU1MuCiAgICAgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24mKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQs
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNpemUoY29uc3QgUmVuZGVy
U3R5bGUmKSBjb25zdCB7IHJldHVybiAwOyB9CiAKQEAgLTI3MiwyNSArMjcyLDI1IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9u
KENTU1ZhbHVlSUQgc3lzdGVtRm9udElELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3Qg
PSAwOwogCiAgICAgLy8gVGhlIHBsYXRmb3JtIHNlbGVjdGlvbiBjb2xvci4KLSAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAg
IHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
OwogCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Q7CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKICNlbmRpZgogCi0gICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1
dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBib29sIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgIVVTRShORVdfVEhFTUUp
CiAgICAgLy8gTWV0aG9kcyBmb3IgZWFjaCBhcHBlYXJhbmNlIHZhbHVlLgpAQCAtNDUxLDcgKzQ1
MSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgQ29sb3IgZGVmYXVsdEJ1dHRvblRleHRDb2xvcjsK
ICAgICB9OwogCi0gICAgdmlydHVhbCBDb2xvckNhY2hlJiBjb2xvckNhY2hlKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvckNhY2hlJiBjb2xv
ckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIHZvaWQgYWRqdXN0U2VhcmNoRmllbGREZWNvcmF0aW9uU3R5bGUoUmVuZGVyU3R5bGUmLCBj
b25zdCBFbGVtZW50KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUFkd2FpdGEuY3BwCmluZGV4IDMyYWI1YzJjOTg2MjM0NDIzZWE0OWZmODQxYzM1N2Ez
YThkZGM2YjYuLmQxZDYyM2U2NzMwZjJjMmM1ZjRkN2E1ZjMyZmEwMDhlYjIxYzIyOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0x
MzUsNDkgKzEzNSw0OSBAQCBib29sIFJlbmRlclRoZW1lQWR3YWl0YTo6c2hvdWxkSGF2ZUNhcHNM
b2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIGVsZQogICAgIHJldHVybiBlbGVt
ZW50LmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNp
bmdsZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAog
ewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9u
KCkpLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdh
aXRhOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1l
QWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNp
bmdsZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuaW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdh
aXRhOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRh
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhl
bWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1l
OjpzaW5nbGV0b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVB
ZHdhaXRhOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICByZXR1cm4gVGhlbWVBZHdhaXRhOjpmb2N1c0NvbG9y
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2Up
KTsKKyAgICByZXR1cm4gVGhlbWVBZHdhaXRhOjpmb2N1c0NvbG9yKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiB9CiAKIHZvaWQgUmVuZGVy
VGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCkBAIC0yMDMsOSArMjAzLDkg
QEAgVmVjdG9yPFN0cmluZywgMj4gUmVuZGVyVGhlbWVBZHdhaXRhOjptZWRpYUNvbnRyb2xzU2Ny
aXB0cygpCiB9CiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpzeXN0ZW1Db2xv
cihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBv
cHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpzeXN0ZW1Db2xvcihDU1NW
YWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgY29uc3Qg
Ym9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKIAogICAgIHN3aXRjaCAoY3NzVmFsdWVJRCkgewogICAg
IGNhc2UgQ1NTVmFsdWVBY3RpdmVjYXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQWR3YWl0YS5oCmluZGV4IDZjNzk5MzIzYjdkZGJiZDE1OTkwMTdkNjBjZmVj
ZjA5MTI0NDAyZWIuLjk5MzMyNWM0MTY2NWVkZGIzNDg5N2ZjYzdlNTMzODc1ODU4YzJiOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKQEAgLTQ2
LDE1ICs0NiwxNSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250
RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0IG92
ZXJyaWRlIHsgfTsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwot
ICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBs
YXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBD
b2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAg
ICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHBsYXRmb3JtQ29s
b3JzRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICBib29sIHBhaW50VGV4dEZpZWxkKGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwpA
QCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRl
clRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBz
eXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIEludFNpemUgc2xp
ZGVyVGlja1NpemUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLmgKaW5kZXggNGIxMDFiMzhiNWM4ZTE0ZDBhNjc3ZjUwNzQzZDFkNjdiNDUxMzE0
Zi4uY2I1ZThkOGRhOGMyOWJhZTMwYTVhYzBiNWEyZGI2ZmE4ZDdhZTc4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTExNSwxMCArMTE1LDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwYWludFNlYXJjaEZpZWxkRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVy
T2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogCiAj
aWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKLSAgICBDb2xvciBjaGVja2JveFJh
ZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPik7Ci0gICAgQ29sb3IgY2hlY2tib3hSYWRpb0JhY2tncm91
bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6
OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPik7CisgICAgQ29sb3IgY2hl
Y2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvQmFj
a2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0
YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAgICAgUmVmUHRy
PEdyYWRpZW50PiBjaGVja2JveFJhZGlvQmFja2dyb3VuZEdyYWRpZW50KGNvbnN0IEZsb2F0UmVj
dCYsIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+KTsKLSAgICBDb2xvciBjaGVja2Jv
eFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPik7CisgICAgQ29sb3IgY2hlY2tib3hSYWRpb0lu
ZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KTsKIAogICAgIGJvb2wgcGFpbnRDaGVja2JveChjb25zdCBSZW5k
ZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
ICAgICBib29sIHBhaW50UmFkaW8oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CkBAIC0xNTYsMTIgKzE1NiwxMiBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBzdXBwb3J0c0JveFNoYWRvdyhjb25zdCBSZW5kZXJTdHlsZSYpIGNv
bnN0IGZpbmFsOwogCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAg
ICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZv
cm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZp
bmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAogI2lmIEVO
QUJMRShBUFBfSElHSExJR0hUUykKLSAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3Ig
cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTE5OCw3
ICsxOTgsNyBAQCBwcml2YXRlOgogCiAgICAgRmxvYXRSZWN0IGFkZFJvdW5kZWRCb3JkZXJDbGlw
KGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0
Jik7CiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwog
CiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogICAgIFJldGFpblB0cjxDSUNvbnRleHQ+IG1fY2lD
b250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4
IDY5ZWU0OTYzMzYwZThjNjA2NWMxZmY3MTFmMWZiMTY2ZGUzYjRmNWUuLjMyMTdkOTFlZjk4NDVj
NzMzMjQ2NjhlMzhlMzBmOGQ3MWQyODkxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW0KQEAgLTEyMzcsMTIgKzEyMzcsMTIgQEAgdm9pZCBSZW5kZXJUaGVt
ZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFIKICAgICBpY29uLT5wYWludChwYWludEluZm8uY29udGV4dCgpLCB0aHVtYm5haWxS
ZWN0KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBDb2xv
cjo6dHJhbnNwYXJlbnRCbGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICByZXR1cm4gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CiB9CkBAIC0xMjYyLDEzICsx
MjYyLDEzIEBAIENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpCiAg
ICAgcmV0dXJuICpjYWNoZWRGb2N1c1JpbmdDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzeXN0ZW1G
b2N1c1JpbmdDb2xvcigpOwogfQogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3Ig
UmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFsIHZhbHVlIGZyb20gVUlLaXQuCiAgICAgcmV0dXJu
IFNSR0JBPHVpbnQ4X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OwpAQCAtMTQyMyw5ICsxNDIzLDkgQEAg
dm9pZCBSZW5kZXJUaGVtZUlPUzo6c2V0Rm9jdXNSaW5nQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9y
KQogICAgIGNhY2hlZEZvY3VzUmluZ0NvbG9yKCkgPSBjb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9
IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwor
ICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAKICAgICAvLyBUaGUgc3lzdGVtIGNvbG9yIGNh
Y2hlIGJlbG93IGNhbid0IGhhbmRsZSB2aXNpdGVkIGxpbmtzLiBUaGUgb25seSBjb2xvciB2YWx1
ZQogICAgIC8vIHRoYXQgY2FyZXMgYWJvdXQgdmlzaXRlZCBsaW5rcyBpcyBDU1NWYWx1ZVdlYmtp
dExpbmssIHNvIGhhbmRsZSBpdCBoZXJlIGJ5CkBAIC0xNDM3LDggKzE0MzcsOCBAQCBDb2xvciBS
ZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6TwogCiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMp
OwogICAgIHJldHVybiBjYWNoZS5zeXN0ZW1TdHlsZUNvbG9ycy5lbnN1cmUoY3NzVmFsdWVJRCwg
W3RoaXMsIGNzc1ZhbHVlSUQsIG9wdGlvbnNdICgpIC0+IENvbG9yIHsKLSAgICAgICAgY29uc3Qg
Ym9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwotICAgICAgICBjb25zdCBib29sIHVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgICAgIGNvbnN0IGJvb2wgdXNl
RGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7CisgICAgICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbCk7CiAgICAgICAgIGlmICghZ2xvYmFsQ1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBhdXRvIGl0ID0gZ2xvYmFsQ1NT
VmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZmluZChDU1NWYWx1ZUtleSB7IGNzc1ZhbHVlSUQsIHVz
ZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCB9KTsKICAgICAg
ICAgICAgIGlmIChpdCA9PSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5lbmQoKSkK
QEAgLTIwNDcsNyArMjA0Nyw3IEBAIGNvbnN0ZXhwciBhdXRvIG5hdGl2ZUNvbnRyb2xCb3JkZXJX
aWR0aCA9IDEuMGY7CiBjb25zdGV4cHIgYXV0byBjaGVja2JveFJhZGlvQm9yZGVyV2lkdGggPSAx
LjVmOwogY29uc3RleHByIGF1dG8gY2hlY2tib3hSYWRpb0JvcmRlckRpc2FibGVkT3BhY2l0eSA9
IDAuM2Y7CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3Io
T3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitDb2xvciBSZW5kZXJUaGVtZUlPUzo6
Y2hlY2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+
IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykK
IHsKICAgICBhdXRvIGRlZmF1bHRCb3JkZXJDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBw
bGVTeXN0ZW1TZWNvbmRhcnlMYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpOwogCkBAIC0yMDYwLDcg
KzIwNjAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JvcmRlckNvbG9y
KE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+CiAgICAgcmV0dXJuIGRlZmF1bHRCb3Jk
ZXJDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNrZ3Jv
dW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVz
OjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29s
b3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNrZ3JvdW5k
Q29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpT
dGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucykKIHsKICAgICBib29sIGlzRW1wdHkgPSAhc3RhdGVzLmNvbnRhaW5zQW55KHsgQ29udHJv
bFN0YXRlczo6U3RhdGVzOjpDaGVja2VkLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkluZGV0ZXJt
aW5hdGUgfSk7CiAgICAgYm9vbCBpc0VuYWJsZWQgPSBzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0
YXRlczo6U3RhdGVzOjpFbmFibGVkKTsKQEAgLTIxMDAsMTIgKzIxMDAsMTIgQEAgUmVmUHRyPEdy
YWRpZW50PiBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRHcmFkaWVudChj
b25zdCBGbG9hdFJlY3QKICAgICByZXR1cm4gZ3JhZGllbnQ7CiB9CiAKLUNvbG9yIFJlbmRlclRo
ZW1lSU9TOjpjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0
ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVD
b2xvck9wdGlvbnMpCitDb2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRv
ckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKIHsKICAgICBpZiAoIXN0YXRl
cy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkVuYWJsZWQpKQogICAgICAgICByZXR1
cm4gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWwsIHN0eWxlQ29s
b3JPcHRpb25zKTsKIAotICAgIENvbG9yIGVuYWJsZWRJbmRpY2F0b3JDb2xvciA9IHN5c3RlbUNv
bG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgQ29sb3IgZW5hYmxlZEluZGlj
YXRvckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNv
bG9yT3B0aW9ucyB8IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAg
aWYgKHN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0ZXM6OlByZXNzZWQpKQogICAg
ICAgICByZXR1cm4gZW5hYmxlZEluZGljYXRvckNvbG9yLmNvbG9yV2l0aEFscGhhTXVsdGlwbGll
ZEJ5KHByZXNzZWRTdGF0ZU9wYWNpdHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5oCmluZGV4IDFlNjE2ODc2MGYxMTc0Nzc2MWE4YTNjM2U1YjJlOGQ2ZDJkMWI4
OGQuLmM0MWY3NDkwMDkyNWVmYTE2NWVlZWU4OWQ2OGI4ZTY2NjEwNTM1NTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC01MywyMyArNTMsMjMgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBpc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBz
dXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLQotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmlu
YWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciB0cmFu
c2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0g
ICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybVRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworCisgICAgQ29sb3IgcGxhdGZv
cm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7Cisg
ICAgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwg
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZp
bmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybVRleHRTZWFy
Y2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdo
bGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QgZmluYWw7CiAjZW5kaWYKLSAgICBDb2xvciBwbGF0Zm9ybURlZmF1bHRC
dXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICAgICBTY3JvbGxiYXJDb250cm9sU2l6
ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJu
IFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFsbDsgfQogCkBAIC0xNTksNyArMTU5LDcgQEAgcHJp
dmF0ZToKIHByaXZhdGU6CiAgICAgU3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IEZp
bGVMaXN0KiwgY29uc3QgRm9udENhc2NhZGUmLCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxl
c0FsbG93ZWQpIGNvbnN0IGZpbmFsOwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKIAogICAgIC8vIEdldCB0aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0aGUg
Zm9udC4gVXNlZCBieSBzb21lIG9mIHRoZSBjb250cm9scyAobGlrZSBidXR0b25zKS4KICAgICBO
U0NvbnRyb2xTaXplIGNvbnRyb2xTaXplRm9yRm9udChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGExNGZl
Y2NjZWJiZjdjMTVhYWI5OWFkNDAyYWFkNzIyNjg1MjBjNjAuLmQ0MzdmNDgyNjY1YzMzM2NhMjM2
ZTBiMzc1ODI2YTNmMmFhNjRjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KQEAgLTI4NCwxNiArMjg0LDE2IEBAIE5TVmlldyAqUmVuZGVyVGhlbWVNYWM6
OmRvY3VtZW50Vmlld0Zvcihjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiAgICAgcmV0dXJu
IFRoZW1lTWFjOjplbnN1cmVkVmlldygmby52aWV3KCkuZnJhbWVWaWV3KCksIHN0YXRlcyk7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJv
bU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUo
T1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxB
cHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBl
YXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBoYXNp
emVkU2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShvcHRpb25zKTsKQEAgLTMwMSw5ICszMDEsOSBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwog
I2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjp0cmFuc2Zvcm1TZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBl
YXJhbmNlKCkpIHsKICAgICAgICAgLy8gVXNlIGFuIGFscGhhIHZhbHVlIHRoYXQgaXMgc2ltaWxh
ciB0byByZXN1bHRzIGZyb20gYmxlbmRXaXRoV2hpdGUoKSBvbiBsaWdodCBjb2xvcnMuCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkYXJrQXBwZWFyYW5jZUFscGhhID0gMC44OwpAQCAtMzEz
LDI0ICszMTMsMjQgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGkKICAgICByZXR1cm4gUmVuZGVy
VGhlbWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb2xvciwgb3B0aW9ucyk7
CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVNYWM6OnN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK2Jvb2wg
UmVuZGVyVGhlbWVNYWM6OnN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9w
dGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGxvY2FsQXBwZWFyYW5jZS51
c2luZ0RhcmtBcHBlYXJhbmNlKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFw
cGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBw
ZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CiAgICAgaWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAg
ICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9yXSk7
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAobG9jYWxBcHBlYXJh
bmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29s
b3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1cm4g
eyB9OwpAQCAtMzQwLDEwICszNDAsMTAgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ28KICNlbmRp
ZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xv
cihbTlNDb2xvciBzZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kQ29sb3JdKTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzUzLDEwICszNTMsMTAgQEAgQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3QKICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NV
UFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uo
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkp
OworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKICNlbmRpZgpAQCAtMzY0LDE2ICszNjQsMTYg
QEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDwKIAogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFw
cGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05T
Q29sb3IgYWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENvbG9yXSk7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAj
aWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1
bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
b3B0aW9ucyk7CkBAIC0zODEsMzIgKzM4MSwzMiBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxh
dGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PAog
I2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGlmICh1c2VzVGVzdE1vZGVGb2N1c1JpbmdD
b2xvcigpKQogICAgICAgICByZXR1cm4gb2xkQXF1YUZvY3VzUmluZ0NvbG9yKCk7Ci0gICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgLy8gVGhlIGNvbG9yIGlz
IGV4cGVjdGVkIHRvIGJlIG9wYXF1ZSwgc2luY2UgQ29yZUdyYXBoaWNzIHdpbGwgYXBwbHkgb3Bh
Y2l0eSB3aGVuIGRyYXdpbmcgKGJlY2F1c2Ugb3BhY2l0eSBpcyBub3JtYWxseSBhbmltYXRlZCku
CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Iga2V5Ym9hcmRGb2N1c0luZGlj
YXRvckNvbG9yXSkub3BhcXVlQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtVGV4dFNl
YXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBmaW5kSGlnaGxpZ2h0Q29sb3JdKTsK
IH0KIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGV4cG9z
ZSB0aGUgcmVhbCB2YWx1ZSBmcm9tIEFwcEtpdC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4g
eyAyNTUsIDIzOCwgMTkwIH07CiB9CiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybURlZmF1bHRC
dXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsK
KyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJl
dHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbFRl
eHRDb2xvcl0pOwogfQogCkBAIC00NDksMTEgKzQ0OSwxMSBAQCBzdGF0aWMgU1JHQkE8dWludDhf
dD4gbWVudUJhY2tncm91bmRDb2xvcigpCiAgICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0Ns
YW1waW5nPFNSR0JBPHVpbnQ4X3Q+PihwaXhlbFswXSwgcGl4ZWxbMV0sIHBpeGVsWzJdLCBwaXhl
bFszXSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlE
IGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJ
RCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNv
bnN0IGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7Ci0gICAgY29uc3QgYm9vbCB1c2VEYXJr
QXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpOwotICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBjb25zdCBi
b29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJh
bmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpOworICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0
eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAKICAgICBhdXRvJiBjYWNoZSA9IGNv
bG9yQ2FjaGUob3B0aW9ucyk7CiAKQEAgLTE1NzEsNyArMTU3MSw3IEBAIHZvaWQgUmVuZGVyVGhl
bWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVt
ZW50KiBlKSBjCiAgICAgLy8gU2V0IHRoZSBmb3JlZ3JvdW5kIGNvbG9yIHRvIGJsYWNrIG9yIGdy
YXkgd2hlbiB3ZSBoYXZlIHRoZSBhcXVhIGxvb2suCiAgICAgQ29sb3IgYyA9IENvbG9yOjpkYXJr
R3JheTsKICAgICBpZiAoZSkgewotICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucyA9IGUtPmRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKTsKKyAg
ICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zID0gZS0+ZG9jdW1lbnQo
KS5zdHlsZUNvbG9yT3B0aW9ucygmc3R5bGUpOwogICAgICAgICBjID0gIWUtPmlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpID8gc3lzdGVtQ29sb3IoQ1NTVmFsdWVCdXR0b250ZXh0LCBvcHRpb25zKSA6
IHN5c3RlbUNvbG9yKENTU1ZhbHVlR3JheXRleHQsIG9wdGlvbnMpOwogICAgIH0KICAgICBzdHls
ZS5zZXRDb2xvcihjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4u
Y3BwCmluZGV4IDg1ZGFhZDg1NzdiZDhlNzZjN2FkOTc4ZTJjMmRkMGM4MDRlMWNiOGMuLjBkNDVh
ZDVlOTIzMGZkMjU5NzM1ZmM2MWRlODVkMDhlZTMyYWNhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAtMjg1LDI1ICsyODUsMjUgQEAgYm9vbCBS
ZW5kZXJUaGVtZVdpbjo6c3VwcG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0CiAg
ICAgcmV0dXJuIGhhdmVUaGVtZTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewog
ICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3IoQ09MT1JfSElHSExJR0hUKTsKICAgICBy
ZXR1cm4gU1JHQkE8dWludDhfdD4geyBHZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29sb3Ip
LCBHZXRCVmFsdWUoY29sb3IpIH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgLy8gVGhpcyBjb2xvciBtYXRjaGVzIEZpcmVmb3guCiAgICAgcmV0dXJuIFNSR0JB
PHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3NiB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9ISUdITElHSFRU
RVhUKTsKICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyBHZXRSVmFsdWUoY29sb3IpLCBHZXRH
VmFsdWUoY29sb3IpLCBHZXRCVmFsdWUoY29sb3IpIH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
V2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVXaW46
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0KQEAgLTEwMDIsNyArMTAwMiw3
IEBAIHN0YXRpYyBpbnQgY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChDU1NWYWx1ZUlEIGNzc1Zh
bHVlSWQpCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IoQ1NT
VmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNz
c1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAppbmRleCBjODFiNTBh
MzJhMjkzZWI2N2IwYjI2MjcwM2UxMGU1MDNlODZkODI1Li42YjAwY2YwNzg0YzJmMDdkYWVjNmMz
OGY2MmNmZDQ0NmJkMmM3ZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uaApAQCAtNTQsMTIgKzU0LDEyIEBAIHB1YmxpYzoKICAgICAvLyBBIG1ldGhvZCBhc2tp
bmcgaWYgdGhlIHRoZW1lJ3MgY29udHJvbHMgYWN0dWFsbHkgY2FyZSBhYm91dCByZWRyYXdpbmcg
d2hlbiBob3ZlcmVkLgogICAgIGJvb2wgc3VwcG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBzeXN0ZW1Db2xvcihD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsK
IAogICAgIGJvb2wgcGFpbnRDaGVja2JveChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IFBh
aW50SW5mbyYgaSwgY29uc3QgRmxvYXRSZWN0JiByKSBvdmVycmlkZQogICAgIHsgcmV0dXJuIHBh
aW50QnV0dG9uKG8sIGksIEludFJlY3QocikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCmluZGV4IGFmMDQxOWNmNmM0OTI1ZDFjOTQ0NzI3M2E3MTA1ZDFjNGI5
ODVhMTcuLmQ2Y2M5YjcxYThhY2IzMTlhZTQ1YjFjMGU3ZTA0MWI0ZWJhZTY4NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50Lmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKaW5kZXgg
YzljZmM3ZmY1ZGIxMDBhNDFlZTYxMTQzODg2OWQ0YTFjN2JkZWNlZi4uMDQ3ZjAyYTE3OWZhNTYx
M2JkODNhNmY1Nzk3OWJmNmIxNDA0MjZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TdHlsZWRNYXJrZWRUZXh0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgU3R5bGVkTWFy
a2VkVGV4dCByZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtlZFRleHQmIG1hcmtl
ZFRleHQsCiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICBj
YXNlIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodDogewotICAgICAgICBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFw
cGVhcmFuY2UgfTsKICAgICAgICAgc3R5bGUuYmFja2dyb3VuZENvbG9yID0gcmVuZGVyZXIudGhl
bWUoKS5hcHBIaWdobGlnaHRDb2xvcihzdHlsZUNvbG9yT3B0aW9ucyk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KQEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIFN0eWxlZE1hcmtlZFRleHQgcmVzb2x2
ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LAogICAgIH0K
ICAgICBjYXNlIE1hcmtlZFRleHQ6OlRleHRNYXRjaDogewogICAgICAgICAvLyBUZXh0IG1hdGNo
ZXMgYWx3YXlzIHVzZSB0aGUgbGlnaHQgc3lzdGVtIGFwcGVhcmFuY2UuCi0gICAgICAgIE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yT3B0aW9uczo6
VXNlU3lzdGVtQXBwZWFyYW5jZSB9OwogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgc3R5bGUu
dGV4dFN0eWxlcy5maWxsQ29sb3IgPSByZW5kZXJlci50aGVtZSgpLnN5c3RlbUNvbG9yKENTU1Zh
bHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcAppbmRleCBiZmYyMTdlOTQwMTJl
MjFkNmMxMmMwNGU4OGI4NzA5Y2Y5ZTU3N2RiLi5mYzY4ZjQzZWZkZTM2YzRjZjhiZTE1MTFlZGU4
NjRmZDBmYTRhN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBh
aW50U3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHls
ZS5jcHAKQEAgLTk4LDkgKzk4LDkgQEAgVGV4dFBhaW50U3R5bGUgY29tcHV0ZVRleHRQYWludFN0
eWxlKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgUmVuZGVyU3R5bGUmIGxpbmUKICAgICBpZiAo
bGluZVN0eWxlLmluc2lkZURlZmF1bHRCdXR0b24oKSkgewogICAgICAgICBQYWdlKiBwYWdlID0g
ZnJhbWUucGFnZSgpOwogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS5pc0FjdGl2ZSgpKSB7Ci0gICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9uczsKKyAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9uczsKICAgICAgICAgICAgIGlmIChwYWdlLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkpCi0gICAg
ICAgICAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBw
ZWFyYW5jZSk7CisgICAgICAgICAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwogICAgICAgICAgICAgcGFpbnRTdHlsZS5maWxsQ29sb3Ig
PSBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZGVmYXVsdEJ1dHRvblRleHRDb2xvcihvcHRpb25z
KTsKICAgICAgICAgICAgIHJldHVybiBwYWludFN0eWxlOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNw
cAppbmRleCA0MzBhMzQyZjYzYjkzODQ0ZjQxYjc1N2IwZGZhZDlhYWJiMjdjY2M0Li45Y2U1MTZi
ODY3M2YzNzc0NzQ0MTFhZjJiMDg0MzBiYWU1ZGQxNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJC
dXR0b24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0NmRiZjViYjMz
ZDVlODVlMTUyMWFiZTc4OGI5MTdmZTI4MTNjN2E5Li40M2M0OWM5NTBlM2I5OTVjNjViMTUwMmM1
NWIyMzY2ODIxNGExMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC02
OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpAQCAt
NDYzMywxNCArNDYzNCwxNCBAQCB2b2lkIEludGVybmFsczo6c2V0UGFnZU11dGVkKFN0cmluZ1Zp
ZXcgc3RhdGVzU3RyaW5nKQogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvciAoU3Ry
aW5nVmlldyBzdGF0ZVN0cmluZyA6IHN0YXRlc1N0cmluZy5zcGxpdCgnLCcpKSB7CiAgICAgICAg
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdGF0ZVN0cmluZywgImF1ZGlvIikp
Ci0gICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9J
c011dGVkKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKTsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KHN0YXRlU3RyaW5nLCAiY2FwdHVyZWRldmljZXMiKSkKICAgICAgICAgICAgIHN0YXRlLmFkZChN
ZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJzY3JlZW5jYXB0dXJl
IikpCi0gICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2Ny
ZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAgICAgfQogCiAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQpAQCAtNDY1NSw0MyArNDY1Niw0MyBAQCBTdHJpbmcg
SW50ZXJuYWxzOjpwYWdlTWVkaWFTdGF0ZSgpCiAKICAgICBhdXRvIHN0YXRlID0gZG9jdW1lbnQt
PnBhZ2UoKS0+bWVkaWFTdGF0ZSgpOwogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOwotICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdB
dWRpbykpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ0F1ZGlv
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdWaWRlbykpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklz
UGxheWluZ1ZpZGVvLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxE
ZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNl
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykpCisgICAgaWYgKHN0YXRlLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZykpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIlJlcXVpcmVzUGxheWJhY2tUYXJnZXRN
b25pdG9yaW5nLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0
b1BsYXlDYW5kaWRhdGUpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJFeHRlcm5hbERldmljZUF1
dG9QbGF5Q2FuZGlkYXRlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKICAgICAgICAgc3RyaW5n
LmFwcGVuZCgiRGlkUGxheVRvRW5kLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKSkKKyAgICBpZiAo
c3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVu
dFBsYXlpbmcpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1NvdXJjZUVsZW1lbnRQbGF5aW5n
LCIpOwogCi0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCkpCiAg
ICAgICAgIHN0cmluZy5hcHBlbmQoIklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIik7Ci0gICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUHJldmlv
dXNUcmFja0NvbnRyb2xFbmFibGVkKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKSkKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsIik7CiAKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUxpc3RlbmVyKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzUGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHlMaXN0ZW5lciwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkKKyAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpCiAgICAgICAg
IHN0cmluZy5hcHBlbmQoIkhhc0F1ZGlvT3JWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKSkK
KyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRp
b0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNNdXRlZEF1ZGlvQ2Fw
dHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVE
ZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KSkKKyAgICBpZiAoc3RhdGUuY29u
dGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1l
ZGlhRWxlbWVudCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1VzZXJJbnRlcmFjdGVkV2l0
aE1lZGlhRWxlbWVudCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UpKQorICAgIGlmIChz
dGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxh
eUNhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlD
YXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWREaXNwbGF5Q2Fw
dHVyZURldmljZSwiKTsKIAogICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQpAQCAtNjEyNCwxMSAr
NjEyNSwxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0
IFN0cmluZyYgY3NzVmFsdWUsIGJvb2wgdXNlRGFya01vZAogICAgIENTU1ZhbHVlSUQgaWQgPSBj
c3NWYWx1ZUtleXdvcmRJRChjc3NWYWx1ZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoU3R5bGVDb2xv
cjo6aXNTeXN0ZW1Db2xvcktleXdvcmQoaWQpKTsKIAotICAgIE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPiBvcHRpb25zOworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9uczsKICAgICBpZiAodXNlRGFya01vZGVBcHBlYXJhbmNlKQotICAgICAgICBvcHRpb25zLmFk
ZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlv
bnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVz
ZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgICAgIG9w
dGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZl
bCk7CiAgICAgCiAgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoUmVuZGVyVGhlbWU6OnNp
bmdsZXRvbigpLnN5c3RlbUNvbG9yKGlkLCBvcHRpb25zKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXgg
YWY3Njk3NjIzY2M5Y2Y0NDZjZThkY2UzY2RkNGMyYmEyNzQyNzc1My4uYThjM2UxOGU0N2FlY2Fk
MGEwMjJhMDg0YzQ5YTIxZjZjNzE0YzM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNTUsNiArNTUsNyBA
QAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSAiU3R5bGVTY29wZS5oIgorI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAjaW5j
bHVkZSAiWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDE1
Mzk5MjhiYWY0YzA1NzFkMzU1Mjk2OGExZmJjZjFmMmM3NGJiZGYuLjhiMDNjODFkMDc1YmI5YzMz
MzQ0NTc2NjMzNjNjMTIzM2UyYWMzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTUzLDYgKzUz
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogCiAjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKICNpbmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5UHJveHkuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCA3NmYxMjkzZTQ4NDhlNGVmNGUyOTA0ZTU4NTc1MWM0Y2Y2ZTRjOGE5Li45MDIz
NmFjYjFmMDQyNzdhNzgyZjU1M2Y5NmUzNmFhNGFkMWI2ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0x
NjE1LDcgKzE2MTUsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZENTUFZpb2xh
dGlvblJlcG9ydChVUkwmJiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0YQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNlbmRDU1BWaW9sYXRpb25SZXBvcnQgeyBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgV1RGTW92ZShyZXBvcnRVUkwpLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92
ZShyZXBvcnQpIH0gfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0
KQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50IHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIFdURk1vdmUoZXZlbnRJbml0
KSB9LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IGIyZDFkY2I3Yzc2
ODE1NzlhMWNmNmZmYmQ0MjRkNDFmMTA5ZDA1ODIuLmQxNzc2ZTgxZjljNzZmODI0ZDlmNGEzMjY0
MjNlMTkwZGY4OTVhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50CiAgICAgdm9pZCBhZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBmaW5hbDsKICAgICB2b2lkIHNlbmRDU1BWaW9s
YXRpb25SZXBvcnQoVVJMJiYsIFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4mJikgZmluYWw7Ci0gICAg
dm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQmJikgZmluYWw7CiAKICAgICB2b2lkIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZO
ZWVkZWQoY29uc3QgTmV0d29ya0NhY2hlOjpDYWNoZTo6UmV0cmlldmVJbmZvJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI3ODFkMTBlOWM2OGVlY2Ni
NTZiNzY4YjI0NTE4ZDlhYzU0MTdiODkuLjkxNmNhMGUzMTk0MjZkMTY2YWRkYzM2NDlhNjQyNWU2
MmI0ZTA4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAt
NzI2LDYgKzcyNiw5IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2Vi
Q29yZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUnOiBbJzxXZWJD
b3JlL0xlZ2FjeUNETVNlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkxvY2tCYWNrRm9y
d2FyZExpc3QnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSc6IFsn
PFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhQ2FwdHVyZUtpbmQnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAg
ICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlJzogWyc8V2ViQ29yZS9NZWRp
YVByb2R1Y2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29yZS9E
b2N1bWVudExvYWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9u
SW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKQEAg
LTc0OCw2ICs3NTEsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSc6IFsnPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJ
bml0JzogWyc8V2ViQ29yZS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpTZWxlY3Rpb25EaXJlY3Rpb24nOiBbJzxXZWJDb3JlL1Zpc2libGVTZWxl
Y3Rpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5JzogWyciRWRp
dG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYWQ0MTFi
ODA2Mjk4YTRiODVlODc4NWJiZjQ3NWZmMmQ5M2NmMTdlZi4uY2JjYTkwOGUzODM2MGQxZDljOTk0
NDJlMDkzZmEwODkxNTFlOTZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTI4NCw3ICsyODQsNyBAQCBzdGQ6Om9wdGlv
bmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYVZv
bHVtZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncz4gbXV0ZWRTdGF0ZUZsYWdz
OworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cz4gbXV0ZWRTdGF0ZUZsYWdzOwogICAgIGRlY29kZXIgPj4gbXV0ZWRTdGF0ZUZsYWdzOwogICAg
IGlmICghbXV0ZWRTdGF0ZUZsYWdzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IDRhMDVkNjBiMmFjZTEyMjQwMTM0OGJiYTlhYTFkYTE3NDZiODkyNDAuLmViMWVlMDk1OWE1MTNk
YjgyNTdkNjRhZGRjZWVhNTA5YjdhM2U4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOSw3ICsxMTksNyBAQCBzdHJ1Y3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0Owog
ICAgIAogICAgIGZsb2F0IG1lZGlhVm9sdW1lOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncyBtdXRlZDsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZUZsYWdzIG11dGVkOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAg
ICBib29sIG1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMmRiMGY1NjljYjIyNTA1ODllN2Vj
MTYwNThkYWZiNWE2YTRlN2JmMC4uNTQ5MTAyZWI1ZmVlYWIwMDliZjk0Nzc1MzJkNGY5ZDUwMWVh
OGU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE1
NSw3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0YXRlRGlkQ2hh
bmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZs
YWdzPikgeyB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggNzAxZjFhMjkwODhkODQyMDE2MGM3M2UwY2Q5ZWZk
MzJkY2M2ZjIzZC4uMWZiMmYyN2FkMmI5MjFhODhlYWNhZDhjNzk2ODRiNjg1MjFlNjdlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yODE2LDE0ICsyODE2
LDE0IEBAIHZvaWQgV0tQYWdlU2V0TWVkaWFWb2x1bWUoV0tQYWdlUmVmIHBhZ2VSZWYsIGZsb2F0
IHZvbHVtZSkKIHZvaWQgV0tQYWdlU2V0TXV0ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLTWVkaWFN
dXRlZFN0YXRlIG11dGVkU3RhdGUpCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CisgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CiAKICAgICBpZiAo
bXV0ZWRTdGF0ZSAmIGtXS01lZGlhQXVkaW9NdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAg
ICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lz
TXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYga1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVk
KQogICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5k
VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgaWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYVNjcmVl
bkNhcHR1cmVNdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0
ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011
dGVkKTsKIAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0TXV0ZWQoY29yZVN0YXRlKTsKIH0KQEAg
LTI5NzEsMjQgKzI5NzEsMjQgQEAgYm9vbCBXS1BhZ2VJc1BsYXlpbmdBdWRpbyhXS1BhZ2VSZWYg
cGFnZSkKIAogV0tNZWRpYVN0YXRlIFdLUGFnZUdldE1lZGlhU3RhdGUoV0tQYWdlUmVmIHBhZ2Up
CiB7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGNvcmVTdGF0
ZSA9IHRvSW1wbChwYWdlKS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7CisgICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjb3JlU3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9y
dGVkTWVkaWFTdGF0ZSgpOwogICAgIFdLTWVkaWFTdGF0ZSBzdGF0ZSA9IGtXS01lZGlhSXNOb3RQ
bGF5aW5nOwogCi0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCiAgICAgICAgIHN0YXRlIHw9
IGtXS01lZGlhSXNQbGF5aW5nQXVkaW87Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQorICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCiAg
ICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSXNQbGF5aW5nVmlkZW87Ci0gICAgaWYgKGNvcmVTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0g
a1dLTWVkaWFIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dL
TWVkaWFIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2
aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlh
SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQor
ICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0
ZWRWaWRlb0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQorICAg
IGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0
aXZlRGlzcGxheUNhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCisg
ICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNN
dXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc011
dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAKICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwMDQ0YTgxYTI3
YTliYTUwYzk3OGQ2NzI1ZDA2OTNkYTFmYjEwNzljLi41NzJlYzk2ZGNhN2M3NWY0YjE3YjQ4MmUy
N2FhZTUyZDI0NDcxYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KQEAgLTEwMzcsOSArMTAzNyw5IEBAIC0gKHZvaWQpcmVxdWVzdE1lZGlh
UGxheWJhY2tTdGF0ZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tNZWRpYVBsYXli
YWNrCiAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKWNhbWVyYUNhcHR1cmVTdGF0ZQogewogICAgIGF1
dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJl
RGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1
cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CiB9CkBAIC0xMDQ3LDkgKzEwNDcsOSBAQCAtIChX
S01lZGlhQ2FwdHVyZVN0YXRlKWNhbWVyYUNhcHR1cmVTdGF0ZQogLSAoV0tNZWRpYUNhcHR1cmVT
dGF0ZSltaWNyb3Bob25lQ2FwdHVyZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5y
ZXBvcnRlZE1lZGlhU3RhdGUoKTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Ci0g
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0
ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1
cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0
YXRlTm9uZTsKIH0KQEAgLTEwNjEsMTYgKzEwNjEsMTYgQEAgLSAodm9pZClzZXRNaWNyb3Bob25l
Q2FwdHVyZVN0YXRlOihXS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVy
OigKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH07CiAKICAgICBpZiAoc3RhdGUg
PT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpIHsKLSAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNh
cHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIFtj
b21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAg
ICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
ICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIG11dGVkU3RhdGUgPSBf
cGFnZS0+bXV0ZWRTdGF0ZUZsYWdzKCk7CiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJl
U3RhdGVBY3RpdmUpCi0gICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0
YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJl
SXNNdXRlZCk7CiAgICAgZWxzZSBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVk
KQotICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIF9w
YWdlLT5zZXRNdXRlZChtdXRlZFN0YXRlLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAg
ICAgfSk7CkBAIC0xMDgzLDE2ICsxMDgzLDE2IEBAIC0gKHZvaWQpc2V0Q2FtZXJhQ2FwdHVyZVN0
YXRlOihXS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkCiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gW10geyB9OwogCiAgICAgaWYgKHN0YXRlID09IFdL
TWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7Ci0gICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAg
IF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1
cmVLaW5kOjpWaWRlbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKV0gewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2Ut
Pm11dGVkU3RhdGVGbGFncygpOwogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlKQotICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5y
ZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0
ZWQpOwogICAgIGVsc2UgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKLSAg
ICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBfcGFnZS0+
c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNv
bXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0p
OwpAQCAtMjI3MSw3ICsyMjcxLDcgQEAgLSAodm9pZClfY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlv
bnMKIC0gKHZvaWQpX3N0b3BNZWRpYUNhcHR1cmUKIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7
Ci0gICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyk7CisgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQog
CiAtICh2b2lkKV9zdG9wQWxsTWVkaWFQbGF5YmFjawpAQCAtMzU5NCwxNCArMzU5NCwxNCBAQCAt
IChCT09MKV9tZWRpYUNhcHR1cmVFbmFibGVkCiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01l
ZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlCiB7CiAgICAgVEhST1dfSUZfU1VTUEVOREVEOwotICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CisgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CiAKICAgICBp
ZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhQXVkaW9NdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFk
ZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAg
ICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYgX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011
dGVkKQogICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlv
QW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYVNj
cmVlbkNhcHR1cmVNdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGNvcmVT
dGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJ
c011dGVkKTsKIAogICAgIF9wYWdlLT5zZXRNdXRlZChjb3JlU3RhdGUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBm
MDk0ZjUzODkzOTQ0OTU1Zjc5ODM5YzI1ZDlkZWU5MjVkZjQ3MDBlLi40ZTVkNzMyNTcxNDRiNTFk
ZDQyYTRlZmFjYzcwZWVmY2NlODUzZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtNDg2OCw3ICs0ODY4LDcgQEAgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2NvcnNfYWxsb3dsaXN0KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIGNvbnN0IGdjaGFyKiBjb24KICAgICBnZXRQYWdlKHdlYlZpZXcpLnNldENPUlNEaXNhYmxp
bmdQYXR0ZXJucyhXVEZNb3ZlKGFsbG93TGlzdFZlY3RvcikpOwogfQogCi1zdGF0aWMgdm9pZCB3
ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdl
YktpdE1lZGlhQ2FwdHVyZVN0YXRlIGNhcHR1cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2Fw
dHVyZSA9IGZhbHNlKQorc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2Fw
dHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZCBjYXB0dXJlS2luZCwgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUgY2FwdHVyZVN0
YXRlLCBib29sIGlzRnJvbURpc3BsYXlDYXB0dXJlID0gZmFsc2UpCiB7CiAgICAgYXV0byYgcGFn
ZSA9IGdldFBhZ2Uod2ViVmlldyk7CiAgICAgYXV0byBtdXRlZFN0YXRlID0gcGFnZS5tdXRlZFN0
YXRlRmxhZ3MoKTsKQEAgLTQ4NzcsMTMgKzQ4NzcsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0V2Vi
Vmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3Jl
OjoKICAgICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkU6CiAgICAgICAgIHBh
Z2Uuc3RvcE1lZGlhQ2FwdHVyZShjYXB0dXJlS2luZCwgW3dlYlZpZXcsIGNhcHR1cmVLaW5kXSB7
CiAgICAgICAgICAgICBzd2l0Y2ggKGNhcHR1cmVLaW5kKSB7Ci0gICAgICAgICAgICBjYXNlIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAg
ICAgICAgICAgICAgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdlYlZpZXcp
LCBzT2JqUHJvcGVydGllc1tQUk9QX01JQ1JPUEhPTkVfQ0FQVFVSRV9TVEFURV0pOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAgICAgIGdfb2Jq
ZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJP
UF9DQU1FUkFfQ0FQVFVSRV9TVEFURV0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbzoKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC00ODkxLDE2ICs0
ODkxLDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUo
V2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgV0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVfQUNUSVZFOgogICAgICAgICBzd2l0Y2ggKGNh
cHR1cmVLaW5kKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZDo6QXVkaW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9tRGlzcGxh
eUNhcHR1cmUpCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZDo6QXVkaW9WaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00OTA4LDE2ICs0OTA4LDE2
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VC
S0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTVVURUQ6CiAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtp
bmQpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZDo6QXVkaW86CiAgICAgICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVy
ZUtpbmQ6OlZpZGVvOgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgICAgIGlmIChpc0Zyb21EaXNwbGF5Q2FwdHVyZSkK
ICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVv
OgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ5NjUsNyArNDk2NSw3IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF9jYW1lcmFfY2FwdHVyZV9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXRNZWRpCiAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19nZXRfY2FtZXJhX2NhcHR1cmVfc3Rh
dGUod2ViVmlldykgPT0gV0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3
LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUp
OworICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSk7CiB9CiAKIC8q
KgpAQCAtNTAwNyw3ICs1MDA3LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X21pY3JvcGhv
bmVfY2FwdHVyZV9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXQKICAgICBpZiAo
d2Via2l0X3dlYl92aWV3X2dldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUod2ViVmlldykgPT0g
V0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
d2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgc3RhdGUpOworICAgIHdlYmtpdFdl
YlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLCBzdGF0ZSk7CiB9CiAKIC8qKgpAQCAtNTA0OSw1ICs1
MDQ5LDUgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2Rpc3BsYXlfY2FwdHVyZV9zdGF0ZShX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRNZWQKICAgICBpZiAod2Via2l0X3dlYl92aWV3
X2dldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUod2ViVmlldykgPT0gV0VCS0lUX01FRElBX0NBUFRV
UkVfU1RBVEVfTk9ORSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Via2l0V2ViVmlld0NvbmZp
Z3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbywgc3RhdGUsIHRydWUpOworICAgIHdlYmtpdFdlYlZpZXdDb25maWd1
cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ6OlZpZGVvLCBzdGF0ZSwgdHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaAppbmRleCBlMWRhNDZmMjZiMThjNzdmMmExODllZDg2
NTQwYmE2MTMyMjliY2ZiLi44YTE2MjA3NzhlZGQ5Y2JmZjEyMDk5YjE1MmFkNTBiNDc5ZWRmMTli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGll
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgK
QEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7Ci1fV0tNZWRpYU11dGVkU3RhdGUgdG9X
S01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mp
OworX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CitfV0tNZWRp
YU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZUZsYWdzKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCmluZGV4IDUzYmJmNDIwMTQ3MWQ5
ZDhhNGY2NmU3MDFmNjQzODhlZWVkNWQxNWEuLjk4NTBhOGZjYTY3MGRjNzg1NWY0MTAwNjdiMDVj
MTJmODA4ODA2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01l
ZGlhVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLm1tCkBAIC0yOCwyOSArMjgsMjkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LV9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK19X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAg
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisg
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3Rh
dGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhOwotICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVk
aW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0
dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25l
OwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAg
bWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRD
YW1lcmE7CiAKICAgICByZXR1cm4gbWVkaWFDYXB0dXJlU3RhdGU7CiB9CiAKLV9XS01lZGlhTXV0
ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGVGbGFncyBzdGF0ZSkKK19XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgX1dL
TWVkaWFNdXRlZFN0YXRlIG1lZGlhTXV0ZWRTdGF0ZSA9IF9XS01lZGlhTm9uZU11dGVkOwotICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNN
dXRlZCkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKQogICAgICAgICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFBdWRpb011
dGVkOwogICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlk
ZW9DYXB0dXJlSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlhQ2Fw
dHVyZURldmljZXNNdXRlZDsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCkKKyAgICBpZiAoc3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCiAgICAg
ICAgIG1lZGlhTXV0ZWRTdGF0ZSB8PSBfV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZDsKICAgICBy
ZXR1cm4gbWVkaWFNdXRlZFN0YXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCmluZGV4IDMyOWRiNzkxY2Y0MzI3MjQ2MzYzNDI4MDA1MDRiMDhlYTg5ZGIw
ZTMuLmU2Nzk2OTVhM2ZlMWEwYWVmMjhkZDVhZjAyNDhkNjkwNmYzNDE5ODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBw
cml2YXRlOgogICAgICAgICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNv
cmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpT
ZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eSYpIGZpbmFsOwotICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAg
ICAgIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJz
dFBhZ2VTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaWYgSEFWRShBUFBfTElOS1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCAxMWI3YTQwNThhNWI2NDFhYjg4NGE5NzY1
NzdjZjIxMDNiY2I2YmRkLi5kNzhmNGNjMGQ1NjU1OTRjMGU4ODFhNDU4YmZkMjM4Mjc1MTIyNDVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEy
MjcsNyArMTIyNyw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcu
Z2V0KCkuZ2V0KCkgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVS
TCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlE
KCkudG9VSW50NjQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0K
IAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2Uo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0
ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmlu
ZGV4IGIzOTM3YWMwNDM3NzM5MmQzMGIxODMzZGVlMGMwMWU2Y2ExNjg5ZjMuLjJiNzI0NTg2OTE2
YmY1ZTFjYmI2NTNiZTFlNmEyNGIxYWQ5OTFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1zdGF0aWMgY29u
c3QgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNrIHsgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfTsKK3N0
YXRpYyBjb25zdCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNr
IHsgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9Owog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtOTUsNyArOTUsNyBAQCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkoVwogCiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6flVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCkKIHsKLSAgICBt
X3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0
dXJlIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyB9LCBbXSB7
IH0pOworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlN0
b3BNZWRpYUNhcHR1cmUgeyBNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRl
byB9LCBbXSB7IH0pOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnJldm9rZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQo
cGFnZSgpLnByb2Nlc3MoKSk7CiAgICAgcHJveGllcygpLnJlbW92ZSh0aGlzKTsKQEAgLTEyOSw3
ICsxMjksNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpz
dG9wQ2FwdHVyZSgpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBpbnZh
bGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7Ci0gICAgbV9wYWdlLnN0b3BNZWRpYUNhcHR1cmUoTWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyk7CisgICAgbV9wYWdlLnN0
b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8p
OwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0
dXJlRGV2aWNlc0NoYW5nZWQoKQpAQCAtODYzLDcgKzg2Myw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QK
ICNlbmRpZgogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpjYXB0dXJlU3RhdGVDaGFuZ2VkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRT
dGF0ZSwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIG5ld1N0YXRlKQogewogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNz
KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4
IDY0ZWJmYTVlNDU5YTE2ZTRjZDM3ZTQ5MzY5YTkwNGFlNjJkZWI3NjAuLjY3NGJhYjRkYjdjOWM2
NGRlZDg1Nzg3NDFkYmQyYWI5OTZkYzQwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hlZFN0YXRl
KCk7CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIAotICAgIHZvaWQgY2FwdHVy
ZVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xk
U3RhdGUsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7
CisgICAgdm9pZCBjYXB0dXJlU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MgbmV3U3RhdGUpOwogICAgIHZvaWQgc3luY1dpdGhXZWJDb3JlUHJlZnMoKSBjb25zdDsKIAog
ICAgIGVudW0gY2xhc3MgUmVxdWVzdEFjdGlvbiB7CkBAIC0xNjcsNyArMTY3LDcgQEAgcHJpdmF0
ZToKIAogICAgIFZlY3RvcjxEZW5pZWRSZXF1ZXN0PiBtX2RlbmllZFJlcXVlc3RzOwogCi0gICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0YXRlOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9jYXB0dXJlU3RhdGU7
CiAgICAgUnVuTG9vcDo6VGltZXI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk+IG1fd2F0Y2hkb2dUaW1lcjsKICAgICBTZWNvbmRzIG1fY3VycmVudFdhdGNoZG9nSW50ZXJ2
YWw7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCA2MWMwN2Y2ZGZiOWI0NjM2NWQ3NjdlNDEzM2NiZDY4ZGEwZDMy
YTdjLi5kMzMxZjJjYTdkMDNhNzAzYjVjYjZkZDBjOGZkOGI1OTEyODRmZjMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIxMTMsMTEgKzIxMTMsMTEgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5
U3RhdGU6OkZsYWc+IGZsYWdzVG9VcGQKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rp
dml0eVN0YXRlOjpJc0luV2luZG93KTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5
U3RhdGU6OklzVmlzdWFsbHlJZGxlICYmIHBhZ2VDbGllbnQoKS5pc1Zpc3VhbGx5SWRsZSgpKQog
ICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxl
KTsKLSAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSAmJiBt
X21lZGlhU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pICYmICEobV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCkpKQorICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0
ZTo6SXNBdWRpYmxlICYmIG1fbWVkaWFTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmICEobV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpKSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRl
LmFkZChBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUpOwogICAgIGlmIChmbGFnc1RvVXBkYXRlICYg
QWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5nICYmIG1fcGFnZUxvYWRTdGF0ZS5pc0xvYWRpbmcoKSkK
ICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0xvYWRpbmcpOwot
ICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAm
JiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoeyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfSkpCisgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBB
Y3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5jb250YWluc0Fu
eSh7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2Us
ICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0p
KQogICAgICAgICBtX2FjdGl2aXR5U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5n
TWVkaWEpOwogfQogCkBAIC02MjM2LDcgKzYyMzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNl
dE1lZGlhVm9sdW1lKHZvbHVtZSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fbXV0
ZWRTdGF0ZSA9IHN0YXRlOwogCkBAIC02MjY3LDcgKzYyNjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTk0NDYsNyArOTQ0Niw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpuYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90V2FzUmVtb3ZlZCgpCiAgICAgbV9uYXZp
Z2F0aW9uQ2xpZW50LT5kaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCp0aGlzKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojppc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRl
KQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKCFtX3Byb2Nlc3MtPnRocm90
dGxlcigpLnNob3VsZEJlUnVubmFibGUoKSkKQEAgLTk0NTcsNyArOTQ1Nyw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MgbmV3U3RhCiAgICAgICAgIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShuZXdT
dGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb246Olllcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG5ld1N0YXRlLCBDYW5EZWxheU5vdGlmaWNhdGlvbiBjYW5EZWxheU5vdGlmaWNhdGlvbikK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVs
YXlOb3RpZmljYXRpb24pCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBhdXRvIHVw
ZGF0ZU1lZGlhQ2FwdHVyZVN0YXRlSW1tZWRpYXRlbHlJZk5lZWRlZCA9IFsmXSB7CkBAIC05NDg2
LDE0ICs5NDg2LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5lCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG9sZE1lZGlhQ2FwdHVyZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFDYXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CisgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdNZWRpYUNhcHR1cmVTdGF0ZSA9IG5l
d1N0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKICNlbmRp
ZgogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sg
eyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8gfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgb2xkU3RhdGUgPSBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBwbGF5aW5nTWVkaWFNYXNrIHsgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OklzUGxheWluZ0F1ZGlvLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8g
fTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0
YXRlOwogCi0gICAgYm9vbCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5z
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkgIT0gKG5ld1N0YXRl
LmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7Cisg
ICAgYm9vbCBwbGF5aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpICE9IChuZXdTdGF0ZS5jb250YWlucyhN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKTsKICAgICBpZiAocGxheWlu
Z0F1ZGlvQ2hhbmdlcykKICAgICAgICAgcGFnZUNsaWVudCgpLmlzUGxheWluZ0F1ZGlvV2lsbENo
YW5nZSgpOwogICAgIG1fbWVkaWFTdGF0ZSA9IG5ld1N0YXRlOwpAQCAtOTUxNyw3ICs5NTE3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmUKICAgICBpZiAoKG9sZFN0YXRlICYgcGxheWluZ01l
ZGlhTWFzaykgIT0gKG1fbWVkaWFTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spKQogICAgICAgICBt
X3VpQ2xpZW50LT5pc1BsYXlpbmdNZWRpYURpZENoYW5nZSgqdGhpcyk7CiAKLSAgICBpZiAoKG9s
ZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JW
aWRlbykpICE9IChtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkpCisgICAgaWYgKChvbGRTdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkgIT0gKG1fbWVkaWFTdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkp
CiAgICAgICAgIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CiAKICAgICBtX3Byb2Nl
c3MtPnVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMoKTsKQEAgLTk3MTcsNyArOTcxNyw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllCiAgICAgcGFnZUNsaWVudCgpLm1lZGlhU2Vzc2lvbk1h
bmFnZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgcGFnZUNs
aWVudCgpLnJvb3RWaWV3VG9TY3JlZW4oSW50UmVjdChyZWN0KSksIGhhc1ZpZGVvLCB1c2VEYXJr
QXBwZWFyYW5jZSgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElk
LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIHBh
Z2VDbGllbnQoKS5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuY2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRo
aXMsIGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA3NTFjYzQ3OWVjOWZkNjljZDM3MzA3NzM3MjgwMTc1MGU3OWIyYzJkLi5kZjdk
YzlkYzc0ZTZmZTNkZDJmNDlhODcwOThiNWU5NTg5NzRkNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM5NiwxMyArMTM5NiwxMyBAQCBwdWJsaWM6CiAgICAg
dWludDY0X3QgcmVuZGVyVHJlZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVTaXpl
OyB9CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVk
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmID0gW10geyB9KTsKLSAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOyB9OworICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0g
W10geyB9KTsKKyAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRT
dGF0ZS5jb250YWlucyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011
dGVkKTsgfTsKICAgICB2b2lkIHNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCk7CiAg
ICAgYm9vbCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9tYXlT
dGFydE1lZGlhV2hlbkluV2luZG93OyB9CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVFbmFibGVk
KGJvb2wpOwogICAgIGJvb2wgbWVkaWFDYXB0dXJlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFDYXB0dXJlRW5hYmxlZDsgfQotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgPSBbXSB7IH0pOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0g
W10geyB9KTsKIAogICAgIHZvaWQgcGF1c2VBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdXNwZW5kQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMTUwOCwxOCArMTUwOCwxOCBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzU2hvd2luZ05hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBjb25zdCB7IHJl
dHVybiBtX2lzU2hvd2luZ05hdmlnYXRpb25HZXN0dXJlU25hcHNob3Q7IH0KIAotICAgIGJvb2wg
aXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7IH0KLSAgICB2b2lk
IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CisgICAgYm9vbCBpc1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuICEhKG1f
bWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdB
dWRpbyk7IH0KKyAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgdXBkYXRlUmVwb3J0ZWRNZWRpYUNh
cHR1cmVTdGF0ZSgpOwogCiAgICAgZW51bSBjbGFzcyBDYW5EZWxheU5vdGlmaWNhdGlvbiB7IE5v
LCBZZXMgfTsKLSAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2Fu
RGVsYXlOb3RpZmljYXRpb246Ok5vKTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENo
YW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlm
aWNhdGlvbiA9IENhbkRlbGF5Tm90aWZpY2F0aW9uOjpObyk7CiAgICAgYm9vbCBpc0NhcHR1cmlu
Z0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZU1hc2spOyB9CiAgICAgYm9vbCBpc0NhcHR1cmlu
Z1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZU1hc2spOyB9Ci0gICAgYm9vbCBoYXNBY3RpdmVB
dWRpb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UpOyB9Ci0gICAgYm9vbCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpOyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHJlcG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrKTsgfQotICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBt
X211dGVkU3RhdGU7IH0KKyAgICBib29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpOyB9CisgICAgYm9vbCBoYXNBY3Rp
dmVWaWRlb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2
aWNlKTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcmVwb3J0
ZWRNZWRpYVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRl
IHwgKG1fbWVkaWFTdGF0ZSAtIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1h
c2spOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZFN0
YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KIAogICAgIHZvaWQgaGFu
ZGxlQXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29y
ZTo6QXV0b3BsYXlFdmVudEZsYWdzPik7CiAKQEAgLTE2MDMsNyArMTYwMyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiwgYm9vbCBoYXNWaWRlbyk7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9p
ZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dDo6TW9ja1N0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlz
bWlzc1BvcHVwKCk7CkBAIC0yOTA0LDcgKzI5MDQsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkxheW91dFBvaW50IG1fbWF4U3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW47CiAKICAgICBmbG9h
dCBtX21lZGlhVm9sdW1lIHsgMSB9OwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGVGbGFncyBtX211dGVkU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGVGbGFncyBtX211dGVkU3RhdGU7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5X
aW5kb3cgeyB0cnVlIH07CiAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX21lZGlhQ2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CkBAIC0yOTQw
LDEwICsyOTQwLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VX
YW50c1N5bmNocm9ub3VzUmVwbHkgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+PiBtX25leHRBY3Rpdml0eVN0YXRlQ2hhbmdlQ2FsbGJhY2tzOwogCi0gICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAog
ICAgIC8vIFRvIG1ha2Ugc3VyZSBjYXB0dXJlIGluZGljYXRvcnMgYXJlIHZpc2libGUgbG9uZyBl
bm91Z2gsIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSBpcyB0aGUgc2FtZSBhcyBtX21lZGlh
U3RhdGUgZXhjZXB0IHRoYXQgd2UgbWlnaHQgZGVsYXkgYSBiaXQgdHJhbnNpdGlvbiBmcm9tIGNh
cHR1cmluZyB0byBub3QtY2FwdHVyaW5nLgotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGU7CisgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGU7
CiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZVByb3h5PiBtX3VwZGF0ZVJlcG9ydGVkTWVkaWFD
YXB0dXJlU3RhdGVUaW1lcjsKICAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgRGVmYXVsdE1l
ZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5IHsgM19zIH07CiAgICAgU2Vjb25kcyBtX21lZGlhQ2Fw
dHVyZVJlcG9ydGluZ0RlbGF5IHsgRGVmYXVsdE1lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggNzJlNTZkZmZlNmU1ZjQwYjNlYTUzMmVhZGUzZmQxOThkOGRlZjBlNS4uMTE4YTcxYTk3
OTU2YzkxYjU2ZTYyODBjNDIxY2Y4YTMyNjMyOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDYyLDcgKzQ2Miw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxl
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAotICAgIElzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBzdGF0ZSkKKyAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZShPcHRpb25TZXQ8V2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+IHN0YXRlKQogICAgIEhhbmRsZUF1dG9wbGF5RXZlbnQo
ZW51bTp1aW50OF90IFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQgZXZlbnQsIE9wdGlvblNldDxXZWJD
b3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+IGZsYWdzKQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAt
NDgxLDcgKzQ4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQWRkUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgUmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQpCiAgICAgU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgcGlj
a2VyTG9jYXRpb24sIGJvb2wgaGFzVmlkZW8pCi0gICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUpCisgICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJ
ZCwgT3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBtZWRpYVN0YXRl
KQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgU2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShTdHJpbmcgbmFt
ZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2Nr
U3RhdGUgcGlja2VyU3RhdGUpCiAgICAgTW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNt
aXNzUG9wdXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
aW5kZXggOGQ0N2E2M2Y2Y2E3NmI0MWVjODZlYTdjNDQxNzJkNzMwYTA0MmJhOS4uYWY0MDk2MWRh
MGY5YThlYzQ4NzUwOGJmMjE0MTMyMDdmYTA3ZGY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6bXV0ZUNhcHR1cmVJblBhZ2VzRXhjZXB0KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCkKIAogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRT
dGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIGZsYWdzKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIGZsYWdzKQogewogICAg
IGJvb2wgbXV0ZWRGb3JDYXB0dXJlID0gZmxhZ3MuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6
QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBpZiAoIW11dGVkRm9yQ2FwdHVyZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggOWNmMjNhZDg5
MjlkYmU5YTgwM2MwYWMwMDRhYTMzZGMyZjJjNjcxZS4uODcyZjAyZTE1NDcwODE2YmMyZWNhYWM2
NGYxYWZhMTJlNThlZWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKQEAgLTQwNiw3ICs0MDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbXV0ZUNh
cHR1cmVJblBhZ2VzRXhjZXB0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CiAjZW5kaWYKLSAg
ICB2b2lkIHBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBhZ2VNdXRl
ZFN0YXRlQ2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck11dGVkU3RhdGVGbGFncyk7CiAgICAgdm9pZCBwYWdlSXNCZWNvbWluZ0ludmlzaWJsZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KFJFTU9URV9JTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggZmZk
ZDQzMzQ1N2VjZWZjZDZhZGQ4ZDlhNDIxNGJhYjQ1ZGQ1ZTY1MC4uMWYxNzZlYmQ5ODhjZTAyZmVl
NmQ4MjA4NDI2MmU4NGYxZTU2YWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApA
QCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UaW1lUmFuZ2VzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3Bw
CmluZGV4IGQwN2Y2ZTcyYTRiNDk1Y2Q5NDM1MDkyY2Y3NmUwYjdhNTliODIwYzkuLmRkYWY4NjNm
ZTc1Yjc1OWI5YmU4MDQ1NzI5ZWFiNDUxZWMxMTBjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcApAQCAtNTQsNyArNTQsNyBAQAogI2lu
Y2x1ZGUgIldlYktpdERPTVhQYXRoUmVzdWx0UHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q1NTSW1wb3J0UnVsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GdWxsc2NyZWVuTWFuYWdlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSlNFeGVjU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IGEzZDZjYzMyZjY1NDlmYTBmYWI0YTI0NTA4ZmUyMmYwNDdmOWQzMzUuLmQzYWFkNmVh
MjYxNjhhMjFiODNkNTMwZTdhYjZkZDQ3YTI2N2YyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3h5
U2VydmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmgKaW5kZXggYWE5ZDNlY2UzZDYyNTg5ZDZiYmFlYzkxNGI2MzU2ZDUwNGE0ZTliYS4uNWFiYzQ4
NmUwYzU5MTBhZGU4YjhjNmZjOGQ4ZjkwYTlmOTZlYjU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBtZWRpYUNhblN0YXJ0KFdlYkNvcmU6OkRvY3VtZW50Jikgb3ZlcnJpZGU7
CiAKICAgICAvLyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAK
ICAgICAvLyBQbHVnaW5Db250cm9sbGVyCkBAIC0yNzYsMTEgKzI3NiwxMSBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9wbHVnaW5Jc1BsYXlpbmdBdWRpbyB7IGZhbHNlIH07CiB9OwogCi1pbmxpbmUg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlh
U3RhdGUoKSBjb25zdAoraW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MgUGx1Z2luVmlldzo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlOwogICAgIGlmIChtX3BsdWdpbklzUGxh
eWluZ0F1ZGlvKQotICAgICAgICBtZWRpYVN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpJc1BsYXlpbmdBdWRpbyk7CisgICAgICAgIG1lZGlhU3RhdGUuYWRkKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CiAgICAgcmV0dXJuIG1lZGlh
U3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTIwYTA0ZDM2ZjAzOGFjNzMx
OTE1NTJlY2Y0NWUzMjE0ZTE1YjdlZS4uYTIzOTZjZTJjMjk0ZTgyNmVlODZkM2Y3NmQ5ZjVhNzEz
Yjk5NjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEyNTIsNyArMTI1Miw3IEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29u
c3QgRnJhbWVWaWV3JiBmcmFtZVZpCiAgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5z
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1f
cGFnZS5pc1BsYXlpbmdNZWRpYURpZENoYW5nZShzdGF0ZSk7CiB9CkBAIC0xMzg0LDcgKzEzODQs
NyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3QsIGlz
VmlkZW8pKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
Y29udGV4dElkLCBzdGF0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDY0NDgyYTQyZTRl
YzcyZDUyYWE4NDZhNTc4NDVhMTQ2ODQ2NmM3MTAuLmI5OTM4ZjJiZmE2MTAwYjI5NjIzY2QwMzA1
Y2UwYjE0YzQzMjIxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM1Miw3ICszNTIsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29u
c3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykg
ZmluYWw7CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZl
bnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncz4pIGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQpAQCAtMzkxLDcg
KzM5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgZmluYWw7Ci0gICAgdm9p
ZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwog
ICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpIGZp
bmFsOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRl
KSBmaW5hbDsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1Bv
cHVwKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGU2ZWU0MjBmNDVhNDI3NTllMDYxNGNiNTAwY2E2ZWY2YjUyNGM5MDQuLmRlOGM1
ZjM3YjAyZDExMjE2MDhkMjk3OTRjNWY1YjgwNmRjOGZlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00Mzc1LDcgKzQzNzUsNyBAQCB2b2lk
IFdlYlBhZ2U6OnNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJl
c3BvbnNlKEZyYW1lSWRlbnRpZgogICAgICAgICBXZWJDb3JlOjpzZW5kVmlvbGF0aW9uUmVwb3J0
V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZSgqZnJhbWUtPmNvcmVGcmFtZSgpLCBj
b29wLCBkaXNwb3NpdGlvbiwgY29vcFVSTCwgbmV4dFJlc3BvbnNlVVJMLCBjb29wT3JpZ2luLnNl
Y3VyaXR5T3JpZ2luKCksIG5leHRSZXNwb25zZU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBpc0NP
T1BSZXNwb25zZU5hdmlnYXRpb25Tb3VyY2UsIHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2
b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50
SW5pdCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC01NTc1LDEzICs1NTc1LDEzIEBAIHZv
aWQgV2ViUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIG1fcGFnZS0+c2V0
TWVkaWFWb2x1bWUodm9sdW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNl
ck11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS0+c2V0TXV0ZWQoc3RhdGUpOwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShN
ZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBtX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoa2luZCk7CkBAIC03NDUxLDcgKzc0NTEsNyBAQCB2
b2lkIFdlYlBhZ2U6OnN5bmNocm9uaXplQ09SU0Rpc2FibGluZ1BhdHRlcm5zV2l0aE5ldHdvcmtQ
cm9jZXNzKCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlNldENPUlNEaXNhYmxpbmdQYXR0ZXJucyhtX2lkZW50aWZpZXIsIG1f
Y29yc0Rpc2FibGluZ1BhdHRlcm5zKSwgMCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0
YXRlKQordm9pZCBXZWJQYWdlOjppc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjMTM4NTU3M2IwYmU1ZmVj
ODAxNTBhOTVmYjM5NTE5NDNhNTA0NjY2Li5jMjdkNDAwYjY2ZDM3ZGJlMGE5ZTU0ZDI3YWJmNDQw
YzQ5ZDQxMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC00NDgsNyArNDQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0
aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6
Q09FUERpc3Bvc2l0aW9uLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25z
dCBVUkwmIGJsb2NrZWRVUkwpOwogICAgIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZp
Z2F0aW5nVG9DT09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSYsIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiwg
Y29uc3QgVVJMJiBjb29wVVJMLCBjb25zdCBVUkwmIHByZXZpb3VzUmVzcG9uc2VVUkwsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBwcmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiByZXBvcnRU
b0hlYWRlclZhbHVlKTsKICAgICB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGlu
Z0F3YXlGcm9tQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24s
IGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBuZXh0UmVzcG9uc2VVUkwsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VO
YXZpZ2F0aW9uU291cmNlLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCBlbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CisgICAgdm9p
ZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpOwogCiAg
ICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291
bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4g
V291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwpAQCAtMTAyNyw5ICsxMDI3LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2VSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRl
bnRpZmllcik7CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNl
dE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwotICAgIHZvaWQgc3RvcE1l
ZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygp
OwogCkBAIC0xNDIxLDcgKzE0MjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVNZWRpYVVz
YWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CiAjZW5k
aWYKIAotICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQogICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpF
bGVtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4m
Jik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KaW5kZXggOGFmYzRlYTVlM2NkMDFjMmFjM2E0YTM0MWYzMTZhOWEyMTEz
MzJlMS4uNzgyZmYyODJiYWEzZGQ4YTM4YjBhOGFjYTMxOTMzMmE5YTNjODEzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3Ry
aW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0
aW9uLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0
aW5hdGlvbiwgVVJMIGJsb2NrZWRVUkwpCiAgICAgU2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZp
Z2F0aW5nVG9DT09QUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb29wLCBlbnVtOmJvb2wgV2Vi
Q29yZTo6Q09PUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBVUkwgY29vcFVSTCwgVVJMIHByZXZp
b3VzUmVzcG9uc2VVUkwsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9y
aWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBwcmV2aW91c1Jlc3BvbnNl
T3JpZ2luLCBTdHJpbmcgcmVmZXJyZXIsIFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZXBvcnRU
b0hlYWRlclZhbHVlKQogICAgIFNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlG
cm9tQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6
OkNPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBuZXh0UmVzcG9u
c2VVUkwsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wg
aXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBTdHJpbmcgdXNlckFnZW50KQotICAgIEVu
cXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2
ZW50SW5pdCkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5
bmNocm9ub3VzCiAKQEAgLTQxNyw5ICs0MTcsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
CiAgICAgIyBNZWRpYQogICAgIFNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKLSAgICBTZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpIC0+ICgp
IEFzeW5jCisgICAgU2V0TXV0ZWQoT3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlPiBtdXRlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRNYXlTdGFydE1lZGlhV2hlbkluV2lu
ZG93KGJvb2wgbWF5U3RhcnRNZWRpYSkKLSAgICBTdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKKyAgICBTdG9w
TWVkaWFDYXB0dXJlKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZCBraW5kKSAtPiAoKSBBc3luYwogCiAgICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgIFNldENh
blJ1bk1vZGFsKGJvb2wgY2FuUnVuTW9kYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRG9jdW1lbnQubW0KaW5kZXggOGVhNDA0M2UxNjE1ZTMxOTY1NzliMDYwMGI2MDBkNTY4NmM2
NmE0ZS4uNjJmYTYyMjAyODY1ZGZhZGM1MWMyNTg1Mjc2NjdiM2ZiZmE3M2E0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQpAQCAtNjAsOSArNjAsOSBAQAog
I2ltcG9ydCA8V2ViQ29yZS9DU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0NvbW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRGdWxsc2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Rv
Y3VtZW50SW5saW5lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudFR5cGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTENvbGxlY3Rpb24uaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggMWM1NzY3OTM3YzY1NDlmYTFjZTQ5YzkzODUyY2E0ZWUzYjdh
ZGU2Yy4uMzU1NWQ1NDRjYTc0YjcxMTlkNmIwNjc2MjY2N2UyYzQxNzUxZDAzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJv
b2wgLyogaGFzVmlkZW8gKi8pIGZpbmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFs
OworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCmluZGV4IGE0NmIxYWRhNjA0OTdkYTdmNWVlZTI3ZjgxMWUzMmU3YzA4MjZlMTEu
LjE2OTNkODc1ZmUwMDg1NGY5MmQ1YmEzMTZkNWY3MzExZDg3ZDhhYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KQEAgLTExMjksNyArMTEyOSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpCiAgICAg
W21fd2ViVmlldyBfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOmNvbnRleHRJZCBsb2NhdGlvbjps
b2NhdGlvbiBoYXNWaWRlbzpoYXNWaWRlb107CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpw
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBb
bV93ZWJWaWV3IF9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOmNvbnRl
eHRJZCBzdGF0ZTpzdGF0ZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IDhj
YTMyOTQ3YTViNDZlMDY3YjhlOGJhZTQ0NjM5M2ViYjkwZTg2ZWYuLjM5NjU1NWNkMWY5OGI2YmMx
MzQ0NTA1N2VkY2E1NzZmZmQ0ZWI2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBA
IC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwog
ICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7Ci0gICAgdm9pZCBw
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9j
a01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TW9j
a01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIubW0KaW5kZXggN2RiZDU4OTQ3NTQwNWExNmViZGQwZmE5YmNmYTYyYzMzN2U3NDE1Mi4u
NWNmZmJjZmMzZjVlYWM2ZTVlYjgyZWVhMDNlYzhiMGM1YTk4ZTc2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlci5tbQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFdlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXI6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1Rh
cgogICAgIFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0KHJlY3Qp
LCBoYXNWaWRlbywgbV9wYWdlID8gbV9wYWdlLT51c2VEYXJrQXBwZWFyYW5jZSgpIDogZmFsc2Up
OwogfQogCi12b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Np
b25NYW5hZ2VyOjpzaGFyZWQoKS5jbGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElk
LCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggYzI2NGFmYTg2MmZlODljZmQ4ODA1NzkxZmFhMjJmZTQzMzUwOTk1Ny4uNmQ2OTdkZDg3
YmQ3MDZiYTlkYTc0MzlmMmRiMmQ1YzE1YTQ0ZGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtOTI0MSw3ICs5MjQxLDcgQEAgLSAodm9pZClfc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWUKICAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKGNvbnRleHRJZCwgcmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvKTsKIH0K
IAotLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2Vi
Q29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3Rh
dGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZQorLSAodm9p
ZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKIHsKICAgICBbc2VsZiBfZGV2
aWNlUGlja2VyXS0+cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShjb250
ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IGE0N2RhMmNmNGQ3NDk0OTYwZjVjNTA4ZjIyYjdmMTUw
YTI3ZDhkYTcuLmNjZDhjZDczYTQxZTM5YTFhNzNlZjE5NDE1NGYxOTI5NGQyMWU5NzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApA
QCAtMzM2LDcgKzMzNiw3IEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0b25l
cyhPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAtICh2b2lkKV9hZGRQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciljb250ZXh0SWQ7CiAtICh2b2lkKV9yZW1vdmVQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
ciljb250ZXh0SWQ7CiAtICh2b2lkKV9zaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIGxvY2F0aW9u
Oihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpbG9jYXRpb24gaGFzVmlkZW86KEJPT0wpaGFzVmlk
ZW87Ci0tICh2b2lkKV9wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOihX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBz
dGF0ZTooV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKXN0YXRlOworLSAo
dm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mpc3RhdGU7CiAtICh2b2lkKV9zZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQ6KGJvb2wpZW5hYmxlZDsKIC0gKHZv
aWQpX3NldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTmFtZTooTlNTdHJpbmcgKiluYW1l
IHN0YXRlOihXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKXN0
YXRlOwogLSAodm9pZClfbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXA7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRP
cmRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRl
ci5jcHAKaW5kZXggNmE0M2Y5MjY0ODBkZmY0NmU5YTYyOTczYmRjMDVmNjI2OGM1YmEwZS4uZjM3
NjI4Y2Y1ODA2YzA0ZWFlMDRjMjIwNzgzZGJlMzk4MGM0ODFhMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcApAQCAtMjUsNyAr
MjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3Vt
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudElubGluZXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hUTUxCb2R5RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTERpdkVsZW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxIdG1sRWxlbWVudC5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440991</attachid>
            <date>2021-10-12 15:00:56 -0700</date>
            <delta_ts>2021-10-12 15:31:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211012150055.patch</filename>
            <type>text/plain</type>
            <size>279708</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA3ZWE0ZWQx
ZjczZTBiNDBkM2I1MGExNDAzNGQ4ZmY3NDE5NWYzZDM3Li45OGEyODM4ZGRhZDI2YzQzYWZlOWQ5
NjkyZjAxZThmMDFiNjcxYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKQEAgLTEwMyw2ICsxMDMsOCBAQCBKU0RPTVdpbmRvd0Jhc2U6OkpT
RE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2lu
ZG93PgogICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CiB9CiAKK0pTRE9NV2luZG93
QmFzZTo6fkpTRE9NV2luZG93QmFzZSgpID0gZGVmYXVsdDsKKwogU1VQUFJFU1NfQVNBTiBpbmxp
bmUgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmluaXRTdGF0aWNHbG9iYWxzKEpTQzo6Vk0mIHZtKQog
ewogICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA3NmIwYzE2MjUyNWYzOGY4ZGY5ZmNiNzc1MDMz
MjRhMWIxZjQ1YTU3Li42ZjJjNjNhYjc3OTY3NTFhOTMzNjhjYTJlNDNmN2MxNTM4OWZkNmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNTYs
NiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VB
Y2Nlc3M+CiAgICAgc3RhdGljIHZvaWQgc3Vic3BhY2VGb3IoSlNDOjpWTSYpIHsgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAgfkpTRE9NV2luZG93QmFzZSgpOwogICAgIHZv
aWQgdXBkYXRlRG9jdW1lbnQoKTsKIAogICAgIERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0IHsg
cmV0dXJuICptX3dyYXBwZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTg3Y2JhNGMzMWI3MGU1OGI0MWUzYTY2YWNj
ZjBiYTJhNmY3NTg4ZS4uMzlmMmEwMzljMDI1OGExNjUzM2RiOTVhMDVhYzk4OTIzMmYxOGM5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJKU05vZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNjY4NDg2ZmQ4N2ZjZmU0NGUyOGMxYzVkMWE3NjgyY2I5YmFl
NzIzNi4uNjMyM2Y1ZDY0Y2JjNmJjNmIwMjJmMDU1ODM4OTA2YzAzZjdiNTNiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCmluZGV4
IDZjMDg1YTgwMGNkZjRhZjM0YjIzNTJjMjVjYWJiMTM5ZWIwNWU2ZGUuLjAzODZlMzY2MDllNGNl
OGQ3NDBjNzlmMTg2N2U3NjY3YmVkMmM2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUNvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db2xvciBTdHlsZUNv
bG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29yZCwgT3B0aW9uU2V0PE9wdGlv
bnM+IG9wdGlvbnMpCitDb2xvciBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVl
SUQga2V5d29yZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKQogewogICAg
IGlmIChjb25zdCBjaGFyKiB2YWx1ZU5hbWUgPSBnZXRWYWx1ZU5hbWUoa2V5d29yZCkpIHsKICAg
ICAgICAgaWYgKGNvbnN0IE5hbWVkQ29sb3IqIG5hbWVkQ29sb3IgPSBmaW5kQ29sb3IodmFsdWVO
YW1lLCBzdHJsZW4odmFsdWVOYW1lKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAppbmRleCBlNGU1
OGRmOWM1ZWZlNDg3NTJjZTg4ZjEyNDEwY2UyMzlmMTM5Mjc2Li4zMjE0NGY0ZjFmNjViNjBmNjg2
ZGYyNzZmMjU0ZTlmMjBkZDZjNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKQEAgLTM3LDE1
ICszNywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBTdHlsZUNvbG9yIHsK
LSAgICBlbnVtIGNsYXNzIE9wdGlvbnMgOiB1aW50OF90IHsKLSAgICAgICAgRm9yVmlzaXRlZExp
bmsgPSAxIDw8IDAsCi0gICAgICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCi0gICAg
ICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAotICAgICAgICBVc2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbCA9IDEgPDwgMwotICAgIH07CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRp
b25zIDogdWludDhfdCB7CisgICAgRm9yVmlzaXRlZExpbmsgPSAxIDw8IDAsCisgICAgVXNlU3lz
dGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKKyAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwgMiwK
KyAgICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEgPDwgMworfTsKIAotICAgIHN0
YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxPcHRpb25z
Pik7CitzdHJ1Y3QgU3R5bGVDb2xvciB7CisgICAgc3RhdGljIENvbG9yIGNvbG9yRnJvbUtleXdv
cmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAgICAgc3RhdGlj
IGJvb2wgaXNBYnNvbHV0ZUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IGJiOGQ1M2NjYzQ0NWM3MGNmYTgyZmVj
ZjYzNWQ1Y2IyMDQ2ZjY0YTcuLjJlNjVjNjI0NDk3MzM3ZTZiOTAwYWUzOTAwYzFhMTI2Yzk3ZDZj
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENoYXJhY3RlckRhdGEpOwogc3RhdGljIGJvb2wg
Y2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihjb25zdCBDaGFyYWN0ZXJEYXRhJiBub2RlKQogewog
ICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZS5kb2N1bWVudCgpOwotICAgIHJldHVybiAhZG9jdW1l
bnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElT
VEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9i
c2VydmVyOjpDaGFyYWN0ZXJEYXRhKQorICAgIHJldHVybiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJU
eXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElTVEVORVIpICYmICFkb2N1
bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkKICAgICAgICAgJiYgIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShE
b2N1bWVudDo6RE9NU1VCVFJFRU1PRElGSUVEX0xJU1RFTkVSKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXggMjk2Njc2Nzc2OGYwZDcxNDc0
MmUzNmJjZTViNjEwODY5NzdmOTFmZi4uNjRjOTI0NjVmMmExMDNiM2E5OTBlNjFhM2NmMTI4YTA5
NWIyYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
CkBAIC0zMSw3ICszMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIENoaWxkTGlz
dE11dGF0aW9uU2NvcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IENoaWxkTGlzdE11dGF0aW9u
U2NvcGUoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKHRhcmdldC5k
b2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNo
aWxkTGlzdCkpCisgICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkKICAgICAg
ICAgICAgIG1fYWNjdW11bGF0b3IgPSBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpnZXRP
ckNyZWF0ZSh0YXJnZXQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
CmluZGV4IDJiNTliMzZiYzg5YWQyZWRmOTUyOTk0NTE2ZGE5ODk3YTA3ZjQ3OGUuLmFkOGE3NTQ5
NGZiZWQwMjllODE2MmQwY2JhNWVlNGE4ZTIwZDE2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBBTFdBWVNfSU5MSU5FIE5vZGVWZWN0b3Ig
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hpbGRyZW5XaXRoU2NyaXB0QXNzZXJ0aW9uKENoaQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6UGFyc2VyKTsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQg
c2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKSkg
eworICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09m
VHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkpIHsKICAgICAgICAg
ICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogICAgICAgICAgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQogICAgICAgICAgICAgICAgIG11dGF0aW9uLndp
bGxSZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBl
OGJjNTZlNzZlNmY2NGM5NmY3MWFmYzYzY2MyZDc2ZDEyZmYwY2E0Li5hZGY1MzU1MmZlMDdmNTVh
N2YxMTkzNDgwZjU1Y2MyYmRlMWJhNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYy
LDYgKzYyLDcgQEAKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1ZGUgIkRl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Rm9udExvYWRlci5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCkBAIC0xNzcsNiArMTc4LDcgQEAKICNpbmNsdWRlICJQ
c2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5o
IgogI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpAQCAtMjM5LDYgKzI0MSw3IEBACiAj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKQEAgLTk3OSw3ICs5ODIsNyBA
QCB2b2lkIERvY3VtZW50OjpyZXNldExpbmtDb2xvcigpCiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0
VmlzaXRlZExpbmtDb2xvcigpCiB7Ci0gICAgbV92aXNpdGVkTGlua0NvbG9yID0gU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtpdExpbmssIHN0eWxlQ29sb3JPcHRpb25z
KG51bGxwdHIpIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3JPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0Nv
bG9yKCkKQEAgLTM1NzgsNiArMzU4MSwxMyBAQCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtbwogICAg
IHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfUlRDKQordm9pZCBE
b2N1bWVudDo6c2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0
Y05ldHdvcmtNYW5hZ2VyKQoreworICAgIG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0
Y05ldHdvcmtNYW5hZ2VyKTsKK30KKyNlbmRpZgorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0
ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQpAQCAtNDQwMywxOCArNDQxMywxOCBAQCB2b2lkIERvY3VtZW50Ojpub3Rl
VXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVJ
c1BsYXlpbmdNZWRpYSgpCiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlvUHJvZHVjZXJzLmhhc051bGxS
ZWZlcmVuY2VzKCkpOwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvciAoYXV0byYg
YXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNlcnMpCiAgICAgICAgIHN0YXRlLmFkZChhdWRp
b1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRoaXMpKTsKICAgICBp
ZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CisgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFF
bGVtZW50KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
VXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpOwog
CiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjcy
NSw3ICs2NzM1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2Vz
aG93RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudChQ
YWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHBl
cnNpc3RlZCksIHRoaXMpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZl
bnRJbml0KQordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBv
bGljeXZpb2xhdGlvbkV2ZW50LCBXVEZNb3ZlKGV2ZW50SW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6
OlllcykpOwogfQpAQCAtNzUwOSwxNSArNzUxOSwxNSBAQCBib29sIERvY3VtZW50Ojp1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1P
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25z
KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSkgY29uc3QKIHsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgaWYgKHVzZVN5
c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRGFya0FwcGVhcmFuY2Uo
c3R5bGUpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKCkp
Ci0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICByZXR1cm4gb3B0aW9uczsKIH0K
IApAQCAtNzY5NCw3ICs3NzA0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgYm9vbAogICAgIHBhZ2Ut
PnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHBvc2l0aW9uLCBpc1ZpZGVvLCBy
b3V0ZVNoYXJpbmdQb2xpY3ksIHJvdXRpbmdDb250ZXh0VUlEKTsKIH0KIAotdm9pZCBEb2N1bWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKK3ZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAg
aWYgKCFwYWdlKQpAQCAtODE5OSw3ICs4MjA5LDcgQEAgdm9pZCBEb2N1bWVudDo6b3JpZW50YXRp
b25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
LXZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZCBraW5kKQordm9pZCBEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENh
cHR1cmUoKnRoaXMsIGtpbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzODZlMzc4Mjgw
ODhmM2ZkMWVhN2JmYzgwNjgyZTk1YTg1MDg5MDA2Li5mZWU1MTIxMjI5MjMwYzBkZDk3YTBlYmUz
ZWRlYTRlYzBkMTU3NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVudEV2ZW50
VGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGb2N1c09wdGlvbnMuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3JDbGll
bnQuaCIKQEAgLTQzLDMwICs0MiwyMSBAQAogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgi
Ci0jaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgotI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKLSNpbmNsdWRlICJSZWdpb24uaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRlclB0ci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0aERpcmVjdGlvbi5oIgot
I2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKLSNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiVXNl
ckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlZpc2liaWxpdHlTdGF0ZS5oIgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtOTYsMTEgKzg2LDE2IEBAIG5hbWVzcGFjZSBXVEYg
ewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9u
SUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNs
YXNzIEFwcEhpZ2hsaWdodFN0b3JhZ2U7CiBjbGFzcyBBdHRyOworY2xhc3MgQ2FudmFzQmFzZTsK
IGNsYXNzIENEQVRBU2VjdGlvbjsKIGNsYXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWU7CiBjbGFz
cyBDU1NGb250U2VsZWN0b3I7CkBAIC0xMzIsNiArMTI3LDcgQEAgY2xhc3MgRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJl
ZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lOworY2xhc3MgRG9jdW1lbnRUaW1l
bGluZXNDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRWRpdGluZ0JlaGF2
aW9yOwogY2xhc3MgRWRpdG9yOwpAQCAtMTgzLDYgKzE3OSw3IEBAIGNsYXNzIExvY2F0aW9uOwog
Y2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CitjbGFzcyBNZWRpYVByb2R1Y2VyOwog
Y2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKIGNsYXNzIE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpAQCAtMTk2LDcgKzE5Myw5IEBAIGNsYXNzIFBsYXRm
b3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxp
ZmllZE5hbWU7CiBjbGFzcyBRdWlya3M7CitjbGFzcyBSVENOZXR3b3JrTWFuYWdlcjsKIGNsYXNz
IFJhbmdlOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyVHJlZUJ1aWxkZXI7CiBjbGFzcyBS
ZW5kZXJWaWV3OwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7CkBAIC0yMjMs
NiArMjIyLDcgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExp
c3Q7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEF1dG9TaXppbmc7CitjbGFzcyBUZXh0RW5jb2Rp
bmc7CiBjbGFzcyBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFRleHRSZXNvdXJj
ZURlY29kZXI7CiBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CkBAIC0yNTAsMjAgKzI1MCwyOSBAQCBz
dHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVzdDsKIHN0cnVjdCBCb3VuZGFyeVBvaW50Owogc3RydWN0
IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7Citz
dHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogZW51bSBDb2xsZWN0aW9uVHlwZTsKIAorZW51bSBj
bGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90OworZW51bSBjbGFzcyBNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgOiB1aW50MTZfdDsKK2VudW0g
Y2xhc3MgU3R5bGVDb2xvck9wdGlvbnMgOiB1aW50OF90OworZW51bSBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7CiAKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZT47CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCiBuYW1lc3BhY2Ug
U3R5bGUgewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBTY29wZTsKK2NsYXNzIFVwZGF0ZTsKIH0K
IAogZW51bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgeyBQYWdlc2hvd0V2ZW50Tm90UGVyc2lz
dGVkLCBQYWdlc2hvd0V2ZW50UGVyc2lzdGVkIH07CkBAIC0zNTQsNyArMzYzLDcgQEAgcHVibGlj
OgogICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBFdmVudFRhcmdldDo6V2Vha1ZhbHVlVHlwZTsK
ICAgICB1c2luZyBFdmVudFRhcmdldDo6d2Vha1B0ckZhY3Rvcnk7CiAKLSAgICBzdGF0aWMgUmVm
PERvY3VtZW50PiBjcmVhdGUoY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBpbmxp
bmUgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJM
Jik7CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cihGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwogCkBAIC00NjAsMTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgZGVmYXVsdENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0Owog
Ci0gICAgU3RyaW5nIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2Rpbmco
KTsgfQorICAgIGlubGluZSBTdHJpbmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBjaGFyYWN0ZXJTZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4
dEVuY29kaW5nIHRleHRFbmNvZGluZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2Rpbmcg
dGV4dEVuY29kaW5nKCkgY29uc3Q7CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qg
eyByZXR1cm4gdGV4dEVuY29kaW5nKCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJp
bmcgZW5jb2RpbmcoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNl
dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5
LgogCkBAIC01NzksNyArNTg4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHVzZURhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3Qg
UmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3Im
LCBjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxS
YW5nZT4gY3JlYXRlUmFuZ2UoKTsKQEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVu
c2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNo
ZSogZXhpc3RpbmdBWE9iamVjdENhY2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2Fj
aGUqIGV4aXN0aW5nQVhPYmplY3RDYWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFY
T2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmpl
Y3RDYWNoZSgpOwogCkBAIC03MTMsNyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgUlRDTmV0d29ya01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1
cm4gbV9ydGNOZXR3b3JrTWFuYWdlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01h
bmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRj
TmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2Vy
PiYmKTsKICNlbmRpZgogCiAgICAgYm9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUs
IGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2
ZW50OjpUeXBlKSBjb25zdDsKICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0g
ICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25P
YnNlcnZlclR5cGVzOyB9Ci0gICAgdm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgdHlwZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlw
ZXM7IH0KKyAgICBpbmxpbmUgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSkgY29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuICFtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0K
KyAgICB2b2lkIGFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyB0eXBlcykgeyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBD
U1NTdHlsZURlY2xhcmF0aW9uKiBnZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmKSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJl
ZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYp
OwogICAgIHZvaWQgZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5j
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5n
ZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAg
dm9pZCBkaXNwYXRjaFBvcHN0YXRlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiBzdGF0ZU9iamVjdCk7CiAKQEAgLTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1
cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250
ZXh0OjpzZWN1cml0eU9yaWdpbigpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQog
Ci0gICAgYm9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2Vj
dXJpdHlPcmlnaW4oKS5pc1NhbWVPcmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUg
Ym9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRG
b3JjZU5vT3BlbmVyQmFzZWRPbkNPT1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQwMiw5ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lk
IHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50
ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0
IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAg
ICBpbmxpbmUgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hh
bmdlKCk7CiAKQEAgLTE0MTIsNyArMTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2
b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQ
bGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7Cisg
ICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxh
eWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAg
IHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgYm9vbCk7CkBAIC0xNDUxLDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICB2b2lkIHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBt
X2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0
ZUNoYW5nZWQoKTsKICNlbmRpZgogCkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVk
Qm9vbCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1fbWVkaWFTdGF0ZTsKICAgICBib29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVt
ZW50IHsgZmFsc2UgfTsKICAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENh
Y2hlU3RhdGUgeyBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJl
ZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0
YXRlIHsgQ29tcGxldGUgfTsKICAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5OwogCi0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlv
bk9ic2VydmVyVHlwZXMgeyAwIH07CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRh
dGlvbk9ic2VydmVyVHlwZXM7CiAKICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsK
QEAgLTIyMjksNDMgKzIyMzUsNiBAQCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3Vt
ZW50Ojp0ZXh0RW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhp
cy0+ZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICBy
ZXR1cm4gVGV4dEVuY29kaW5nKCk7Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1l
bnQ6OnRlbXBsYXRlRG9jdW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9j
dW1lbnRIb3N0ID8gdGhpcyA6IG1fdGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5l
IEFYT2JqZWN0Q2FjaGUqIERvY3VtZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAot
ewotICAgIGlmICghaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIHJldHVybiBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0K
LWlubGluZSBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNl
dHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1
bWVudChudWxscHRyLCBzZXR0aW5ncywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50
OjppbnZhbGlkYXRlQWNjZXNzS2V5Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vz
c0tleUNhY2hlKSkKLSAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsK
LX0KLQotLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRo
ZSBEb2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgot
Ci1pbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgp
OwotfQotCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29u
c3QgRG9jdW1lbnQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50SW5saW5lcy5oCmluZGV4IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3
MThmM2UuLmRkMjUwYWUyYzg4OWRlYjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRl
eHRFbmNvZGluZyBEb2N1bWVudDo6dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4
dEVuY29kaW5nKCk7CiB9CiAKK2lubGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygp
IGNvbnN0IHsgcmV0dXJuIHRleHRFbmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3Ry
aW5nIERvY3VtZW50OjpjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5n
KCk7IH0KKwogaW5saW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVu
dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDog
bV90ZW1wbGF0ZURvY3VtZW50LmdldCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQg
RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZVNsb3dDYXNlKCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0Nh
cHR1cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5n
KG1fbWVkaWFTdGF0ZSk7Cit9CisKK2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30K
KworaW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25z
dCB7IHJldHVybiBzZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsg
fQorCisKIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0
aGUgRG9jdW1lbnQgY2xhc3MgZGVmaW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4K
IAogaW5saW5lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5
NTJiMTkyZTQxMjQwNTZhMDM4NTMyZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBh
MjI2MDkxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIK
ICNpbmNsdWRlICJFZGl0aW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKaW5kZXggNDc2ZjhkYWI5YjY1MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uNjUwNWRj
OWFiMmVmYjZiNjRmNDMxOGRlYzk5NzZhZTg4NjAwMTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6
On5NdXRhdGlvbk9ic2VydmVyKCkKIAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9w
dGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9w
dGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAg
ICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRW
YWx1ZSkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAm
IEF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEp
IHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRp
b25zLmNvbnRhaW5zQW55KEFsbE11dGF0aW9uVHlwZXMpCisgICAgICAgICYmIChvcHRpb25zLmNv
bnRhaW5zKE9wdGlvblR5cGU6OkF0dHJpYnV0ZXMpIHx8ICFvcHRpb25zLmNvbnRhaW5zKE9wdGlv
blR5cGU6OkF0dHJpYnV0ZU9sZFZhbHVlKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
T3B0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YU9sZFZhbHVlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2
ZXI6Om9ic2VydmUoTm9kZSYgbm9kZSwgY29uc3QgSW5pdCYgaW5pdCkKIHsKLSAgICBNdXRhdGlv
bk9ic2VydmVyT3B0aW9ucyBvcHRpb25zID0gMDsKKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyBvcHRpb25zOwogCiAgICAgaWYgKGluaXQuY2hpbGRMaXN0KQotICAgICAgICBvcHRpb25zIHw9
IENoaWxkTGlzdDsKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KTsK
ICAgICBpZiAoaW5pdC5zdWJ0cmVlKQotICAgICAgICBvcHRpb25zIHw9IFN1YnRyZWU7CisgICAg
ICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5cGU6OlN1YnRyZWUpOwogICAgIGlmIChpbml0LmF0dHJp
YnV0ZU9sZFZhbHVlLnZhbHVlX29yKGZhbHNlKSkKLSAgICAgICAgb3B0aW9ucyB8PSBBdHRyaWJ1
dGVPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6QXR0cmlidXRlT2xk
VmFsdWUpOwogICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGFPbGRWYWx1ZS52YWx1ZV9vcihmYWxz
ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YU9sZFZhbHVlOworICAgICAgICBv
cHRpb25zLmFkZChPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogCiAgICAgSGFz
aFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CiAgICAgaWYgKGluaXQuYXR0cmlidXRl
RmlsdGVyKSB7CiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbml0LmF0dHJpYnV0ZUZpbHRl
ci52YWx1ZSgpKQogICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyLmFkZCh2YWx1ZSk7Ci0gICAg
ICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlRmlsdGVyOworICAgICAgICBvcHRpb25zLmFkZChPcHRp
b25UeXBlOjpBdHRyaWJ1dGVGaWx0ZXIpOwogICAgIH0KIAotICAgIGlmIChpbml0LmF0dHJpYnV0
ZXMgPyBpbml0LmF0dHJpYnV0ZXMudmFsdWUoKSA6IChvcHRpb25zICYgKEF0dHJpYnV0ZUZpbHRl
ciB8IEF0dHJpYnV0ZU9sZFZhbHVlKSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlczsK
KyAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVlKCkgOiBvcHRp
b25zLmNvbnRhaW5zQW55KHsgT3B0aW9uVHlwZTo6QXR0cmlidXRlRmlsdGVyLCBPcHRpb25UeXBl
OjpBdHRyaWJ1dGVPbGRWYWx1ZSB9KSkKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6
QXR0cmlidXRlcyk7CiAKLSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAg
ICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
ID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKE9wdGlvblR5
cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5
cGU6OkNoYXJhY3RlckRhdGEpOwogCiAgICAgaWYgKCF2YWxpZGF0ZU9wdGlvbnMob3B0aW9ucykp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5oCmluZGV4IDJhZjI2M2JkNGE3MjU0YTIwYTNiOTM1MzE3Yjc5Njkx
YWY0Y2M3ZGEuLjA0YWYwMDRhOWUwOTVlZmVlZWMxZjYxMGU1MjhiNDZlNjBmNWU3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIApAQCAtNTMsMzAgKzU0
LDI3IEBAIGNsYXNzIE11dGF0aW9uUmVjb3JkOwogY2xhc3MgTm9kZTsKIGNsYXNzIFdpbmRvd0V2
ZW50TG9vcDsKIAotdXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSB1bnNpZ25lZCBjaGFy
OwotdXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSB1bnNpZ25lZCBjaGFyOwor
ZW51bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIC8v
IE11dGF0aW9uVHlwZQorICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKKyAgICBBdHRyaWJ1dGVzID0g
MSA8PCAxLAorICAgIENoYXJhY3RlckRhdGEgPSAxIDw8IDIsCiAKLWNsYXNzIE11dGF0aW9uT2Jz
ZXJ2ZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbk9ic2VydmVyPiB7Ci0gICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChNdXRhdGlvbk9ic2VydmVyKTsKLXB1YmxpYzoKLSAgICBl
bnVtIE11dGF0aW9uVHlwZSB7Ci0gICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAg
QXR0cmlidXRlcyA9IDEgPDwgMSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKKyAg
ICAvLyBPYnNlcnZhdGlvbkZsYWdzCisgICAgU3VidHJlZSA9IDEgPDwgMywKKyAgICBBdHRyaWJ1
dGVGaWx0ZXIgPSAxIDw8IDQsCiAKLSAgICAgICAgQWxsTXV0YXRpb25UeXBlcyA9IENoaWxkTGlz
dCB8IEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhCi0gICAgfTsKKyAgICAvLyBEZWxpdmVyeUZs
YWdzCisgICAgQXR0cmlidXRlT2xkVmFsdWUgPSAxIDw8IDUsCisgICAgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlID0gMSA8PCA2LAorfTsKIAotICAgIGVudW0gT2JzZXJ2YXRpb25GbGFncyAgewotICAg
ICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0ZXIgPSAxIDw8IDQK
LSAgICB9OwotCi0gICAgZW51bSBEZWxpdmVyeUZsYWdzIHsKLSAgICAgICAgQXR0cmlidXRlT2xk
VmFsdWUgPSAxIDw8IDUsCi0gICAgICAgIENoYXJhY3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwK
LSAgICB9OwordXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGU+OwordXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OwogCitjbGFzcyBNdXRh
dGlvbk9ic2VydmVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4g
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTXV0YXRpb25PYnNlcnZlcik7CitwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUmVmPE11dGF0aW9uQ2Fs
bGJhY2s+JiYpOwogCiAgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKQEAgLTExNCw2ICsxMTIsMTEg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoV2lu
ZG93RXZlbnRMb29wJik7CiAKKyAgICB1c2luZyBPcHRpb25UeXBlID0gTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIE11dGF0aW9uT2JzZXJ2ZXJPcHRp
b25zIEFsbE11dGF0aW9uVHlwZXMgeyBPcHRpb25UeXBlOjpDaGlsZExpc3QsIE9wdGlvblR5cGU6
OkF0dHJpYnV0ZXMsIE9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEgfTsKKyAgICBzdGF0aWMgY29u
c3RleHByIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIEFsbERlbGl2ZXJ5RmxhZ3MgeyBPcHRpb25U
eXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVl
IH07CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihSZWY8TXV0YXRp
b25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAppbmRleCAwMjc2ZTQy
YmU1YmQ4M2ZmNDJhNzkzNTZiZGU5Y2U3MzYwOTljYmRlLi4yYWVjNjUyOTBjMzg0NzcyMjZhMGYw
ODgyMmZmYTM3YzVkZjdiMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgaW5saW5lIE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cChIYXNoTWFwPFJlZjwKICAgICBBU1NFUlQoIW1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSk7CiB9CiAK
LXN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRp
b25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK3N0
ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xk
VmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFT
U0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5h
bWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0
ZU5hbWUpOwogICAgIGF1dG8gb2JzZXJ2ZXJzID0gdGFyZ2V0LnJlZ2lzdGVyZWRNdXRhdGlvbk9i
c2VydmVycyh0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAob2JzZXJ2ZXJzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCmluZGV4IDNjMGFlNTIzN2Q0YjJlMmVmZjcw
ZGRlNjYyZTVmNGUxZTU2OTI2YWQuLjJmNDZjODFlOGU1ZTg5MzBmZmNjYzFkYjg0ZGE4MGJjYTkw
NDFiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC00NiwzNiArNDYsMzYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hpbGRMaXN0
TXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1l
bnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExp
c3QpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGlsZExpc3QpKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgb2xkVmFsdWVGbGFnID0gMDsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdl
dCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOworICAgICAgICBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWc7CisgICAgICAgIHJldHVy
biBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGls
ZExpc3QsIG9sZFZhbHVlRmxhZyk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11
dGF0aW9uKE5vZGUmIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50
KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVy
RGF0YSkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZl
cnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSwgTXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEsIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+
IGNyZWF0ZUZvckF0dHJpYnV0ZXNNdXRhdGlvbihOb2RlJiB0YXJnZXQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVu
dCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0
ZXMpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzKSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJn
ZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzLCBNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1l
KTsKICAgICB9CiAKICAgICBib29sIGlzT2xkVmFsdWVSZXF1ZXN0ZWQoKSBjb25zdDsKICAgICB2
b2lkIGVucXVldWVNdXRhdGlvblJlY29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYpOwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0
YXRpb25UeXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNv
bnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5l
ZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKIAotICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykgY29uc3QgeyByZXR1cm4gb3B0aW9ucyAmIG1f
b2xkVmFsdWVGbGFnOyB9CisgICAgYm9vbCBoYXNPbGRWYWx1ZShNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KG1f
b2xkVmFsdWVGbGFnKTsgfQogCiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBtX29ic2VydmVyczsKICAgICBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBtX29sZFZhbHVlRmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBjNmYxZmIxNWRm
ZjhkNWViZmYyZjVjNWI3YjdlZGUzYWUzZDBlYjc5Li5kM2MxZmE2NmVkMmY1NTQ3ZjBiODA5YzY5
MDdiYjQ1YzRmOWY1NGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC05NSwxNiArOTUsMTYgQEAgc3RkOjp1bmlxdWVf
cHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjp0YWsKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKLWJvb2wgTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiBub2Rl
LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFt
ZSogYXR0cmlidXRlTmFtZSkgY29uc3QKK2Jvb2wgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25z
dAogewotICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKLSAgICBpZiAoIShtX29wdGlvbnMg
JiB0eXBlKSkKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIGlm
ICghbV9vcHRpb25zLmNvbnRhaW5zKHR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoJm1fbm9kZSAhPSAmbm9kZSAmJiAhaXNTdWJ0cmVlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwg
IShtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXIpKQorICAgIGlm
ICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzIHx8ICFtX29w
dGlvbnMuY29udGFpbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZUZpbHRl
cikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKCFhdHRyaWJ1dGVOYW1lLT5uYW1l
c3BhY2VVUkkoKS5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IDMxMTA4NDE4ZjFlZDU2NGZhYjk1Yjk2ZmM4YTBj
ZmRhNTM1M2YzZWIuLmQ2ODRiMWYwYjFiODdlODE3MDUwNjQwMDVjYWI3OTA1MTcwNzg0MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
aApAQCAtNTYsMTMgKzU2LDEzIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNl
dDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IHRha2VUcmFuc2llbnRSZWdpc3RyYXRpb25zKCk7CiAg
ICAgYm9vbCBoYXNUcmFuc2llbnRSZWdpc3RyYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2llbnRSZWdpc3RyYXRpb25Ob2RlcyAmJiAhbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2Rlcy0+
aXNFbXB0eSgpOyB9CiAKLSAgICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYs
IE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0
cmlidXRlTmFtZSkgY29uc3Q7Ci0gICAgYm9vbCBpc1N1YnRyZWUoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlOyB9CisgICAgYm9vbCBzaG91bGRS
ZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkgY29uc3Q7CisgICAgYm9vbCBpc1N1YnRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY29udGFpbnMoTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OlN1YnRyZWUpOyB9CiAKICAgICBNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlcigp
IHsgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7IH0KICAgICBOb2RlJiBub2RlKCkgeyByZXR1cm4g
bV9ub2RlOyB9Ci0gICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlIHwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsg
fQotICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBbGxNdXRhdGlvblR5cGVzOyB9Cisg
ICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkFsbERlbGl2
ZXJ5RmxhZ3M7IH0KKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkg
Y29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkFs
bE11dGF0aW9uVHlwZXM7IH0KIAogICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpBYnN0cmFjdFNsb3RWaXNpdG9yJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBh
NmYxOTgzNmE5YmRkNTE2NmY4ODBjZTYwNjQzMmRjMDYxZWM0M2FmLi5lNTM1MTQ3MTA4ZmNmYWUz
NGUzNzc0ZjdkN2JmOTM0MjQ1MTA5MzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCkBAIC0yMjgyLDcgKzIyODMsNyBA
QCBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiogTm9kZTo6dHJhbnNpZW50
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KAogICAgIHJldHVybiAmZGF0YS0+dHJhbnNpZW50UmVn
aXN0cnk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZv
aWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRp
b25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBS
ZWdpc3RyeSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCit0ZW1wbGF0
ZTx0eXBlbmFtZSBSZWdpc3RyeT4gc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RNYXRjaGluZ09i
c2VydmVyc0Zvck11dGF0aW9uKEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgUmVnaXN0cnkqIHJlZ2lzdHJ5LCBO
b2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxp
ZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7CiAgICAgaWYgKCFyZWdpc3RyeSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMjI5MiwxNSArMjI5MywxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3Ry
eT4gc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aQog
ICAgICAgICAgICAgYXV0byBkZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRlbGl2ZXJ5
T3B0aW9ucygpOwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJlZ2lz
dHJhdGlvbi0+b2JzZXJ2ZXIoKSwgZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgICAgIGlmICgh
cmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSB8PSBkZWxpdmVyeU9wdGlvbnM7CisgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZS5hZGQoZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgfQogICAgIH0KIH0KIAotSGFzaE1h
cDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBO
b2RlOjpyZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRp
b25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitIYXNoTWFw
PFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IE5v
ZGU6OnJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewogICAgIEhhc2hN
YXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4g
cmVzdWx0OwotICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVz
ICYmIGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUg
PT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFt
ZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11
dGF0aW9uKHJlc3VsdCwgbXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCksICp0aGlzLCB0eXBlLCBh
dHRyaWJ1dGVOYW1lKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihy
ZXN1bHQsIHRyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpLCAqdGhpcywgdHlwZSwg
YXR0cmlidXRlTmFtZSk7CiAgICAgZm9yIChOb2RlKiBub2RlID0gcGFyZW50Tm9kZSgpOyBub2Rl
OyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBiZGI4NDI3MDUz
OWUxMzE2NjE0MTY5ZTBjN2YwNjY5Mjc3MjQ2YmE2Li41ZDY5M2ZjMjViNDZjZjQ5OWU3NTMzMzYw
OTdmZDkxNjc1NTA4ZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiTGF5
b3V0UmVjdC5oIgotI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlN0eWxlVmFsaWRpdHkuaCIKICNpbmNsdWRl
ICJUcmVlU2NvcGUuaCIKQEAgLTU0LDYgKzUzLDggQEAgY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNz
IEhUTUxRdWFsaWZpZWROYW1lOwogY2xhc3MgSFRNTFNsb3RFbGVtZW50OwogY2xhc3MgTWF0aE1M
UXVhbGlmaWVkTmFtZTsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXI7CitjbGFzcyBNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uOwogY2xhc3MgTmFtZWROb2RlTWFwOwogY2xhc3MgTm9kZUxpc3Q7
CiBjbGFzcyBOb2RlTGlzdHNOb2RlRGF0YTsKQEAgLTY3LDYgKzY4LDEwIEBAIGNsYXNzIFNWR1F1
YWxpZmllZE5hbWU7CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgVG91Y2hFdmVudDsKIAorZW51
bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7Cit1c2luZyBNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucyA9IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZT47Cit1c2luZyBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IE9wdGlvblNldDxNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZT47CisKIHVzaW5nIE5vZGVPclN0cmluZyA9IFZhcmlhbnQ8
UmVmUHRyPE5vZGU+LCBTdHJpbmc+OwogCiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0
IHsKQEAgLTQ5NCw3ICs0OTksNyBAQCBwdWJsaWM6CiAgICAgRXZlbnRUYXJnZXREYXRhKiBldmVu
dFRhcmdldERhdGFDb25jdXJyZW50bHkoKSBmaW5hbDsKICAgICBFdmVudFRhcmdldERhdGEmIGVu
c3VyZUV2ZW50VGFyZ2V0RGF0YSgpIGZpbmFsOwogCi0gICAgSGFzaE1hcDxSZWY8TXV0YXRpb25P
YnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRp
b25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZp
ZWROYW1lKiBhdHRyaWJ1dGVOYW1lKTsKKyAgICBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVy
PiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IHJlZ2lzdGVyZWRNdXRhdGlvbk9ic2Vy
dmVycyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0
cmlidXRlTmFtZSk7CiAgICAgdm9pZCByZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25P
YnNlcnZlciYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJp
bmc+JiBhdHRyaWJ1dGVGaWx0ZXIpOwogICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2
ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgcmVnaXN0ZXJUcmFu
c2llbnRNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggMTc2YmMz
YjQ4OTIwZmVkMDhhMmFhOTVhYTJiYWU2NjdhZWRmNDJmZC4uM2UwZjdlNTQzNWVhMzdmYzZiOWRj
ZmI0MWZlMzYxODUyNWYyZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCBmMDQ5YmQ4NGIxMmFhZDBjZGEzZWU3MTU4MjYwOTQzODFmMDkxMjUzLi5j
NGYyOTU5OTkzOWVjMTY4MzJjNmRmNmMwY2VjMDIwYmNkNDI1MGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNl
Y3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAj
aW5jbHVkZSAiQ3VycmVudFNjcmlwdEluY3JlbWVudGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oCmluZGV4IGIxMDc2NjU5OTMxMGRmNDU0NjE3MzFm
MzRiYjNjOWU5YzI4Y2UzM2MuLmFiMjc4MzdiOTg4Mzc5NjRlOGI2OGQzNmQxMGY3MTg5NWQ2YTYw
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuaApAQCAtMjksMzAgKzI5LDMzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51
bSBjbGFzcyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gOiBib29sIHsg
RW5mb3JjZSwgUmVwb3J0IH07CisKK3N0cnVjdCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQo
KSB7IH0KKworICAgIFN0cmluZyBkb2N1bWVudFVSSTsKKyAgICBTdHJpbmcgcmVmZXJyZXI7Cisg
ICAgU3RyaW5nIGJsb2NrZWRVUkk7CisgICAgU3RyaW5nIHZpb2xhdGVkRGlyZWN0aXZlOworICAg
IFN0cmluZyBlZmZlY3RpdmVEaXJlY3RpdmU7CisgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5Owor
ICAgIFN0cmluZyBzb3VyY2VGaWxlOworICAgIFN0cmluZyBzYW1wbGU7CisgICAgU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uIHsgU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpFbmZvcmNlIH07CisgICAgdW5zaWduZWQgc2hv
cnQgc3RhdHVzQ29kZSB7IDAgfTsKKyAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OworICAg
IHVuc2lnbmVkIGNvbHVtbk51bWJlciB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYpOworfTsKKwogY2xhc3MgU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KTsKIHB1YmxpYzoKLSAgICBl
bnVtIGNsYXNzIERpc3Bvc2l0aW9uIDogYm9vbCB7IEVuZm9yY2UsIFJlcG9ydCB9OwotCi0gICAg
c3RydWN0IEluaXQgOiBFdmVudEluaXQgewotICAgICAgICBJbml0KCkgeyB9Ci0KLSAgICAgICAg
U3RyaW5nIGRvY3VtZW50VVJJOwotICAgICAgICBTdHJpbmcgcmVmZXJyZXI7Ci0gICAgICAgIFN0
cmluZyBibG9ja2VkVVJJOwotICAgICAgICBTdHJpbmcgdmlvbGF0ZWREaXJlY3RpdmU7Ci0gICAg
ICAgIFN0cmluZyBlZmZlY3RpdmVEaXJlY3RpdmU7Ci0gICAgICAgIFN0cmluZyBvcmlnaW5hbFBv
bGljeTsKLSAgICAgICAgU3RyaW5nIHNvdXJjZUZpbGU7Ci0gICAgICAgIFN0cmluZyBzYW1wbGU7
Ci0gICAgICAgIERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uIHsgRGlzcG9zaXRpb246OkVuZm9yY2Ug
fTsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSB7IDAgfTsKLSAgICAgICAgdW5z
aWduZWQgbGluZU51bWJlciB7IDAgfTsKLSAgICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsg
MCB9OwotCi0gICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgSW5pdCYpOwotICAgIH07CisgICAg
dXNpbmcgRGlzcG9zaXRpb24gPSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRp
b247CisgICAgdXNpbmcgSW5pdCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0Owog
CiAgICAgc3RhdGljIFJlZjxTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIgPSB7IH0sIElzVHJ1
c3RlZCBpc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKQogICAgIHsKQEAgLTExMSw3ICsxMTQsNyBA
QCBwcml2YXRlOgogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit2b2lkIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IEV2ZW50
SW5pdCY+KCp0aGlzKTsKICAgICBlbmNvZGVyIDw8IGRvY3VtZW50VVJJOwpAQCAtMTI5LDcgKzEz
Miw3IEBAIHZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29s
IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiBldmVudEluaXQpCitib29s
IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmIGV2ZW50SW5pdCkKIHsKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpY19jYXN0PEV2ZW50SW5pdCY+KGV2ZW50SW5pdCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNjQsMTEgKzE2NywxMSBAQCBib29sIFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZWN1
cml0eVBvbGljeQogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbj4g
ewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50RGlzcG9zaXRpb24+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAotICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9u
LAotICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9u
OjpFbmZvcmNlLAotICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRp
c3Bvc2l0aW9uOjpSZXBvcnQKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50RGlzcG9zaXRpb24sCisgICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dERpc3Bvc2l0aW9uOjpFbmZvcmNlLAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnREaXNwb3NpdGlvbjo6UmVwb3J0CiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggNThkNzUzYjIzZDYz
Yjg3Mjk1OTAwN2M1YTcwOTY3Mzk3Yzg4Nzg0YS4uOTgwNDQ2MGNkYjJiYzVhYjUxNzE0YjQwNGFi
ODVjMGNhZmUyMmEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIu
aCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNp
bmNsdWRlICJFZGl0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5k
ZXggZjk1YTMxYzUzOTEyZDAzYmFmZjRjYzg1NzAwMmI1YzFjZDM1OTkzMi4uZjM0MDE0MzU5ZmY3
Y2RiZDg1N2NmZGNkYmJhOWIyNGYyOTEwMWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmcuY3BwCmluZGV4IDg0NjY0YzNiNzQ4MzY1M2FmMDlmNzllYmI1MzNlNzU0YmE2Mzg0
YTEuLjkyOTQ2ZjM3MzEzM2UxMTBkZGIxMTFmNThhOTNjMWIyYzdmMGI0OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNp
bmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggNTY1NzgyN2Q5YTY2YmIzYjczZWZiNTVmOTMxNjFlZTgzOGI0
NWEzMC4uMWI3MDc2NWJhYmM0ZDQ2ODExYzFhZmQ3OTQ2NTEwN2I4YTIyMDgzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkRpY3RhdGlv
bkFsdGVybmF0aXZlLmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNs
dWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAj
aW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IGMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQu
LjcxMzY5OTU0OTA1ZjlmMmYxZDhlMWNkZTA2MGU0MWRjYWVjYTE0MTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVk
ZSAiQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1ZGUgIkNvbG9yQmxlbmRpbmcuaCIKICNpbmNsdWRl
ICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAi
RWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA4NzkxNDIxNmNhYTJhZTcwNWE1YzQ4OTliZGZhMDE0
NGMzNjYwOGRkLi4yMjcyZWJiMzBkZTc5MjE2MzY2ZmIxMTkzNjU4MWI5MjU4YmRjYTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
ICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGlu
Zy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggZjM4M2Fk
ZGQxOWIwY2YwMDQ2YmE1MzdjYjJkNThiZDRhNzEwMGU5NC4uNDYyMzdhZDZjMWU5MzcxYmRjYWQ3
MGZjYWZiMGY3ZmU1ZGY4ZDUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbXBvcnQgIkNocm9tZS5oIgogI2ltcG9ydCAiQ2hyb21lQ2xpZW50LmgiCisj
aW1wb3J0ICJEb2N1bWVudElubGluZXMuaCIKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJS
ZW5kZXJWaWV3LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cAppbmRleCA1ZTQxYjQ5MjQxNmEzOTQwZWQ2ZGUxMzEyYTMxNTMzZWRkODE3OTM5Li5iZjU0MzJh
ZjMxNmU1YTc0YWYyYWQyNzNmMTE1MjZlNGRiNDViMmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0yMyw5ICsyMywxMSBAQAogI2luY2x1ZGUgIkhU
TUxEZXRhaWxzRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJH
Q1JlYWNoYWJsZVJlZi5oIgogI2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxTdW1tYXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA2OWNjNDE3NzBjYzlm
YzUxYjk1ODIyMzUzMjQ2MzIzMzMyNmI3YTMuLjI0MzhlOTE3NmIyMzlhZGU4ZWEwOWJiY2VmODFk
ZDVkYmM1MDUwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApA
QCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRh
dGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCi0jaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0
b3IuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmlsZUlucHV0VHlwZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDU2ZjBjNzlkNDVk
OTI3Njk2OTY3MjEzODAwNTNkZjBiNDllMWM3ZjEuLjc0ZmQ0NWU2ZGJiYjQ1NmI1NDUzYjFkNDBm
MzhjZjA0NjQwZDc3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAK
QEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIK
ICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEZWZhdWx0UmVzb3VyY2VMb2Fk
UHJpb3JpdHkuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggMjkzNzliMjBmNTkxZmZlZjBiZDU1N2M4MDhkOGI0OTQwYWFhNWE3
MC4uNjVlYmZhN2E1NGQ4ZmFkMzRhN2FlMDljNTViYTMzMDVlNzM2YzEwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04NSw4ICs4NSw4IEBACiAjaW5jbHVk
ZSAiTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJQT0RJbnRlcnZhbFRyZWUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiUGFnZUlubGluZXMuaCIKICNpbmNsdWRlICJQ
aWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCkBAIC03OTczLDcgKzc5
NzMsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBs
YXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFT
dHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgp
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2Fw
dHVyZURldmljZSkpIHsKKyAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYg
bWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykgJiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAg
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlp
bmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1UcmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KQEAgLTc5ODgsNyArNzk4OCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlh
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCi0gICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3Rh
dGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRp
bykgJiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAgICBpZiAo
aGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlh
U3RhdGUoKS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVk
aW9DYXB0dXJlRGV2aWNlKSkgewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwg
InJldHVybmluZyB0cnVlIGJlY2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNr
Iik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA0OCw3ICs4MDQ4
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVVwZGF0ZU1lZGlhU3RhdGUoKQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogewotICAgIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKKyAgICBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlID0gbWVkaWFTdGF0ZSgpOwogICAgIGlmICht
X21lZGlhU3RhdGUgPT0gc3RhdGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtODA1OSwzMSArODA1
OSwzMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogfQogI2Vu
ZGlmCiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVN0YXRlKCkgY29uc3QKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiB7CiAgICAgTWVkaWFTdGF0ZUZsYWdzIHN0YXRl
OwogCiAgICAgYm9vbCBoYXNBY3RpdmVWaWRlbyA9IGlzVmlkZW8oKSAmJiBoYXNWaWRlbygpOwog
ICAgIGJvb2wgaGFzQXVkaW8gPSB0aGlzLT5oYXNBdWRpbygpOwogICAgIGlmIChpc1BsYXlpbmdU
b0V4dGVybmFsVGFyZ2V0KCkpCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKKyAgICAgICAgc3RhdGUuYWRkKE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgaWYgKG1faGFzUGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMpIHsKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIp
OworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpOwogICAgICAgICBpZiAoIW1lZGlhU2Vzc2lvbigp
LndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkpCi0gICAgICAgICAgICBzdGF0ZS5hZGQo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jp
bmcpOworICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1
aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyk7CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJl
VXNlckdlc3R1cmUgPSBtX21lZGlhU2Vzc2lvbiAmJiBtZWRpYVNlc3Npb24oKS5oYXNCZWhhdmlv
clJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQXV0
b3BsYXlUb0V4dGVybmFsRGV2aWNlKTsKICAgICBpZiAobV9yZWFkeVN0YXRlID49IEhBVkVfTUVU
QURBVEEgJiYgIXJlcXVpcmVVc2VyR2VzdHVyZSAmJiAhbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNz
VGFyZ2V0KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0
ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSk7CiAKICAg
ICBpZiAoaGFzQWN0aXZlVmlkZW8gfHwgaGFzQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pOworICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbyk7CiAKICAgICBpZiAo
aGFzQWN0aXZlVmlkZW8gJiYgZW5kZWRQbGF5YmFjaygpKQotICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKKyAgICAgICAgc3RhdGUuYWRk
KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpOwogI2VuZGlmCiAKICAgICBp
ZiAoIWlzUGxheWluZygpKQpAQCAtODA5NywxMCArODA5NywxMCBAQCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiAgICAg
aXNQbGF5aW5nQXVkaW8gPSBpc1BsYXlpbmdBdWRpbyAmJiAhbXV0ZWQoKTsKICNlbmRpZgogICAg
IGlmIChpc1BsYXlpbmdBdWRpbykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlkZW8p
Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdW
aWRlbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pOwogCiAgICAgcmV0dXJuIHN0YXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCBjZmQxOWQzYzE3M2YxMGNlNGVmZTBjMjBhZWIyYWJlNTkxOWQy
NTk2Li4wMmQ0ODgwMTE0NzQ2MmM5MTNlY2Y5OWI2YjAzYjgwMTFkMGQxZWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoK
IAogICAgIGRvdWJsZSBtYXhCdWZmZXJlZFRpbWUoKSBjb25zdDsKIAotICAgIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGxheW91dFNpemVDaGFuZ2VkKCk7CiAgICAgdm9pZCB2aXNpYmlsaXR5RGlkQ2hh
bmdlKCk7CkBAIC0xMjE0LDcgKzEyMTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBt
X21lZGlhU3RhdGU7CiAgICAgTW9ub3RvbmljVGltZSBtX2N1cnJlbnRQbGF5YmFja1RhcmdldElz
V2lyZWxlc3NFdmVudEZpcmVkVGltZTsKICAgICBib29sIG1faGFzUGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHlMaXN0ZW5lcnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9mYWlsZWRUb1BsYXlUb1dp
cmVsZXNzVGFyZ2V0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAKaW5kZXggZTJmOGE0YmY1ZDhiODUxYmI5YzE0MjMxYjgxMjhlYzI0ODg2YjdjMC4u
NzlhZDRlMjIwNmRhODA5NDhiMmEwYjU1ZmViYjFiYjg0YzgxNjdhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRUcmF2ZXJzYWwuaCIKICNpbmNs
dWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDk5
YTRiYjJlZjdhNjE0Njc0YWNmNGY3OWZhN2MzZDdjZmFmOTk2MjAuLjBlMzQ4NmQ0ZjcxMDZjYzU3
MTY3Y2FmYTY3NDgwZDk3MjE3Zjg5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRl
ICJFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZWEyOTdmYTIzMTliZmI4NTdmNWZjYmYyNDU2NjZiMDk4
MzVmMTA5Mi4uYjVmZjAyYmRhNTU0YTAxZGE5M2I5MGFmYzA4MWM2ZWIwODgwY2NiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRhdGVJ
bnB1dFR5cGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgiCiAjaW5jbHVk
ZSAiRGVjaW1hbC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVs
ZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNw
cAppbmRleCA3ZjZkMzlmM2VjZTBjZmY3NTc5NGJlZDRhYzM0ZmVkMzE2NDdmNTE3Li4yOTFlZjlh
MDI4MTAyZjMyYWVjMzZjODljODZhZGI0ZWM3MGZlNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUg
IkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBA
IC0zODUsNyArMzg1LDcgQEAgRXhwZWN0ZWQ8dm9pZCwgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNv
bj4gTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW4KICAgICBpZiAobV9lbGVt
ZW50Lmhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGRvY3VtZW50Lmlz
Q2FwdHVyaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBpZiAoZG9jdW1l
bnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8pCisgICAgICAgIGlmIChkb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
ICNlbmRpZgpAQCAtNDAwLDcgKzQwMCw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tE
ZW5pYWxSZWFzb24+IE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2Vy
R2VzdHVyZVJlcXVpcmVkKTsKICAgICB9CiAKLSAgICBpZiAodG9wRG9jdW1lbnQubWVkaWFTdGF0
ZSgpICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVk
aWFFbGVtZW50ICYmIHRvcERvY3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxh
eUJlaGF2aW9yKCkpCisgICAgaWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgJiYgdG9w
RG9jdW1lbnQucXVpcmtzKCkubmVlZHNQZXJEb2N1bWVudEF1dG9wbGF5QmVoYXZpb3IoKSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGlmICh0b3BEb2N1bWVudC5oYXNIYWRVc2VySW50ZXJh
Y3Rpb24oKSAmJiBkb2N1bWVudC5xdWlya3MoKS5zaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVz
ZXJHZXN0dXJlKCkpCkBAIC04MDksNyArODA5LDcgQEAgdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpCiAgICAgY2xpZW50KCkucGxheWJh
Y2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoKTsKIH0KIAotdm9pZCBNZWRpYUVsZW1lbnRTZXNz
aW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKK3ZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fZWxlbWVudC5kb2N1bWVu
dCgpLnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIHN0YXRl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggZGY2
MTUxMGNlYzY1MDEwYzJkNmJlNWU0YTBiMzA5ZjcwMjUyMzQ1NS4uZjViZWJkMjhkZWY4ODlhZTAy
YTAwNmFiZGU2OTAwNzVjNDE1MDVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BsYXlp
bmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQg
bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAg
IHZvaWQgbWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsK
ICNlbmRpZgogCiAgICAgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDRiMWUzYTI5
YzBhNDM2ZTQ2ZWI1NmMxOWU4YWMxOTdiMDliZTRjNDguLjhmNmI4Y2UwOGZkYjVkNzRiNjZlNTNj
MTIyMGNlMWJiYjVjZDc2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
CkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRGVjaW1hbC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVs
ZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkhUTUxDb2xsZWN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMjkyMDJhMTE1Njk4MGE0ODZhYWI5NjUzMGI1
NWI1NWE0NTA1MzE4Ny4uOGU2NWM0ZWIxMDIzMzUyMWY0OGM3ZjRiMTIwYWQyYzg5MDlhMDdiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9u
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxl
bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNp
bmNsdWRlICJGb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDll
OGRmMmVjYjAxMDQ4MzYxYjI0NGY4NTBmOWJjZWM5OWE1MTllMTkuLjZkMzFjODFmZGUxMjgwZDI0
NTM5YjljOWZiMmUwMjg5N2NhYjM5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAj
aW5jbHVkZSAiRE9NRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRE9NUGF0Y2hTdXBwb3J0LmgiCiAj
aW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJF
ZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDM3
NDY4NDMyNTc3ZjY0ZTNkMThiYzM2NjdjYTI5OGY0M2EzYmY1MDMuLjg0YjE2MzcwMTRlZjU2ZGFl
OGJjZWYwZDcyNDk1NjJkMjBkMGRkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTQwLDcgKzQw
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDZXJ0aWZpY2F0ZUlu
Zm8uaCIKICNpbmNsdWRlICJDZXJ0aWZpY2F0ZVN1bW1hcnkuaCIKLSNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Rm9ybURhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
bk9wZW5lclBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVy
UG9saWN5LmgKaW5kZXggOTQ2NDc0YjU4NTgxOTNiMGIzMDZjOTJlMWY1YjJlOGJjMWZhYzliYy4u
NThjN2JiNzkzODhhYzZmMDNmMmM4MjBkODk2OGZhNGEzNTIxZmY0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKQEAgLTI1LDE1ICsyNSwx
NiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIEZy
YW1lOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAogc3RydWN0IE5hdmlnYXRpb25SZXF1ZXN0ZXI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY5ZjM5MmNi
ODRkODIwMmIyYjllY2VmMGRlMTY0NTE4MDNmMzdiNjMuLjk5Yzk3OGRjYjNjNjRjZGU2OTY1Mzli
ZGY5YWI1YzViNGRmMjc4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcApAQCAtMjQwMCw3ICsyNDAwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2VuZENTUFZp
b2xhdGlvblJlcG9ydChVUkwmJiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0YT4mJiByZXAKICAgICBQ
aW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCptX2ZyYW1lLCBXVEZNb3ZlKHJlcG9ydFVS
TCksIFdURk1vdmUocmVwb3J0KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29udGVudFNlY3VyaXR5
UG9saWN5KTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50
SW5pdCkKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewog
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KFdURk1vdmUoZXZlbnRJbml0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oCmluZGV4IDlmYzQxMzdhNjkwMGUyNGExYTgyY2VjN2NjNzU3OTNkMzQ3ZTk4MTIuLjRm
YmZkNzEyMDE5OWQyN2NmYTg3YmRkNTk2NzM3MTA2YmNlMDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC01MjIsNyArNTIyLDcgQEAgcHJpdmF0ZToKICAgICAv
LyBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYp
IGZpbmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgYm9v
bCBkaXNhbGxvd1dlYkFyY2hpdmUoKSBjb25zdDsKICAgICBib29sIGRpc2FsbG93RGF0YVJlcXVl
c3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdy
aXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4
IDg5MDk1ZmUzZGU3MzI4OGUyNzMxYzEyYWYzZDI2MTY4ZjdjYzM1MzAuLjQzMmJkMTJiMzJjZThj
MGY3NGIyMGYxMWYzZjI4OWU4ZGU3YzcxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50V3JpdGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA2ODNmODRjMjU0
MTVkM2VjMzQ2N2UwODEwOGI4MTNmNWE3MWE4MjM5Li5hZTkyYWRkODc1NjA1MWQwNTZhMjMwMmRk
Y2JjNDg5YjEwZTc0ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1
Ym1pc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IGZjYjIyMDJmODI4MTBhZjJhNGY4ZDllNDUxY2I1NzRmYTBh
N2ZkNDMuLmMzYmIzNDZhMzk0N2M1ODk4M2VlOWQ5ZjhlYjA0Yzk5MjgwMzYxNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUg
IkRhdGFiYXNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKaW5kZXggMTA3ZjMyNDY0Y2QxZDNiYjkyM2MyYTlmNzUzMGRhZmViNWIxNzhlOS4uMzZlZTMy
NzVkNjkyMDdlNDUwMjE2MmYwYWJhZWI4OGU1OGViYzc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MCw3ICs1
MCw3IEBACiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0Y2ZjYjE2ODFmMTcz
MDlhYzRhN2ZjMGIyMTlhY2VmOTU5NTdiNzlkLi5jY2JkZmE0OTYzZTQwMzk2Yzc5ZWE5NjM5Y2I1
YTA3OWI0ZjNlZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUwMyw3ICs1
MDMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZl
bnRGbGFncz4pIHsgfQogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC01MzQsNyArNTM0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGll
bnRDb250ZXh0SWRlbnRpZmllcikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJ
bnRQb2ludCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRW5hYmxlZChib29sKSAgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQ6Ok1vY2tTdGF0ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggZTAwNWNlZGZmY2RlYzFkYWQ5MWFmZmU4NmVlYWIyMmQzODM1ZDk5MC4u
N2Y5ZDhlYzQ1NGMwMzVmMjAyNTljZTg5ODI0YzY1N2Y1YWYxZTJmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNvbXBvc2Vk
VHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCmluZGV4IGJlNzZlMWJkMjc3NTUxMzFkMDgzMTZmMmQzYmU5OWJjY2E2
OGRjMWYuLmExMWEzYjM0OGFiYTM5OWY2NDg3NmRlNDk2OTIxZGZlOGYwZDY0M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5j
bHVkZSAiRWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDhjNDM3N2NiOTU0
YTBiMWEwODllNTJlZmFkOGE0MWQ5MTA1OGE4ZjcuLmZkMzMzNjhhZDIxZGM1NTk2NzRiM2E3YTY4
ZDIzMzRjZTRmMTMzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIK
ICNpbmNsdWRlICJFZGl0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1NGE1
YWMwMDBlMjdjOTJkYTk0MGU5ZjNhNzMxMmM3YjljZWU2ZjZjLi5kNWViM2FlZmQxNzZiMTAxYmVl
MjNjMDEzYWY0NzFjZjlhNDQ4OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVidWdQYWdl
T3ZlcmxheXMuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U1ZH
LmgiCkBAIC0yMDgyLDcgKzIwODMsNyBAQCBib29sIEZyYW1lVmlldzo6dXNlRGFya0FwcGVhcmFu
Y2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IEZyYW1lVmlldzo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAorT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QK
IHsKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBy
ZW5kZXJlckZvckNvbG9yU2NoZW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkOWQ0
OGFmNWY3ZDE0OTc3ZjNhNTBkZTU2NTk5M2VkZTNkNTJhMzE4Li45N2FkZWIxMDA2ZmM1NTZiOTlm
ZTU4YWY3MDA4MmM3YjJlYWRjODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTUzOCw3
ICs1MzgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRTZXRDdXJzb3IoKSBjb25zdDsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdCBmaW5hbDsK
LSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBj
b25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25z
KCkgY29uc3Q7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgcGx1Z2lu
IGxvYWRpbmcgaXMgZGVjb3VwbGVkIGZyb20gbGF5b3V0LgogICAgIHZvaWQgZmx1c2hBbnlQZW5k
aW5nUG9zdExheW91dFRhc2tzKCk7CkBAIC05NTUsNyArOTU1LDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgbV9pc1RyYW5zcGFyZW50IHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoREFSS19NT0RFX0NT
UykKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gbV9zdHlsZUNvbG9yT3B0aW9u
czsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG1fc3R5bGVDb2xvck9wdGlvbnM7
CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc1RyYWNraW5nUmVwYWludHMgeyBmYWxzZSB9OyAvLyBV
c2VkIGZvciB0ZXN0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVBy
b2R1Y2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAppbmRleCA4MGFk
NWFlZWZhZGY5ZWNiODM2YjkxMjNjMzhjNTQwZTZmNGMxNTE3Li40ZTE5ZThjZDcxYTY1MjlmOThh
ZjY0ODJlNmNhNWEwNTJiMWY3MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01l
ZGlhUHJvZHVjZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApA
QCAtMzEsMzIgKzMxLDUyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICBJc1BsYXlpbmdBdWRpbyA9
IDEgPDwgMCwKKyAgICBJc1BsYXlpbmdWaWRlbyA9IDEgPDwgMSwKKyAgICBJc1BsYXlpbmdUb0V4
dGVybmFsRGV2aWNlID0gMSA8PCAyLAorICAgIFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nID0gMSA8PCAzLAorICAgIEV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUgPSAxIDw8
IDQsCisgICAgRGlkUGxheVRvRW5kID0gMSA8PCA1LAorICAgIElzU291cmNlRWxlbWVudFBsYXlp
bmcgPSAxIDw8IDYsCisgICAgSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgNywKKyAg
ICBJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgOCwKKyAgICBIYXNQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyID0gMSA8PCA5LAorICAgIEhhc0F1ZGlvT3JWaWRl
byA9IDEgPDwgMTAsCisgICAgSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMSwK
KyAgICBIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAorICAgIEhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMywKKyAgICBIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSA9IDEgPDwgMTQsCisgICAgSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAx
IDw8IDE1LAorICAgIEhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNiwK
KyAgICBIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAorICAgIEhh
c0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOCwKKyAgICBIYXNNdXRlZERpc3Bs
YXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOSwKKyAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0
dXJlRGV2aWNlID0gMSA8PCAyMCwKK307Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKKworZW51bSBjbGFzcyBN
ZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3QgeworICAgIEF1ZGlvLAorICAg
IFZpZGVvLAorICAgIEF1ZGlvVmlkZW8KK307CisKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11
dGVkU3RhdGUgOiB1aW50OF90IHsKKyAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCisgICAgQXVk
aW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKKyAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8
PCAyLAorICAgIFNjcmVlbkNhcHR1cmVJc011dGVkID0gMSA8PCAzLAorfTsKK3VzaW5nIE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGU+OworCiBjbGFzcyBNZWRpYVByb2R1Y2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlh
UHJvZHVjZXI+IHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIE1lZGlhU3RhdGUgewotICAgICAg
ICBJc1BsYXlpbmdBdWRpbyA9IDEgPDwgMCwKLSAgICAgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8
IDEsCi0gICAgICAgIElzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UgPSAxIDw8IDIsCi0gICAgICAg
IFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nID0gMSA8PCAzLAotICAgICAgICBFeHRl
cm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlID0gMSA8PCA0LAotICAgICAgICBEaWRQbGF5VG9F
bmQgPSAxIDw8IDUsCi0gICAgICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCi0g
ICAgICAgIElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCi0gICAgICAgIElzUHJl
dmlvdXNUcmFja0NvbnRyb2xFbmFibGVkID0gMSA8PCA4LAotICAgICAgICBIYXNQbGF5YmFja1Rh
cmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyID0gMSA8PCA5LAotICAgICAgICBIYXNBdWRpb09yVmlk
ZW8gPSAxIDw8IDEwLAotICAgICAgICBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8
IDExLAotICAgICAgICBIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAotICAg
ICAgICBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTMsCi0gICAgICAgIEhhc011
dGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNCwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRB
dWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE1LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZFZpZGVv
Q2FwdHVyZURldmljZSA9IDEgPDwgMTYsCi0gICAgICAgIEhhc1VzZXJJbnRlcmFjdGVkV2l0aE1l
ZGlhRWxlbWVudCA9IDEgPDwgMTcsCi0gICAgICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2
aWNlID0gMSA8PCAxOCwKLSAgICAgICAgSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEg
PDwgMTksCi0gICAgICAgIEhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8
IDIwLAotICAgIH07Ci0gICAgdXNpbmcgTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlh
U3RhdGU+OworICAgIHVzaW5nIE1lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTsK
KyAgICB1c2luZyBNdXRlZFN0YXRlID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGU7CisgICAgdXNp
bmcgTWVkaWFTdGF0ZUZsYWdzID0gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFnczsKKyAgICB1
c2luZyBNdXRlZFN0YXRlRmxhZ3MgPSBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzOworCiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgSXNOb3RQbGF5aW5nID0geyB9Owog
ICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ2FwdHVyZU1hc2sgPSB7
IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFz
TXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9D
YXB0dXJlRGV2aWNlIH07CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgVmlk
ZW9DYXB0dXJlTWFzayA9IHsgTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNl
LCBNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFz
SW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgfTsKQEAgLTY5LDIwICs4OSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCA9IDA7
CiAKLSAgICBlbnVtIGNsYXNzIE1lZGlhQ2FwdHVyZUtpbmQgewotICAgICAgICBBdWRpbywKLSAg
ICAgICAgVmlkZW8sCi0gICAgICAgIEF1ZGlvVmlkZW8KLSAgICB9OwotCi0gICAgZW51bSBjbGFz
cyBNdXRlZFN0YXRlIHsKLSAgICAgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAotICAgICAgICBB
dWRpb0NhcHR1cmVJc011dGVkID0gMSA8PCAxLAotICAgICAgICBWaWRlb0NhcHR1cmVJc011dGVk
ID0gMSA8PCAyLAotICAgICAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKLSAgICB9
OwotCi0gICAgdXNpbmcgTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE11dGVkU3RhdGU+Owog
ICAgIHN0YXRpYyBjb25zdGV4cHIgTXV0ZWRTdGF0ZUZsYWdzIEF1ZGlvQW5kVmlkZW9DYXB0dXJl
SXNNdXRlZCA9IHsgTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6
VmlkZW9DYXB0dXJlSXNNdXRlZCB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTXV0ZWRTdGF0ZUZs
YWdzIE1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVy
ZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlNj
cmVlbkNhcHR1cmVJc011dGVkIH07CiAKQEAgLTk2LDQ5ICsxMDIsNDkgQEAgcHJvdGVjdGVkOgog
CiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kPiB7CiAgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlS2luZDo6QXVkaW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZDo6QXVkaW8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2Fw
dHVyZUtpbmQ6OkF1ZGlvVmlkZW8KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlPiB7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiB7CiAg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRv
cmluZywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJu
YWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLAot
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJh
Y2tDb250cm9sRW5hYmxlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1
cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNl
LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1
cHRlZEF1ZGlvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1l
ZGlhRWxlbWVudCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkRGlzcGxh
eUNhcHR1cmVEZXZpY2UKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUs
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRp
bywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nLAorICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVu
dFBsYXlpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc05l
eHRUcmFja0NvbnRyb2xFbmFibGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxp
c3RlbmVyLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVk
aW9PclZpZGVvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2Fw
dHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlD
YXB0dXJlRGV2aWNlCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gewogICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1
ZGlvSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
QXVkaW9DYXB0dXJlSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCiAgICAgPjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDg4NTMzYjNkMmIzNzE4MmUxNjA1MmZlZDEyOTM2OGE0
NmU0MjI5YWYuLmNmMTcwMTNlNWQ2ODZmMDFkNTIyZDZkNjc3OTY0ODJmNTllZTRjZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2lu
Y2x1ZGUgIkVkaXRvci5oIgpAQCAtMjE3MCw3ICsyMTcxLDcgQEAgdm9pZCBQYWdlOjpzdG9yYWdl
QmxvY2tpbmdTdGF0ZUNoYW5nZWQoKQogCiB2b2lkIFBhZ2U6OnVwZGF0ZUlzUGxheWluZ01lZGlh
KCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZTsKICAgICBmb3JFYWNoRG9jdW1lbnQoWyZd
KGF1dG8mIGRvY3VtZW50KSB7CiAgICAgICAgIHN0YXRlLmFkZChkb2N1bWVudC5tZWRpYVN0YXRl
KCkpOwogICAgIH0pOwpAQCAtMjIwOCw3ICsyMjA5LDcgQEAgdm9pZCBQYWdlOjpwbGF5YmFja0Nv
bnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCkKIAogI2VuZGlmCiAKLXZvaWQgUGFnZTo6c2V0TXV0
ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQordm9pZCBQYWdlOjpzZXRN
dXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQogewogICAgIG1fbXV0ZWRT
dGF0ZSA9IG11dGVkOwogCkBAIC0yMjE3LDcgKzIyMTgsNyBAQCB2b2lkIFBhZ2U6OnNldE11dGVk
KE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKICAgICB9KTsKIH0KIAotdm9p
ZCBQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQg
a2luZCkKK3ZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZCBraW5kKQogewogICAgIFVOVVNFRF9QQVJBTShraW5kKTsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpAQCAtMzAxOCw3ICszMDE5LDcgQEAgdm9pZCBQYWdlOjpzaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXgK
ICNlbmRpZgogfQogCi12b2lkIFBhZ2U6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVE
aWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQs
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgUGFnZTo6cGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKIHsKICAgICBjaHJvbWUoKS5jbGllbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5
NGY4YjhkYTkyMDY5NjM3ODhjNTE2MTY1M2U1MDVjY2MwMDUzODM5Li5mYTg4OWY0YzRjZmRiMmRk
YzNjODQzMzdjNmFjOTE3Y2UwYjkyODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTc3LDYgKzE3Nywx
MiBAQCBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDogYm9v
bDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGUgOiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQgOiB1aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZSA6IHVpbnQ4X3Q7CisKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBP
cHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVkaWFQcm9kdWNlck11
dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CiAKIGVu
dW0gY2xhc3MgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5y
ZXNwb25zaXZlIH07CiBlbnVtIGNsYXNzIE1haW5GcmFtZU1haW5SZXNvdXJjZSA6IGJvb2wgeyBO
bywgWWVzIH07CkBAIC03MjksMTggKzczNSwxOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQpOwogICAgIGJvb2wgdXNlc0VwaGVt
ZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9
CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQorICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MgbWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQogICAgIHZvaWQg
dXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3MgbXV0ZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQotICAgIGJvb2wg
aXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH0KLSAgICBib29sIGlzTWVkaWFD
YXB0dXJlTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCk7IH07CisgICAgTWVkaWFQcm9k
dWNlck11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0
YXRlOyB9CisgICAgaW5saW5lIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3Q7CisgICAgaW5saW5l
IGJvb2wgaXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0OwogICAgIHZvaWQgc2NoZWR1bGVQbGF5
YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lk
IHBsYXliYWNrQ29udHJvbHNNZWRpYUVuZ2luZUNoYW5nZWQoKTsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3MpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlh
UHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rv
cE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAKICAgICBNZWRp
YVNlc3Npb25Hcm91cElkZW50aWZpZXIgbWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyKCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtZWRpYVBsYXliYWNrRXhpc3RzKCk7CkBAIC03
NjMsNyArNzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBy
ZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJvb2wsIFJv
dXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVk
KGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
TW9ja1N0YXRlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CkBAIC05OTYsNyArMTAwMiw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2luTG93UXVhbGl0eUludGVycG9sYXRpb25Nb2RlIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQgeyB0cnVlIH07CiAgICAgZmxv
YXQgbV9tZWRpYVZvbHVtZSB7IDEgfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3MgbV9tdXRlZFN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbV9tdXRl
ZFN0YXRlOwogCiAgICAgZmxvYXQgbV9wYWdlU2NhbGVGYWN0b3IgeyAxIH07CiAgICAgZmxvYXQg
bV96b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IgeyAwIH07CkBAIC0xMTIwLDcgKzExMjYsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jl
c3RvcmluZ0NhY2hlZFBhZ2UgeyBmYWxzZSB9OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1fbWVkaWFTdGF0ZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBUaW1lciBtX3BsYXliYWNr
Q29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGRhOTIyNjNhNzIzMjgzNjU3ZGVmMzlhMzg1MWUyMGQ2NTZkMDcxYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZWRpYVByb2R1
Y2VyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGlu
ZSBib29sIFBhZ2U6OmlzQXVkaW9NdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWRT
dGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKK30K
KworaW5saW5lIGJvb2wgUGFnZTo6aXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVh
bUNhcHR1cmVJc011dGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVy
LmNwcAppbmRleCA3NjNmZjY0YmY0ZTdlOWUwZmU0NmUxM2Y4ZDgxMzE2ZDhlM2ZhYTZjLi4xYTEy
MTBmYTgzMzdjZDk1MjBmNGUwMTFhOTA3MzY3NTRkZTUxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNTU0ltcG9y
dFJ1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggMWRiZDE1M2I5NjBlYzJjZDMyNWQ3
OTgyMDMzMmQyOGVlYzU2NGMxMy4uMjkwOTE2MDBjYjE5NzdmOWQzMzVjMWVmYWZlYjE5MjhkZWY5
MWRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5U291cmNlLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5o
IgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCkBAIC03NzUsNyAr
Nzc1LDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25z
dCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICB1bnNpZ25lZCBzaG9ydCBodHRw
U3RhdHVzQ29kZSA9IG1fc2VsZlNvdXJjZVByb3RvY29sID09ICJodHRwIiA/IG1faHR0cFN0YXR1
c0NvZGUgOiAwOwogCiAgICAgLy8gMS4gRGlzcGF0Y2ggdmlvbGF0aW9uIGV2ZW50LgotICAgIFNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgdmlvbGF0aW9uRXZlbnRJbml0OworICAg
IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsKICAg
ICB2aW9sYXRpb25FdmVudEluaXQuZG9jdW1lbnRVUkkgPSBpbmZvLmRvY3VtZW50VVJJOwogICAg
IHZpb2xhdGlvbkV2ZW50SW5pdC5yZWZlcnJlciA9IG1fcmVmZXJyZXI7CiAgICAgdmlvbGF0aW9u
RXZlbnRJbml0LmJsb2NrZWRVUkkgPSBibG9ja2VkVVJJOwpAQCAtNzgzLDcgKzc4Myw3IEBAIHZv
aWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBl
ZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmVmZmVjdGl2ZURp
cmVjdGl2ZSA9IGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlOwogICAgIHZpb2xhdGlvbkV2ZW50
SW5pdC5vcmlnaW5hbFBvbGljeSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAg
ICB2aW9sYXRpb25FdmVudEluaXQuc291cmNlRmlsZSA9IGluZm8uc291cmNlRmlsZTsKLSAgICB2
aW9sYXRpb25FdmVudEluaXQuZGlzcG9zaXRpb24gPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaXNS
ZXBvcnRPbmx5KCkgPyBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6
UmVwb3J0IDogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OkVuZm9y
Y2U7CisgICAgdmlvbGF0aW9uRXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3Rp
dmVMaXN0LmlzUmVwb3J0T25seSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bv
c2l0aW9uOjpSZXBvcnQgOiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246
OkVuZm9yY2U7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LnN0YXR1c0NvZGUgPSBodHRwU3RhdHVz
Q29kZTsKICAgICB2aW9sYXRpb25FdmVudEluaXQubGluZU51bWJlciA9ICBpbmZvLmxpbmVOdW1i
ZXI7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmNvbHVtbk51bWJlciA9IGluZm8uY29sdW1uTnVt
YmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3lDbGllbnQuaAppbmRleCA4ZTA1MTgyNjQxNDA2ZjJjYzhjYWEyZGM1NmFlMzM2MDYzNGU2
YjFlLi5mMmZlNjM4OTQ2NDk2ZWRiYjMwMzg0NTM5OGZmOWU3Mzk3YzM0YmQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQu
aApAQCAtNTEsNyArNTEsNyBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgQ29udGVudFNlY3VyaXR5
UG9saWN5Q2xpZW50IHsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDU1BWaW9sYXRp
b25SZXBvcnQoVVJMJiYsIFJlZjxGb3JtRGF0YT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBl
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJikgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDcyZTRmNjkxYjRmOTUyNTc1ZDkz
MTFlNGQwYTdkZTE3Y2ZmMDIzNjguLmQwYTRmZTRhMjBlMGFlOGQyN2RlM2Q0YjllZTY5ZTUwN2E1
YTBlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAj
aW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAj
aW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNTAwZmRiMGZkY2NjM2UzMTliY2Q2MWFl
MjNiNGRlZWUwNWRhOWE1Zi4uYTE0ODg3ZmM3NzVlMmI5N2I2OWY5YzU5NWFlODI3MGFhZDcxMWM4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFNdXRleC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCmluZGV4IDEzYmExNWQ3YTJjZWExNzk5ODVhYTFm
N2EwZDUzM2U5Y2Q0NzhmNGMuLjcxZmIyMjM1YWRlYTdhN2YyNDUxNmY0MjE4YmRhODk1MjdhZDUy
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
QmlkaVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiQnJlYWtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRmxvYXRpbmdPYmplY3RzLmgiCiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yQm94LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkNGQ5ZjJjNzE5ZWJj
NDlhZGRiMmJiZWJmZWVjNDFhZTFiY2RjZWVlLi5mMTQ0OTgxNDU2ZmZmODg0MWNkYjE0ODVjYmU2
NWZjNDhiMjY5NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
QEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgog
I2luY2x1ZGUgIkV2ZW50UmVnaW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHAKaW5kZXggODNhMGVjMzliNDliZTM1OTQ2ZmRkOTE5NGY3ZWFiNDI3NzgzNzNk
OS4uMjdmOWQ0ZTMzODY5MzhmYTNhZjhiMGE4YTZhMDE5M2JjNGEwZDQ1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIK
ICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAppbmRleCBiNGU1MzNhNjc5MGM1MzM2MjE0YTRmNTI0M2I1YmZlYjdi
OWI4ODA1Li43NzdkODQwNjYxZGNiZjRlMDE4ODRhOTE5YmVhZDRkMTQzMWY4MjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUg
IkZvbnRDYXNjYWRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggNjdkZjYxODQyM2JlMWM1ODZjMzI4Y2Q2NDMxM2RiNTZlZDdjZTM4Yi4uY2FiNjNm
NWIxNGNlNWViODdlZTRkODdhODBiMzg2NWRmYjZlOWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJE
ZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxN2RmOTRlYzQwY2MyZTE5NjRk
MDVjYTI4MzMwZDkwMTI5MGUyMDkxLi4xMDJjNGVlMTZjMGQxYWQ0ZDgxNTdmODFiZTQ2NjZiZjQz
ZDE2ODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDb2xvckJsZW5kaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAppbmRleCBmNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMzNjljNmQ0YWU4
YWVjLi5iMGQzNzE0YjFiYzRjYzZiYmQ0OGFkYjdmMjkzNjc3MzE0YWEwODg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRl
ICJFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgpAQCAt
MTc5Myw3ICsxNzk0LDcgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnVzZURhcmtBcHBlYXJhbmNlKCkg
Y29uc3QKICAgICByZXR1cm4gZG9jdW1lbnQoKS51c2VEYXJrQXBwZWFyYW5jZSgmc3R5bGUoKSk7
CiB9CiAKLU9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxl
Q29sb3JPcHRpb25zKCkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gUmVuZGVy
T2JqZWN0OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50
KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCmluZGV4IDEyNjAwMDRmNWMyZjdlMWRkMDJiMjQwODU1ZDIxNTg1NWJm
NmIzM2IuLmM1MzRjOWZkZDA1ZDU4NDcwZmE3ZTY2MTQ4NmE2YWVhY2NkNjY4ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJs
aWM6CiAgICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkg
Y29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29u
c3Q7Ci0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25z
KCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucygpIGNvbnN0OwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICB2b2lkIHNldEhhc0FYT2Jq
ZWN0KGJvb2wgZmxhZykgeyBtX2hhc0FYT2JqZWN0ID0gZmxhZzsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggN2VlOTQ0MjZjYzUyYmFkYjQwZmZj
NGNiN2NmYmQxMjc3NGJjZTczYS4uMWZlNjNiMTU3OTY5ZGU4MDllOGZiM2E4ZTQ4MDIyZmJiODI5
ODY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBA
IC0xNTksNyArMTU5LDcgQEAgQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdo
dENvbG9yKCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0hpZ2hsaWdodGVkKHN0
YXRlLCBoaWdobGlnaHREYXRhKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgICAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHls
ZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5j
ZSB9OworICAgICAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5j
ZSB9OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUoKS5hcHBIaWdobGlnaHRDb2xv
cihzdHlsZUNvbG9yT3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDQ4ZGNmYjNjOGZhMDZj
MzcyMTViYTQ3MDRjMjUyNjA0OWJkYjYxMGYuLjM0MzdjYWM0ZWQ3ODg5NTRjYTg0NWU3MjJiZTk0
OGFhNTRhOTZiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCcmVha0xpbmVzLmgiCiAjaW5jbHVkZSAiQnJlYWtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyUHJvcGVydGllcy5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBiOTA4MmI1Njc3OTVmMmNkNWU0ZDZh
NzRkNzAzM2E4NWU4NzFjMDVjLi44Y2JlYmZlYmNiYmYzOGYyODJhYmNjYzRmNmQ1MDE1ZGY5NmM4
NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTYwMyw3
ICs2MDMsNyBAQCBMYXlvdXRQb2ludCBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJv
bU11dGVCdXR0b24oY29uc3QgUmVuZGVyQm94JiBtdXRlQgogCiAjZW5kaWYKIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAg
ICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBA
IC02MTEsNyArNjExLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2Fj
aGUuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6aW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBp
ZiAoIWNhY2hlLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAg
LTYxOSwxMiArNjE5LDEyIEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNh
Y2hlLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZTo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xv
ciwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3Is
IE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJsZW5k
V2l0aFdoaXRlKGNvbG9yKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8m
IGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAtNjMyLDcgKzYzMiw3IEBAIENvbG9yIFJlbmRlclRoZW1l
OjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+CiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9y
Q2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9w
dGlvbnMpKQpAQCAtNjQwLDcgKzY0MCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAg
cmV0dXJuIGNhY2hlLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9y
Q2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY0OCw3ICs2NDgsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZTo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6TwogICAgIHJldHVybiBjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUu
aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY1
Niw3ICs2NTYsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5p
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShv
cHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cnMob3B0aW9ucykpCkBAIC02NjQsNyArNjY0LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8K
ICAgICByZXR1cm4gY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8m
IGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTY3Miw0NyArNjcyLDQ3IEBA
IENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6CiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewog
ICAgIC8vIFVzZSBhIGJsdWUgY29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUg
ZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjpibHVlOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVXNlIGEgd2hpdGUgY29sb3IgYnkgZGVmYXVs
dCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0
dXJuIENvbG9yOjp3aGl0ZTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAv
LyBVc2UgYSBncmV5IGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNu
J3QgZGVmaW5lIGFueXRoaW5nLgogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94J3Mg
aW5hY3RpdmUgY29sb3IuCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3
NiB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNr
IGNvbG9yIGJ5IGRlZmF1bHQuCiAgICAgcmV0dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVy
biBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0KQEAgLTEyMzQsMTAgKzEyMzQsMTAgQEAgdm9pZCBS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFBhZ2U6OnVwZGF0ZVN0
eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKIH0KIAotYXV0
byBSZW5kZXJUaGVtZTo6Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QgLT4gQ29sb3JDYWNoZSYKK2F1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2Fj
aGUoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xvckNh
Y2hlJgogewogICAgIGF1dG8gb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsgPSBvcHRpb25zOwot
ICAgIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnJlbW92ZShTdHlsZUNvbG9yOjpPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CisgICAgb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsucmVtb3Zl
KFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CiAKICAgICByZXR1cm4gbV9jb2xv
ckNhY2hlTWFwLmVuc3VyZShvcHRpb25zSWdub3JpbmdWaXNpdGVkTGluay50b1JhdygpLCBbXSB7
CiAgICAgICAgIHJldHVybiBDb2xvckNhY2hlKCk7CkBAIC0xMjg0LDExICsxMjg0LDExIEBAIHZv
aWQgUmVuZGVyVGhlbWU6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24mIGZvCiAgICAgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0
aW9uKHN5c3RlbUZvbnRJRCwgZm9udERlc2NyaXB0aW9uKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWU6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29s
b3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZVdlYmtpdExpbms6Ci0gICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5rKSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAx
MzkgfSA6IFNSR0JBPHVpbnQ4X3Q+IHsgMCwgMCwgMjM4IH07CisgICAgICAgIHJldHVybiBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1
aW50OF90PiB7IDg1LCAyNiwgMTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9Owog
ICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRBY3RpdmVsaW5rOgogICAgIGNhc2UgQ1NTVmFsdWVBY3Rp
dmV0ZXh0OgogICAgICAgICByZXR1cm4gQ29sb3I6OnJlZDsKQEAgLTEzNjksNyArMTM2OSw3IEBA
IENvbG9yIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6
dGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBv
cHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0
byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUudGV4dFNlYXJj
aEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEzNzcsMTMgKzEzNzcsMTMgQEAgQ29sb3Ig
UmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW8KICAgICByZXR1cm4gY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKICNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRp
b25zKTsKICAgICBpZiAoIWNhY2hlLmFwcEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEz
OTEsMTMgKzEzOTEsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb24KICAgICByZXR1cm4gY2Fj
aGUuYXBwSGlnaGxpZ2h0Q29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFw
cEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAj
ZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwog
ICAgIGlmICghY2FjaGUuZGVmYXVsdEJ1dHRvblRleHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xNDA1
LDcgKzE0MDUsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucwogICAgIHJldHVybiBjYWNoZS5k
ZWZhdWx0QnV0dG9uVGV4dENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1E
ZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVlQWN0aXZlYnV0dG9udGV4dCwgb3B0aW9ucyk7CiB9
CkBAIC0xNDY1LDcgKzE0NjUsNyBAQCB2b2lkIFJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1c1Jp
bmdDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgY3VzdG9tRm9jdXNSaW5nQ29sb3IoKSA9
IGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6
Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGlmIChjdXN0b21Gb2N1c1JpbmdDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIGN1c3RvbUZvY3VzUmluZ0NvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCmluZGV4IGU3ZTZlYmIxYjlkMWViYjE4ODA3ZmIwYWE4OTE2ZjljODAxZjc4MzEu
Ljg2ZjllN2Q1OGUyMWQwNmNhMGQyMjIzYTFlMDQ0NjQzNzQ0MzI1ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNDYsMzQgKzE0NiwzNCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzQm94U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFRleHQgc2VsZWN0aW9uIGNvbG9ycy4KLSAg
ICBDb2xvciBhY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1
YWwgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAg
ICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsK
IAogICAgIC8vIExpc3QgYm94IHNlbGVjdGlvbiBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Q7Ci0gICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENv
bG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBD
b2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owog
CiAgICAgLy8gSGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBzZWFyY2ggbWF0Y2hlcy4KLSAgICBDb2xv
ciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdDsKKyAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAg
ICAgLy8gRGVmYXVsdCBoaWdobGlnaHRpbmcgY29sb3IgZm9yIGFwcCBoaWdobGlnaHRzLgotICAg
IENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Q7CisgICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Q7CiAjZW5kaWYKIAotICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBkZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owog
CiAgICAgQ29sb3IgZGF0ZVBsYWNlaG9sZGVyVGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29s
b3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpIGNvbnN0OwogCiAgICAgdmlydHVhbCBD
b2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xv
ciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAg
dmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CisgICAgV0VCQ09SRV9F
WFBPUlQgQ29sb3IgZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQogICAg
IHN0YXRpYyB2b2lkIHNldEN1c3RvbUZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJik7CiAgICAg
c3RhdGljIGZsb2F0IHBsYXRmb3JtRm9jdXNSaW5nV2lkdGgoKSB7IHJldHVybiAzOyB9CiAgICAg
c3RhdGljIGZsb2F0IHBsYXRmb3JtRm9jdXNSaW5nT2Zmc2V0KGZsb2F0IG91dGxpbmVXaWR0aCkg
eyByZXR1cm4gc3RkOjptYXg8ZmxvYXQ+KG91dGxpbmVXaWR0aCAtIHBsYXRmb3JtRm9jdXNSaW5n
V2lkdGgoKSwgMCk7IH0KQEAgLTE4Nyw3ICsxODcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTeXN0
ZW0gZm9udHMgYW5kIGNvbG9ycyBmb3IgQ1NTLgogICAgIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1
ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBz
eXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0OworICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtTWVu
dUxpc3RTaXplKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0y
NzIsMjUgKzI3MiwyNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hl
ZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbiYpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rp
b24gY29sb3IuCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owor
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7
CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRD
b2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3JzKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAogI2lmICFVU0UoTkVXX1RIRU1FKQogICAgIC8vIE1ldGhvZHMgZm9yIGVhY2ggYXBwZWFyYW5j
ZSB2YWx1ZS4KQEAgLTQ1MSw3ICs0NTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIENvbG9yIGRl
ZmF1bHRCdXR0b25UZXh0Q29sb3I7CiAgICAgfTsKIAotICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYg
Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3JDYWNoZSYgY29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlv
blN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcAppbmRleCAzMmFiNWMyYzk4
NjIzNDQyM2VhNDlmZjg0MWMzNTdhM2E4ZGRjNmI2Li5kMWQ2MjNlNjczMGYyYzJjNWY0ZDdhNWYz
MmZhMDA4ZWIyMWMyMjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVBZHdhaXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVBZHdhaXRhLmNwcApAQCAtMTM1LDQ5ICsxMzUsNDkgQEAgYm9vbCBSZW5kZXJUaGVtZUFk
d2FpdGE6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50
JiBlbGUKICAgICByZXR1cm4gZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRo
ZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigp
KS5pbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0
YTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdh
aXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3
YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0
YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRo
ZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVt
ZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAK
LUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3
YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdh
aXRhOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1G
b2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFRo
ZW1lQWR3YWl0YTo6Zm9jdXNDb2xvcihvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgcmV0dXJuIFRoZW1lQWR3YWl0YTo6Zm9jdXND
b2xvcihvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5j
ZSkpOwogfQogCiB2b2lkIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFu
Z2UoKQpAQCAtMjAzLDkgKzIwMyw5IEBAIFZlY3RvcjxTdHJpbmcsIDI+IFJlbmRlclRoZW1lQWR3
YWl0YTo6bWVkaWFDb250cm9sc1NjcmlwdHMoKQogfQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRo
ZW1lQWR3YWl0YTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3
YWl0YTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAKICAgICBzd2l0
Y2ggKGNzc1ZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlvbjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCA2Yzc5OTMy
M2I3ZGRiYmQxNTk5MDE3ZDYwY2ZlY2YwOTEyNDQwMmViLi45OTMzMjVjNDE2NjVlZGRiMzQ4OTdm
Y2M3ZTUzMzg3NTg1OGMyYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQWR3YWl0YS5oCkBAIC00NiwxNSArNDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRl
RGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZSB7IH07CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
LSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAg
ICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1
c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZp
bmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7
CiAgICAgdm9pZCBwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgYm9vbCBw
YWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBGbG9hdFJlY3QmKSBmaW5hbDsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAjZW5kaWYKIAotICAgIENvbG9yIHN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QgZmluYWw7CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxF
TUVOVCkKICAgICBJbnRTaXplIHNsaWRlclRpY2tTaXplKCkgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IDRiMTAxYjM4YjVjOGUxNGQw
YTY3N2Y1MDc0M2QxZDY3YjQ1MTMxNGYuLmNiNWU4ZDhkYThjMjliYWUzMGE1YWMwYjVhMmRiNmZh
OGQ3YWU3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBA
IC0xMTUsMTAgKzExNSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRTZWFyY2hGaWVsZERl
Y29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gp
Ci0gICAgQ29sb3IgY2hlY2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3Rh
dGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOwotICAgIENvbG9y
IGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9w
dGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pOworICAgIENvbG9yIGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29u
dHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CisgICAg
Q29sb3IgY2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2ln
biwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pOwogICAgIFJlZlB0cjxHcmFkaWVudD4gY2hlY2tib3hSYWRpb0JhY2tncm91bmRH
cmFkaWVudChjb25zdCBGbG9hdFJlY3QmLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVz
Pik7Ci0gICAgQ29sb3IgY2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250
cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOworICAg
IENvbG9yIGNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRl
czo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAKICAgICBib29sIHBh
aW50Q2hlY2tib3goY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3Qg
RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludFJhZGlvKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAt
MTU2LDEyICsxNTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc3VwcG9ydHNCb3hTaGFkb3co
Y29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJy
aWRlOwotICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBv
dmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENv
bG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAgQ29sb3IgcGxh
dGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCkBAIC0xOTgsNyArMTk4LDcgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UmVj
dCBhZGRSb3VuZGVkQm9yZGVyQ2xpcChjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgSW50UmVjdCYpOwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFs
dWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAg
ICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdCBvdmVycmlkZTsKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBSZXRh
aW5QdHI8Q0lDb250ZXh0PiBtX2NpQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbQppbmRleCA2OWVlNDk2MzM2MGU4YzYwNjVjMWZmNzExZjFmYjE2NmRl
M2I0ZjVlLi4zMjE3ZDkxZWY5ODQ1YzczMzI0NjY4ZTM4ZTMwZjhkNzFkMjg5MTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjM3LDEyICsxMjM3
LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9u
cyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBSCiAgICAgaWNvbi0+cGFpbnQocGFpbnRJbmZv
LmNvbnRleHQoKSwgdGh1bWJuYWlsUmVjdCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QKIHsKICAgICByZXR1cm4gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lSU9TOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9T
OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudEJs
YWNrOwogfQpAQCAtMTI2MiwxMyArMTI2MiwxMyBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lz
dGVtRm9jdXNSaW5nQ29sb3IoKQogICAgIHJldHVybiAqY2FjaGVkRm9jdXNSaW5nQ29sb3IoKTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBs
YXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICByZXR1cm4gc3lzdGVtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAogI2lmIEVOQUJMRShB
UFBfSElHSExJR0hUUykKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lSU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1ZSBm
cm9tIFVJS2l0LgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsK
QEAgLTE0MjMsOSArMTQyMyw5IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnNldEZvY3VzUmluZ0Nv
bG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBjYWNoZWRGb2N1c1JpbmdDb2xvcigpID0gY29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNz
c1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0
IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OkZvclZpc2l0ZWRMaW5rKTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAg
Ly8gVGhlIHN5c3RlbSBjb2xvciBjYWNoZSBiZWxvdyBjYW4ndCBoYW5kbGUgdmlzaXRlZCBsaW5r
cy4gVGhlIG9ubHkgY29sb3IgdmFsdWUKICAgICAvLyB0aGF0IGNhcmVzIGFib3V0IHZpc2l0ZWQg
bGlua3MgaXMgQ1NTVmFsdWVXZWJraXRMaW5rLCBzbyBoYW5kbGUgaXQgaGVyZSBieQpAQCAtMTQz
Nyw4ICsxNDM3LDggQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVl
SUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KIAogICAgIGF1dG8mIGNhY2hl
ID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICByZXR1cm4gY2FjaGUuc3lzdGVtU3R5bGVDb2xv
cnMuZW5zdXJlKGNzc1ZhbHVlSUQsIFt0aGlzLCBjc3NWYWx1ZUlELCBvcHRpb25zXSAoKSAtPiBD
b2xvciB7Ci0gICAgICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKLSAgICAgICAg
Y29uc3QgYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFp
bnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwor
ICAgICAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBjb25zdCBib29s
IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yT3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAgICAgICBpZiAo
IWdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgewogICAgICAgICAg
ICAgYXV0byBpdCA9IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFs
dWVLZXkgeyBjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50
ZXJmYWNlTGV2ZWwgfSk7CiAgICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5
c3RlbUNvbG9yTWFwKCkuZW5kKCkpCkBAIC0yMDQ3LDcgKzIwNDcsNyBAQCBjb25zdGV4cHIgYXV0
byBuYXRpdmVDb250cm9sQm9yZGVyV2lkdGggPSAxLjBmOwogY29uc3RleHByIGF1dG8gY2hlY2ti
b3hSYWRpb0JvcmRlcldpZHRoID0gMS41ZjsKIGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94UmFkaW9C
b3JkZXJEaXNhYmxlZE9wYWNpdHkgPSAwLjNmOwogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hl
Y2tib3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0
YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQor
Q29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8
Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gc3R5bGVDb2xvck9wdGlvbnMpCiB7CiAgICAgYXV0byBkZWZhdWx0Qm9yZGVyQ29sb3IgPSBz
eXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWwsIHN0eWxlQ29sb3JP
cHRpb25zKTsKIApAQCAtMjA2MCw3ICsyMDYwLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNo
ZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPgog
ICAgIHJldHVybiBkZWZhdWx0Qm9yZGVyQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9T
OjpjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBP
cHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpj
aGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRp
b25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCiB7CiAgICAgYm9vbCBpc0VtcHR5ID0gIXN0YXRl
cy5jb250YWluc0FueSh7IENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6Q2hlY2tlZCwgQ29udHJvbFN0
YXRlczo6U3RhdGVzOjpJbmRldGVybWluYXRlIH0pOwogICAgIGJvb2wgaXNFbmFibGVkID0gc3Rh
dGVzLmNvbnRhaW5zKENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6RW5hYmxlZCk7CkBAIC0yMTAwLDEy
ICsyMTAwLDEyIEBAIFJlZlB0cjxHcmFkaWVudD4gUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFk
aW9CYWNrZ3JvdW5kR3JhZGllbnQoY29uc3QgRmxvYXRSZWN0CiAgICAgcmV0dXJuIGdyYWRpZW50
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9y
KE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3Rh
dGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlv
bnMpCiB7CiAgICAgaWYgKCFzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpF
bmFibGVkKSkKICAgICAgICAgcmV0dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1U
ZXJ0aWFyeUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyk7CiAKLSAgICBDb2xvciBlbmFibGVkSW5k
aWNhdG9yQ29sb3IgPSBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxl
Q29sb3JPcHRpb25zIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwor
ICAgIENvbG9yIGVuYWJsZWRJbmRpY2F0b3JDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBw
bGVTeXN0ZW1MYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yT3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpOwogICAgIGlmIChzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6
U3RhdGVzOjpQcmVzc2VkKSkKICAgICAgICAgcmV0dXJuIGVuYWJsZWRJbmRpY2F0b3JDb2xvci5j
b2xvcldpdGhBbHBoYU11bHRpcGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCAxZTYxNjg3NjBmMTE3NDc3
NjFhOGEzYzNlNWIyZThkNmQyZDFiODhkLi5jNDFmNzQ5MDA5MjVlZmExNjVlZWVlODlkNjhiOGU2
NjYxMDUzNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApA
QCAtNTMsMjMgKzUzLDIzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNDb250cm9sU3R5bGVkKGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25z
dCBmaW5hbDsKIAotICAgIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0KLSAgICBDb2xvciBw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
ZmluYWw7Ci0gICAgQ29sb3IgdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAg
ICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAg
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3Vz
UmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0g
ICAgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwor
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAg
IENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCi0gICAg
Q29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9u
VGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAg
ICAgU2Nyb2xsYmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRy
b2xQYXJ0KSBmaW5hbCB7IHJldHVybiBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGw7IH0KIApA
QCAtMTU5LDcgKzE1OSw3IEBAIHByaXZhdGU6CiBwcml2YXRlOgogICAgIFN0cmluZyBmaWxlTGlz
dE5hbWVGb3JXaWR0aChjb25zdCBGaWxlTGlzdCosIGNvbnN0IEZvbnRDYXNjYWRlJiwgaW50IHdp
ZHRoLCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9y
IHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QgZmluYWw7CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICAgICAvLyBHZXQgdGhlIGNvbnRy
b2wgc2l6ZSBiYXNlZCBvZmYgdGhlIGZvbnQuIFVzZWQgYnkgc29tZSBvZiB0aGUgY29udHJvbHMg
KGxpa2UgYnV0dG9ucykuCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQppbmRleCBhMTRmZWNjY2ViYmY3YzE1YWFiOTlhZDQwMmFhZDcyMjY4NTIwYzYw
Li5kNDM3ZjQ4MjY2NWMzMzNjYTIzNmUwYjM3NTgyNmEzZjJhYTY0YzQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yODQsMTYgKzI4NCwxNiBAQCBO
U1ZpZXcgKlJlbmRlclRoZW1lTWFjOjpkb2N1bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0
JiBvKSBjb25zdAogICAgIHJldHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZy
YW1lVmlldygpLCBzdGF0ZXMpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBl
YXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkp
OwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dEJhY2tn
cm91bmRDb2xvcl0pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0Nv
bG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dEJhY2tncm91bmRDb2xvcl0pOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CkBAIC0zMDEsOSArMzAxLDkgQEAgQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ28KICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6
dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJU
aGVtZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBj
b2xvciwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFw
cGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpKSB7CiAgICAgICAgIC8vIFVzZSBhbiBhbHBo
YSB2YWx1ZSB0aGF0IGlzIHNpbWlsYXIgdG8gcmVzdWx0cyBmcm9tIGJsZW5kV2l0aFdoaXRlKCkg
b24gbGlnaHQgY29sb3JzLgogICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya0FwcGVhcmFu
Y2VBbHBoYSA9IDAuODsKQEAgLTMxMywyNCArMzEzLDI0IEBAIENvbG9yIFJlbmRlclRoZW1lTWFj
Ojp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBP
cHRpCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoY29sb3IsIG9wdGlvbnMpOwogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0
c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0Citib29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVjdGlvbkZv
cmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsK
KyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJl
dHVybiBsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJU
aGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdE
YXJrQXBwZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xv
ciBzZWxlY3RlZFRleHRDb2xvcl0pOwogICAgIHJldHVybiB7IH07CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19N
T0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CiAgICAgaWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAg
IHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4
dENvbG9yXSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTM0MCwxMCArMzQwLDEwIEBAIENvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvCiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0
Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NV
UFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uo
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkp
OworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAg
cmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRDb250ZW50QmFja2dyb3Vu
ZENvbG9yXSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM1MywxMCAr
MzUzLDEwIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0CiAjZW5kaWYKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNp
ZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNl
IGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAjZW5k
aWYKQEAgLTM2NCwxNiArMzY0LDE2IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8CiAKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAog
ewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAg
ICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVy
biBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbFRleHRD
b2xvcl0pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9y
RnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0Q29sb3JdKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzgxLDMyICszODEsMzIgQEAgQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDwKICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAo
dXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSkKICAgICAgICAgcmV0dXJuIG9sZEFxdWFGb2N1
c1JpbmdDb2xvcigpOwotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBl
YXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkp
OwogICAgIC8vIFRoZSBjb2xvciBpcyBleHBlY3RlZCB0byBiZSBvcGFxdWUsIHNpbmNlIENvcmVH
cmFwaGljcyB3aWxsIGFwcGx5IG9wYWNpdHkgd2hlbiBkcmF3aW5nIChiZWNhdXNlIG9wYWNpdHkg
aXMgbm9ybWFsbHkgYW5pbWF0ZWQpLgogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0Nv
bG9yIGtleWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcl0pLm9wYXF1ZUNvbG9yKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lTWFjOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Ig
ZmluZEhpZ2hsaWdodENvbG9yXSk7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1D
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZv
cm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAog
ewogICAgIC8vIEZJWE1FOiBleHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBBcHBLaXQuCiAgICAg
cmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OwogfQogI2VuZGlmCiAKLUNv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRl
cm5hdGVTZWxlY3RlZENvbnRyb2xUZXh0Q29sb3JdKTsKIH0KIApAQCAtNDQ5LDExICs0NDksMTEg
QEAgc3RhdGljIFNSR0JBPHVpbnQ4X3Q+IG1lbnVCYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVy
biBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZzxTUkdCQTx1aW50OF90Pj4ocGl4ZWxbMF0sIHBp
eGVsWzFdLCBwaXhlbFsyXSwgcGl4ZWxbM10pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xv
cihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKLSAgICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwot
ICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIGZvclZp
c2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNp
dGVkTGluayk7CisgICAgY29uc3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgY29u
c3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9w
dGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5r
ID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwog
CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogCkBAIC0xNTcxLDcgKzE1
NzEsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0
eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCogZSkgYwogICAgIC8vIFNldCB0aGUgZm9yZWdyb3Vu
ZCBjb2xvciB0byBibGFjayBvciBncmF5IHdoZW4gd2UgaGF2ZSB0aGUgYXF1YSBsb29rLgogICAg
IENvbG9yIGMgPSBDb2xvcjo6ZGFya0dyYXk7CiAgICAgaWYgKGUpIHsKLSAgICAgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29s
b3JPcHRpb25zKCZzdHlsZSk7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucyA9IGUtPmRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKTsKICAgICAg
ICAgYyA9ICFlLT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSA/IHN5c3RlbUNvbG9yKENTU1ZhbHVl
QnV0dG9udGV4dCwgb3B0aW9ucykgOiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUdyYXl0ZXh0LCBvcHRp
b25zKTsKICAgICB9CiAgICAgc3R5bGUuc2V0Q29sb3IoYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAppbmRleCA4NWRhYWQ4NTc3YmQ4ZTc2YzdhZDk3OGUy
YzJkZDBjODA0ZTFjYjhjLi4wZDQ1YWQ1ZTkyMzBmZDI1OTczNWZjNjFkZTg1ZDA4ZWUzMmFjYTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTI4
NSwyNSArMjg1LDI1IEBAIGJvb2wgUmVuZGVyVGhlbWVXaW46OnN1cHBvcnRzSG92ZXIoY29uc3Qg
UmVuZGVyU3R5bGUmKSBjb25zdAogICAgIHJldHVybiBoYXZlVGhlbWU7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3QKIHsKICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENP
TE9SX0hJR0hMSUdIVCk7CiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZhbHVlKGNv
bG9yKSwgR2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdp
bjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJl
Zm94LgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDE3NiwgMTc2LCAxNzYgfTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lz
Q29sb3IoQ09MT1JfSElHSExJR0hUVEVYVCk7CiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsg
R2V0UlZhbHVlKGNvbG9yKSwgR2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9Owog
fQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAg
ICByZXR1cm4gcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7
CiB9CkBAIC0xMDAyLDcgKzEwMDIsNyBAQCBzdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9y
SW5kZXgoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWVXaW46OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6c3lz
dGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKICAg
ICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lV2luLmgKaW5kZXggYzgxYjUwYTMyYTI5M2ViNjdiMGIyNjI3MDNlMTBlNTAzZTg2ZDgyNS4u
NmIwMGNmMDc4NGMyZjA3ZGFlYzZjMzhmNjJjZmQ0NDZiZDJjN2ZiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJsaWM6
CiAgICAgLy8gQSBtZXRob2QgYXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFjdHVhbGx5
IGNhcmUgYWJvdXQgcmVkcmF3aW5nIHdoZW4gaG92ZXJlZC4KICAgICBib29sIHN1cHBvcnRzSG92
ZXIoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1Zh
bHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRp
b25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHBhaW50Q2hlY2tib3goY29uc3QgUmVu
ZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEZsb2F0UmVjdCYgcikgb3Zl
cnJpZGUKICAgICB7IHJldHVybiBwYWludEJ1dHRvbihvLCBpLCBJbnRSZWN0KHIpKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBhZjA0MTljZjZjNDky
NWQxYzk0NDcyNzNhNzEwNWQxYzRiOTg1YTE3Li5kNmNjOWI3MWE4YWNiMzE5YWU0NWIxYzBlN2Uw
NDFiNGViYWU2ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogCiAjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1
ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhU
TUxGcmFtZU93bmVyRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxl
ZE1hcmtlZFRleHQuY3BwCmluZGV4IGM5Y2ZjN2ZmNWRiMTAwYTQxZWU2MTE0Mzg4NjlkNGExYzdi
ZGVjZWYuLjA0N2YwMmExNzlmYTU2MTNiZDgzYTZmNTc5NzliZjZiMTQwNDI2ZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKQEAgLTczLDcgKzcz
LDcgQEAgc3RhdGljIFN0eWxlZE1hcmtlZFRleHQgcmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChj
b25zdCBNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LAogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCiAgICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKLSAg
ICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0g
eyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgIHN0eWxlLmJhY2tncm91
bmRDb2xvciA9IHJlbmRlcmVyLnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9w
dGlvbnMpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBT
dHlsZWRNYXJrZWRUZXh0IHJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4
dCYgbWFya2VkVGV4dCwKICAgICB9CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpUZXh0TWF0Y2g6IHsK
ICAgICAgICAgLy8gVGV4dCBtYXRjaGVzIGFsd2F5cyB1c2UgdGhlIGxpZ2h0IHN5c3RlbSBhcHBl
YXJhbmNlLgotICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xv
ck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsK
KyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9
IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgICAgIHN0eWxlLnRleHRTdHlsZXMuZmlsbENvbG9yID0gcmVuZGVyZXIudGhl
bWUoKS5zeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRp
b25zKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQ
YWludFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5j
cHAKaW5kZXggYmZmMjE3ZTk0MDEyZTIxZDZjMTJjMDRlODhiODcwOWNmOWU1NzdkYi4uZmM2OGY0
M2VmZGUzNmM0Y2Y4YmUxNTExZWRlODY0ZmQwZmE0YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIFRleHRQYWludFN0
eWxlIGNvbXB1dGVUZXh0UGFpbnRTdHlsZShjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJlbmRl
clN0eWxlJiBsaW5lCiAgICAgaWYgKGxpbmVTdHlsZS5pbnNpZGVEZWZhdWx0QnV0dG9uKCkpIHsK
ICAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYg
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgICAgICAgICBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgICAgICAgICBpZiAocGFnZS0+dXNlU3lz
dGVtQXBwZWFyYW5jZSgpKQotICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOworICAgICAgICAgICAgICAgIG9wdGlvbnMu
YWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICAgICAgICAg
IHBhaW50U3R5bGUuZmlsbENvbG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmRlZmF1bHRC
dXR0b25UZXh0Q29sb3Iob3B0aW9ucyk7CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTdHlsZTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKaW5kZXggNDMwYTM0MmY2M2I5Mzg0NGY0MWI3NTdiMGRm
YWQ5YWFiYjI3Y2NjNC4uOWNlNTE2Yjg2NzNmMzc3NDc0NDExYWYyYjA4NDMwYmFlNWRkMTQ3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1
aWxkZXIuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggNDZkYmY1YmIzM2Q1ZTg1ZTE1MjFhYmU3ODhiOTE3ZmUyODEzYzdhOS4uNDNj
NDljOTUwZTNiOTk1YzY1YjE1MDJjNTViMjM2NjgyMTRhMTM1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUaW1lbGluZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJFdmVudEhhbmRsZXIuaCIKQEAgLTQ2MzMsMTQgKzQ2MzQsMTQgQEAgdm9pZCBJbnRlcm5hbHM6
OnNldFBhZ2VNdXRlZChTdHJpbmdWaWV3IHN0YXRlc1N0cmluZykKICAgICBpZiAoIWRvY3VtZW50
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlRmxhZ3Mgc3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cyBzdGF0ZTsKICAgICBmb3IgKFN0cmluZ1ZpZXcgc3RhdGVTdHJpbmcgOiBzdGF0ZXNTdHJpbmcu
c3BsaXQoJywnKSkgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RhdGVTdHJpbmcsICJhdWRpbyIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdGF0ZVN0cmluZywgImNhcHR1cmVkZXZpY2VzIikpCiAg
ICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRl
U3RyaW5nLCAic2NyZWVuY2FwdHVyZSIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgICAgIHN0
YXRlLmFkZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwog
ICAgIH0KIAogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTQ2NTUs
NDMgKzQ2NTYsNDMgQEAgU3RyaW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUoKQogCiAgICAg
YXV0byBzdGF0ZSA9IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhU3RhdGUoKTsKICAgICBTdHJpbmdC
dWlsZGVyIHN0cmluZzsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQogICAgICAgICBzdHJpbmcu
YXBwZW5kKCJJc1BsYXlpbmdBdWRpbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29u
dGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQ
bGF5aW5nVG9FeHRlcm5hbERldmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jpbmcp
KQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVx
dWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJS
ZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwiKTsKLSAgICBpZiAoc3RhdGUu
Y29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKKyAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKLSAgICBpZiAo
c3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVt
ZW50UGxheWluZykpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgi
SXNTb3VyY2VFbGVtZW50UGxheWluZywiKTsKIAotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkKSkKKyAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzTmV4dFRy
YWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRUcmFja0Nv
bnRyb2xFbmFibGVkLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tD
b250cm9sRW5hYmxlZCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0Nv
bnRyb2xFbmFibGVkLCIpOwogCi0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQor
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikpCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
Ikhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7Ci0gICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykp
CisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
dWRpb09yVmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7
Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9D
YXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2
aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVu
dCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0
dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFw
cGVuZCgiSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1
cmVEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBl
bmQoIkhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsIik7CiAKICAgICBpZiAoc3RyaW5nLmlz
RW1wdHkoKSkKQEAgLTYxMjQsMTEgKzYxMjUsMTEgQEAgU3RyaW5nIEludGVybmFsczo6c3lzdGVt
Q29sb3JGb3JDU1NWYWx1ZShjb25zdCBTdHJpbmcmIGNzc1ZhbHVlLCBib29sIHVzZURhcmtNb2QK
ICAgICBDU1NWYWx1ZUlEIGlkID0gY3NzVmFsdWVLZXl3b3JkSUQoY3NzVmFsdWUpOwogICAgIFJF
TEVBU0VfQVNTRVJUKFN0eWxlQ29sb3I6OmlzU3lzdGVtQ29sb3JLZXl3b3JkKGlkKSk7CiAKLSAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgaWYgKHVzZURhcmtNb2RlQXBwZWFyYW5j
ZSkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpOworICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpOwogICAgIGlmICh1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKLSAgICAg
ICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwpOworICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAgIAogICAgIHJldHVybiBzZXJpYWxpemF0aW9u
Rm9yQ1NTKFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCmluZGV4IGFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJhMjc0
Mjc3NTMuLmE4YzNlMThlNDdhZWNhZDBhMDIyYTA4NGM0OWEyMWY2YzcxNGMzOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKKyNpbmNsdWRlICJUZXh0
UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVk
ZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcAppbmRleCAxNTM5OTI4YmFmNGMwNTcxZDM1NTI5NjhhMWZiY2YxZjJjNzRi
YmRmLi44YjAzYzgxZDA3NWJiOWMzMzM0NDU3NjYzMzYzYzEyMzNlMmFjMzllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAjaW5jbHVkZSAiUmVtb3RlQ0RN
RmFjdG9yeVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNzZmMTI5M2U0ODQ4ZTRlZjRlMjkwNGU1
ODU3NTFjNGNmNmU0YzhhOS4uOTAyMzZhY2IxZjA0Mjc3YTc4MmY1NTNmOTZlMzZhYTRhZDFiNmQx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMTYxNSw3ICsxNjE1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9y
bURhdGEKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0
IHsgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIFdURk1vdmUocmVwb3J0VVJMKSwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSB7IFdURk1vdmUocmVwb3J0KSB9IH0sIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjplbnF1ZXVlU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpF
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCB7IG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBXVEZNb3ZlKGV2ZW50SW5pdCkgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCBiMmQxZGNiN2M3NjgxNTc5YTFjZjZmZmJkNDI0ZDQxZjEwOWQwNTgyLi5kMTc3
NmU4MWY5Yzc2ZjgyNGQ5ZjRhMzI2NDIzZTE5MGRmODk1YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTIwOCw3
ICsyMDgsNyBAQCBwcml2YXRlOgogICAgIC8vIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAog
ICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7
CiAgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8V2ViQ29yZTo6Rm9y
bURhdGE+JiYpIGZpbmFsOwotICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5h
bDsKKyAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6
OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgdm9pZCBs
b2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKGNvbnN0IE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJl
dHJpZXZlSW5mbyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpp
bmRleCAyNzgxZDEwZTljNjhlZWNjYjU2Yjc2OGIyNDUxOGQ5YWM1NDE3Yjg5Li45MTZjYTBlMzE5
NDI2ZDE2NmFkZGMzNjQ5YTY0MjVlNjJiNGUwOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcyNiw2ICs3MjYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlw
ZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlh
S2V5RXJyb3JDb2RlJzogWyc8V2ViQ29yZS9MZWdhY3lDRE1TZXNzaW9uLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
JzogWyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGUnOiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAg
ICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kJzogWyc8V2ViQ29yZS9N
ZWRpYVByb2R1Y2VyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVu
dFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9h
ZEluZm9ybWF0aW9uLmg+J10sCkBAIC03NDgsNiArNzUxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJD
b3JlL0F1ZGlvU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCc6IFsnPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uJzog
Wyc8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxl
Y3Rpb25HZW9tZXRyeSc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVz
Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IGFkNDExYjgwNjI5OGE0Yjg1ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYu
LmNiY2E5MDhlMzgzNjBkMWQ5Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yODQs
NyArMjg0LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMubWVkaWFWb2x1bWUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3M+IG11dGVkU3RhdGVGbGFnczsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3M+IG11dGVkU3RhdGVGbGFnczsKICAgICBkZWNvZGVyID4+
IG11dGVkU3RhdGVGbGFnczsKICAgICBpZiAoIW11dGVkU3RhdGVGbGFncykKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCA0YTA1ZDYwYjJhY2UxMjI0MDEzNDhiYmE5YWExZGExNzQ2
Yjg5MjQwLi5lYjFlZTA5NTlhNTEzZGI4MjU3ZDY0YWRkY2VlYTUwOWI3YTNlODZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0x
MTksNyArMTE5LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGZs
b2F0IHRvcENvbnRlbnRJbnNldDsKICAgICAKICAgICBmbG9hdCBtZWRpYVZvbHVtZTsKLSAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CisgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZDsKICAgICBib29sIG1heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBm
YWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4
IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjU0OTEwMmViNWZlZWFi
MDA5YmY5NDc3NTMyZDRmOWQ1MDFlYThlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCkBAIC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVBy
b3h5JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2
b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdl
YkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDcwMWYxYTI5
MDg4ZDg0MjAxNjBjNzNlMGNkOWVmZDMyZGNjNmYyM2QuLjFmYjJmMjdhZDJiOTIxYTg4ZWFjYWQ4
Yzc5Njg0YjY4NTIxZTY3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcApAQCAtMjgxNiwxNCArMjgxNiwxNCBAQCB2b2lkIFdLUGFnZVNldE1lZGlhVm9sdW1lKFdL
UGFnZVJlZiBwYWdlUmVmLCBmbG9hdCB2b2x1bWUpCiB2b2lkIFdLUGFnZVNldE11dGVkKFdLUGFn
ZVJlZiBwYWdlUmVmLCBXS01lZGlhTXV0ZWRTdGF0ZSBtdXRlZFN0YXRlKQogewogICAgIENSQVNI
X0lGX1NVU1BFTkRFRDsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3MgY29yZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mg
Y29yZVN0YXRlOwogCiAgICAgaWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYUF1ZGlvTXV0ZWQpCi0g
ICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01l
ZGlhQ2FwdHVyZURldmljZXNNdXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRl
ZFN0YXRlICYga1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5h
ZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldE11
dGVkKGNvcmVTdGF0ZSk7CiB9CkBAIC0yOTcxLDI0ICsyOTcxLDI0IEBAIGJvb2wgV0tQYWdlSXNQ
bGF5aW5nQXVkaW8oV0tQYWdlUmVmIHBhZ2UpCiAKIFdLTWVkaWFTdGF0ZSBXS1BhZ2VHZXRNZWRp
YVN0YXRlKFdLUGFnZVJlZiBwYWdlKQogewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBjb3JlU3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0
ZSgpOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRl
ID0gdG9JbXBsKHBhZ2UpLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKICAgICBXS01lZGlhU3RhdGUg
c3RhdGUgPSBrV0tNZWRpYUlzTm90UGxheWluZzsKIAotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAo
Y29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ0F1ZGlvOwotICAgIGlmIChj
b3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdW
aWRlbykKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ1Zp
ZGVvOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNl
OwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Up
CiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwot
ICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAg
ICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlm
IChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBz
dGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNw
bGF5Q2FwdHVyZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQogICAgICAgICBz
dGF0ZSB8PSBrV0tNZWRpYUhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOwotICAgIGlmIChj
b3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERp
c3BsYXlDYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAgICAg
c3RhdGUgfD0ga1dLTWVkaWFIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogCiAgICAgcmV0
dXJuIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KaW5kZXggMDA0NGE4MWEyN2E5YmE1MGM5NzhkNjcyNWQwNjkzZGExZmIxMDc5Yy4uNTcy
ZWM5NmRjYTdjNzVmNGIxN2I0ODJlMjdhYWU1MmQyNDQ3MWFlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMDM3LDkgKzEwMzcsOSBA
QCAtICh2b2lkKXJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKFdLTWVkaWFQbGF5YmFjawogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFD
YXB0dXJlU3RhdGUKIHsKICAgICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0
ZSgpOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQogICAg
ICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVy
ZVN0YXRlTXV0ZWQ7CiAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAt
MTA0Nyw5ICsxMDQ3LDkgQEAgLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3Rh
dGUKIC0gKFdLTWVkaWFDYXB0dXJlU3RhdGUpbWljcm9waG9uZUNhcHR1cmVTdGF0ZQogewogICAg
IGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0
dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlh
Q2FwdHVyZVN0YXRlQWN0aXZlOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZSkKICAgICAgICAgcmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICBy
ZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CiB9CkBAIC0xMDYxLDE2ICsxMDYxLDE2IEBA
IC0gKHZvaWQpc2V0TWljcm9waG9uZUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlz
dGF0ZSBjb21wbGV0aW9uSGFuZGxlcjooCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gW10g
eyB9OwogCiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7Ci0gICAg
ICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOwogICAgIGlmIChz
dGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlKQotICAgICAgICBtdXRlZFN0YXRlLnJl
bW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011
dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGVsc2UgaWYgKHN0YXRlID09IFdL
TWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKLSAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAg
IG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkKTsKICAgICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAtMTA4MywxNiArMTA4MywxNiBAQCAtICh2
b2lkKXNldENhbWVyYUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfTsK
IAogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgewotICAgICAgICBf
cGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kOjpWaWRlbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKV0geworICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1
dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKICAgICBpZiAoc3RhdGUg
PT0gV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSkKLSAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7
CisgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBlbHNlIGlmIChzdGF0ZSA9PSBXS01lZGlh
Q2FwdHVyZVN0YXRlTXV0ZWQpCi0gICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRl
ZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJl
SXNNdXRlZCk7CiAgICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFu
ZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKICAgICB9KTsKQEAgLTIyNzEsNyArMjI3MSw3IEBAIC0gKHZvaWQpX2Ns
b3NlQWxsTWVkaWFQcmVzZW50YXRpb25zCiAtICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCiB7CiAg
ICAgVEhST1dfSUZfU1VTUEVOREVEOwotICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIF9w
YWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAogLSAodm9pZClfc3RvcEFsbE1lZGlhUGxheWJhY2sKQEAg
LTM1OTQsMTQgKzM1OTQsMTQgQEAgLSAoQk9PTClfbWVkaWFDYXB0dXJlRW5hYmxlZAogLSAodm9p
ZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZQogewogICAgIFRI
Uk9XX0lGX1NVU1BFTkRFRDsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3MgY29yZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxh
Z3MgY29yZVN0YXRlOwogCiAgICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYUF1ZGlvTXV0ZWQp
Ci0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZTo6QXVkaW9Jc011dGVkKTsKKyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9X
S01lZGlhQ2FwdHVyZURldmljZXNNdXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmICht
dXRlZFN0YXRlICYgX1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0
ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlz
TXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCk7CiAKICAgICBfcGFnZS0+c2V0TXV0ZWQoY29y
ZVN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKaW5kZXggZjA5NGY1Mzg5Mzk0NDk1NWY3OTgzOWMyNWQ5ZGVlOTI1ZGY0
NzAwZS4uNGU1ZDczMjU3MTQ0YjUxZGQ0MmE0ZWZhY2M3MGVlZmNjZTg1M2U5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAg
LTQ4NjgsNyArNDg2OCw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jb3JzX2FsbG93bGlz
dChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogY29uCiAgICAgZ2V0UGFnZSh3
ZWJWaWV3KS5zZXRDT1JTRGlzYWJsaW5nUGF0dGVybnMoV1RGTW92ZShhbGxvd0xpc3RWZWN0b3Ip
KTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kIGNhcHR1cmVLaW5kLCBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUs
IGJvb2wgaXNGcm9tRGlzcGxheUNhcHR1cmUgPSBmYWxzZSkKK3N0YXRpYyB2b2lkIHdlYmtpdFdl
YlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlh
Q2FwdHVyZVN0YXRlIGNhcHR1cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZh
bHNlKQogewogICAgIGF1dG8mIHBhZ2UgPSBnZXRQYWdlKHdlYlZpZXcpOwogICAgIGF1dG8gbXV0
ZWRTdGF0ZSA9IHBhZ2UubXV0ZWRTdGF0ZUZsYWdzKCk7CkBAIC00ODc3LDEzICs0ODc3LDEzIEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgV2ViQ29yZTo6CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9T
VEFURV9OT05FOgogICAgICAgICBwYWdlLnN0b3BNZWRpYUNhcHR1cmUoY2FwdHVyZUtpbmQsIFt3
ZWJWaWV3LCBjYXB0dXJlS2luZF0gewogICAgICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkg
ewotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9w
c3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9NSUNST1BIT05FX0NB
UFRVUkVfU1RBVEVdKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAg
ICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoK
ICAgICAgICAgICAgICAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmll
dyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfQ0FNRVJBX0NBUFRVUkVfU1RBVEVdKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQpAQCAtNDg5MSwxNiArNDg5MSwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3
Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ogog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX0FDVElW
RToKICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAg
IG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1
ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNh
c2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAg
ICAgICAgaWYgKGlzRnJvbURpc3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAgIG11dGVkU3Rh
dGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1
cmVJc011dGVkKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRlZFN0YXRl
LnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpAQCAtNDkwOCwxNiArNDkwOCwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmln
dXJlTWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX01VVEVEOgogICAg
ICAgICBzd2l0Y2ggKGNhcHR1cmVLaW5kKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgbXV0ZWRT
dGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJl
SXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CiAgICAgICAgICAgICBpZiAo
aXNGcm9tRGlzcGxheUNhcHR1cmUpCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFD
YXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00OTY1LDcgKzQ5
NjUsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TWVkaQogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2NhbWVyYV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJF
X1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1
cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6VmlkZW8sIHN0YXRlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFD
YXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbywgc3RhdGUpOwogfQogCiAvKioKQEAgLTUwMDcsNyArNTAwNyw3IEBAIHZvaWQgd2Via2l0
X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgV2ViS2l0CiAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19nZXRfbWljcm9waG9uZV9jYXB0
dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUo
d2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8s
IHN0YXRlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgc3RhdGUpOwog
fQogCiAvKioKQEAgLTUwNDksNSArNTA0OSw1IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9k
aXNwbGF5X2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TWVkCiAg
ICAgaWYgKHdlYmtpdF93ZWJfdmlld19nZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcp
ID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKKyAg
ICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUsIHRydWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKaW5kZXggZTFk
YTQ2ZjI2YjE4Yzc3ZjJhMTg5ZWQ4NjU0MGJhNjEzMjI5YmNmYi4uOGExNjIwNzc4ZWRkOWNiZmYx
MjA5OWIxNTJhZDUwYjQ3OWVkZjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0
YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwot
X1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKK19XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0
b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MpOworX1dLTWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGls
aXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5t
bQppbmRleCA1M2JiZjQyMDE0NzFkOWQ4YTRmNjZlNzAxZjY0Mzg4ZWVlZDVkMTVhLi45ODUwYThm
Y2E2NzBkYzc4NTVmNDEwMDY3YjA1YzEyZjgwODgwNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQpAQCAtMjgsMjkgKzI4LDI5IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIHN0YXRlKQogewogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRp
YUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7Ci0gICAg
aWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZl
QXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3Jv
cGhvbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAg
ICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRl
ZEFjdGl2ZUNhbWVyYTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZE11dGVkTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAo
c3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0Nh
cHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhOwogCiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0
YXRlOwogfQogCi1fV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYU11dGVkU3Rh
dGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZs
YWdzIHN0YXRlKQogewogICAgIF9XS01lZGlhTXV0ZWRTdGF0ZSBtZWRpYU11dGVkU3RhdGUgPSBf
V0tNZWRpYU5vbmVNdXRlZDsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0
YXRlIHw9IF9XS01lZGlhQXVkaW9NdXRlZDsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0
ZWRTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQp
CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVl
bkNhcHR1cmVJc011dGVkKQogICAgICAgICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFTY3Jl
ZW5DYXB0dXJlTXV0ZWQ7CiAgICAgcmV0dXJuIG1lZGlhTXV0ZWRTdGF0ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCAzMjlkYjc5MWNmNDMyNzI0
NjM2MzQyODAwNTA0YjA4ZWE4OWRiMGUzLi5lNjc5Njk1YTNmZTFhMGFlZjI4ZGQ1YWYwMjQ4ZDY5
MDZmMzQxOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5o
CkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250
QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwogICAgICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAg
ICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5Jiwg
V2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MpIGZpbmFsOworICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2
b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJTktT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTFi
N2E0MDU4YTViNjQxYWI4ODRhOTc2NTc3Y2YyMTAzYmNiNmJkZC4uZDc4ZjRjYzBkNTY1NTk0YzBl
ODgxYTQ1OGJmZDIzODI3NTEyMjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCkBAIC0xMjI3LDcgKzEyMjcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBw
YWdlLAogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1f
dWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lz
aW9uSGFuZGxlci5nZXQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlh
Q2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7
CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBiMzkzN2FjMDQzNzczOTJkMzBiMTgzM2RlZTBjMDFl
NmNhMTY4OWYzLi4yYjcyNDU4NjkxNmJmNWUxY2JiNjUzYmUxZTZhMjRiMWFkOTkxZDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotc3RhdGljIGNvbnN0IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBh
Y3RpdmVDYXB0dXJlTWFzayB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlIH07CitzdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBhY3RpdmVDYXB0dXJlTWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVW
aWRlb0NhcHR1cmVEZXZpY2UgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
QEAgLTk1LDcgKzk1LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFcKIAogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSgpCiB7Ci0gICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZSB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQ6OkF1ZGlvVmlkZW8gfSwgW10geyB9KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8gfSwgW10geyB9KTsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5yZXZva2VTYW5k
Ym94RXh0ZW5zaW9uc0lmTmVlZGVkKHBhZ2UoKS5wcm9jZXNzKCkpOwogICAgIHByb3hpZXMoKS5y
ZW1vdmUodGhpcyk7CkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6c3RvcENhcHR1cmUoKQogewogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7CiAgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwotICAgIG1fcGFn
ZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW8pOworICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKQEAgLTg2Myw3ICs4NjMs
NyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0
aFdlYkNvcmVQcmVmcygpIGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdTdGF0ZSkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmNhcHR1cmVTdGF0ZUNoYW5nZWQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0
ZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKIHsKICAgICBpZiAoIW1f
cGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaAppbmRleCA2NGViZmE1ZTQ1OWExNmU0Y2QzN2U0OTM2OWE5MDRhZTYy
ZGViNzYwLi42NzRiYWI0ZGI3YzljNjRkZWQ4NTc4NzQxZGJkMmFiOTk2ZGM0MDY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgY2xlYXJDYWNoZWRTdGF0ZSgpOwogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2Vk
KCk7CiAKLSAgICB2b2lkIGNhcHR1cmVTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgbmV3U3RhdGUpOworICAgIHZvaWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKTsKICAgICB2b2lkIHN5bmNXaXRoV2Vi
Q29yZVByZWZzKCkgY29uc3Q7CiAKICAgICBlbnVtIGNsYXNzIFJlcXVlc3RBY3Rpb24gewpAQCAt
MTY3LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9k
ZW5pZWRSZXF1ZXN0czsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBtX2NhcHR1cmVTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG1fY2FwdHVyZVN0YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiBtX3dhdGNoZG9nVGltZXI7CiAgICAgU2Vjb25kcyBt
X2N1cnJlbnRXYXRjaGRvZ0ludGVydmFsOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjFjMDdmNmRmYjliNDYz
NjVkNzY3ZTQxMzNjYmQ2OGRhMGQzMmE3Yy4uZDMzMWYyY2E3ZDAzYTcwM2I1Y2I2ZGQwYzhmZDhi
NTkxMjg0ZmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0yMTEzLDExICsyMTEzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0
YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBmbGFnc1RvVXBkCiAgICAgICAgIG1f
YWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdyk7CiAgICAgaWYgKGZs
YWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSAmJiBwYWdlQ2xpZW50
KCkuaXNWaXN1YWxseUlkbGUoKSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0
eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSk7Ci0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0
eVN0YXRlOjpJc0F1ZGlibGUgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpKSkKKyAgICBpZiAoZmxhZ3NU
b1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFp
bnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRT
dGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCiAg
ICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlKTsKICAg
ICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyAmJiBtX3BhZ2VM
b2FkU3RhdGUuaXNMb2FkaW5nKCkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZp
dHlTdGF0ZTo6SXNMb2FkaW5nKTsKLSAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3Rh
dGU6OklzQ2FwdHVyaW5nTWVkaWEgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQorICAg
IGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBt
X21lZGlhU3RhdGUuY29udGFpbnNBbnkoeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2
ZVZpZGVvQ2FwdHVyZURldmljZSB9KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rp
dml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhKTsKIH0KIApAQCAtNjIzNiw3ICs2MjM2LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNZWRpYVZvbHVtZSh2b2x1bWUpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVG
bGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBtX211dGVkU3RhdGUgPSBzdGF0ZTsKIApAQCAtNjI2Nyw3ICs2MjY3
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFi
bGVkKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNh
cHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghaGFzUnVubmluZ1By
b2Nlc3MoKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC05NDQ2LDcg
Kzk0NDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdh
c1JlbW92ZWQoKQogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVtb3ZlTmF2aWdhdGlvbkdl
c3R1cmVTbmFwc2hvdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit2
b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IGlmICghbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5zaG91bGRCZVJ1bm5hYmxlKCkpCkBAIC05NDU3
LDcgKzk0NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YQogICAgICAgICB1cGRhdGVQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UobmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uOjpZZXMpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24g
Y2FuRGVsYXlOb3RpZmljYXRpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01l
ZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRl
bGF5Tm90aWZpY2F0aW9uIGNhbkRlbGF5Tm90aWZpY2F0aW9uKQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgYXV0byB1cGRhdGVNZWRpYUNhcHR1cmVTdGF0ZUltbWVkaWF0ZWx5SWZO
ZWVkZWQgPSBbJl0gewpAQCAtOTQ4NiwxNCArOTQ4NiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVk
aWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7Ci0gICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0
YXRlID0gbmV3U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNr
OworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0
dXJlU3RhdGUgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVNYXNrOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFDYXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZU1hc2s7CiAjZW5kaWYKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBwbGF5aW5nTWVkaWFNYXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07Ci0g
ICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRl
OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBvbGRTdGF0ZSA9IG1fbWVkaWFTdGF0ZTsKIAotICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdl
cyA9IChvbGRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbykpICE9IChuZXdTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbykpOworICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRT
dGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAh
PSAobmV3U3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKSk7CiAgICAgaWYgKHBsYXlpbmdBdWRpb0NoYW5nZXMpCiAgICAgICAgIHBhZ2VDbGllbnQo
KS5pc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKTsKICAgICBtX21lZGlhU3RhdGUgPSBuZXdTdGF0
ZTsKQEAgLTk1MTcsNyArOTUxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5lCiAgICAgaWYg
KChvbGRTdGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5n
TWVkaWFNYXNrKSkKICAgICAgICAgbV91aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
KnRoaXMpOwogCi0gICAgaWYgKChvbGRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpKQorICAgIGlmICgo
b2xkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JW
aWRlbykpICE9IChtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc0F1ZGlvT3JWaWRlbykpKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENo
YW5nZSgpOwogCiAgICAgbV9wcm9jZXNzLT51cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCk7
CkBAIC05NzE3LDcgKzk3MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZQogICAgIHBhZ2VD
bGllbnQoKS5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0
aGlzLCBjb250ZXh0SWQsIHBhZ2VDbGllbnQoKS5yb290Vmlld1RvU2NyZWVuKEludFJlY3QocmVj
dCkpLCBoYXNWaWRlbywgdXNlRGFya0FwcGVhcmFuY2UoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKIHsKICAgICBwYWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLmNs
aWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzUxY2M0NzllYzlmZDY5Y2QzNzMwNzcz
NzI4MDE3NTBlNzliMmMyZC4uZGY3ZGM5ZGM3NGU2ZmUzZGQyZjQ5YTg3MDk4YjVlOTU4OTc0ZDQ0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzOTYsMTMgKzEz
OTYsMTMgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZW5kZXJUcmVlU2l6ZTsgfQogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9h
dCk7Ci0gICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
RmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7Ci0gICAgYm9vbCBp
c0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfTsKKyAgICB2b2lk
IHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBj
b25zdCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7IH07CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygp
IGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQg
c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsKICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKKyAgICB2b2lkIHN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAKICAgICB2b2lkIHBhdXNlQWxsTWVkaWFQ
bGF5YmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VzcGVuZEFs
bE1lZGlhUGxheWJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE1MDgsMTgg
KzE1MDgsMTggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVy
ZVNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gbV9pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNu
YXBzaG90OyB9CiAKLSAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEo
bV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pOyB9Ci0gICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8o
KSBjb25zdCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lk
IHVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUoKTsKIAogICAgIGVudW0gY2xhc3MgQ2Fu
RGVsYXlOb3RpZmljYXRpb24geyBObywgWWVzIH07Ci0gICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCBDYW5E
ZWxheU5vdGlmaWNhdGlvbiA9IENhbkRlbGF5Tm90aWZpY2F0aW9uOjpObyk7CisgICAgdm9pZCB1
cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncywgQ2FuRGVsYXlOb3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8p
OwogICAgIGJvb2wgaXNDYXB0dXJpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0
ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKTsg
fQogICAgIGJvb2wgaXNDYXB0dXJpbmdWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0
ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKTsg
fQotICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
QWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsgfQotICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJl
YW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlh
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9t
ZWRpYVN0YXRlIC0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0K
LSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZs
YWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CisgICAgYm9vbCBoYXNBY3RpdmVB
dWRpb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNl
KTsgfQorICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIHJlcG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVw
b3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrKTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0
YXRlOyB9CiAKICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pOwogCkBAIC0xNjAz
LDcgKzE2MDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpAQCAtMjkwNCw3ICsyOTA0LDcgQEAg
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpMYXlvdXRQb2ludCBtX21heFN0YWJsZUxheW91dFZpZXdw
b3J0T3JpZ2luOwogCiAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZSB7IDEgfTsKLSAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOworICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwogICAgIGJvb2wg
bV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBs
YXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tZWRpYUNhcHR1cmVFbmFi
bGVkIHsgdHJ1ZSB9OwpAQCAtMjk0MCwxMCArMjk0MCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9hY3Rpdml0eVN0YXRlQ2hhbmdlV2FudHNTeW5jaHJvbm91c1JlcGx5IHsgZmFsc2UgfTsKICAg
ICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9uZXh0QWN0aXZpdHlTdGF0ZUNo
YW5nZUNhbGxiYWNrczsKIAotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBtX21lZGlhU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBtX21lZGlhU3RhdGU7CiAKICAgICAvLyBUbyBtYWtlIHN1cmUgY2FwdHVyZSBpbmRpY2F0
b3JzIGFyZSB2aXNpYmxlIGxvbmcgZW5vdWdoLCBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUg
aXMgdGhlIHNhbWUgYXMgbV9tZWRpYVN0YXRlIGV4Y2VwdCB0aGF0IHdlIG1pZ2h0IGRlbGF5IGEg
Yml0IHRyYW5zaXRpb24gZnJvbSBjYXB0dXJpbmcgdG8gbm90LWNhcHR1cmluZy4KLSAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVy
ZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9yZXBv
cnRlZE1lZGlhQ2FwdHVyZVN0YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4g
bV91cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlVGltZXI7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBTZWNvbmRzIERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IDNfcyB9Owog
ICAgIFNlY29uZHMgbV9tZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IERlZmF1bHRNZWRpYUNh
cHR1cmVSZXBvcnRpbmdEZWxheSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDcyZTU2ZGZmZTZlNWY0MGIzZWE1MzJlYWRlM2Zk
MTk4ZDhkZWYwZTUuLjExOGE3MWE5Nzk1NmM5MWI1NmU2MjgwYzQyMWNmOGEzMjYzMjhkOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTQ2Miw3ICs0NjIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogI2VuZGlmCiAKLSAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCisgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFu
Z2UoT3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBzdGF0ZSkKICAg
ICBIYW5kbGVBdXRvcGxheUV2ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
IGV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIAog
I2lmIFBMQVRGT1JNKE1BQykKQEAgLTQ4MSw3ICs0ODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIEFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFJlbW92ZVBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
V2ViQ29yZTo6RmxvYXRSZWN0IHBpY2tlckxvY2F0aW9uLCBib29sIGhhc1ZpZGVvKQotICAgIFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKQorICAgIFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZT4gbWVkaWFTdGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyU3RhdGUoU3RyaW5nIG5hbWUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHBpY2tlclN0YXRlKQogICAgIE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDhkNDdhNjNmNmNhNzZiNDFlYzg2ZWE3YzQ0MTcy
ZDczMGEwNDJiYTkuLmFmNDA5NjFkYTBmOWE4ZWM0ODc1MDhiZjIxNDEzMjA3ZmEwN2RmNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTg0Nyw3
ICsxODQ3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4Y2Vw
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAKICNlbmRpZgogCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBmbGFn
cykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBmbGFncykKIHsKICAgICBib29sIG11dGVkRm9yQ2FwdHVyZSA9IGZsYWdzLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAg
aWYgKCFtdXRlZEZvckNhcHR1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IDljZjIzYWQ4OTI5ZGJlOWE4MDNjMGFjMDA0YWEzM2RjMmYyYzY3MWUuLjg3
MmYwMmUxNTQ3MDgxNmJjMmVjYWFjNjRmMWFmYTEyZTU4ZWVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC00MDYsNyArNDA2LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIG11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcik7CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcigpOwogI2VuZGlmCi0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyk7CisgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogICAgIHZvaWQgcGFn
ZUlzQmVjb21pbmdJbnZpc2libGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCmluZGV4IGZmZGQ0MzM0NTdlY2VmY2Q2YWRkOGQ5YTQyMTRiYWI0NWRkNWU2
NTAuLjFmMTc2ZWJkOTg4Y2UwMmZlZTZkODIwODQyNjJlODRmMWU1NmFlOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRUcmFja1Jl
cHJlc2VudGF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlci5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTURvY3VtZW50R3RrLmNwcAppbmRleCBkMDdmNmU3MmE0YjQ5NWNkOTQzNTA5MmNmNzZl
MGI3YTU5YjgyMGM5Li5kZGFmODYzZmU3NWI3NTliOWJlODA0NTcyOWVhYjQ1MWVjMTEwYzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAKICNpbmNsdWRlICJXZWJLaXRET01YUGF0aFJlc3VsdFByaXZhdGUu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RPTUV4Y2VwdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbHNjcmVl
bk1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRXhlY1N0YXRlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhM2Q2Y2MzMmY2NTQ5ZmEwZmFiNGEyNDUwOGZl
MjJmMDQ3ZjlkMzM1Li5kM2FhZDZlYTI2MTY4YTIxYjgzZDUzMGU3YWI2ZGQ0N2EyNjdmMjFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApA
QCAtNTksNyArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm94eVNlcnZlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGFhOWQzZWNlM2Q2MjU4OWQ2YmJhZWM5MTRi
NjM1NmQ1MDRhNGU5YmEuLjVhYmM0ODZlMGM1OTEwYWRlOGI4YzZmYzhkOGY5MGE5Zjk2ZWI1OGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAg
LTE4Niw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChXZWJDb3Jl
OjpEb2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcgot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURp
ZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gUGx1Z2luQ29udHJvbGxlcgpAQCAtMjc2LDEx
ICsyNzYsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8geyBm
YWxzZSB9OwogfTsKIAotaW5saW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBQbHVnaW5WaWV3OjptZWRpYVN0YXRlKCkgY29uc3QKK2lubGluZSBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25zdAog
ewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRl
OworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZTsK
ICAgICBpZiAobV9wbHVnaW5Jc1BsYXlpbmdBdWRpbykKLSAgICAgICAgbWVkaWFTdGF0ZS5hZGQo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOworICAgICAgICBtZWRp
YVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8pOwogICAgIHJldHVybiBtZWRpYVN0YXRlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IDEyMGEwNGQzNmYwMzhhYzczMTkxNTUyZWNmNDVlMzIxNGUxNWI3ZWUuLmEyMzk2Y2UyYzI5
NGU4MjZlZTg2ZDNmNzZkOWY1YTcxM2I5OTYzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMjUyLDcgKzEyNTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaQogICAgIHJldHVybiBt
X3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGZy
YW1lVmlldyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENo
YW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2UuaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUp
OwogfQpAQCAtMTM4NCw3ICsxMzg0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGkKICAgICBt
X3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoY29udGV4dElkLCByZWN0LCBpc1ZpZGVvKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKGNvbnRleHRJZCwgc3RhdGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA2NDQ4MmE0MmU0ZWM3MmQ1MmFhODQ2YTU3ODQ1YTE0Njg0NjZjNzEwLi5iOTkz
OGYyYmZhNjEwMGIyOTYyM2NkMDMwNWNlMGIxNGM0MzIyMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0zNTIsNyArMzUyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFs
OwogCi0gICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAg
dm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNl
dDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKIAogI2lmIEVOQUJMRShBUFBf
SElHSExJR0hUUykKQEAgLTM5MSw3ICszOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IGJvb2wpIGZpbmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQg
cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNmVlNDIwZjQ1YTQyNzU5ZTA2MTRjYjUw
MGNhNmVmNmI1MjRjOTA0Li5kZThjNWYzN2IwMmQxMTIxNjA4ZDI5Nzk0YzVmNWI4MDZkYzhmZWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NDM3NSw3ICs0Mzc1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5h
dmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShGcmFtZUlkZW50aWYKICAgICAgICAgV2ViQ29y
ZTo6c2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2Uo
KmZyYW1lLT5jb3JlRnJhbWUoKSwgY29vcCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIG5leHRSZXNw
b25zZVVSTCwgY29vcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBuZXh0UmVzcG9uc2VPcmlnaW4u
c2VjdXJpdHlPcmlnaW4oKSwgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCB1c2VyQWdl
bnQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAt
NTU3NSwxMyArNTU3NSwxMyBAQCB2b2lkIFdlYlBhZ2U6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICBtX3BhZ2UtPnNldE1lZGlhVm9sdW1lKHZvbHVtZSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6
OnNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UtPnNldE11
dGVkKHN0YXRlKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBh
Z2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKGtpbmQpOwpA
QCAtNzQ1MSw3ICs3NDUxLDcgQEAgdm9pZCBXZWJQYWdlOjpzeW5jaHJvbml6ZUNPUlNEaXNhYmxp
bmdQYXR0ZXJuc1dpdGhOZXR3b3JrUHJvY2VzcygpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDT1JTRGlzYWJsaW5nUGF0
dGVybnMobV9pZGVudGlmaWVyLCBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyksIDApOwogfQogCi12
b2lkIFdlYlBhZ2U6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KHN0YXRlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggYzEzODU1NzNiMGJlNWZlYzgwMTUwYTk1ZmIzOTUxOTQzYTUwNDY2Ni4uYzI3ZDQwMGI2
NmQzN2RiZTBhOWU1NGQyN2FiZjQ0MGM0OWQ0MTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDQ4LDcgKzQ0OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNlbmRDT0VQQ09SUFZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgZW5kcG9pbnQsIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbiwgY29uc3QgVVJMJiBibG9ja2VkVVJMKTsKICAgICB2b2lkIHNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBXZWJD
b3JlOjpDT09QRGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBwcmV2
aW91c1Jlc3BvbnNlVVJMLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgcHJldmlvdXNSZXNwb25z
ZU9yaWdpbiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgcmVwb3J0VG9IZWFkZXJWYWx1ZSk7CiAgICAgdm9pZCBzZW5kVmlvbGF0
aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiwgV2Vi
Q29yZTo6Q09PUERpc3Bvc2l0aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgbmV4
dFJlc3BvbnNlVVJMLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgbmV4dFJlc3BvbnNlT3JpZ2lu
LCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQpOwotICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50OjpJbml0JiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50SW5pdCYmKTsKIAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEu
CiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdB
cmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTEwMjcs
OSArMTAyNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVJlc291cmNlUmVxdWVzdChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVt
ZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhi
b29sKTsKLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZU1haW5GcmFt
ZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApAQCAtMTQyMSw3ICsxNDIxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbklkZW50aWZpZXIpOwogI2VuZGlmCiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBp
c1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzKTsKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0
UmVjb2duaXRpb24oV2ViQ29yZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVm
UHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDhhZmM0ZWE1ZTNjZDAx
YzJhYzNhNGEzNDFmMzE2YTlhMjExMzMyZTEuLjc4MmZmMjgyYmFhM2RkOGEzOGIwYThhY2EzMTkz
MzJhOWEzYzgxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzMsNyArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZW1iZWRkZXJPcmlnaW4sIFN0cmluZyBlbmRwb2ludCwgZW51bTpib29sIFdlYkNvcmU6OkNP
RVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZldGNoT3B0
aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIFVSTCBibG9ja2VkVVJMKQogICAgIFNlbmRW
aW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwg
VVJMIGNvb3BVUkwsIFVSTCBwcmV2aW91c1Jlc3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIGNvb3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgU3RyaW5nIHJlZmVycmVyLCBTdHJpbmcgdXNl
ckFnZW50LCBTdHJpbmcgcmVwb3J0VG9IZWFkZXJWYWx1ZSkKICAgICBTZW5kVmlvbGF0aW9uUmVw
b3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNv
b3AsIGVudW06Ym9vbCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIFVSTCBj
b29wVVJMLCBVUkwgbmV4dFJlc3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGNvb3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgbmV4
dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwgU3Ry
aW5nIHVzZXJBZ2VudCkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCBldmVudEluaXQpCiAKICAg
ICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCkBAIC00MTcsOSArNDE3LDkgQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgTWVkaWEKICAgICBTZXRNZWRpYVZvbHVtZShm
bG9hdCB2b2x1bWUpCi0gICAgU2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzIG11dGVkKSAtPiAoKSBBc3luYworICAgIFNldE11dGVkKE9wdGlvblNldDxXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gbXV0ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0
TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCi0gICAgU3RvcE1l
ZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
IC0+ICgpIEFzeW5jCisgICAgU3RvcE1lZGlhQ2FwdHVyZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKIAogICAgIFNl
dENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCmluZGV4IDhlYTQwNDNlMTYxNWUz
MTk2NTc5YjA2MDBiNjAwZDU2ODZjNjZhNGUuLjYyZmE2MjIwMjg2NWRmYWRjNTFjMjU4NTI3NjY3
YjNmYmZhNzNhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01E
b2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQu
bW0KQEAgLTYwLDkgKzYwLDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db21tZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVdp
bmRvdy5oPgotI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9E
b2N1bWVudEZyYWdtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnVsbHNjcmVlbi5o
PgorI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudElubGluZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RG9jdW1lbnRUeXBlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hUTUxDb2xsZWN0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFjNTc2NzkzN2M2NTQ5
ZmExY2U0OWM5Mzg1MmNhNGVlM2I3YWRlNmMuLjM1NTVkNTQ0Y2E3NGI3MTE5ZDZiMDY3NjI2Njdl
MmM0MTc1MWQwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNDMsNyArMjQzLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVtb3Zl
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGhhc1ZpZGVvICovKSBmaW5hbDsKLSAgICB2b2lk
IHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRl
bnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAg
ICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgZmlu
YWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0
IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUp
IGZpbmFsOwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9w
dXAoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBhNDZiMWFkYTYwNDk3ZGE3ZjVl
ZWUyN2Y4MTFlMzJlN2MwODI2ZTExLi4xNjkzZDg3NWZlMDA4NTRmOTJkNWJhMzE2ZDVmNzMxMWQ4
N2Q4YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aQogICAgIFttX3dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tl
cjpjb250ZXh0SWQgbG9jYXRpb246bG9jYXRpb24gaGFzVmlkZW86aGFzVmlkZW9dOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCiB7CiAgICAgW21fd2ViVmlldyBfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZTpjb250ZXh0SWQgc3RhdGU6c3RhdGVdOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIuaAppbmRleCA4Y2EzMjk0N2E1YjQ2ZTA2N2I4ZThiYWU0NDYzOTNlYmI5MGU4
NmVmLi4zOTY1NTVjZDFmOThiNmJjMTM0NDUwNTdlZGNhNTc2ZmZkNGViNjM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
ZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVu
dENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wg
aGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChi
b29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0
ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCmluZGV4IDdkYmQ1ODk0NzU0MDVhMTZlYmRk
MGZhOWJjZmE2MmMzMzdlNzQxNTIuLjVjZmZiY2ZjM2Y1ZWFjNmU1ZWI4MmVlYTAzZWM4YjBjNWE5
OGU3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KQEAgLTU4LDcgKzU4LDcgQEAg
dm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoV2ViQ29yZTo6UGxheWJhY2tUYXIKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWQoKS5zaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwg
V2ViQ29yZTo6SW50UmVjdChyZWN0KSwgaGFzVmlkZW8sIG1fcGFnZSA/IG1fcGFnZS0+dXNlRGFy
a0FwcGVhcmFuY2UoKSA6IGZhbHNlKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAg
V2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuY2xpZW50U3RhdGVEaWRD
aGFuZ2UoKnRoaXMsIGNvbnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGMyNjRhZmE4NjJmZTg5Y2ZkODgwNTc5MWZhYTIy
ZmU0MzM1MDk5NTcuLjZkNjk3ZGQ4N2JkNzA2YmE5ZGE3NDM5ZjJkYjJkNWMxNWE0NGRkMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyNDEsNyAr
OTI0MSw3IEBAIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooV2ViQ29yZTo6UGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllCiAgICAgW3NlbGYgX2RldmljZVBpY2tl
cl0tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3RJblNjcmVlbkNvb3Jk
aW5hdGVzLCBoYXNWaWRlbyk7CiB9CiAKLS0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mpc3RhdGUKKy0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVE
aWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIp
Y29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKXN0
YXRlCiB7CiAgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCBhNDdkYTJjZjRk
NzQ5NDk2MGY1YzUwOGYyMmI3ZjE1MGEyN2Q4ZGE3Li5jY2Q4Y2Q3M2E0MWUzOWExYTczZWYxOTQx
NTRmMTkyOTRkMjFlOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTMzNiw3ICszMzYsNyBAQCBXZWJMYXlvdXRNaWxlc3Rv
bmVzIGtpdExheW91dE1pbGVzdG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9u
ZT4pOwogLSAodm9pZClfYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAodm9pZClf
cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0
Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAodm9pZClfc2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyKWNvbnRleHRJZCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0aW9u
IGhhc1ZpZGVvOihCT09MKWhhc1ZpZGVvOwotLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncylzdGF0ZTsKKy0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3Rh
dGVEaWRDaGFuZ2U6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIpY29udGV4dElkIHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
KXN0YXRlOwogLSAodm9pZClfc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVk
Oihib29sKWVuYWJsZWQ7CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck5hbWU6KE5TU3RyaW5nICopbmFtZSBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQ6Ok1vY2tTdGF0ZSlzdGF0ZTsKIC0gKHZvaWQpX21vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyRGlzbWlzc1BvcHVwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwCmluZGV4IDZhNDNmOTI2NDgwZGZmNDZlOWE2Mjk3
M2JkYzA1ZjYyNjhjNWJhMGUuLmYzNzYyOGNmNTgwNmMwNGVhZTA0YzIyMDc4M2RiZTM5ODBjNDgx
YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Eb2N1bWVu
dE9yZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1l
bnRPcmRlci5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0j
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MQm9keUVsZW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0hUTUxEaXZFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MSHRtbEVs
ZW1lbnQuaD4K
</data>
<flag name="commit-queue"
          id="465111"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441003</attachid>
            <date>2021-10-12 15:29:50 -0700</date>
            <delta_ts>2021-10-12 21:56:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211012152949.patch</filename>
            <type>text/plain</type>
            <size>279576</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFhZDQyNmEyNDY2YThl
YmZlNjM1MDcwNzBlNDA1NzBjOTVhNTBhYi4uOWY4NjAzMDFiZmE2MzFhNWQ0MGE0ZjgyYWI4OWMw
YTgzNDc4YmU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiZGYwYzA1NGQ5Nzk5NmZkYTQ5NTVmMDBhN2FjOTNhOTZiMDk4
YTcwLi45OWRmNWE3NTExNzJlZDBhOGU0Mjc5M2M2ZTNhMzE1Y2MyZjU3NThkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRWxlbWVudC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWEzYzdhNWRhYTA5Y2Q3Y2E0Y2FjYzc5YTgz
NzkzMjgyZTY2NTRlNi4uZWRjOGU1NmU3NjYyMWM5ZjFmODdiOTkzODc0ZmExYTQ1NmMyY2Y2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEwLTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtCdWlsZC10aW1l
IHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xv
d2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVpciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4g
YmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncworICAgICAgICAtIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQK
KyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlCisKKyAgICAgICAgKiBET00vRE9NRG9jdW1lbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3BsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6c3RhdGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMS0xMC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQnVpbGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0
aGluZ3MgaW4gRWxlbWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMDNmZDZlODk5ZTYxNGQx
NTBjMmU0NzllMGUzNDM2YmQ4MjY1NTM0Li5jZmRlOGZhMWM3MTQxYjczODM0ZTUxZWY2ZjkwZDkz
OTBlZWM0ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ3NSw2ICs0NzUsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0RvY3VtZW50Rm9udExvYWRl
ci5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1bGxzY3Jl
ZW4uaAorICAgIGRvbS9Eb2N1bWVudElubGluZXMuaAogICAgIGRvbS9Eb2N1bWVudE1hcmtlci5o
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCiAgICAgZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oCkBAIC05NTksNiArOTYwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFn
ZUdyb3VwLmgKICAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKKyAgICBwYWdlL1BhZ2VJbmxpbmVz
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCiAgICAgcGFnZS9QYWdlUGFzdGVib2FyZENvbnRleHQuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmlu
ZGV4IDI5ODNjMGVmMTFhYTNjMDZlMjI2MzE0NzY1NGJiZDVmM2RkZGYzOTAuLjhjNjc4N2MzNmI0
OGUzYjNjY2MzM2U2ZDQzNjI4N2I3ZGVlMWEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTU4
LDM3ICs1OCwzNyBAQCBzdHJ1Y3QgQ2xpZW50U3RhdGUgewogCiAgICAgV2ViTWVkaWFTZXNzaW9u
TWFuYWdlckNsaWVudCYgY2xpZW50OwogICAgIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBmbGFnczsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IGZsYWdzOwogICAgIGJvb2wgcmVxdWVzdGVkUGlja2VyIHsgZmFsc2UgfTsKICAgICBib29sIHBy
ZXZpb3VzbHlSZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgY29uZmlndXJhdGlv
blJlcXVpcmVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgcGxheWVkVG9FbmQgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIGJvb2wgZmxhZ3NBcmVTZXQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHZhbHVlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgYm9v
bCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHZhbHVlLCBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiB2YWx1ZS5jb250YWlu
c0FueShmbGFncyk7CiB9CiAKLVN0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQorU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0
ZVN0cmluZyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nOwogICAgIHN0cmluZy5hcHBlbmQoIiB7ICIpOwotICAgIGlmIChmbGFn
cyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKICAgICAgICAg
c3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8rIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCisgICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1BsYXlpbmdWaWRlbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQorICAgIGlmIChmbGFncyAmIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKQogICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKyIpOwotICAgIGlmIChm
bGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5TGlzdGVuZXIpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgIHN0cmluZy5h
cHBlbmQoIkhhc1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9y
aW5nKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZykKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNU
YXJnZXRNb25pdG9yaW5nKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpCisgICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUp
CiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUr
Iik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRv
RW5kKQorICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9F
bmQpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCsiKTsKLSAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgaWYg
KGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKICAgICAg
ICAgc3RyaW5nLmFwcGVuZCgiSGFzQXVkaW9PclZpZGVvKyIpOwogICAgIGlmIChzdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05vdFBsYXlpbmciKTsKQEAgLTI1Niwx
MSArMjU2LDExIEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFy
Z2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllCiAKICAgICBBTFdBWVNfTE9HX01F
RElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIG1fY2xpZW50U3RhdGVbaW5kZXhdLmdldCgpKTsK
IAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlW2lu
ZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpOworICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBmbGFnc0FyZVNldChtX2NsaWVu
dFN0YXRlW2luZGV4XS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKICAgICB0YXJnZXRQaWNrZXIoKS5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoY2xpZW50LnBsYXRmb3JtVmlldygpLCBGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEYXJrQXBwZWFyYW5jZSwgY2xpZW50LnVzZWlUdW5lc0FWT3V0cHV0Q29udGV4dCgp
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIFBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3RmxhZ3MpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3MgbmV3RmxhZ3MpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZmluZCgmY2xpZW50
LCBjb250ZXh0SWQpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CkBAIC0yNjgsNyAr
MjY4LDcgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvJiBjaGFuZ2VkQ2xpZW50U3RhdGUgPSBtX2NsaWVudFN0YXRlW2luZGV4XTsKLSAgICBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFuZ2VkQ2xpZW50U3RhdGUt
PmZsYWdzOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkRmxhZ3MgPSBjaGFu
Z2VkQ2xpZW50U3RhdGUtPmZsYWdzOwogICAgIGlmIChuZXdGbGFncyA9PSBvbGRGbGFncykKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yNzYsMTggKzI3NiwxOCBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQmCiAKICAgICBjaGFuZ2VkQ2xpZW50U3RhdGUtPmZsYWdzID0gbmV3RmxhZ3M7CiAKLSAgICBj
b25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHVwZGF0ZUNvbmZpZ3VyYXRp
b25GbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJn
ZXRNb25pdG9yaW5nLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8gfTsKKyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyB1
cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWly
ZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvIH07CiAgICAgaWYgKChvbGRGbGFncyAmIHVwZGF0ZUNvbmZpZ3Vy
YXRpb25GbGFncykgIT0gKG5ld0ZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlvbkZsYWdzKSkKICAg
ICAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRh
c2spOwogCi0gICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5
aW5nVG9UYXJnZXRGbGFncyB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
IH07CisgICAgY29uc3RleHByIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ1Rv
VGFyZ2V0RmxhZ3MgeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07CiAgICAg
aWYgKChvbGRGbGFncyAmIHBsYXlpbmdUb1RhcmdldEZsYWdzKSAhPSAobmV3RmxhZ3MgJiBwbGF5
aW5nVG9UYXJnZXRGbGFncykpIHsKLSAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgIWZsYWdzQXJlU2V0
KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYg
ZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRpZFBsYXlU
b0VuZCkpCisgICAgICAgIGlmIChmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykgJiYgZmxhZ3NBcmVTZXQobmV3Rmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICAgICAg
Y2hhbmdlZENsaWVudFN0YXRlLT5wbGF5ZWRUb0VuZCA9IHRydWU7CiAgICAgICAgIHNjaGVkdWxl
RGVsYXllZFRhc2soV2F0Y2hkb2dUaW1lckNvbmZpZ3VyYXRpb25UYXNrKTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcGxheWJhY2tUYXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJv
dXRlKCkgfHwgIWZsYWdzQXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlKSkKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQgfHwgIW1fcGxheWJhY2tUYXJnZXQtPmhhc0FjdGl2ZVJvdXRlKCkgfHwgIWZsYWdzQXJl
U2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRv
UGxheUNhbmRpZGF0ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERvIG5vdCBpbnRlcnJ1
cHQgYW5vdGhlciBlbGVtZW50IGFscmVhZHkgcGxheWluZyB0byBhIGRldmljZS4KQEAgLTI5NSwx
NCArMjk1LDE0IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYKICAgICAgICAgaWYgKHN0YXRlID09
IGNoYW5nZWRDbGllbnRTdGF0ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgICAgIGlmIChm
bGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlp
bmdUb0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKICAgICAgICAgICAgIEFMV0FZU19M
T0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcmV0dXJuaW5n
IGVhcmx5Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICAv
LyBEbyBub3QgYmVnaW4gcGxheWluZyB0byB0aGUgZGV2aWNlIHVubGVzcyBwbGF5YmFjayBoYXMg
anVzdCBzdGFydGVkLgotICAgIGlmICghZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKSB7CisgICAgaWYgKCFm
bGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSB8fCBmbGFnc0FyZVNldChvbGRGbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ1ZpZGVvKSkgewogICAgICAgICBBTFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIo
X19mdW5jX18sICJyZXR1cm5pbmcgZWFybHksIHBsYXliYWNrIGRpZG4ndCBqdXN0IHN0YXJ0Iik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQogICAgICAg
ICBpZiAoKG1fdGFyZ2V0Q2hhbmdlZCB8fCBtX3BsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc2Vk
KSAmJiBzdGF0ZS0+cmVxdWVzdGVkUGlja2VyKQogICAgICAgICAgICAgaW5kZXhPZkNsaWVudFRo
YXRSZXF1ZXN0ZWRQaWNrZXIgPSBpOwogCi0gICAgICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBs
YXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgICAg
ICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9F
eHRlcm5hbERldmljZSkpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCA9IGk7CiAKICAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5v
dEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBzdGF0ZS0+cHJldmlvdXNseVJlcXVlc3RlZFBp
Y2tlcikKQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNv
bmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkNsaWVudFRoYXRSZXF1ZXN0ZWRQaWNrZXI7CiAgICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGluZGV4T2ZMYXN0
Q2xpZW50VG9SZXF1ZXN0UGlja2VyICE9IG5vdEZvdW5kKQogICAgICAgICBpbmRleE9mQ2xpZW50
V2lsbFBsYXlUb1RhcmdldCA9IGluZGV4T2ZMYXN0Q2xpZW50VG9SZXF1ZXN0UGlja2VyOwotICAg
IGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0
aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpICYmICFm
bGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rh
cmdldCA9PSBub3RGb3VuZCAmJiBoYXZlQWN0aXZlUm91dGUgJiYgZmxhZ3NBcmVTZXQobV9jbGll
bnRTdGF0ZVswXS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSAmJiAhZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVswXS0+Zmxh
Z3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpCiAgICAgICAgIGlu
ZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0gMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jbGllbnRTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtNDE0LDcgKzQxNCw3IEBAIHZv
aWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRz
KCkKIAogICAgIGlmIChoYXZlQWN0aXZlUm91dGUgJiYgaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9U
YXJnZXQgIT0gbm90Rm91bmQpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBtX2NsaWVudFN0YXRl
W2luZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0XTsKLSAgICAgICAgaWYgKCFmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpKSB7CisgICAgICAgIGlmICghZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpIHsKICAg
ICAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUu
Z2V0KCksICIgY2FsbGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh0cnVlKSIpOwog
ICAgICAgICAgICAgc3RhdGUtPmNsaWVudC5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChz
dGF0ZS0+Y29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfQpAQCAtNDMxLDEzICs0MzEsMTMgQEAg
dm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldE1vbml0
b3JpbmcoKQogICAgIGJvb2wgaGF2ZUNsaWVudFdpdGhNZWRpYSA9IGZhbHNlOwogICAgIGZvciAo
YXV0byYgc3RhdGUgOiBtX2NsaWVudFN0YXRlKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUt
PmZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpIHsKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZykgewogICAgICAgICAg
ICAgbW9uaXRvcmluZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKQorICAgICAgICBpZiAoc3Rh
dGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIpCiAgICAgICAgICAgICBoYXNBdmFpbGFiaWxpdHlMaXN0ZW5lciA9
IHRydWU7Ci0gICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pCisgICAgICAgIGlmIChzdGF0ZS0+ZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICAgICAgaGF2ZUNsaWVu
dFdpdGhNZWRpYSA9IHRydWU7CiAgICAgfQogCkBAIC01MDEsNyArNTAxLDcgQEAgdm9pZCBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVXYXRjaGRvZ1RpbWVyKCkKIAogICAgICAgICBB
TFdBWVNfTE9HX01FRElBU0VTU0lPTk1BTkFHRVIoX19mdW5jX18sIHN0YXRlLmdldCgpLCAiIHBs
YXllZFRvRW5kID0gIiwgc3RhdGUtPnBsYXllZFRvRW5kKTsKIAotICAgICAgICBpZiAoZmxhZ3NB
cmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKSAmJiBmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0
KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJu
YWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgICAgIHN0b3BUaW1lciA9IHRydWU7CiAg
ICAgICAgIGlmIChzdGF0ZS0+cGxheWVkVG9FbmQpCiAgICAgICAgICAgICBkaWRQbGF5VG9FbmQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJi
ZjRmMDIwNjZiNS4uNmFkNzcxNTAzYTZlZTZiNTM4NDZkZDFlYjZkY2ZjYWUwYzY4NzA1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYs
IFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBib29sKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudFN0YXRlRGlkQ2hhbmdl
KFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmLCBQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNz
aW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgYm9vbCBhbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tb2NrUGlja2VyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCi1TdHJpbmcg
bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyk7CitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAg
LTEyNiw4ICsxMjYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsg
cmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhmbGFncyk7IH0KK3RlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3M+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpIHsgcmV0dXJuIFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJT
dGF0ZVN0cmluZyhmbGFncyk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAz
ODE2OGVlNzVhZGIxZTY4MmQ5ZDk4NzM4OTE2ZDgwZGQ0MzI0NTdiLi40ZmIwNGEzYWU1NjlhNzg5
ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMjc3LDkgKzI3Nyw5IEBAIHZvaWQg
TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3ByaXZhdGUtPnN0b3BQcm9k
dWNpbmdEYXRhKCk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbTo6bWVkaWFTdGF0ZSgpIGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1l
ZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKIAogICAgIGlmICghbV9pc0FjdGl2ZSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggN2NlMWY2NDE4MjExMDdhNDQzMTky
MzlmMTBkMzhhNDk0MDUzNjVmYy4uMzQxOGNmNjNjOTc2NTA2MWU3ZGYxZDBmYTViYmNiNmFlNWJm
YzI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVU
cmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpIGZpbmFsOwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgogICAg
IHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
PiBtX3RyYWNrU2V0OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fc3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX3N0YXRlOwogCiAgICAgYm9v
bCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQ1NGYxZGMyZDY1NTAxNzRiYjA3MWYxMjhiYzgyMTM3
OWZkOGRjOTguLjEzMTcxMTljM2E3NjdiYzZmZDkzNzg1MjBjMzgxZmNjNzFiNzVlMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgSGFzaFNldDxNZWRpYVN0cmVhbVRy
YWNrKj4mIGFsbENhcHR1cmVUcmFja3MoKQogICAgIHJldHVybiBjYXB0dXJlVHJhY2tzOwogfQog
Ci1zdGF0aWMgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHNvdXJjZUNhcHR1cmVTdGF0
ZShSZWFsdGltZU1lZGlhU291cmNlJik7CitzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTWVkaWFTdHJlYW1UcmFjayk7CiAKQEAgLTQwMSw3ICs0MDEs
NyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJhY2s6Om1l
ZGlhU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2VuZGVkIHx8ICFpc0NhcHR1cmVUcmFjaygp
KQogICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwpAQCAtNDEzLDMz
ICs0MTMsMzMgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtVHJh
Y2s6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBzb3VyY2VDYXB0dXJlU3RhdGUoc291
cmNlKCkpOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVy
ZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK01lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
IHsKICAgICBzd2l0Y2ggKHNvdXJjZS5kZXZpY2VUeXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2Uu
aW50ZXJydXB0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZp
Y2U7CiAgICAgICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3Rp
dmVBdWRpb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRl
b0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBpZiAoc291cmNlLmludGVy
cnVwdGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlOwog
ICAgICAgICBpZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRl
ZERpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogICAgICAgICBp
ZiAoc291cmNlLmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOworICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKQEAgLTQ0OSw5ICs0NDksOSBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c291cmNlQ2FwdHVyZVN0YXRlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKICAgICByZXR1
cm4gTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nOwogfQogCi1NZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6Y2Fw
dHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0
ZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewog
ICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVudCgpICE9ICZkb2N1bWVudCB8fCBjYXB0
dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ4MywxMyArNDgz
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3RpdmVBdWRpb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZl
QXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYg
ZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VF
bmFibGVkKCkpKTsKICAgICB9CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5h
Y3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0
dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsK
LSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJv
b2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgYWN0aXZlVmlkZW9Tb3Vy
Y2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAgICAgfQogI2Vs
c2UKQEAgLTUwOSwxNCArNTA5LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9Q
YWdlTXV0ZWRTdGF0ZSgpCiAKICAgICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZh
dGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5z
ZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCkpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6Vmlk
ZW9DYXB0dXJlSXNNdXRlZCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0
ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CkBAIC01MjUs
MjAgKzUyNSwyMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpBdWRpbzoKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpbzoKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW87Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CiAgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU7Ci0gICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKKyAg
ICBjYXNlIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgcmV0
dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNzc3MDhiZTg5ODM2MjBlZWU4
OTcyNWQ5Zjk0NDVjNGYyZTBmNTM1Mi4uZDA5ODUyN2NlN2Q1Nzg5OTdiNjY2MWQyZTcwOGU0N2U2
NGY2YzJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2soKTsKIAotICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKKyAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERv
Y3VtZW50JiwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCi0gICAgc3RhdGljIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1l
bnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRl
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMTQxLDcgKzE0MSw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyPiBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGNmMzQ1YTQ2MmZjZGIyMTE5ZjdmYmRmNWViZGRmMDE0NWViYTc2
YjMuLjYwYzdkNWMzOTc1NWQ0OTZkMWZhNDMzY2JjYTY1MjNjNzA3ZTY4YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKaW5kZXggOWEwMDBkNGZkOGViNDA5YzQ1MThkMzVmZjczZGRkZTgxYmY5ZWRmNS4uODUyNWU3
ZDg4YzdjZTU1Y2M5MDExNzBmMWQ4NGJjMjA2Y2I0MWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uU3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvblN0YXR1cy5jcHAKaW5kZXggNjZhMGYwYmJhOTViZDQ1NTVkMTdhMmRmN2M5Njg2
MmFhOGYxYzBjOS4uY2Q5YjA3Yzk3YzZmMjhiMDlhMDhiYjU1N2NhNGUwMDkzYjYwY2NhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uU3Rh
dHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Np
b25TdGF0dXMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGVybWlzc2lvbkNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBlYmIyZjJmNTQ2YzczMjJjZTkzNWY4
YTRlYmE5NDkzYTAyYjI5YWI2Li5hZDI1N2IyMzU2ZTlkY2ZiYmFiNTU0ZjNmMDM1MDFkNzIwNTk1
ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCkBAIC0zMSw5ICszMSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMu
aCIKICNpbmNsdWRlICJBdWRpb1RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCkBAIC0zNTYs
MTAgKzM1NywxMCBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogICAg
IHJldHVybiBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKIH0KIAot
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFTdGF0ZSgp
IGNvbnN0CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ29udGV4dDo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0b3BwZWQoKSAmJiBkZXN0aW5hdGlvbigpLmlz
UGxheWluZ0F1ZGlvKCkpCi0gICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKKyAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbzsKIAogICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmc7CiB9CkBAIC00MTksNyArNDIwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBs
YXliYWNrKCkKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsK
ICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxlLgotICAgIGlmICghZG9j
dW1lbnQoKSB8fCBtZWRpYVN0YXRlKCkgPT0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8gfHwgaXNTdG9wcGVkKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8IG1lZGlh
U3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8gfHwgaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkb2N1bWVudCgpLT5oaWRkZW4o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgK
aW5kZXggMGY2NThiM2I3YmM0Y2QzODE5MzZjZmFmNmFmY2U1NmQ1NDI3OWRiMS4uNGFiODQ3MTY5
ZjFiYWQ3YzcxYjI5MjBjZDA2NWVhZTYyYjA1ODZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzT2ZmbGluZUNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVNlc3Npb25DbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNjg3NTEyNmEzNjAzYmU1YjM4ZmI4NjYwZDY0NzJkZTZkNjE3ZjI2Li4yNmVlZGE0
YjZjYTM0ZWM5ODliNDk2ZDgzZTY2MTRiYThmODlmMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTQzLDYgKzQ1NDMsOCBA
QAogCQlDREVEMUMzQzI0Q0QzMDU3MDA5MzRFMTIgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCODI0QkNF
NjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCUNERUY0RkQ3MTdF
ODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgx
NTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1
MDgyNEM5RkE0NDAwNDMyRTFFIC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEY2NjcyMjRDMEYyMDgwMDBD
NDIxQyAvKiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMTM1MDkyNEM5RkNBMzAwNDMyRTFFIC8qIFNv
dXJjZUJ1ZmZlclBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQjNENzMyNEM0MUE2RTAwMUZCRUVGIC8qIFNvdXJjZUJ1ZmZlclBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjJC
MDA0MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQg
LyogTWVkaWFEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTQxOCw2ICsxNTQyMCw4IEBACiAJCUNERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkTGVuZ3Ro
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUZEOUVBMjcxMEE2OTMwMDU1NTlB
NyAvKiBNZWRpYUtleU1lc3NhZ2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUtleU1lc3NhZ2VUeXBlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMDkyNzEyMjYzODAwNTU1OUE3
IC8qIERvY3VtZW50SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRkRBMEQy
NzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGVzY3JpcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0JveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNTA5LDYgKzIyNTEzLDcgQEAKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyog
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJNDZCNjUwREIyMjk2MjYyNzAw
RkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCisJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuaCAqLywKIAkJCQkyRDVDOUNGRDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcCAqLywKQEAgLTMwNDcwLDYgKzMwNDc1LDcgQEAKIAkJCQlBODE4NUYz
NTA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5oICovLAogCQkJCTFBNDk0RUQ1
MEExMjNGMUEwMEZEQUZDMSAvKiBEb2N1bWVudEZyYWdtZW50LmlkbCAqLywKIAkJCQlDRDkyRjUx
MDIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggKi8sCisJCQkJQ0RFRkRB
MDkyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oICovLAogCQkJCUVEMkJBODNC
MDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovLAogCQkJCUNFMDU3RkEzMTIy
MDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNF
MDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLywK
QEAgLTMyMzk3LDYgKzMyNDAzLDcgQEAKIAkJCQlBODE4NUYzRDA5NzY1NzY2MDA1ODI2RDkgLyog
RG9jdW1lbnRGcmFnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5MkY1MTMyMjYwRkZFRTAw
Rjg3QkIzIC8qIERvY3VtZW50RnVsbHNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MjZC
RjIyM0ZCNTk3NzAwQjkyMkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RFRkRBMEIyNzEyMjYzODAwNTU1OUE3IC8qIERvY3VtZW50SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3MzYwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1MjYsNiArMzQ1MzMs
NyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdl
SGVhcEFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCBkNzIyNmYyZTUyZTkxNzMzZmU1ZTE1NWQ5YjQzMTdkNGRmM2QwYjE3Li42ZjY4ZTcxNTNlNDg2
MTUyNmU2MmZkMWE3MmI0OGZlYjRhMDUzYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBWExvZ2dlci5oIgog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50SW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggZjZhM2Y2MjMwY2JkOTkw
NWM4OTM5MjVmYWVmODIyNjEzNzM5YTFmYi4uNzVjOTA3ZjRhMWU2M2ZjODc0Nzk1ZTlkMmU1YzRi
NzRhNzEyOTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBVU0UoQVRLKQogI2luY2x1ZGUgPHd0Zi9nbGli
L0dSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDg2MGEyY2YzMmRmYTBmM2Y4ZGJjNjc3NDhmNDFkZDJi
MGI3ZmQ1ODIuLjhiM2Y0OTRkMDJmNjA2NjZiYjQ0NThiMjlkZmM1Yjc2ODc5MjRjYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJm
YWNlRG9jdW1lbnQuY3BwCmluZGV4IDdmMGI1YTAwNTQ3ODMzYjZhOTY0MDBmMTAyY2Y4YThlOGQ2
ZGU4OGEuLjM0OTAwZTcxYjMxNmQ5YTE4NWRkMWE2MGU3YWYxZDQxNmUyZWFmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRLKQogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QWNjZXNzaWJsZS5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVVdGlsLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA3ZWE0ZWQx
ZjczZTBiNDBkM2I1MGExNDAzNGQ4ZmY3NDE5NWYzZDM3Li45OGEyODM4ZGRhZDI2YzQzYWZlOWQ5
NjkyZjAxZThmMDFiNjcxYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKQEAgLTEwMyw2ICsxMDMsOCBAQCBKU0RPTVdpbmRvd0Jhc2U6OkpT
RE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8RE9NV2lu
ZG93PgogICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CiB9CiAKK0pTRE9NV2luZG93
QmFzZTo6fkpTRE9NV2luZG93QmFzZSgpID0gZGVmYXVsdDsKKwogU1VQUFJFU1NfQVNBTiBpbmxp
bmUgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmluaXRTdGF0aWNHbG9iYWxzKEpTQzo6Vk0mIHZtKQog
ewogICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA3NmIwYzE2MjUyNWYzOGY4ZGY5ZmNiNzc1MDMz
MjRhMWIxZjQ1YTU3Li42ZjJjNjNhYjc3OTY3NTFhOTMzNjhjYTJlNDNmN2MxNTM4OWZkNmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNTYs
NiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VB
Y2Nlc3M+CiAgICAgc3RhdGljIHZvaWQgc3Vic3BhY2VGb3IoSlNDOjpWTSYpIHsgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCisgICAgfkpTRE9NV2luZG93QmFzZSgpOwogICAgIHZv
aWQgdXBkYXRlRG9jdW1lbnQoKTsKIAogICAgIERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0IHsg
cmV0dXJuICptX3dyYXBwZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTg3Y2JhNGMzMWI3MGU1OGI0MWUzYTY2YWNj
ZjBiYTJhNmY3NTg4ZS4uMzlmMmEwMzljMDI1OGExNjUzM2RiOTVhMDVhYzk4OTIzMmYxOGM5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJKU05vZGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNjY4NDg2ZmQ4N2ZjZmU0NGUyOGMxYzVkMWE3NjgyY2I5YmFl
NzIzNi4uNjMyM2Y1ZDY0Y2JjNmJjNmIwMjJmMDU1ODM4OTA2YzAzZjdiNTNiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuY3BwCmluZGV4
IDZjMDg1YTgwMGNkZjRhZjM0YjIzNTJjMjVjYWJiMTM5ZWIwNWU2ZGUuLjAzODZlMzY2MDllNGNl
OGQ3NDBjNzlmMTg2N2U3NjY3YmVkMmM2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUNvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db2xvciBTdHlsZUNv
bG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQga2V5d29yZCwgT3B0aW9uU2V0PE9wdGlv
bnM+IG9wdGlvbnMpCitDb2xvciBTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVl
SUQga2V5d29yZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKQogewogICAg
IGlmIChjb25zdCBjaGFyKiB2YWx1ZU5hbWUgPSBnZXRWYWx1ZU5hbWUoa2V5d29yZCkpIHsKICAg
ICAgICAgaWYgKGNvbnN0IE5hbWVkQ29sb3IqIG5hbWVkQ29sb3IgPSBmaW5kQ29sb3IodmFsdWVO
YW1lLCBzdHJsZW4odmFsdWVOYW1lKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAppbmRleCBlNGU1
OGRmOWM1ZWZlNDg3NTJjZTg4ZjEyNDEwY2UyMzlmMTM5Mjc2Li4zMjE0NGY0ZjFmNjViNjBmNjg2
ZGYyNzZmMjU0ZTlmMjBkZDZjNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKQEAgLTM3LDE1
ICszNywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBTdHlsZUNvbG9yIHsK
LSAgICBlbnVtIGNsYXNzIE9wdGlvbnMgOiB1aW50OF90IHsKLSAgICAgICAgRm9yVmlzaXRlZExp
bmsgPSAxIDw8IDAsCi0gICAgICAgIFVzZVN5c3RlbUFwcGVhcmFuY2UgPSAxIDw8IDEsCi0gICAg
ICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAotICAgICAgICBVc2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbCA9IDEgPDwgMwotICAgIH07CitlbnVtIGNsYXNzIFN0eWxlQ29sb3JPcHRp
b25zIDogdWludDhfdCB7CisgICAgRm9yVmlzaXRlZExpbmsgPSAxIDw8IDAsCisgICAgVXNlU3lz
dGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKKyAgICBVc2VEYXJrQXBwZWFyYW5jZSA9IDEgPDwgMiwK
KyAgICBVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IDEgPDwgMworfTsKIAotICAgIHN0
YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENTU1ZhbHVlSUQsIE9wdGlvblNldDxPcHRpb25z
Pik7CitzdHJ1Y3QgU3R5bGVDb2xvciB7CisgICAgc3RhdGljIENvbG9yIGNvbG9yRnJvbUtleXdv
cmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAgICAgc3RhdGlj
IGJvb2wgaXNBYnNvbHV0ZUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCmluZGV4IGJiOGQ1M2NjYzQ0NWM3MGNmYTgyZmVj
ZjYzNWQ1Y2IyMDQ2ZjY0YTcuLjJlNjVjNjI0NDk3MzM3ZTZiOTAwYWUzOTAwYzFhMTI2Yzk3ZDZj
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKENoYXJhY3RlckRhdGEpOwogc3RhdGljIGJvb2wg
Y2FuVXNlU2V0RGF0YU9wdGltaXphdGlvbihjb25zdCBDaGFyYWN0ZXJEYXRhJiBub2RlKQogewog
ICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZS5kb2N1bWVudCgpOwotICAgIHJldHVybiAhZG9jdW1l
bnQuaGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElT
VEVORVIpICYmICFkb2N1bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9i
c2VydmVyOjpDaGFyYWN0ZXJEYXRhKQorICAgIHJldHVybiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJU
eXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElTVEVORVIpICYmICFkb2N1
bWVudC5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkKICAgICAgICAgJiYgIWRvY3VtZW50Lmhhc0xpc3RlbmVyVHlwZShE
b2N1bWVudDo6RE9NU1VCVFJFRU1PRElGSUVEX0xJU1RFTkVSKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKaW5kZXggMjk2Njc2Nzc2OGYwZDcxNDc0
MmUzNmJjZTViNjEwODY5NzdmOTFmZi4uNjRjOTI0NjVmMmExMDNiM2E5OTBlNjFhM2NmMTI4YTA5
NWIyYmNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9u
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
CkBAIC0zMSw3ICszMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIENoaWxkTGlz
dE11dGF0aW9uU2NvcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IENoaWxkTGlzdE11dGF0aW9u
U2NvcGUoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKHRhcmdldC5k
b2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNo
aWxkTGlzdCkpCisgICAgICAgIGlmICh0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2Vy
dmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkKICAgICAg
ICAgICAgIG1fYWNjdW11bGF0b3IgPSBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yOjpnZXRP
ckNyZWF0ZSh0YXJnZXQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
CmluZGV4IDJiNTliMzZiYzg5YWQyZWRmOTUyOTk0NTE2ZGE5ODk3YTA3ZjQ3OGUuLmFkOGE3NTQ5
NGZiZWQwMjllODE2MmQwY2JhNWVlNGE4ZTIwZDE2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBBTFdBWVNfSU5MSU5FIE5vZGVWZWN0b3Ig
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hpbGRyZW5XaXRoU2NyaXB0QXNzZXJ0aW9uKENoaQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6UGFyc2VyKTsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQg
c2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKSkg
eworICAgICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09m
VHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KSkpIHsKICAgICAgICAg
ICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogICAgICAgICAgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQogICAgICAgICAgICAgICAgIG11dGF0aW9uLndp
bGxSZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBl
OGJjNTZlNzZlNmY2NGM5NmY3MWFmYzYzY2MyZDc2ZDEyZmYwY2E0Li5hZGY1MzU1MmZlMDdmNTVh
N2YxMTkzNDgwZjU1Y2MyYmRlMWJhNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYy
LDYgKzYyLDcgQEAKICNpbmNsdWRlICJEZWJ1Z1BhZ2VPdmVybGF5cy5oIgogI2luY2x1ZGUgIkRl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Rm9udExvYWRlci5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRTaGFyZWRPYmplY3RQb29sLmgiCkBAIC0xNzcsNiArMTc4LDcgQEAKICNpbmNsdWRlICJQ
c2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5o
IgogI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpAQCAtMjM5LDYgKzI0MSw3IEBACiAj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRleHRSZXNv
dXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKQEAgLTk3OSw3ICs5ODIsNyBA
QCB2b2lkIERvY3VtZW50OjpyZXNldExpbmtDb2xvcigpCiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0
VmlzaXRlZExpbmtDb2xvcigpCiB7Ci0gICAgbV92aXNpdGVkTGlua0NvbG9yID0gU3R5bGVDb2xv
cjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtpdExpbmssIHN0eWxlQ29sb3JPcHRpb25z
KG51bGxwdHIpIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIG1f
dmlzaXRlZExpbmtDb2xvciA9IFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzdHlsZUNvbG9yT3B0aW9ucyhudWxscHRyKSB8IFN0eWxlQ29sb3JPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc2V0QWN0aXZlTGlua0Nv
bG9yKCkKQEAgLTM1NzgsNiArMzU4MSwxMyBAQCBSZWZQdHI8UlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVtbwogICAg
IHJldHVybiBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNyZWF0ZVJUQ0RhdGFDaGFubmVsUmVt
b3RlSGFuZGxlckNvbm5lY3Rpb24oKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfUlRDKQordm9pZCBE
b2N1bWVudDo6c2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0
Y05ldHdvcmtNYW5hZ2VyKQoreworICAgIG1fcnRjTmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0
Y05ldHdvcmtNYW5hZ2VyKTsKK30KKyNlbmRpZgorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0
ZShGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQpAQCAtNDQwMywxOCArNDQxMywxOCBAQCB2b2lkIERvY3VtZW50Ojpub3Rl
VXNlckludGVyYWN0aW9uV2l0aE1lZGlhRWxlbWVudCgpCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVJ
c1BsYXlpbmdNZWRpYSgpCiB7CiAgICAgQVNTRVJUKCFtX2F1ZGlvUHJvZHVjZXJzLmhhc051bGxS
ZWZlcmVuY2VzKCkpOwotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogICAgIGZvciAoYXV0byYg
YXVkaW9Qcm9kdWNlciA6IG1fYXVkaW9Qcm9kdWNlcnMpCiAgICAgICAgIHN0YXRlLmFkZChhdWRp
b1Byb2R1Y2VyLm1lZGlhU3RhdGUoKSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IHN0YXRlLmFkZChNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoKnRoaXMpKTsKICAgICBp
ZiAobV9hY3RpdmVTcGVlY2hSZWNvZ25pdGlvbikKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSk7CisgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFF
bGVtZW50KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
VXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpOwog
CiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjcy
NSw3ICs2NzM1LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2Vz
aG93RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudChQ
YWdlVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBhZ2VzaG93RXZlbnQsIHBl
cnNpc3RlZCksIHRoaXMpOwogfQogCi12b2lkIERvY3VtZW50OjplbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZl
bnRJbml0KQordm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBv
bGljeXZpb2xhdGlvbkV2ZW50LCBXVEZNb3ZlKGV2ZW50SW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6
OlllcykpOwogfQpAQCAtNzUwOSwxNSArNzUxOSwxNSBAQCBib29sIERvY3VtZW50Ojp1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1P
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25z
KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSkgY29uc3QKIHsKLSAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsK
KyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnM7CiAgICAgaWYgKHVzZVN5
c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRGFya0FwcGVhcmFuY2Uo
c3R5bGUpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSk7CisgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSk7CiAgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKCkp
Ci0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICByZXR1cm4gb3B0aW9uczsKIH0K
IApAQCAtNzY5NCw3ICs3NzA0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmIGNsaWVudCwgYm9vbAogICAgIHBhZ2Ut
PnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihpdC0+dmFsdWUsIHBvc2l0aW9uLCBpc1ZpZGVvLCBy
b3V0ZVNoYXJpbmdQb2xpY3ksIHJvdXRpbmdDb250ZXh0VUlEKTsKIH0KIAotdm9pZCBEb2N1bWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKK3ZvaWQgRG9jdW1lbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAg
aWYgKCFwYWdlKQpAQCAtODE5OSw3ICs4MjA5LDcgQEAgdm9pZCBEb2N1bWVudDo6b3JpZW50YXRp
b25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
LXZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZCBraW5kKQordm9pZCBEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1
Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewogICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENh
cHR1cmUoKnRoaXMsIGtpbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzODZlMzc4Mjgw
ODhmM2ZkMWVhN2JmYzgwNjgyZTk1YTg1MDg5MDA2Li5mZWU1MTIxMjI5MjMwYzBkZDk3YTBlYmUz
ZWRlYTRlYzBkMTU3NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgIkRpc2FibGVkQWRhcHRhdGlvbnMuaCIKICNpbmNsdWRlICJEb2N1bWVudEV2ZW50
VGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGb2N1c09wdGlvbnMuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3JDbGll
bnQuaCIKQEAgLTQzLDMwICs0MiwyMSBAQAogI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgi
Ci0jaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgotI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlJUQ05ldHdvcmtNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKLSNpbmNsdWRlICJSZWdpb24uaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRlclB0ci5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0aERpcmVjdGlvbi5oIgot
I2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKLSNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiVXNl
ckFjdGlvbkVsZW1lbnRTZXQuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlZpc2liaWxpdHlTdGF0ZS5oIgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtOTYsMTEgKzg2LDE2IEBAIG5hbWVzcGFjZSBXVEYg
ewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9u
SUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNs
YXNzIEFwcEhpZ2hsaWdodFN0b3JhZ2U7CiBjbGFzcyBBdHRyOworY2xhc3MgQ2FudmFzQmFzZTsK
IGNsYXNzIENEQVRBU2VjdGlvbjsKIGNsYXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWU7CiBjbGFz
cyBDU1NGb250U2VsZWN0b3I7CkBAIC0xMzIsNiArMTI3LDcgQEAgY2xhc3MgRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJl
ZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lOworY2xhc3MgRG9jdW1lbnRUaW1l
bGluZXNDb250cm9sbGVyOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRWRpdGluZ0JlaGF2
aW9yOwogY2xhc3MgRWRpdG9yOwpAQCAtMTgzLDYgKzE3OSw3IEBAIGNsYXNzIExvY2F0aW9uOwog
Y2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsK
IGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CitjbGFzcyBNZWRpYVByb2R1Y2VyOwog
Y2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKIGNsYXNzIE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwpAQCAtMTk2LDcgKzE5Myw5IEBAIGNsYXNzIFBsYXRm
b3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxp
ZmllZE5hbWU7CiBjbGFzcyBRdWlya3M7CitjbGFzcyBSVENOZXR3b3JrTWFuYWdlcjsKIGNsYXNz
IFJhbmdlOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyVHJlZUJ1aWxkZXI7CiBjbGFzcyBS
ZW5kZXJWaWV3OwogY2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7CkBAIC0yMjMs
NiArMjIyLDcgQEAgY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExp
c3Q7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEF1dG9TaXppbmc7CitjbGFzcyBUZXh0RW5jb2Rp
bmc7CiBjbGFzcyBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFRleHRSZXNvdXJj
ZURlY29kZXI7CiBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CkBAIC0yNTAsMjAgKzI1MCwyOSBAQCBz
dHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVzdDsKIHN0cnVjdCBCb3VuZGFyeVBvaW50Owogc3RydWN0
IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7Citz
dHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogZW51bSBDb2xsZWN0aW9uVHlwZTsKIAorZW51bSBj
bGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZSA6IHVpbnQzMl90OworZW51bSBjbGFzcyBNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgOiB1aW50MTZfdDsKK2VudW0g
Y2xhc3MgU3R5bGVDb2xvck9wdGlvbnMgOiB1aW50OF90OworZW51bSBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7CiAKK3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZT47CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCiBuYW1lc3BhY2Ug
U3R5bGUgewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBTY29wZTsKK2NsYXNzIFVwZGF0ZTsKIH0K
IAogZW51bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgeyBQYWdlc2hvd0V2ZW50Tm90UGVyc2lz
dGVkLCBQYWdlc2hvd0V2ZW50UGVyc2lzdGVkIH07CkBAIC0zNTQsNyArMzYzLDcgQEAgcHVibGlj
OgogICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBFdmVudFRhcmdldDo6V2Vha1ZhbHVlVHlwZTsK
ICAgICB1c2luZyBFdmVudFRhcmdldDo6d2Vha1B0ckZhY3Rvcnk7CiAKLSAgICBzdGF0aWMgUmVm
PERvY3VtZW50PiBjcmVhdGUoY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsKKyAgICBpbmxp
bmUgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJM
Jik7CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cihGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwogCkBAIC00NjAsMTEgKzQ2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgZGVmYXVsdENoYXJzZXRGb3JMZWdhY3lCaW5kaW5ncygpIGNvbnN0Owog
Ci0gICAgU3RyaW5nIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2Rpbmco
KTsgfQorICAgIGlubGluZSBTdHJpbmcgY2hhcnNldCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBjaGFyYWN0ZXJTZXRXaXRoVVRGOEZhbGxiYWNrKCkgY29uc3Q7Ci0gICAgVGV4
dEVuY29kaW5nIHRleHRFbmNvZGluZygpIGNvbnN0OworICAgIGlubGluZSBUZXh0RW5jb2Rpbmcg
dGV4dEVuY29kaW5nKCkgY29uc3Q7CiAKLSAgICBBdG9tU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qg
eyByZXR1cm4gdGV4dEVuY29kaW5nKCkuZG9tTmFtZSgpOyB9CisgICAgaW5saW5lIEF0b21TdHJp
bmcgZW5jb2RpbmcoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhcnNl
dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBieSBPYmpDIC8gR09CamVjdCBiaW5kaW5ncyBvbmx5
LgogCkBAIC01NzksNyArNTg4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHVzZURhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAg
ICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoY29uc3Qg
UmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3JGb3JCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3Im
LCBjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxS
YW5nZT4gY3JlYXRlUmFuZ2UoKTsKQEAgLTY0NSw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCB1cGRhdGVMYXlvdXRJZkRpbWVuc2lvbnNPdXRPZkRhdGUoRWxlbWVudCYsIERpbWVu
c2lvbnNDaGVjayA9IEFsbERpbWVuc2lvbnNDaGVjayk7CiAgICAgCi0gICAgQVhPYmplY3RDYWNo
ZSogZXhpc3RpbmdBWE9iamVjdENhY2hlKCkgY29uc3Q7CisgICAgaW5saW5lIEFYT2JqZWN0Q2Fj
aGUqIGV4aXN0aW5nQVhPYmplY3RDYWNoZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEFY
T2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyQVhPYmpl
Y3RDYWNoZSgpOwogCkBAIC03MTMsNyArNzIyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgUlRDTmV0d29ya01hbmFnZXIqIHJ0Y05ldHdvcmtNYW5hZ2VyKCkgeyByZXR1
cm4gbV9ydGNOZXR3b3JrTWFuYWdlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0UlRDTmV0d29ya01h
bmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2VyPiYmIHJ0Y05ldHdvcmtNYW5hZ2VyKSB7IG1fcnRj
TmV0d29ya01hbmFnZXIgPSBXVEZNb3ZlKHJ0Y05ldHdvcmtNYW5hZ2VyKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0UlRDTmV0d29ya01hbmFnZXIoUmVmPFJUQ05ldHdvcmtNYW5hZ2Vy
PiYmKTsKICNlbmRpZgogCiAgICAgYm9vbCBjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUs
IGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwgPSBVUkwoKSk7CkBAIC04OTEsMTIgKzkwMCw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0xpc3RlbmVyVHlwZUZvckV2ZW50VHlwZShQbGF0Zm9ybUV2
ZW50OjpUeXBlKSBjb25zdDsKICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSk7CiAKLSAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKLSAgICB9Ci0g
ICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0YXRpb25P
YnNlcnZlclR5cGVzOyB9Ci0gICAgdm9pZCBhZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMoTXV0YXRp
b25PYnNlcnZlck9wdGlvbnMgdHlwZXMpIHsgbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgfD0gdHlw
ZXM7IH0KKyAgICBpbmxpbmUgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlv
bk9ic2VydmVyT3B0aW9uVHlwZSkgY29uc3Q7CisgICAgYm9vbCBoYXNNdXRhdGlvbk9ic2VydmVy
cygpIGNvbnN0IHsgcmV0dXJuICFtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5pc0VtcHR5KCk7IH0K
KyAgICB2b2lkIGFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyB0eXBlcykgeyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5hZGQodHlwZXMpOyB9CiAKICAgICBD
U1NTdHlsZURlY2xhcmF0aW9uKiBnZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmKSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExODAsNyArMTE4Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudE9uV2luZG93KFRhc2tTb3VyY2UsIFJl
ZjxFdmVudD4mJik7CiAgICAgdm9pZCBlbnF1ZXVlT3ZlcmZsb3dFdmVudChSZWY8RXZlbnQ+JiYp
OwogICAgIHZvaWQgZGlzcGF0Y2hQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5j
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJik7CiAgICAgdm9pZCBlbnF1ZXVlSGFzaGNoYW5n
ZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAgICAg
dm9pZCBkaXNwYXRjaFBvcHN0YXRlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiBzdGF0ZU9iamVjdCk7CiAKQEAgLTEzNjUsNyArMTM3MSw3IEBAIHB1YmxpYzoKICAgICBTZWN1
cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250
ZXh0OjpzZWN1cml0eU9yaWdpbigpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRvcERvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQog
Ci0gICAgYm9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2Vj
dXJpdHlPcmlnaW4oKS5pc1NhbWVPcmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KKyAgICBpbmxpbmUg
Ym9vbCBpc1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRG
b3JjZU5vT3BlbmVyQmFzZWRPbkNPT1AoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNv
bnN0IGZpbmFsOwpAQCAtMTQwMiw5ICsxNDA4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWRkQXVkaW9Qcm9kdWNlcihNZWRpYVByb2R1Y2VyJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICB2b2lk
IHNldEFjdGl2ZVNwZWVjaFJlY29nbml0aW9uKFNwZWVjaFJlY29nbml0aW9uKik7Ci0gICAgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIG5vdGVVc2VySW50
ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCk7Ci0gICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0
IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KKyAg
ICBpbmxpbmUgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hh
bmdlKCk7CiAKQEAgLTE0MTIsNyArMTQxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKICAgICB2
b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRD
bGllbnQmKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihNZWRpYVBsYXliYWNr
VGFyZ2V0Q2xpZW50JiwgYm9vbCwgUm91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQ
bGF5YmFja1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7Cisg
ICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxh
eWJhY2tUYXJnZXRDbGllbnQmLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogICAg
IHZvaWQgc2V0UGxheWJhY2tUYXJnZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwogICAgIHZvaWQgcGxheWJhY2tUYXJn
ZXRBdmFpbGFiaWxpdHlEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciwgYm9vbCk7CkBAIC0xNDUxLDcgKzE0NTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICB2b2lkIHNldEhhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgeyBt
X2hhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX2hhc0hhZENhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVBy
b2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0
ZUNoYW5nZWQoKTsKICNlbmRpZgogCkBAIC0yMDYyLDE0ICsyMDY4LDE0IEBAIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoIHsgMCB9OwogCiAgICAgSW5oZXJpdGVk
Qm9vbCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IG1fbWVkaWFTdGF0ZTsKICAgICBib29sIG1fdXNlckhhc0ludGVyYWN0ZWRXaXRoTWVkaWFFbGVt
ZW50IHsgZmFsc2UgfTsKICAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgbV9iYWNrRm9yd2FyZENh
Y2hlU3RhdGUgeyBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFJl
ZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0
YXRlIHsgQ29tcGxldGUgfTsKICAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBtX2Nyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5OwogCi0gICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRhdGlv
bk9ic2VydmVyVHlwZXMgeyAwIH07CisgICAgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgbV9tdXRh
dGlvbk9ic2VydmVyVHlwZXM7CiAKICAgICBib29sIG1fYWN0aXZlUGFyc2VyV2FzQWJvcnRlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwIHsgZmFsc2UgfTsK
QEAgLTIyMjksNDMgKzIyMzUsNiBAQCBwcml2YXRlOgogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwogCi1pbmxpbmUgVGV4dEVuY29kaW5nIERvY3Vt
ZW50Ojp0ZXh0RW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChhdXRvKiBkZWNvZGVyID0gdGhp
cy0+ZGVjb2RlcigpKQotICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZW5jb2RpbmcoKTsKLSAgICBy
ZXR1cm4gVGV4dEVuY29kaW5nKCk7Ci19Ci0KLWlubGluZSBjb25zdCBEb2N1bWVudCogRG9jdW1l
bnQ6OnRlbXBsYXRlRG9jdW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RlbXBsYXRlRG9j
dW1lbnRIb3N0ID8gdGhpcyA6IG1fdGVtcGxhdGVEb2N1bWVudC5nZXQoKTsKLX0KLQotaW5saW5l
IEFYT2JqZWN0Q2FjaGUqIERvY3VtZW50OjpleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdAot
ewotICAgIGlmICghaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGUpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIHJldHVybiBleGlzdGluZ0FYT2JqZWN0Q2FjaGVTbG93KCk7Ci19Ci0K
LWlubGluZSBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVhdGUoY29uc3QgU2V0dGluZ3MmIHNl
dHRpbmdzLCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1
bWVudChudWxscHRyLCBzZXR0aW5ncywgdXJsKSk7Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50
OjppbnZhbGlkYXRlQWNjZXNzS2V5Q2FjaGUoKQotewotICAgIGlmIChVTkxJS0VMWShtX2FjY2Vz
c0tleUNhY2hlKSkKLSAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlU2xvd0Nhc2UoKTsK
LX0KLQotLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRo
ZSBEb2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgot
Ci1pbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZkb2N1bWVudCgpLmNvbnRleHREb2N1bWVudCgp
OwotfQotCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29u
c3QgRG9jdW1lbnQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50SW5saW5lcy5oCmluZGV4IDQwYWRkMDRlNmEwZmE2YWQyZTM0NGYwZDdlYTdhNGIxMzg3
MThmM2UuLmRkMjUwYWUyYzg4OWRlYjJiNjIwN2MwZDI0OThiNTZjMTE2Y2ZlMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNiArMzksMTAgQEAgaW5saW5lIFRl
eHRFbmNvZGluZyBEb2N1bWVudDo6dGV4dEVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gVGV4
dEVuY29kaW5nKCk7CiB9CiAKK2lubGluZSBBdG9tU3RyaW5nIERvY3VtZW50OjplbmNvZGluZygp
IGNvbnN0IHsgcmV0dXJuIHRleHRFbmNvZGluZygpLmRvbU5hbWUoKTsgfQorCitpbmxpbmUgU3Ry
aW5nIERvY3VtZW50OjpjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gRG9jdW1lbnQ6OmVuY29kaW5n
KCk7IH0KKwogaW5saW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVu
dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QgPyB0aGlzIDog
bV90ZW1wbGF0ZURvY3VtZW50LmdldCgpOwpAQCAtNTksNiArNjYsMTkgQEAgaW5saW5lIHZvaWQg
RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCiAgICAgICAgIGludmFsaWRhdGVB
Y2Nlc3NLZXlDYWNoZVNsb3dDYXNlKCk7CiB9CiAKK2lubGluZSBib29sIERvY3VtZW50Ojppc0Nh
cHR1cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5n
KG1fbWVkaWFTdGF0ZSk7Cit9CisKK2lubGluZSBib29sIERvY3VtZW50OjpoYXNNdXRhdGlvbk9i
c2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlKSBjb25zdAorewor
ICAgIHJldHVybiBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcy5jb250YWluc0FueSh0eXBlKTsKK30K
KworaW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25z
dCB7IHJldHVybiBzZWN1cml0eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsg
fQorCisKIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgaGVyZSBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0
aGUgRG9jdW1lbnQgY2xhc3MgZGVmaW5pdGlvbiBhbmQgd2Ugd2FudCB0byBpbmxpbmUgdGhlbS4K
IAogaW5saW5lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDRjMGVmZmM1YmNkNDJiZjI5
NTJiMTkyZTQxMjQwNTZhMDM4NTMyZTAuLjdiMzdkMGQ4YmMxMDBiZTIyZGM4Zjk1YjUzN2NhYTBh
MjI2MDkxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJET01SZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIK
ICNpbmNsdWRlICJFZGl0aW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5j
cHAKaW5kZXggNDc2ZjhkYWI5YjY1MTYxODg5ZWY5ZTgwYmI0NThjYjY2ZGVmNGRiNS4uNjUwNWRj
OWFiMmVmYjZiNjRmNDMxOGRlYzk5NzZhZTg4NjAwMTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNzEsMzcgKzcxLDM3IEBAIE11dGF0aW9uT2JzZXJ2ZXI6
On5NdXRhdGlvbk9ic2VydmVyKCkKIAogYm9vbCBNdXRhdGlvbk9ic2VydmVyOjp2YWxpZGF0ZU9w
dGlvbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gKG9w
dGlvbnMgJiAoQXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEgfCBDaGlsZExpc3QpKQotICAgICAg
ICAmJiAoKG9wdGlvbnMgJiBBdHRyaWJ1dGVzKSB8fCAhKG9wdGlvbnMgJiBBdHRyaWJ1dGVPbGRW
YWx1ZSkpCi0gICAgICAgICYmICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAm
IEF0dHJpYnV0ZUZpbHRlcikpCi0gICAgICAgICYmICgob3B0aW9ucyAmIENoYXJhY3RlckRhdGEp
IHx8ICEob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpOworICAgIHJldHVybiBvcHRp
b25zLmNvbnRhaW5zQW55KEFsbE11dGF0aW9uVHlwZXMpCisgICAgICAgICYmIChvcHRpb25zLmNv
bnRhaW5zKE9wdGlvblR5cGU6OkF0dHJpYnV0ZXMpIHx8ICFvcHRpb25zLmNvbnRhaW5zKE9wdGlv
blR5cGU6OkF0dHJpYnV0ZU9sZFZhbHVlKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMo
T3B0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6
QXR0cmlidXRlRmlsdGVyKSkKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlw
ZTo6Q2hhcmFjdGVyRGF0YSkgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6Q2hhcmFj
dGVyRGF0YU9sZFZhbHVlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE11dGF0aW9uT2JzZXJ2
ZXI6Om9ic2VydmUoTm9kZSYgbm9kZSwgY29uc3QgSW5pdCYgaW5pdCkKIHsKLSAgICBNdXRhdGlv
bk9ic2VydmVyT3B0aW9ucyBvcHRpb25zID0gMDsKKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyBvcHRpb25zOwogCiAgICAgaWYgKGluaXQuY2hpbGRMaXN0KQotICAgICAgICBvcHRpb25zIHw9
IENoaWxkTGlzdDsKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6Q2hpbGRMaXN0KTsK
ICAgICBpZiAoaW5pdC5zdWJ0cmVlKQotICAgICAgICBvcHRpb25zIHw9IFN1YnRyZWU7CisgICAg
ICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5cGU6OlN1YnRyZWUpOwogICAgIGlmIChpbml0LmF0dHJp
YnV0ZU9sZFZhbHVlLnZhbHVlX29yKGZhbHNlKSkKLSAgICAgICAgb3B0aW9ucyB8PSBBdHRyaWJ1
dGVPbGRWYWx1ZTsKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6QXR0cmlidXRlT2xk
VmFsdWUpOwogICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGFPbGRWYWx1ZS52YWx1ZV9vcihmYWxz
ZSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YU9sZFZhbHVlOworICAgICAgICBv
cHRpb25zLmFkZChPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogCiAgICAgSGFz
aFNldDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVGaWx0ZXI7CiAgICAgaWYgKGluaXQuYXR0cmlidXRl
RmlsdGVyKSB7CiAgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbml0LmF0dHJpYnV0ZUZpbHRl
ci52YWx1ZSgpKQogICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyLmFkZCh2YWx1ZSk7Ci0gICAg
ICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlRmlsdGVyOworICAgICAgICBvcHRpb25zLmFkZChPcHRp
b25UeXBlOjpBdHRyaWJ1dGVGaWx0ZXIpOwogICAgIH0KIAotICAgIGlmIChpbml0LmF0dHJpYnV0
ZXMgPyBpbml0LmF0dHJpYnV0ZXMudmFsdWUoKSA6IChvcHRpb25zICYgKEF0dHJpYnV0ZUZpbHRl
ciB8IEF0dHJpYnV0ZU9sZFZhbHVlKSkpCi0gICAgICAgIG9wdGlvbnMgfD0gQXR0cmlidXRlczsK
KyAgICBpZiAoaW5pdC5hdHRyaWJ1dGVzID8gaW5pdC5hdHRyaWJ1dGVzLnZhbHVlKCkgOiBvcHRp
b25zLmNvbnRhaW5zQW55KHsgT3B0aW9uVHlwZTo6QXR0cmlidXRlRmlsdGVyLCBPcHRpb25UeXBl
OjpBdHRyaWJ1dGVPbGRWYWx1ZSB9KSkKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6
QXR0cmlidXRlcyk7CiAKLSAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRhID8gaW5pdC5jaGFyYWN0
ZXJEYXRhLnZhbHVlKCkgOiAob3B0aW9ucyAmIENoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCi0gICAg
ICAgIG9wdGlvbnMgfD0gQ2hhcmFjdGVyRGF0YTsKKyAgICBpZiAoaW5pdC5jaGFyYWN0ZXJEYXRh
ID8gaW5pdC5jaGFyYWN0ZXJEYXRhLnZhbHVlKCkgOiBvcHRpb25zLmNvbnRhaW5zKE9wdGlvblR5
cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSkpCisgICAgICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5
cGU6OkNoYXJhY3RlckRhdGEpOwogCiAgICAgaWYgKCF2YWxpZGF0ZU9wdGlvbnMob3B0aW9ucykp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlci5oCmluZGV4IDJhZjI2M2JkNGE3MjU0YTIwYTNiOTM1MzE3Yjc5Njkx
YWY0Y2M3ZGEuLjA0YWYwMDRhOWUwOTVlZmVlZWMxZjYxMGU1MjhiNDZlNjBmNWU3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIApAQCAtNTMsMzAgKzU0
LDI3IEBAIGNsYXNzIE11dGF0aW9uUmVjb3JkOwogY2xhc3MgTm9kZTsKIGNsYXNzIFdpbmRvd0V2
ZW50TG9vcDsKIAotdXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSB1bnNpZ25lZCBjaGFy
OwotdXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgPSB1bnNpZ25lZCBjaGFyOwor
ZW51bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIC8v
IE11dGF0aW9uVHlwZQorICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKKyAgICBBdHRyaWJ1dGVzID0g
MSA8PCAxLAorICAgIENoYXJhY3RlckRhdGEgPSAxIDw8IDIsCiAKLWNsYXNzIE11dGF0aW9uT2Jz
ZXJ2ZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbk9ic2VydmVyPiB7Ci0gICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChNdXRhdGlvbk9ic2VydmVyKTsKLXB1YmxpYzoKLSAgICBl
bnVtIE11dGF0aW9uVHlwZSB7Ci0gICAgICAgIENoaWxkTGlzdCA9IDEgPDwgMCwKLSAgICAgICAg
QXR0cmlidXRlcyA9IDEgPDwgMSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKKyAg
ICAvLyBPYnNlcnZhdGlvbkZsYWdzCisgICAgU3VidHJlZSA9IDEgPDwgMywKKyAgICBBdHRyaWJ1
dGVGaWx0ZXIgPSAxIDw8IDQsCiAKLSAgICAgICAgQWxsTXV0YXRpb25UeXBlcyA9IENoaWxkTGlz
dCB8IEF0dHJpYnV0ZXMgfCBDaGFyYWN0ZXJEYXRhCi0gICAgfTsKKyAgICAvLyBEZWxpdmVyeUZs
YWdzCisgICAgQXR0cmlidXRlT2xkVmFsdWUgPSAxIDw8IDUsCisgICAgQ2hhcmFjdGVyRGF0YU9s
ZFZhbHVlID0gMSA8PCA2LAorfTsKIAotICAgIGVudW0gT2JzZXJ2YXRpb25GbGFncyAgewotICAg
ICAgICBTdWJ0cmVlID0gMSA8PCAzLAotICAgICAgICBBdHRyaWJ1dGVGaWx0ZXIgPSAxIDw8IDQK
LSAgICB9OwotCi0gICAgZW51bSBEZWxpdmVyeUZsYWdzIHsKLSAgICAgICAgQXR0cmlidXRlT2xk
VmFsdWUgPSAxIDw8IDUsCi0gICAgICAgIENoYXJhY3RlckRhdGFPbGRWYWx1ZSA9IDEgPDwgNiwK
LSAgICB9OwordXNpbmcgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgPSBPcHRpb25TZXQ8TXV0YXRp
b25PYnNlcnZlck9wdGlvblR5cGU+OwordXNpbmcgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgPSBPcHRpb25TZXQ8TXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU+OwogCitjbGFzcyBNdXRh
dGlvbk9ic2VydmVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8TXV0YXRpb25PYnNlcnZlcj4g
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTXV0YXRpb25PYnNlcnZlcik7CitwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxNdXRhdGlvbk9ic2VydmVyPiBjcmVhdGUoUmVmPE11dGF0aW9uQ2Fs
bGJhY2s+JiYpOwogCiAgICAgfk11dGF0aW9uT2JzZXJ2ZXIoKTsKQEAgLTExNCw2ICsxMTIsMTEg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoV2lu
ZG93RXZlbnRMb29wJik7CiAKKyAgICB1c2luZyBPcHRpb25UeXBlID0gTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU7CisKKyAgICBzdGF0aWMgY29uc3RleHByIE11dGF0aW9uT2JzZXJ2ZXJPcHRp
b25zIEFsbE11dGF0aW9uVHlwZXMgeyBPcHRpb25UeXBlOjpDaGlsZExpc3QsIE9wdGlvblR5cGU6
OkF0dHJpYnV0ZXMsIE9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEgfTsKKyAgICBzdGF0aWMgY29u
c3RleHByIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIEFsbERlbGl2ZXJ5RmxhZ3MgeyBPcHRpb25U
eXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVl
IH07CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTXV0YXRpb25PYnNlcnZlcihSZWY8TXV0YXRp
b25DYWxsYmFjaz4mJik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAppbmRleCAwMjc2ZTQy
YmU1YmQ4M2ZmNDJhNzkzNTZiZGU5Y2U3MzYwOTljYmRlLi4yYWVjNjUyOTBjMzg0NzcyMjZhMGYw
ODgyMmZmYTM3YzVkZjdiMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgaW5saW5lIE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cChIYXNoTWFwPFJlZjwKICAgICBBU1NFUlQoIW1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSk7CiB9CiAK
LXN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRp
b25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRp
b25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK3N0
ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gTXV0YXRpb25PYnNl
cnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xk
VmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewotICAgIEFT
U0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5h
bWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0
ZU5hbWUpOwogICAgIGF1dG8gb2JzZXJ2ZXJzID0gdGFyZ2V0LnJlZ2lzdGVyZWRNdXRhdGlvbk9i
c2VydmVycyh0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAob2JzZXJ2ZXJzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCmluZGV4IDNjMGFlNTIzN2Q0YjJlMmVmZjcw
ZGRlNjYyZTVmNGUxZTU2OTI2YWQuLjJmNDZjODFlOGU1ZTg5MzBmZmNjYzFkYjg0ZGE4MGJjYTkw
NDFiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJN
dXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC00NiwzNiArNDYsMzYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hpbGRMaXN0
TXV0YXRpb24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1l
bnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExp
c3QpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGlsZExpc3QpKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlv
bnMgb2xkVmFsdWVGbGFnID0gMDsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdl
dCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRMaXN0LCBvbGRWYWx1ZUZsYWcpOworICAgICAgICBN
dXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWc7CisgICAgICAgIHJldHVy
biBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGls
ZExpc3QsIG9sZFZhbHVlRmxhZyk7CiAgICAgfQogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11
dGF0aW9uKE5vZGUmIHRhcmdldCkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50
KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVy
RGF0YSkpCisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZl
cnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YSwgTXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGEsIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+
IGNyZWF0ZUZvckF0dHJpYnV0ZXNNdXRhdGlvbihOb2RlJiB0YXJnZXQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVu
dCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0
ZXMpKQorICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzKSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJn
ZXQsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMsIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlLCAmYXR0cmlidXRlTmFtZSk7CisgICAgICAgIHJldHVybiBjcmVhdGVJZk5l
ZWRlZCh0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzLCBNdXRh
dGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlT2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1l
KTsKICAgICB9CiAKICAgICBib29sIGlzT2xkVmFsdWVSZXF1ZXN0ZWQoKSBjb25zdDsKICAgICB2
b2lkIGVucXVldWVNdXRhdGlvblJlY29yZChSZWY8TXV0YXRpb25SZWNvcmQ+JiYpOwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0
R3JvdXA+IGNyZWF0ZUlmTmVlZGVkKE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0
YXRpb25UeXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNv
bnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVJZk5l
ZWRlZChOb2RlJiB0YXJnZXQsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0
dHJpYnV0ZU5hbWUgPSBudWxscHRyKTsKIAotICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykgY29uc3QgeyByZXR1cm4gb3B0aW9ucyAmIG1f
b2xkVmFsdWVGbGFnOyB9CisgICAgYm9vbCBoYXNPbGRWYWx1ZShNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVybiBvcHRpb25zLmNvbnRhaW5zQW55KG1f
b2xkVmFsdWVGbGFnKTsgfQogCiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBtX29ic2VydmVyczsKICAgICBNdXRhdGlvblJl
Y29yZERlbGl2ZXJ5T3B0aW9ucyBtX29sZFZhbHVlRmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBjNmYxZmIxNWRm
ZjhkNWViZmYyZjVjNWI3YjdlZGUzYWUzZDBlYjc5Li5kM2MxZmE2NmVkMmY1NTQ3ZjBiODA5YzY5
MDdiYjQ1YzRmOWY1NGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC05NSwxNiArOTUsMTYgQEAgc3RkOjp1bmlxdWVf
cHRyPEhhc2hTZXQ8R0NSZWFjaGFibGVSZWY8Tm9kZT4+PiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cmF0aW9uOjp0YWsKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKLWJvb2wgTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiBub2Rl
LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFt
ZSogYXR0cmlidXRlTmFtZSkgY29uc3QKK2Jvb2wgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bjo6c2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiBub2RlLCBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25z
dAogewotICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYm
IGF0dHJpYnV0ZU5hbWUpIHx8ICFhdHRyaWJ1dGVOYW1lKTsKLSAgICBpZiAoIShtX29wdGlvbnMg
JiB0eXBlKSkKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6
OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIGlm
ICghbV9vcHRpb25zLmNvbnRhaW5zKHR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoJm1fbm9kZSAhPSAmbm9kZSAmJiAhaXNTdWJ0cmVlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgfHwg
IShtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVGaWx0ZXIpKQorICAgIGlm
ICh0eXBlICE9IE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVzIHx8ICFtX29w
dGlvbnMuY29udGFpbnMoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZUZpbHRl
cikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKCFhdHRyaWJ1dGVOYW1lLT5uYW1l
c3BhY2VVUkkoKS5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IDMxMTA4NDE4ZjFlZDU2NGZhYjk1Yjk2ZmM4YTBj
ZmRhNTM1M2YzZWIuLjc1YmIyN2MzNTE0MDJmNThmNGU3ODQ5NjU2MzBhYmI4ZTI5YjUxYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
aApAQCAtNTYsMTIgKzU2LDEyIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNl
dDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IHRha2VUcmFuc2llbnRSZWdpc3RyYXRpb25zKCk7CiAg
ICAgYm9vbCBoYXNUcmFuc2llbnRSZWdpc3RyYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2llbnRSZWdpc3RyYXRpb25Ob2RlcyAmJiAhbV90cmFuc2llbnRSZWdpc3RyYXRpb25Ob2Rlcy0+
aXNFbXB0eSgpOyB9CiAKLSAgICBib29sIHNob3VsZFJlY2VpdmVNdXRhdGlvbkZyb20oTm9kZSYs
IE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0
cmlidXRlTmFtZSkgY29uc3Q7Ci0gICAgYm9vbCBpc1N1YnRyZWUoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpTdWJ0cmVlOyB9CisgICAgYm9vbCBzaG91bGRS
ZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmLCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkgY29uc3Q7CisgICAgYm9vbCBpc1N1YnRy
ZWUoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY29udGFpbnMoTXV0YXRpb25PYnNlcnZlck9w
dGlvblR5cGU6OlN1YnRyZWUpOyB9CiAKICAgICBNdXRhdGlvbk9ic2VydmVyJiBvYnNlcnZlcigp
IHsgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7IH0KICAgICBOb2RlJiBub2RlKCkgeyByZXR1cm4g
bV9ub2RlOyB9Ci0gICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zICYgKE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJp
YnV0ZU9sZFZhbHVlIHwgTXV0YXRpb25PYnNlcnZlcjo6Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKTsg
fQorICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIGRlbGl2ZXJ5T3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkFsbERlbGl2ZXJ5Rmxh
Z3M7IH0KICAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtdXRhdGlvblR5cGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QWxsTXV0YXRpb25UeXBlczsg
fQogCiAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xv
dFZpc2l0b3ImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBhNmYxOTgzNmE5YmRkNTE2NmY4
ODBjZTYwNjQzMmRjMDYxZWM0M2FmLi5lNTM1MTQ3MTA4ZmNmYWUzNGUzNzc0ZjdkN2JmOTM0MjQ1
MTA5MzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RWxlbWVudFJhcmVEYXRhLmgiCkBAIC0yMjgyLDcgKzIyODMsNyBAQCBIYXNoU2V0PE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiogTm9kZTo6dHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJ5KAogICAgIHJldHVybiAmZGF0YS0+dHJhbnNpZW50UmVnaXN0cnk7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiYgb2JzZXJ2ZXJzLCBSZWdpc3RyeSogcmVnaXN0cnks
IE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3Ry
eT4gc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9u
KEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0
aW9ucz4mIG9ic2VydmVycywgUmVnaXN0cnkqIHJlZ2lzdHJ5LCBOb2RlJiB0YXJnZXQsIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0
ZU5hbWUpCiB7CiAgICAgaWYgKCFyZWdpc3RyeSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjI5Miwx
NSArMjI5MywxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWdpc3RyeT4gc3RhdGljIGlubGluZSB2
b2lkIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aQogICAgICAgICAgICAgYXV0byBk
ZWxpdmVyeU9wdGlvbnMgPSByZWdpc3RyYXRpb24tPmRlbGl2ZXJ5T3B0aW9ucygpOwogICAgICAg
ICAgICAgYXV0byByZXN1bHQgPSBvYnNlcnZlcnMuYWRkKHJlZ2lzdHJhdGlvbi0+b2JzZXJ2ZXIo
KSwgZGVsaXZlcnlPcHRpb25zKTsKICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkp
Ci0gICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSB8PSBkZWxpdmVyeU9wdGlv
bnM7CisgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoZGVsaXZlcnlP
cHRpb25zKTsKICAgICAgICAgfQogICAgIH0KIH0KIAotSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNl
cnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiBOb2RlOjpyZWdpc3RlcmVkTXV0
YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUsIGNvbnN0
IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCitIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2Vy
dmVyPiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRh
dGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFs
aWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQogewogICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2Jz
ZXJ2ZXI+LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVzdWx0OwotICAgIEFTU0VS
VCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyOjpBdHRyaWJ1dGVzICYmIGF0dHJpYnV0ZU5hbWUp
IHx8ICFhdHRyaWJ1dGVOYW1lKTsKKyAgICBBU1NFUlQoKHR5cGUgPT0gTXV0YXRpb25PYnNlcnZl
ck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5h
bWUpOwogICAgIGNvbGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKHJlc3VsdCwgbXV0
YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCksICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAg
ICBjb2xsZWN0TWF0Y2hpbmdPYnNlcnZlcnNGb3JNdXRhdGlvbihyZXN1bHQsIHRyYW5zaWVudE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSgpLCAqdGhpcywgdHlwZSwgYXR0cmlidXRlTmFtZSk7CiAg
ICAgZm9yIChOb2RlKiBub2RlID0gcGFyZW50Tm9kZSgpOyBub2RlOyBub2RlID0gbm9kZS0+cGFy
ZW50Tm9kZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBiZGI4NDI3MDUzOWUxMzE2NjE0MTY5ZTBjN2Yw
NjY5Mjc3MjQ2YmE2Li41ZDY5M2ZjMjViNDZjZjQ5OWU3NTMzMzYwOTdmZDkxNjc1NTA4ZGE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgotI2luY2x1
ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5o
IgogI2luY2x1ZGUgIlN0eWxlVmFsaWRpdHkuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKQEAg
LTU0LDYgKzUzLDggQEAgY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEhUTUxRdWFsaWZpZWROYW1l
OwogY2xhc3MgSFRNTFNsb3RFbGVtZW50OwogY2xhc3MgTWF0aE1MUXVhbGlmaWVkTmFtZTsKK2Ns
YXNzIE11dGF0aW9uT2JzZXJ2ZXI7CitjbGFzcyBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OwogY2xhc3MgTmFtZWROb2RlTWFwOwogY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBOb2RlTGlzdHNO
b2RlRGF0YTsKQEAgLTY3LDYgKzY4LDEwIEBAIGNsYXNzIFNWR1F1YWxpZmllZE5hbWU7CiBjbGFz
cyBTaGFkb3dSb290OwogY2xhc3MgVG91Y2hFdmVudDsKIAorZW51bSBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZSA6IHVpbnQ4X3Q7Cit1c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
cyA9IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZT47Cit1c2luZyBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZT47CisKIHVzaW5nIE5vZGVPclN0cmluZyA9IFZhcmlhbnQ8UmVmUHRyPE5vZGU+LCBTdHJp
bmc+OwogCiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKQEAgLTQ5NCw3ICs0OTks
NyBAQCBwdWJsaWM6CiAgICAgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGFDb25jdXJy
ZW50bHkoKSBmaW5hbDsKICAgICBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0
YSgpIGZpbmFsOwogCi0gICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9u
UmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRp
b25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVO
YW1lKTsKKyAgICBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25SZWNvcmRE
ZWxpdmVyeU9wdGlvbnM+IHJlZ2lzdGVyZWRNdXRhdGlvbk9ic2VydmVycyhNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CiAgICAg
dm9pZCByZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciYsIE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25zLCBjb25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiBhdHRyaWJ1dGVGaWx0
ZXIpOwogICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgcmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2Vy
dmVyKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggMTc2YmMzYjQ4OTIwZmVkMDhhMmFhOTVh
YTJiYWU2NjdhZWRmNDJmZC4uM2UwZjdlNTQzNWVhMzdmYzZiOWRjZmI0MWZlMzYxODUyNWYyZGYx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAg
LTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hl
ZXQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRl
ICJNZWRpYUxpc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBmMDQ5
YmQ4NGIxMmFhZDBjZGEzZWU3MTU4MjYwOTQzODFmMDkxMjUzLi5jNGYyOTU5OTkzOWVjMTY4MzJj
NmRmNmMwY2VjMDIwYmNkNDI1MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAj
aW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3VycmVudFNj
cmlwdEluY3JlbWVudGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudC5oCmluZGV4IGIxMDc2NjU5OTMxMGRmNDU0NjE3MzFmMzRiYjNjOWU5YzI4Y2UzM2Mu
LmFiMjc4MzdiOTg4Mzc5NjRlOGI2OGQzNmQxMGY3MTg5NWQ2YTYwZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaApAQCAtMjksMzAg
KzI5LDMzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24gOiBib29sIHsgRW5mb3JjZSwgUmVwb3J0IH07
CisKK3N0cnVjdCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7
CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQoKSB7IH0KKworICAgIFN0cmlu
ZyBkb2N1bWVudFVSSTsKKyAgICBTdHJpbmcgcmVmZXJyZXI7CisgICAgU3RyaW5nIGJsb2NrZWRV
Ukk7CisgICAgU3RyaW5nIHZpb2xhdGVkRGlyZWN0aXZlOworICAgIFN0cmluZyBlZmZlY3RpdmVE
aXJlY3RpdmU7CisgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5OworICAgIFN0cmluZyBzb3VyY2VG
aWxlOworICAgIFN0cmluZyBzYW1wbGU7CisgICAgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uIHsgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERp
c3Bvc2l0aW9uOjpFbmZvcmNlIH07CisgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSB7IDAg
fTsKKyAgICB1bnNpZ25lZCBsaW5lTnVtYmVyIHsgMCB9OworICAgIHVuc2lnbmVkIGNvbHVtbk51
bWJlciB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50SW5pdCYpOworfTsKKwogY2xhc3MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KTsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIERpc3Bvc2l0
aW9uIDogYm9vbCB7IEVuZm9yY2UsIFJlcG9ydCB9OwotCi0gICAgc3RydWN0IEluaXQgOiBFdmVu
dEluaXQgewotICAgICAgICBJbml0KCkgeyB9Ci0KLSAgICAgICAgU3RyaW5nIGRvY3VtZW50VVJJ
OwotICAgICAgICBTdHJpbmcgcmVmZXJyZXI7Ci0gICAgICAgIFN0cmluZyBibG9ja2VkVVJJOwot
ICAgICAgICBTdHJpbmcgdmlvbGF0ZWREaXJlY3RpdmU7Ci0gICAgICAgIFN0cmluZyBlZmZlY3Rp
dmVEaXJlY3RpdmU7Ci0gICAgICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeTsKLSAgICAgICAgU3Ry
aW5nIHNvdXJjZUZpbGU7Ci0gICAgICAgIFN0cmluZyBzYW1wbGU7Ci0gICAgICAgIERpc3Bvc2l0
aW9uIGRpc3Bvc2l0aW9uIHsgRGlzcG9zaXRpb246OkVuZm9yY2UgfTsKLSAgICAgICAgdW5zaWdu
ZWQgc2hvcnQgc3RhdHVzQ29kZSB7IDAgfTsKLSAgICAgICAgdW5zaWduZWQgbGluZU51bWJlciB7
IDAgfTsKLSAgICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgMCB9OwotCi0gICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgSW5pdCYpOwotICAgIH07CisgICAgdXNpbmcgRGlzcG9zaXRpb24g
PSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb247CisgICAgdXNpbmcgSW5p
dCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0OwogCiAgICAgc3RhdGljIFJlZjxT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIgPSB7IH0sIElzVHJ1c3RlZCBpc1RydXN0ZWQgPSBJ
c1RydXN0ZWQ6Ok5vKQogICAgIHsKQEAgLTExMSw3ICsxMTQsNyBAQCBwcml2YXRlOgogfTsKIAog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsK
ICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IEV2ZW50SW5pdCY+KCp0aGlzKTsKICAg
ICBlbmNvZGVyIDw8IGRvY3VtZW50VVJJOwpAQCAtMTI5LDcgKzEzMiw3IEBAIHZvaWQgU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiBldmVudEluaXQpCitib29sIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudEluaXQmIGV2ZW50SW5pdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRpY19jYXN0PEV2ZW50SW5pdCY+KGV2ZW50SW5pdCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xNjQsMTEgKzE2NywxMSBAQCBib29sIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZWN1cml0eVBvbGljeQogCiBuYW1l
c3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbj4gewordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9z
aXRpb24+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uLAotICAgIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpFbmZvcmNlLAotICAgIFdl
YkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpSZXBvcnQK
KyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb24sCisg
ICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpFbmZv
cmNlLAorICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlv
bjo6UmVwb3J0CiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggNThkNzUzYjIzZDYzYjg3Mjk1OTAwN2M1YTcwOTY3
Mzk3Yzg4Nzg0YS4uOTgwNDQ2MGNkYjJiYzVhYjUxNzE0YjQwNGFiODVjMGNhZmUyMmEyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAg
LTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggZjk1YTMxYzUzOTEyZDAz
YmFmZjRjYzg1NzAwMmI1YzFjZDM1OTkzMi4uZjM0MDE0MzU5ZmY3Y2RiZDg1N2NmZGNkYmJhOWIy
NGYyOTEwMWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI4
LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21w
b3NpdGVFZGl0Q29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4
IDg0NjY0YzNiNzQ4MzY1M2FmMDlmNzllYmI1MzNlNzU0YmE2Mzg0YTEuLjkyOTQ2ZjM3MzEzM2Ux
MTBkZGIxMTFmNThhOTNjMWIyYzdmMGI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNw
cApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggNTY1NzgyN2Q5YTY2YmIzYjczZWZiNTVmOTMxNjFlZTgzOGI0NWEzMC4uMWI3MDc2NWJhYmM0
ZDQ2ODExYzFhZmQ3OTQ2NTEwN2I4YTIyMDgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCiAj
aW5jbHVkZSAiRGljdGF0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGMy
ZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQuLjcxMzY5OTU0OTA1ZjlmMmYx
ZDhlMWNkZTA2MGU0MWRjYWVjYTE0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0YS5o
IgogI2luY2x1ZGUgIkNvbG9yQmxlbmRpbmcuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNw
cAppbmRleCA4NzkxNDIxNmNhYTJhZTcwNWE1YzQ4OTliZGZhMDE0NGMzNjYwOGRkLi4yMjcyZWJi
MzBkZTc5MjE2MzY2ZmIxMTkzNjU4MWI5MjU4YmRjYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJCcmVha0Js
b2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAi
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggZjM4M2FkZGQxOWIwY2YwMDQ2YmE1Mzdj
YjJkNThiZDRhNzEwMGU5NC4uNDYyMzdhZDZjMWU5MzcxYmRjYWQ3MGZjYWZiMGY3ZmU1ZGY4ZDUw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMu
bW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQg
IkNocm9tZS5oIgogI2ltcG9ydCAiQ2hyb21lQ2xpZW50LmgiCisjaW1wb3J0ICJEb2N1bWVudElu
bGluZXMuaCIKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJSZW5kZXJWaWV3LmgiCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA1ZTQxYjQ5MjQx
NmEzOTQwZWQ2ZGUxMzEyYTMxNTMzZWRkODE3OTM5Li5iZjU0MzJhZjMxNmU1YTc0YWYyYWQyNzNm
MTE1MjZlNGRiNDViMmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRh
aWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuY3BwCkBAIC0yMyw5ICsyMywxMSBAQAogI2luY2x1ZGUgIkhUTUxEZXRhaWxzRWxlbWVudC5o
IgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJHQ1JlYWNoYWJsZVJlZi5oIgog
I2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdW1tYXJ5RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA2OWNjNDE3NzBjYzlmYzUxYjk1ODIyMzUzMjQ2MzIz
MzMyNmI3YTMuLjI0MzhlOTE3NmIyMzlhZGU4ZWEwOWJiY2VmODFkZDVkYmM1MDUwMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQAog
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAj
aW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmlsZUlucHV0VHlwZS5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDU2ZjBjNzlkNDVkOTI3Njk2OTY3MjEzODAwNTNk
ZjBiNDllMWM3ZjEuLjc0ZmQ0NWU2ZGJiYjQ1NmI1NDUzYjFkNDBmMzhjZjA0NjQwZDc3YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJET01Ub2tl
bkxpc3QuaCIKICNpbmNsdWRlICJEZWZhdWx0UmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
MjkzNzliMjBmNTkxZmZlZjBiZDU1N2M4MDhkOGI0OTQwYWFhNWE3MC4uNjVlYmZhN2E1NGQ4ZmFk
MzRhN2FlMDljNTViYTMzMDVlNzM2YzEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC04NSw4ICs4NSw4IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQT0RJ
bnRlcnZhbFRyZWUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CisjaW5jbHVkZSAiUGFnZUlubGluZXMuaCIKICNpbmNsdWRlICJQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCkBAIC03OTczLDcgKzc5NzMsNyBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24o
UGxhdGZvcm1NZWRpYQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAm
JiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKKyAg
ICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1l
bnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFT
dHJlYW1UcmFjayIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTc5
ODgsNyArNzk4OCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkT3ZlcnJpZGVCYWNr
Z3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgICAgIGlm
IChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5t
ZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkgeworICAgICAgICBpZiAoaGFzTWVkaWFTdHJlYW1TcmNP
YmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6OklzUGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKSkg
ewogICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyB0cnVlIGJl
Y2F1c2UgcGxheWluZyBhbiBhdWRpbyBNZWRpYVN0cmVhbVRyYWNrIik7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtODA0OCw3ICs4MDQ4LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzY2hlZHVsZVVwZGF0ZU1lZGlhU3RhdGUoKQogCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIHN0YXRlID0gbWVkaWFTdGF0ZSgpOwogICAgIGlmIChtX21lZGlhU3RhdGUgPT0gc3Rh
dGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtODA1OSwzMSArODA1OSwzMSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZU1lZGlhU3RhdGUoKQogfQogI2VuZGlmCiAKLU1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVN0YXRlKCkgY29uc3QK
K01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0
ZSgpIGNvbnN0CiB7CiAgICAgTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwogCiAgICAgYm9vbCBoYXNB
Y3RpdmVWaWRlbyA9IGlzVmlkZW8oKSAmJiBoYXNWaWRlbygpOwogICAgIGJvb2wgaGFzQXVkaW8g
PSB0aGlzLT5oYXNBdWRpbygpOwogICAgIGlmIChpc1BsYXlpbmdUb0V4dGVybmFsVGFyZ2V0KCkp
Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdU
b0V4dGVybmFsRGV2aWNlKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCiAgICAgaWYgKG1faGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lcnMpIHsKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpOworICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
TGlzdGVuZXIpOwogICAgICAgICBpZiAoIW1lZGlhU2Vzc2lvbigpLndpcmVsZXNzVmlkZW9QbGF5
YmFja0Rpc2FibGVkKCkpCi0gICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpOworICAgICAgICAgICAg
c3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk7CiAgICAgfQogCiAgICAgYm9vbCByZXF1aXJlVXNlckdlc3R1cmUgPSBtX21l
ZGlhU2Vzc2lvbiAmJiBtZWRpYVNlc3Npb24oKS5oYXNCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlh
RWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQXV0b3BsYXlUb0V4dGVybmFsRGV2
aWNlKTsKICAgICBpZiAobV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgIXJlcXVpcmVV
c2VyR2VzdHVyZSAmJiAhbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNzVGFyZ2V0KQotICAgICAgICBz
dGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxh
eUNhbmRpZGF0ZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlk
ZW8gfHwgaGFzQXVkaW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbyk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlkZW8gJiYg
ZW5kZWRQbGF5YmFjaygpKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6RGlkUGxheVRvRW5kKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpEaWRQbGF5VG9FbmQpOwogI2VuZGlmCiAKICAgICBpZiAoIWlzUGxheWluZygpKQpA
QCAtODA5NywxMCArODA5NywxMCBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0CiAgICAgaXNQbGF5aW5nQXVkaW8gPSBp
c1BsYXlpbmdBdWRpbyAmJiAhbXV0ZWQoKTsKICNlbmRpZgogICAgIGlmIChpc1BsYXlpbmdBdWRp
bykKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbyk7CiAKICAgICBpZiAoaGFzQWN0aXZlVmlkZW8pCi0gICAgICAgIHN0YXRlLmFk
ZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbyk7CisgICAgICAgIHN0
YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pOwogCiAgICAg
cmV0dXJuIHN0YXRlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRl
eCBjZmQxOWQzYzE3M2YxMGNlNGVmZTBjMjBhZWIyYWJlNTkxOWQyNTk2Li4wMmQ0ODgwMTE0NzQ2
MmM5MTNlY2Y5OWI2YjAzYjgwMTFkMGQxZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBtYXhC
dWZmZXJlZFRpbWUoKSBjb25zdDsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dFNp
emVDaGFuZ2VkKCk7CiAgICAgdm9pZCB2aXNpYmlsaXR5RGlkQ2hhbmdlKCk7CkBAIC0xMjE0LDcg
KzEyMTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKQotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3Rh
dGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CiAgICAg
TW9ub3RvbmljVGltZSBtX2N1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NFdmVudEZpcmVk
VGltZTsKICAgICBib29sIG1faGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9mYWlsZWRUb1BsYXlUb1dpcmVsZXNzVGFyZ2V0IHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZTJm
OGE0YmY1ZDhiODUxYmI5YzE0MjMxYjgxMjhlYzI0ODg2YjdjMC4uNzlhZDRlMjIwNmRhODA5NDhi
MmEwYjU1ZmViYjFiYjg0YzgxNjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkVsZW1lbnRUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDk5YTRiYjJlZjdhNjE0Njc0YWNm
NGY3OWZhN2MzZDdjZmFmOTk2MjAuLjBlMzQ4NmQ0ZjcxMDZjYzU3MTY3Y2FmYTY3NDgwZDk3MjE3
Zjg5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVtZW50QW5jZXN0b3JJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
aW5kZXggZWEyOTdmYTIzMTliZmI4NTdmNWZjYmYyNDU2NjZiMDk4MzVmMTA5Mi4uYjVmZjAyYmRh
NTU0YTAxZGE5M2I5MGFmYzA4MWM2ZWIwODgwY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRhdGVJbnB1dFR5cGUuaCIKICNpbmNs
dWRlICJEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGVjaW1hbC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA3ZjZkMzlmM2Vj
ZTBjZmY3NTc5NGJlZDRhYzM0ZmVkMzE2NDdmNTE3Li4yOTFlZjlhMDI4MTAyZjMyYWVjMzZjODlj
ODZhZGI0ZWM3MGZlNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vz
c2lvbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJF
bGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0zODUsNyArMzg1LDcgQEAg
RXhwZWN0ZWQ8dm9pZCwgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tTdGF0ZUNoYW4KICAgICBpZiAobV9lbGVtZW50Lmhhc01lZGlhU3RyZWFt
U3JjT2JqZWN0KCkpIHsKICAgICAgICAgaWYgKGRvY3VtZW50LmlzQ2FwdHVyaW5nKCkpCiAgICAg
ICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBpZiAoZG9jdW1lbnQubWVkaWFTdGF0ZSgpICYg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCisgICAgICAgIGlmIChk
b2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5n
QXVkaW8pCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDAwLDcg
KzQwMCw3IEBAIEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb24+IE1lZGlh
RWxlbWVudFNlc3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkKTsK
ICAgICB9CiAKLSAgICBpZiAodG9wRG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYmIHRvcERv
Y3VtZW50LnF1aXJrcygpLm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkpCisgICAg
aWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgJiYgdG9wRG9jdW1lbnQucXVpcmtzKCku
bmVlZHNQZXJEb2N1bWVudEF1dG9wbGF5QmVoYXZpb3IoKSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgIGlmICh0b3BEb2N1bWVudC5oYXNIYWRVc2VySW50ZXJhY3Rpb24oKSAmJiBkb2N1bWVu
dC5xdWlya3MoKS5zaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKCkpCkBAIC04
MDksNyArODA5LDcgQEAgdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1RhcmdldFBp
Y2tlcldhc0Rpc21pc3NlZCgpCiAgICAgY2xpZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJXYXNE
aXNtaXNzZWQoKTsKIH0KIAotdm9pZCBNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlk
Q2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgTWVkaWFF
bGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURpZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIHN0YXRlKQogewogICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggZGY2MTUxMGNlYzY1MDEwYzJkNmJl
NWU0YTBiMzA5ZjcwMjUyMzQ1NS4uZjViZWJkMjhkZWY4ODlhZTAyYTAwNmFiZGU2OTAwNzVjNDE1
MDVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTk1
LDcgKzk1LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJh
Y2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgbWVkaWFTdGF0ZURpZENoYW5n
ZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgbWVkaWFTdGF0ZURp
ZENoYW5nZShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICNlbmRpZgogCiAgICAgYm9v
bCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDRiMWUzYTI5YzBhNDM2ZTQ2ZWI1NmMxOWU4
YWMxOTdiMDliZTRjNDguLjhmNmI4Y2UwOGZkYjVkNzRiNjZlNTNjMTIyMGNlMWJiYjVjZDc2OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRGVjaW1hbC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKaW5kZXggMjkyMDJhMTE1Njk4MGE0ODZhYWI5NjUzMGI1NWI1NWE0NTA1MzE4Ny4uOGU2
NWM0ZWIxMDIzMzUyMWY0OGM3ZjRiMTIwYWQyYzg5MDlhMDdiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDllOGRmMmVjYjAxMDQ4MzYxYjI0
NGY4NTBmOWJjZWM5OWE1MTllMTkuLjZkMzFjODFmZGUxMjgwZDI0NTM5YjljOWZiMmUwMjg5N2Nh
YjM5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAjaW5jbHVkZSAiRE9NRXhjZXB0
aW9uLmgiCiAjaW5jbHVkZSAiRE9NUGF0Y2hTdXBwb3J0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDM3NDY4NDMyNTc3ZjY0ZTNkMThi
YzM2NjdjYTI5OGY0M2EzYmY1MDMuLjg0YjE2MzcwMTRlZjU2ZGFlOGJjZWYwZDcyNDk1NjJkMjBk
MGRkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJD
ZXJ0aWZpY2F0ZVN1bW1hcnkuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKaW5kZXggOTQ2
NDc0YjU4NTgxOTNiMGIzMDZjOTJlMWY1YjJlOGJjMWZhYzliYy4uNThjN2JiNzkzODhhYzZmMDNm
MmM4MjBkODk2OGZhNGEzNTIxZmY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKQEAgLTI1LDE1ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIEZyYW1lOwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTZWN1cml0
eU9yaWdpbjsKIAogc3RydWN0IE5hdmlnYXRpb25SZXF1ZXN0ZXI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGY5ZjM5MmNiODRkODIwMmIyYjllY2VmMGRl
MTY0NTE4MDNmMzdiNjMuLjk5Yzk3OGRjYjNjNjRjZGU2OTY1MzliZGY5YWI1YzViNGRmMjc4NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMjQwMCw3ICsy
NDAwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2VuZENTUFZpb2xhdGlvblJlcG9ydChVUkwm
JiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0YT4mJiByZXAKICAgICBQaW5nTG9hZGVyOjpzZW5kVmlv
bGF0aW9uUmVwb3J0KCptX2ZyYW1lLCBXVEZNb3ZlKHJlcG9ydFVSTCksIFdURk1vdmUocmVwb3J0
KSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAotdm9p
ZCBEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgRG9jdW1l
bnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0JiYgZXZlbnRJbml0KQogewogICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdURk1vdmUoZXZlbnRJ
bml0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDlmYzQx
MzdhNjkwMGUyNGExYTgyY2VjN2NjNzU3OTNkMzQ3ZTk4MTIuLjRmYmZkNzEyMDE5OWQyN2NmYTg3
YmRkNTk2NzM3MTA2YmNlMDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5oCkBAIC01MjIsNyArNTIyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250ZW50U2VjdXJpdHlQ
b2xpY3lDbGllbnQKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kQ1NQ
VmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8Rm9ybURhdGE+JiYpIGZpbmFsOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgYm9vbCBkaXNhbGxvd1dlYkFyY2hp
dmUoKSBjb25zdDsKICAgICBib29sIGRpc2FsbG93RGF0YVJlcXVlc3QoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDg5MDk1ZmUzZGU3MzI4OGUy
NzMxYzEyYWYzZDI2MTY4ZjdjYzM1MzAuLjQzMmJkMTJiMzJjZThjMGY3NGIyMGYxMWYzZjI4OWU4
ZGU3YzcxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1
ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA2ODNmODRjMjU0MTVkM2VjMzQ2N2UwODEwOGI4
MTNmNWE3MWE4MjM5Li5hZTkyYWRkODc1NjA1MWQwNTZhMjMwMmRkY2JjNDg5YjEwZTc0ODQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAgLTM0LDcgKzM0LDcg
QEAKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTUZv
cm1EYXRhLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRm9ybURhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IGZjYjIyMDJmODI4MTBhZjJhNGY4ZDllNDUxY2I1NzRmYTBhN2ZkNDMuLmMzYmIzNDZhMzk0
N2M1ODk4M2VlOWQ5ZjhlYjA0Yzk5MjgwMzYxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5o
IgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTA3ZjMyNDY0
Y2QxZDNiYjkyM2MyYTlmNzUzMGRhZmViNWIxNzhlOS4uMzZlZTMyNzVkNjkyMDdlNDUwMjE2MmYw
YWJhZWI4OGU1OGViYzc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBACiAjaW5jbHVkZSAi
RGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0Y2ZjYjE2ODFmMTczMDlhYzRhN2ZjMGIyMTlhY2Vm
OTU5NTdiNzlkLi5jY2JkZmE0OTYzZTQwMzk2Yzc5ZWE5NjM5Y2I1YTA3OWI0ZjNlZDI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUwMyw3ICs1MDMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0
IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZl
bnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PEF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQogCiAj
aWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC01MzQsNyArNTM0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmll
cikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJvb2wgLypp
c1ZpZGVvKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29s
KSAgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
U3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0
ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlz
bWlzc1BvcHVwKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZTAw
NWNlZGZmY2RlYzFkYWQ5MWFmZmU4NmVlYWIyMmQzODM1ZDk5MC4uN2Y5ZDhlYzQ1NGMwMzVmMjAy
NTljZTg5ODI0YzY1N2Y1YWYxZTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0
b3IuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkN1cnNv
ckxpc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRyYWdFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IGJlNzZlMWJkMjc3NTUxMzFkMDgzMTZmMmQzYmU5OWJjY2E2OGRjMWYuLmExMWEzYjM0OGFi
YTM5OWY2NDg3NmRlNDk2OTIxZGZlOGYwZDY0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDhjNDM3N2NiOTU0YTBiMWEwODllNTJlZmFkOGE0
MWQ5MTA1OGE4ZjcuLmZkMzMzNjhhZDIxZGM1NTk2NzRiM2E3YTY4ZDIzMzRjZTRmMTMzOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGlu
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3Iu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1NGE1YWMwMDBlMjdjOTJkYTk0MGU5
ZjNhNzMxMmM3YjljZWU2ZjZjLi5kNWViM2FlZmQxNzZiMTAxYmVlMjNjMDEzYWY0NzFjZjlhNDQ4
OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVidWdQYWdlT3ZlcmxheXMuaCIKICNpbmNs
dWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U1ZHLmgiCkBAIC0yMDgyLDcgKzIw
ODMsNyBAQCBib29sIEZyYW1lVmlldzo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IEZyYW1lVmll
dzo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdAorT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBGcmFtZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoREFS
S19NT0RFX0NTUykKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJlckZvckNvbG9yU2No
ZW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkOWQ0OGFmNWY3ZDE0OTc3ZjNhNTBk
ZTU2NTk5M2VkZTNkNTJhMzE4Li45N2FkZWIxMDA2ZmM1NTZiOTlmZTU4YWY3MDA4MmM3YjJlYWRj
ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTUzOCw3ICs1MzgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzaG91bGRTZXRDdXJzb3IoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKKyAgICBPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CiAKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgcGx1Z2luIGxvYWRpbmcgaXMgZGVjb3Vw
bGVkIGZyb20gbGF5b3V0LgogICAgIHZvaWQgZmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tz
KCk7CkBAIC05NTUsNyArOTU1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc1RyYW5zcGFy
ZW50IHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKLSAgICBPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gbV9zdHlsZUNvbG9yT3B0aW9uczsKKyAgICBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG1fc3R5bGVDb2xvck9wdGlvbnM7CiAjZW5kaWYKIAogICAgIGJv
b2wgbV9pc1RyYWNraW5nUmVwYWludHMgeyBmYWxzZSB9OyAvLyBVc2VkIGZvciB0ZXN0aW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAppbmRleCA4MGFkNWFlZWZhZGY5ZWNiODM2Yjkx
MjNjMzhjNTQwZTZmNGMxNTE3Li40ZTE5ZThjZDcxYTY1MjlmOThhZjY0ODJlNmNhNWEwNTJiMWY3
MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApAQCAtMzEsMzIgKzMxLDUyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZSA6IHVpbnQzMl90IHsKKyAgICBJc1BsYXlpbmdBdWRpbyA9IDEgPDwgMCwKKyAgICBJc1Bs
YXlpbmdWaWRlbyA9IDEgPDwgMSwKKyAgICBJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlID0gMSA8
PCAyLAorICAgIFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nID0gMSA8PCAzLAorICAg
IEV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUgPSAxIDw8IDQsCisgICAgRGlkUGxheVRv
RW5kID0gMSA8PCA1LAorICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCisgICAg
SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgNywKKyAgICBJc1ByZXZpb3VzVHJhY2tD
b250cm9sRW5hYmxlZCA9IDEgPDwgOCwKKyAgICBIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUxpc3RlbmVyID0gMSA8PCA5LAorICAgIEhhc0F1ZGlvT3JWaWRlbyA9IDEgPDwgMTAsCisgICAg
SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMSwKKyAgICBIYXNBY3RpdmVWaWRl
b0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAorICAgIEhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
ID0gMSA8PCAxMywKKyAgICBIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTQsCisg
ICAgSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE1LAorICAgIEhhc0lu
dGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNiwKKyAgICBIYXNVc2VySW50ZXJh
Y3RlZFdpdGhNZWRpYUVsZW1lbnQgPSAxIDw8IDE3LAorICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0
dXJlRGV2aWNlID0gMSA8PCAxOCwKKyAgICBIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0g
MSA8PCAxOSwKKyAgICBIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAy
MCwKK307Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlPjsKKworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZCA6IHVpbnQ4X3QgeworICAgIEF1ZGlvLAorICAgIFZpZGVvLAorICAgIEF1ZGlv
VmlkZW8KK307CisKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11dGVkU3RhdGUgOiB1aW50OF90
IHsKKyAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCisgICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9
IDEgPDwgMSwKKyAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8PCAyLAorICAgIFNjcmVlbkNh
cHR1cmVJc011dGVkID0gMSA8PCAzLAorfTsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OworCiBjbGFzcyBNZWRp
YVByb2R1Y2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUHJvZHVjZXI+IHsKIHB1Ymxp
YzoKLSAgICBlbnVtIGNsYXNzIE1lZGlhU3RhdGUgewotICAgICAgICBJc1BsYXlpbmdBdWRpbyA9
IDEgPDwgMCwKLSAgICAgICAgSXNQbGF5aW5nVmlkZW8gPSAxIDw8IDEsCi0gICAgICAgIElzUGxh
eWluZ1RvRXh0ZXJuYWxEZXZpY2UgPSAxIDw8IDIsCi0gICAgICAgIFJlcXVpcmVzUGxheWJhY2tU
YXJnZXRNb25pdG9yaW5nID0gMSA8PCAzLAotICAgICAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5
Q2FuZGlkYXRlID0gMSA8PCA0LAotICAgICAgICBEaWRQbGF5VG9FbmQgPSAxIDw8IDUsCi0gICAg
ICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCi0gICAgICAgIElzTmV4dFRyYWNr
Q29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCi0gICAgICAgIElzUHJldmlvdXNUcmFja0NvbnRyb2xF
bmFibGVkID0gMSA8PCA4LAotICAgICAgICBIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxp
c3RlbmVyID0gMSA8PCA5LAotICAgICAgICBIYXNBdWRpb09yVmlkZW8gPSAxIDw8IDEwLAotICAg
ICAgICBIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDExLAotICAgICAgICBIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEyLAotICAgICAgICBIYXNNdXRlZEF1ZGlv
Q2FwdHVyZURldmljZSA9IDEgPDwgMTMsCi0gICAgICAgIEhhc011dGVkVmlkZW9DYXB0dXJlRGV2
aWNlID0gMSA8PCAxNCwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVEZXZpY2Ug
PSAxIDw8IDE1LAotICAgICAgICBIYXNJbnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEg
PDwgMTYsCi0gICAgICAgIEhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCA9IDEgPDwg
MTcsCi0gICAgICAgIEhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAxOCwKLSAg
ICAgICAgSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTksCi0gICAgICAgIEhh
c0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDIwLAotICAgIH07Ci0gICAg
dXNpbmcgTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhU3RhdGU+OworICAgIHVzaW5n
IE1lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTsKKyAgICB1c2luZyBNdXRlZFN0
YXRlID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGU7CisgICAgdXNpbmcgTWVkaWFTdGF0ZUZsYWdz
ID0gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFnczsKKyAgICB1c2luZyBNdXRlZFN0YXRlRmxh
Z3MgPSBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzOworCiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBNZWRpYVN0YXRlRmxhZ3MgSXNOb3RQbGF5aW5nID0geyB9OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgTWVkaWFTdGF0ZUZsYWdzIEF1ZGlvQ2FwdHVyZU1hc2sgPSB7IE1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVE
ZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlIH07CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBNZWRpYVN0YXRlRmxhZ3MgVmlkZW9DYXB0dXJlTWFzayA9IHsg
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNN
dXRlZFZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0Nh
cHR1cmVEZXZpY2UgfTsKQEAgLTY5LDIwICs4OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCA9IDA7CiAKLSAgICBlbnVtIGNsYXNz
IE1lZGlhQ2FwdHVyZUtpbmQgewotICAgICAgICBBdWRpbywKLSAgICAgICAgVmlkZW8sCi0gICAg
ICAgIEF1ZGlvVmlkZW8KLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBNdXRlZFN0YXRlIHsKLSAg
ICAgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAotICAgICAgICBBdWRpb0NhcHR1cmVJc011dGVk
ID0gMSA8PCAxLAotICAgICAgICBWaWRlb0NhcHR1cmVJc011dGVkID0gMSA8PCAyLAotICAgICAg
ICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKLSAgICB9OwotCi0gICAgdXNpbmcgTXV0
ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE11dGVkU3RhdGU+OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgTXV0ZWRTdGF0ZUZsYWdzIEF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCA9IHsgTXV0ZWRT
dGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCwgTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRl
ZCB9OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTXV0ZWRTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtQ2Fw
dHVyZUlzTXV0ZWQgPSB7IE11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVk
IH07CiAKQEAgLTk2LDQ5ICsxMDIsNDkgQEAgcHJvdGVjdGVkOgogCiBuYW1lc3BhY2UgV1RGIHsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2lu
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVk
aW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZp
ZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5k
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW8s
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW8KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZSwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVk
aW8sCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWlu
Z1ZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdUb0V4dGVybmFsRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZywKLSAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlk
UGxheVRvRW5kLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJ
c1NvdXJjZUVsZW1lbnRQbGF5aW5nLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLAotICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwK
LSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFz
TXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURl
dmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50
ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCwKLSAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNh
cHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2UKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbywKKyAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvLAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSwK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcsCisgICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFi
bGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQcmV2aW91
c1RyYWNrQ29udHJvbEVuYWJsZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvLAorICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0
aXZlVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkQXVkaW9D
YXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5
Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlCiAgICAg
PjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGUsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCwKLSAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRl
ZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0
dXJlSXNNdXRlZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6
U2NyZWVuQ2FwdHVyZUlzTXV0ZWQKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lz
TXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6
VmlkZW9DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDg4NTMzYjNkMmIzNzE4MmUxNjA1MmZlZDEyOTM2OGE0NmU0MjI5YWYuLmNmMTcwMTNl
NWQ2ODZmMDFkNTIyZDZkNjc3OTY0ODJmNTllZTRjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
NTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpA
QCAtMjE3MCw3ICsyMTcxLDcgQEAgdm9pZCBQYWdlOjpzdG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5n
ZWQoKQogCiB2b2lkIFBhZ2U6OnVwZGF0ZUlzUGxheWluZ01lZGlhKCkKIHsKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBzdGF0ZTsKICAgICBmb3JFYWNoRG9jdW1lbnQoWyZdKGF1dG8mIGRvY3VtZW50KSB7
CiAgICAgICAgIHN0YXRlLmFkZChkb2N1bWVudC5tZWRpYVN0YXRlKCkpOwogICAgIH0pOwpAQCAt
MjIwOCw3ICsyMjA5LDcgQEAgdm9pZCBQYWdlOjpwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVD
aGFuZ2VkKCkKIAogI2VuZGlmCiAKLXZvaWQgUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQordm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQogewogICAgIG1fbXV0ZWRTdGF0ZSA9IG11dGVkOwogCkBA
IC0yMjE3LDcgKzIyMTgsNyBAQCB2b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGVGbGFncyBtdXRlZCkKICAgICB9KTsKIH0KIAotdm9pZCBQYWdlOjpzdG9wTWVkaWFD
YXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3ZvaWQgUGFnZTo6
c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKQogewog
ICAgIFVOVVNFRF9QQVJBTShraW5kKTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzAx
OCw3ICszMDE5LDcgQEAgdm9pZCBQYWdlOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXgKICNlbmRpZgogfQogCi12b2lk
IFBhZ2U6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgUGFnZTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBjaHJv
bWUoKS5jbGllbnQoKS5wbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKGNv
bnRleHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5NGY4YjhkYTkyMDY5NjM3ODhj
NTE2MTY1M2U1MDVjY2MwMDUzODM5Li5mYTg4OWY0YzRjZmRiMmRkYzNjODQzMzdjNmFjOTE3Y2Uw
YjkyODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTc3LDYgKzE3NywxMiBAQCBlbnVtIGNsYXNzIENh
bldyYXAgOiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgUm91
dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGUg
OiB1aW50MzJfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQgOiB1
aW50OF90OworZW51bSBjbGFzcyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSA6IHVpbnQ4X3Q7CisK
K3VzaW5nIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgPSBPcHRpb25TZXQ8TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU+OwordXNpbmcgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyA9IE9w
dGlvblNldDxNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT47CiAKIGVudW0gY2xhc3MgRXZlbnRUaHJv
dHRsaW5nQmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZlIH07CiBlbnVt
IGNsYXNzIE1haW5GcmFtZU1haW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CkBAIC03Mjks
MTggKzczNSwxOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZXNzaW9u
SUQoUEFMOjpTZXNzaW9uSUQpOwogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9CiAKLSAgICBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFT
dGF0ZTsgfQorICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQogICAgIHZvaWQgdXBkYXRlSXNQbGF5aW5nTWVk
aWEoKTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQotICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCk7IH0KLSAgICBib29sIGlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25z
dCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dHJlYW1DYXB0dXJlSXNNdXRlZCk7IH07CisgICAgTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFn
cyBtdXRlZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CisgICAgaW5saW5l
IGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3Q7CisgICAgaW5saW5lIGJvb2wgaXNNZWRpYUNhcHR1
cmVNdXRlZCgpIGNvbnN0OwogICAgIHZvaWQgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdl
clVwZGF0ZSgpOwogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lkIHBsYXliYWNrQ29udHJvbHNN
ZWRpYUVuZ2luZUNoYW5nZWQoKTsKICNlbmRpZgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAKICAgICBNZWRpYVNlc3Npb25Hcm91cElkZW50
aWZpZXIgbWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBtZWRpYVBsYXliYWNrRXhpc3RzKCk7CkBAIC03NjMsNyArNzY5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJvb2wsIFJvdXRlU2hhcmluZ1BvbGljeSwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25z
dCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1Bv
cHVwKCk7CkBAIC05OTYsNyArMTAwMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luTG93UXVh
bGl0eUludGVycG9sYXRpb25Nb2RlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJlTWVtb3J5Q2Fj
aGVDbGllbnRDYWxsc0VuYWJsZWQgeyB0cnVlIH07CiAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZSB7
IDEgfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwor
ICAgIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwogCiAgICAgZmxv
YXQgbV9wYWdlU2NhbGVGYWN0b3IgeyAxIH07CiAgICAgZmxvYXQgbV96b29tZWRPdXRQYWdlU2Nh
bGVGYWN0b3IgeyAwIH07CkBAIC0xMTIwLDcgKzExMjYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jlc3RvcmluZ0NhY2hlZFBhZ2Ug
eyBmYWxzZSB9OwogCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFT
dGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAog
I2lmIEVOQUJMRShWSURFTykKICAgICBUaW1lciBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBk
YXRlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRhOTIyNjNh
NzIzMjgzNjU3ZGVmMzlhMzg1MWUyMGQ2NTZkMDcxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUlubGluZXMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2lubGluZSBib29sIFBhZ2U6OmlzQXVk
aW9NdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRp
YVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKK30KKworaW5saW5lIGJvb2wgUGFn
ZTo6aXNNZWRpYUNhcHR1cmVNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbXV0ZWRTdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA3NjNmZjY0
YmY0ZTdlOWUwZmU0NmUxM2Y4ZDgxMzE2ZDhlM2ZhYTZjLi4xYTEyMTBmYTgzMzdjZDk1MjBmNGUw
MTFhOTA3MzY3NTRkZTUxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VT
ZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVy
RWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggMWRiZDE1M2I5NjBlYzJjZDMyNWQ3OTgyMDMzMmQyOGVlYzU2NGMx
My4uMjkwOTE2MDBjYjE5NzdmOWQzMzVjMWVmYWZlYjE5MjhkZWY5MWRjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0zNiw3
ICszNiw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIgogI2luY2x1ZGUgIkRPTVN0
cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCkBAIC03NzUsNyArNzc1LDcgQEAgdm9pZCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2
ZVZpb2xhdGVkRGlyZWMKICAgICB1bnNpZ25lZCBzaG9ydCBodHRwU3RhdHVzQ29kZSA9IG1fc2Vs
ZlNvdXJjZVByb3RvY29sID09ICJodHRwIiA/IG1faHR0cFN0YXR1c0NvZGUgOiAwOwogCiAgICAg
Ly8gMS4gRGlzcGF0Y2ggdmlvbGF0aW9uIGV2ZW50LgotICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OkluaXQgdmlvbGF0aW9uRXZlbnRJbml0OworICAgIFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsKICAgICB2aW9sYXRpb25FdmVudElu
aXQuZG9jdW1lbnRVUkkgPSBpbmZvLmRvY3VtZW50VVJJOwogICAgIHZpb2xhdGlvbkV2ZW50SW5p
dC5yZWZlcnJlciA9IG1fcmVmZXJyZXI7CiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmJsb2NrZWRV
UkkgPSBibG9ja2VkVVJJOwpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjCiAgICAgdmlvbGF0aW9uRXZlbnRJbml0LmVmZmVjdGl2ZURpcmVjdGl2ZSA9IGVmZmVjdGl2
ZVZpb2xhdGVkRGlyZWN0aXZlOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5vcmlnaW5hbFBvbGlj
eSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICB2aW9sYXRpb25FdmVudElu
aXQuc291cmNlRmlsZSA9IGluZm8uc291cmNlRmlsZTsKLSAgICB2aW9sYXRpb25FdmVudEluaXQu
ZGlzcG9zaXRpb24gPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaXNSZXBvcnRPbmx5KCkgPyBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6UmVwb3J0IDogU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OkVuZm9yY2U7CisgICAgdmlvbGF0aW9u
RXZlbnRJbml0LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LmlzUmVwb3J0T25s
eSgpID8gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpSZXBvcnQgOiBT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRpb246OkVuZm9yY2U7CiAgICAgdmlv
bGF0aW9uRXZlbnRJbml0LnN0YXR1c0NvZGUgPSBodHRwU3RhdHVzQ29kZTsKICAgICB2aW9sYXRp
b25FdmVudEluaXQubGluZU51bWJlciA9ICBpbmZvLmxpbmVOdW1iZXI7CiAgICAgdmlvbGF0aW9u
RXZlbnRJbml0LmNvbHVtbk51bWJlciA9IGluZm8uY29sdW1uTnVtYmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaAppbmRl
eCA4ZTA1MTgyNjQxNDA2ZjJjYzhjYWEyZGM1NmFlMzM2MDYzNGU2YjFlLi5mMmZlNjM4OTQ2NDk2
ZWRiYjMwMzg0NTM5OGZmOWU3Mzk3YzM0YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaApAQCAtNTEsNyArNTEsNyBA
QCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50IHsKIAog
ICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJMJiYsIFJl
ZjxGb3JtRGF0YT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IDcyZTRmNjkxYjRmOTUyNTc1ZDkzMTFlNGQwYTdkZTE3Y2ZmMDIz
NjguLmQwYTRmZTRhMjBlMGFlOGQyN2RlM2Q0YjllZTY5ZTUwN2E1YTBlZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMwLDcg
KzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGVnYWN5Q0RN
U2Vzc2lvbi5oIgpAQCAtNDEsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVS
YW5nZXMuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNTAwZmRiMGZkY2NjM2UzMTliY2Q2MWFlMjNiNGRlZWUwNWRhOWE1Zi4u
YTE0ODg3ZmM3NzVlMmI5N2I2OWY5YzU5NWFlODI3MGFhZDcxMWM4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL0RhdGFNdXRleC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xl
Z2FjeUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVM
YXlvdXQuY3BwCmluZGV4IDEzYmExNWQ3YTJjZWExNzk5ODVhYTFmN2EwZDUzM2U5Y2Q0NzhmNGMu
LjcxZmIyMjM1YWRlYTdhN2YyNDUxNmY0MjE4YmRhODk1MjdhZDUyYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQmlkaVJlc29sdmVyLmgiCiAj
aW5jbHVkZSAiQnJlYWtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRmxvYXRpbmdPYmplY3RzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yQm94LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkNGQ5ZjJjNzE5ZWJjNDlhZGRiMmJiZWJmZWVjNDFh
ZTFiY2RjZWVlLi5mMTQ0OTgxNDU2ZmZmODg0MWNkYjE0ODVjYmU2NWZjNDhiMjY5NmY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI1LDcgKzI1LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50UmVn
aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXgg
ODNhMGVjMzliNDliZTM1OTQ2ZmRkOTE5NGY3ZWFiNDI3NzgzNzNkOS4uMjdmOWQ0ZTMzODY5Mzhm
YTNhZjhiMGE4YTZhMDE5M2JjNGEwZDQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRlICJDdXJzb3JM
aXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRU
aW1lbGluZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RXZlbnRIYW5kbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApp
bmRleCBiNGU1MzNhNjc5MGM1MzM2MjE0YTRmNTI0M2I1YmZlYjdiOWI4ODA1Li43NzdkODQwNjYx
ZGNiZjRlMDE4ODRhOTE5YmVhZDRkMTQzMWY4MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggNjdkZjYxODQy
M2JlMWM1ODZjMzI4Y2Q2NDMxM2RiNTZlZDdjZTM4Yi4uY2FiNjNmNWIxNGNlNWViODdlZTRkODdh
ODBiMzg2NWRmYjZlOWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0
dGluZ3MuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcAppbmRleCAxN2RmOTRlYzQwY2MyZTE5NjRkMDVjYTI4MzMwZDkwMTI5MGUy
MDkxLi4xMDJjNGVlMTZjMGQxYWQ0ZDgxNTdmODFiZTQ2NjZiZjQzZDE2ODNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNs
dWRlICJDb2xvckJsZW5kaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRl
eCBmNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMzNjljNmQ0YWU4YWVjLi5iMGQzNzE0YjFiYzRj
YzZiYmQ0OGFkYjdmMjkzNjc3MzE0YWEwODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFbGVtZW50QW5jZXN0b3JJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgpAQCAtMTc5Myw3ICsxNzk0LDcgQEAg
Ym9vbCBSZW5kZXJPYmplY3Q6OnVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4g
ZG9jdW1lbnQoKS51c2VEYXJrQXBwZWFyYW5jZSgmc3R5bGUoKSk7CiB9CiAKLU9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBSZW5kZXJPYmplY3Q6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29u
c3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gUmVuZGVyT2JqZWN0OjpzdHlsZUNvbG9y
T3B0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlv
bnMoJnN0eWxlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IDEyNjAwMDRmNWMyZjdlMWRkMDJiMjQwODU1ZDIxNTg1NWJmNmIzM2IuLmM1MzRjOWZkZDA1
ZDU4NDcwZmE3ZTY2MTQ4NmE2YWVhY2NkNjY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyRnJh
Z21lbnRlZEZsb3cqIGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkgY29uc3Q7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3Q7Ci0gICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CisgICAgT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OwogCiAj
aWYgQVNTRVJUX0VOQUJMRUQKICAgICB2b2lkIHNldEhhc0FYT2JqZWN0KGJvb2wgZmxhZykgeyBt
X2hhc0FYT2JqZWN0ID0gZmxhZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKaW5kZXggN2VlOTQ0MjZjYzUyYmFkYjQwZmZjNGNiN2NmYmQxMjc3NGJjZTcz
YS4uMWZlNjNiMTU3OTY5ZGU4MDllOGZiM2E4ZTQ4MDIyZmJiODI5ODY2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAg
Q29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCkgY29uc3QKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFpc0hpZ2hsaWdodGVkKHN0YXRlLCBoaWdobGlnaHREYXRh
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICAgICAg
ICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsg
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAgICAgICAg
ICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0g
eyBTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdGhlbWUoKS5hcHBIaWdobGlnaHRDb2xvcihzdHlsZUNvbG9yT3B0aW9u
cyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDQ4ZGNmYjNjOGZhMDZjMzcyMTViYTQ3MDRjMjUyNjA0
OWJkYjYxMGYuLjM0MzdjYWM0ZWQ3ODg5NTRjYTg0NWU3MjJiZTk0OGFhNTRhOTZiZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJCcmVha0xpbmVzLmgiCiAjaW5jbHVkZSAiQnJlYWtpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiQ2hhcmFjdGVyUHJvcGVydGllcy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAppbmRleCBiOTA4MmI1Njc3OTVmMmNkNWU0ZDZhNzRkNzAzM2E4NWU4NzFjMDVj
Li44Y2JlYmZlYmNiYmYzOGYyODJhYmNjYzRmNmQ1MDE1ZGY5NmM4NjQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTYwMyw3ICs2MDMsNyBAQCBMYXlvdXRQ
b2ludCBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oY29uc3Qg
UmVuZGVyQm94JiBtdXRlQgogCiAjZW5kaWYKIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAg
IGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC02MTEsNyArNjExLDcgQEAg
Q29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4KICAgICByZXR1cm4gY2FjaGUuYWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1
dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTYxOSwxMiArNjE5LDEyIEBA
IENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dHJhbnNmb3JtU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnRyYW5zZm9ybVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJsZW5kV2l0aFdoaXRlKGNvbG9yKTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNo
ZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
ci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMp
KQpAQCAtNjMyLDcgKzYzMiw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJu
IGNhY2hlLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkg
JiYgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAtNjQwLDcg
KzY0MCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIGNhY2hlLmluYWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6YWN0
aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAg
ICAgaWYgKCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFs
aWQoKSkKQEAgLTY0OCw3ICs2NDgsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6TwogICAgIHJl
dHVybiBjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUg
PSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuaW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKQEAgLTY1Niw3ICs2NTYsNyBAQCBDb2xv
ciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBj
b25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAo
IWNhY2hlLmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpICYm
IHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMob3B0aW9ucykpCkBAIC02
NjQsNyArNjY0LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KICAgICByZXR1cm4gY2FjaGUu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpp
bmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNo
ZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvci5pc1ZhbGlkKCkgJiYgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9ycyhvcHRpb25zKSkKQEAgLTY3Miw0NyArNjcyLDQ3IEBAIENvbG9yIFJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6CiAgICAgcmV0dXJuIGNhY2hlLmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsdWUg
Y29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0gdGhlbWUgZG9lc24ndCBkZWZpbmUgYW55
dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjpibHVlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgLy8gVXNlIGEgd2hpdGUgY29sb3IgYnkgZGVmYXVsdCBpZiB0aGUgcGxhdGZvcm0g
dGhlbWUgZG9lc24ndCBkZWZpbmUgYW55dGhpbmcuCiAgICAgcmV0dXJuIENvbG9yOjp3aGl0ZTsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBncmV5IGNvbG9y
IGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5n
LgogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94J3MgaW5hY3RpdmUgY29sb3IuCiAg
ICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMTc2LCAxNzYsIDE3NiB9OwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIFVzZSBhIGJsYWNrIGNvbG9yIGJ5IGRlZmF1bHQu
CiAgICAgcmV0dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9y
bUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVy
VGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4g
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihvcHRpb25zKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsK
ICAgICByZXR1cm4gcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihvcHRp
b25zKTsKIH0KQEAgLTEyMzQsMTAgKzEyMzQsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRl
ckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKIH0KIAotYXV0byBSZW5kZXJUaGVtZTo6Y29s
b3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4g
Q29sb3JDYWNoZSYKK2F1dG8gUmVuZGVyVGhlbWU6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdCAtPiBDb2xvckNhY2hlJgogewogICAgIGF1dG8g
b3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsgPSBvcHRpb25zOwotICAgIG9wdGlvbnNJZ25vcmlu
Z1Zpc2l0ZWRMaW5rLnJlbW92ZShTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7
CisgICAgb3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsucmVtb3ZlKFN0eWxlQ29sb3JPcHRpb25z
OjpGb3JWaXNpdGVkTGluayk7CiAKICAgICByZXR1cm4gbV9jb2xvckNhY2hlTWFwLmVuc3VyZShv
cHRpb25zSWdub3JpbmdWaXNpdGVkTGluay50b1JhdygpLCBbXSB7CiAgICAgICAgIHJldHVybiBD
b2xvckNhY2hlKCk7CkBAIC0xMjg0LDExICsxMjg0LDExIEBAIHZvaWQgUmVuZGVyVGhlbWU6OnN5
c3RlbUZvbnQoQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24m
IGZvCiAgICAgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKHN5c3RlbUZvbnRJRCwg
Zm9udERlc2NyaXB0aW9uKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NW
YWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAg
ICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdExpbms6Ci0g
ICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZp
c2l0ZWRMaW5rKSA/IFNSR0JBPHVpbnQ4X3Q+IHsgODUsIDI2LCAxMzkgfSA6IFNSR0JBPHVpbnQ4
X3Q+IHsgMCwgMCwgMjM4IH07CisgICAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3JPcHRpb25zOjpGb3JWaXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAyNiwg
MTM5IH0gOiBTUkdCQTx1aW50OF90PiB7IDAsIDAsIDIzOCB9OwogICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRBY3RpdmVsaW5rOgogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmV0ZXh0OgogICAgICAgICBy
ZXR1cm4gQ29sb3I6OnJlZDsKQEAgLTEzNjksNyArMTM2OSw3IEBAIENvbG9yIFJlbmRlclRoZW1l
OjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6dGV4dFNlYXJjaEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNh
Y2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yLmlz
VmFsaWQoKSkKQEAgLTEzNzcsMTMgKzEzNzcsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW8K
ICAgICByZXR1cm4gY2FjaGUudGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4
dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZTo6YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25z
dAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNh
Y2hlLmFwcEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKQEAgLTEzOTEsMTMgKzEzOTEsMTMgQEAg
Q29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPiBvcHRpb25zKSBjb24KICAgICByZXR1cm4gY2FjaGUuYXBwSGlnaGxpZ2h0Q29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAjZW5kaWYKIAotQ29sb3IgUmVu
ZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRl
eHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAg
ICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwogICAgIGlmICghY2FjaGUuZGVm
YXVsdEJ1dHRvblRleHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xNDA1LDcgKzE0MDUsNyBAQCBDb2xv
ciBSZW5kZXJUaGVtZTo6ZGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucwogICAgIHJldHVybiBjYWNoZS5kZWZhdWx0QnV0dG9uVGV4dENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUNvbG9y
KENTU1ZhbHVlQWN0aXZlYnV0dG9udGV4dCwgb3B0aW9ucyk7CiB9CkBAIC0xNDY1LDcgKzE0NjUs
NyBAQCB2b2lkIFJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IpCiAgICAgY3VzdG9tRm9jdXNSaW5nQ29sb3IoKSA9IGNvbG9yOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGlmIChjdXN0
b21Gb2N1c1JpbmdDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGN1c3RvbUZvY3Vz
UmluZ0NvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGU3
ZTZlYmIxYjlkMWViYjE4ODA3ZmIwYWE4OTE2ZjljODAxZjc4MzEuLjg2ZjllN2Q1OGUyMWQwNmNh
MGQyMjIzYTFlMDQ0NjQzNzQ0MzI1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCkBAIC0xNDYsMzQgKzE0NiwzNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQm94U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIC8vIFRleHQgc2VsZWN0aW9uIGNvbG9ycy4KLSAgICBDb2xvciBhY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKLSAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgdHJhbnNmb3Jt
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBp
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIENv
bG9yIGFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAgIC8vIExpc3QgYm94
IHNlbGVjdGlvbiBjb2xvcnMKLSAgICBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29s
b3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owot
ICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Q7CisgICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBpbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgLy8gSGlnaGxpZ2h0
aW5nIGNvbG9yIGZvciBzZWFyY2ggbWF0Y2hlcy4KLSAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xv
ciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgLy8gRGVmYXVsdCBoaWdo
bGlnaHRpbmcgY29sb3IgZm9yIGFwcCBoaWdobGlnaHRzLgotICAgIENvbG9yIGFwcEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3Ig
YXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4dENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogCiAgICAgQ29sb3IgZGF0ZVBs
YWNlaG9sZGVyVGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBi
YWNrZ3JvdW5kQ29sb3IpIGNvbnN0OwogCiAgICAgdmlydHVhbCBDb2xvciBkaXNhYmxlZFRleHRD
b2xvcihjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9y
KSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0
Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
eyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgZm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQogICAgIHN0YXRpYyB2b2lkIHNldEN1
c3RvbUZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgc3RhdGljIGZsb2F0IHBsYXRm
b3JtRm9jdXNSaW5nV2lkdGgoKSB7IHJldHVybiAzOyB9CiAgICAgc3RhdGljIGZsb2F0IHBsYXRm
b3JtRm9jdXNSaW5nT2Zmc2V0KGZsb2F0IG91dGxpbmVXaWR0aCkgeyByZXR1cm4gc3RkOjptYXg8
ZmxvYXQ+KG91dGxpbmVXaWR0aCAtIHBsYXRmb3JtRm9jdXNSaW5nV2lkdGgoKSwgMCk7IH0KQEAg
LTE4Nyw3ICsxODcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTeXN0ZW0gZm9udHMgYW5kIGNvbG9y
cyBmb3IgQ1NTLgogICAgIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURl
c2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtTWVudUxpc3RTaXplKGNvbnN0IFJl
bmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0yNzIsMjUgKzI3MiwyNSBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlw
dGlvbihDU1NWYWx1ZUlEIHN5c3RlbUZvbnRJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNv
bnN0ID0gMDsKIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCi0gICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsK
LSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7
Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0OwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLSAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybURlZmF1
bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogI2lmICFVU0UoTkVXX1RI
RU1FKQogICAgIC8vIE1ldGhvZHMgZm9yIGVhY2ggYXBwZWFyYW5jZSB2YWx1ZS4KQEAgLTQ1MSw3
ICs0NTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIENvbG9yIGRlZmF1bHRCdXR0b25UZXh0Q29s
b3I7CiAgICAgfTsKIAotICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYgY29sb3JDYWNoZShPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYg
Y29sb3JDYWNoZShPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICB2b2lkIGFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblN0eWxlKFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVBZHdhaXRhLmNwcAppbmRleCAzMmFiNWMyYzk4NjIzNDQyM2VhNDlmZjg0MWMz
NTdhM2E4ZGRjNmI2Li5kMWQ2MjNlNjczMGYyYzJjNWY0ZDdhNWYzMmZhMDA4ZWIyMWMyMjk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcApA
QCAtMTM1LDQ5ICsxMzUsNDkgQEAgYm9vbCBSZW5kZXJUaGVtZUFkd2FpdGE6OnNob3VsZEhhdmVD
YXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JiBlbGUKICAgICByZXR1cm4g
ZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRh
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1l
OjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmds
ZXRvbigpKS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxU
aGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVM
aXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1l
OjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNv
bG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkpLmlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3
YWl0YTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUluYWN0
aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihU
aGVtZTo6c2luZ2xldG9uKCkpLmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9
CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRo
ZW1lQWR3YWl0YTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFRoZW1lQWR3YWl0YTo6Zm9jdXND
b2xvcihvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKSk7CisgICAgcmV0dXJuIFRoZW1lQWR3YWl0YTo6Zm9jdXNDb2xvcihvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogfQogCiB2b2lkIFJl
bmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQpAQCAtMjAzLDkgKzIw
Myw5IEBAIFZlY3RvcjxTdHJpbmcsIDI+IFJlbmRlclRoZW1lQWR3YWl0YTo6bWVkaWFDb250cm9s
c1NjcmlwdHMoKQogfQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6c3lzdGVtQ29sb3Io
Q1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9wdGlvbnMu
Y29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIGNv
bnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSUQpIHsK
ICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCA2Yzc5OTMyM2I3ZGRiYmQxNTk5MDE3ZDYw
Y2ZlY2YwOTEyNDQwMmViLi45OTMzMjVjNDE2NjVlZGRiMzQ4OTdmY2M3ZTUzMzg3NTg1OGMyYjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCkBA
IC00NiwxNSArNDYsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVt
Rm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25z
dCBvdmVycmlkZSB7IH07CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwot
ICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7Cisg
ICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7
CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBwbGF0Zm9y
bUNvbG9yc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgYm9vbCBwYWludFRleHRGaWVsZChjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5h
bDsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50TWVkaWFWb2x1bWVT
bGlkZXJUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CiAjZW5kaWYKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVl
SUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBJbnRTaXpl
IHNsaWRlclRpY2tTaXplKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5oCmluZGV4IDRiMTAxYjM4YjVjOGUxNGQwYTY3N2Y1MDc0M2QxZDY3YjQ1
MTMxNGYuLmNiNWU4ZDhkYThjMjliYWUzMGE1YWMwYjVhMmRiNmZhOGQ3YWU3OGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTUsMTAgKzExNSwxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRTZWFyY2hGaWVsZERlY29yYXRpb25zKGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCi0gICAgQ29sb3IgY2hlY2ti
b3hSYWRpb0JvcmRlckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+LCBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOwotICAgIENvbG9yIGNoZWNrYm94UmFkaW9CYWNr
Z3JvdW5kQ29sb3IoYm9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3Rh
dGVzOjpTdGF0ZXM+LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOworICAgIENvbG9y
IGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVz
PiwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CisgICAgQ29sb3IgY2hlY2tib3hSYWRp
b0JhY2tncm91bmRDb2xvcihib29sIHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRy
b2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pOwogICAgIFJl
ZlB0cjxHcmFkaWVudD4gY2hlY2tib3hSYWRpb0JhY2tncm91bmRHcmFkaWVudChjb25zdCBGbG9h
dFJlY3QmLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPik7Ci0gICAgQ29sb3IgY2hl
Y2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+
LCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pOworICAgIENvbG9yIGNoZWNrYm94UmFk
aW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPik7CiAKICAgICBib29sIHBhaW50Q2hlY2tib3goY29uc3Qg
UmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBwYWludFJhZGlvKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTU2LDEyICsxNTYsMTIgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgc3VwcG9ydHNCb3hTaGFkb3coY29uc3QgUmVuZGVyU3R5bGUm
KSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBs
YXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENv
bG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0x
OTgsNyArMTk4LDcgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UmVjdCBhZGRSb3VuZGVkQm9yZGVy
Q2xpcChjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50
UmVjdCYpOwogCi0gICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBzeXN0ZW1Db2xv
cihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBSZXRhaW5QdHI8Q0lDb250ZXh0PiBt
X2NpQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpp
bmRleCA2OWVlNDk2MzM2MGU4YzYwNjVjMWZmNzExZjFmYjE2NmRlM2I0ZjVlLi4zMjE3ZDkxZWY5
ODQ1YzczMzI0NjY4ZTM4ZTMwZjhkNzFkMjg5MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjM3LDEyICsxMjM3LDEyIEBAIHZvaWQgUmVuZGVy
VGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmpl
Y3QmLCBjb25zdCBSCiAgICAgaWNvbi0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQoKSwgdGh1bWJu
YWlsUmVjdCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4g
Q29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOwogfQpAQCAtMTI2Miwx
MyArMTI2MiwxMyBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtRm9jdXNSaW5nQ29sb3Io
KQogICAgIHJldHVybiAqY2FjaGVkRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAotQ29sb3IgUmVuZGVy
VGhlbWVJT1M6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtRm9jdXNSaW5nQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3lz
dGVtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLUNv
bG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9y
bUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1ZSBmcm9tIFVJS2l0LgogICAgIHJl
dHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsKQEAgLTE0MjMsOSArMTQyMyw5
IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnNldEZvY3VzUmluZ0NvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKICAgICBjYWNoZWRGb2N1c1JpbmdDb2xvcigpID0gY29sb3I7CiB9CiAKLUNvbG9yIFJl
bmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVJ
T1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIGNvbnN0IGJvb2wgZm9yVmlzaXRlZExp
bmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OkZvclZpc2l0ZWRMaW5r
KTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgLy8gVGhlIHN5c3RlbSBjb2xv
ciBjYWNoZSBiZWxvdyBjYW4ndCBoYW5kbGUgdmlzaXRlZCBsaW5rcy4gVGhlIG9ubHkgY29sb3Ig
dmFsdWUKICAgICAvLyB0aGF0IGNhcmVzIGFib3V0IHZpc2l0ZWQgbGlua3MgaXMgQ1NTVmFsdWVX
ZWJraXRMaW5rLCBzbyBoYW5kbGUgaXQgaGVyZSBieQpAQCAtMTQzNyw4ICsxNDM3LDggQEAgQ29s
b3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok8KIAogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRp
b25zKTsKICAgICByZXR1cm4gY2FjaGUuc3lzdGVtU3R5bGVDb2xvcnMuZW5zdXJlKGNzc1ZhbHVl
SUQsIFt0aGlzLCBjc3NWYWx1ZUlELCBvcHRpb25zXSAoKSAtPiBDb2xvciB7Ci0gICAgICAgIGNv
bnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKLSAgICAgICAgY29uc3QgYm9vbCB1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAgICBjb25zdCBib29s
IHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBjb25zdCBib29sIHVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAgICAgICBpZiAoIWdsb2JhbENTU1ZhbHVlVG9T
eXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYXV0byBpdCA9IGdsb2Jh
bENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFsdWVLZXkgeyBjc3NWYWx1ZUlE
LCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgfSk7CiAg
ICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZW5k
KCkpCkBAIC0yMDQ3LDcgKzIwNDcsNyBAQCBjb25zdGV4cHIgYXV0byBuYXRpdmVDb250cm9sQm9y
ZGVyV2lkdGggPSAxLjBmOwogY29uc3RleHByIGF1dG8gY2hlY2tib3hSYWRpb0JvcmRlcldpZHRo
ID0gMS41ZjsKIGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94UmFkaW9Cb3JkZXJEaXNhYmxlZE9wYWNp
dHkgPSAwLjNmOwogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JvcmRlckNv
bG9yKE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJ
T1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3Rh
dGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlv
bnMpCiB7CiAgICAgYXV0byBkZWZhdWx0Qm9yZGVyQ29sb3IgPSBzeXN0ZW1Db2xvcihDU1NWYWx1
ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKIApAQCAtMjA2
MCw3ICsyMDYwLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJD
b2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPgogICAgIHJldHVybiBkZWZhdWx0
Qm9yZGVyQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFj
a2dyb3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0
YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHls
ZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFja2dy
b3VuZENvbG9yKGJvb2wgdXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRl
czo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xv
ck9wdGlvbnMpCiB7CiAgICAgYm9vbCBpc0VtcHR5ID0gIXN0YXRlcy5jb250YWluc0FueSh7IENv
bnRyb2xTdGF0ZXM6OlN0YXRlczo6Q2hlY2tlZCwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpJbmRl
dGVybWluYXRlIH0pOwogICAgIGJvb2wgaXNFbmFibGVkID0gc3RhdGVzLmNvbnRhaW5zKENvbnRy
b2xTdGF0ZXM6OlN0YXRlczo6RW5hYmxlZCk7CkBAIC0yMTAwLDEyICsyMTAwLDEyIEBAIFJlZlB0
cjxHcmFkaWVudD4gUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kR3JhZGll
bnQoY29uc3QgRmxvYXRSZWN0CiAgICAgcmV0dXJuIGdyYWRpZW50OwogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKE9wdGlvblNldDxDb250cm9s
U3RhdGVzOjpTdGF0ZXM+IHN0YXRlcywgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0
eWxlQ29sb3JPcHRpb25zKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9JbmRp
Y2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCiB7CiAgICAgaWYgKCFz
dGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVkKSkKICAgICAgICAg
cmV0dXJuIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUxhYmVsLCBzdHls
ZUNvbG9yT3B0aW9ucyk7CiAKLSAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9yQ29sb3IgPSBzeXN0
ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwgU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIENvbG9yIGVuYWJsZWRJ
bmRpY2F0b3JDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5
bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwog
ICAgIGlmIChzdGF0ZXMuY29udGFpbnMoQ29udHJvbFN0YXRlczo6U3RhdGVzOjpQcmVzc2VkKSkK
ICAgICAgICAgcmV0dXJuIGVuYWJsZWRJbmRpY2F0b3JDb2xvci5jb2xvcldpdGhBbHBoYU11bHRp
cGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaAppbmRleCAxZTYxNjg3NjBmMTE3NDc3NjFhOGEzYzNlNWIyZThkNmQy
ZDFiODhkLi5jNDFmNzQ5MDA5MjVlZmExNjVlZWVlODlkNjhiOGU2NjYxMDUzNTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNTMsMjMgKzUzLDIzIEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiwg
Y29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25zdCBmaW5hbDsKIAotICAgIGJv
b2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0KLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3Ig
dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiwgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9y
IHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1U
ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKworICAgIENvbG9yIHBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFs
OworICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xv
ciYsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3Jt
SW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qg
ZmluYWw7CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQotICAgIENvbG9yIHBsYXRmb3JtQXBw
SGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCi0gICAgQ29sb3IgcGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
ZmluYWw7CisgICAgQ29sb3IgcGxhdGZvcm1EZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAgICAgU2Nyb2xsYmFyQ29udHJv
bFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSBmaW5hbCB7IHJl
dHVybiBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGw7IH0KIApAQCAtMTU5LDcgKzE1OSw3IEBA
IHByaXZhdGU6CiBwcml2YXRlOgogICAgIFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25z
dCBGaWxlTGlzdCosIGNvbnN0IEZvbnRDYXNjYWRlJiwgaW50IHdpZHRoLCBib29sIG11bHRpcGxl
RmlsZXNBbGxvd2VkKSBjb25zdCBmaW5hbDsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1Zh
bHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Q29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PikgY29uc3QgZmluYWw7CiAKICAgICAvLyBHZXQgdGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYg
dGhlIGZvbnQuIFVzZWQgYnkgc29tZSBvZiB0aGUgY29udHJvbHMgKGxpa2UgYnV0dG9ucykuCiAg
ICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBh
MTRmZWNjY2ViYmY3YzE1YWFiOTlhZDQwMmFhZDcyMjY4NTIwYzYwLi5kNDM3ZjQ4MjY2NWMzMzNj
YTIzNmUwYjM3NTgyNmEzZjJhYTY0YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLm1tCkBAIC0yODQsMTYgKzI4NCwxNiBAQCBOU1ZpZXcgKlJlbmRlclRoZW1l
TWFjOjpkb2N1bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAogICAgIHJl
dHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1lVmlldygpLCBzdGF0ZXMp
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xv
ckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dEJhY2tncm91bmRDb2xvcl0pOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBI
QVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFu
Y2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6
VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxv
Y2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1w
aGFzaXplZFNlbGVjdGVkVGV4dEJhY2tncm91bmRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0ob3B0aW9ucyk7CkBAIC0zMDEsOSArMzAxLDkgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q28KICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNmb3Jt
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJr
QXBwZWFyYW5jZSgpKSB7CiAgICAgICAgIC8vIFVzZSBhbiBhbHBoYSB2YWx1ZSB0aGF0IGlzIHNp
bWlsYXIgdG8gcmVzdWx0cyBmcm9tIGJsZW5kV2l0aFdoaXRlKCkgb24gbGlnaHQgY29sb3JzLgog
ICAgICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGFya0FwcGVhcmFuY2VBbHBoYSA9IDAuODsKQEAg
LTMxMywyNCArMzEzLDI0IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjp0cmFuc2Zvcm1TZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpCiAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29sb3IsIG9wdGlv
bnMpOwogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0Citi
b29sIFJlbmRlclRoZW1lTWFjOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBsb2NhbEFwcGVhcmFu
Y2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9j
YWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBw
ZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpKQog
ICAgICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRDb2xv
cl0pOwogICAgIHJldHVybiB7IH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBw
ZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBjb2xvckZyb21O
U0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7CiAgICAgcmV0
dXJuIHsgfTsKQEAgLTM0MCwxMCArMzQwLDEwIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvCiAj
ZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0
aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5T
Q29sb3IoW05TQ29sb3Igc2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZENvbG9yXSk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM1MywxMCArMzUzLDEwIEBAIENvbG9yIFJl
bmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0CiAjZW5kaWYKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RBUktfTU9E
RV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShv
cHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAjZW5kaWYKQEAgLTM2NCwxNiArMzY0
LDE2IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8CiAKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
TWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAgIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9y
KFtOU0NvbG9yIGFsdGVybmF0ZVNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0pOwogfQogCi1Db2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAog
ewogI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpP
cHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29s
b3IgdW5lbXBoYXNpemVkU2VsZWN0ZWRUZXh0Q29sb3JdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKG9wdGlvbnMpOwpAQCAtMzgxLDMyICszODEsMzIgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDwKICNlbmRpZgogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAodXNlc1Rlc3RNb2RlRm9jdXNS
aW5nQ29sb3IoKSkKICAgICAgICAgcmV0dXJuIG9sZEFxdWFGb2N1c1JpbmdDb2xvcigpOwotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIC8vIFRoZSBjb2xv
ciBpcyBleHBlY3RlZCB0byBiZSBvcGFxdWUsIHNpbmNlIENvcmVHcmFwaGljcyB3aWxsIGFwcGx5
IG9wYWNpdHkgd2hlbiBkcmF3aW5nIChiZWNhdXNlIG9wYWNpdHkgaXMgbm9ybWFsbHkgYW5pbWF0
ZWQpLgogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGtleWJvYXJkRm9jdXNJ
bmRpY2F0b3JDb2xvcl0pLm9wYXF1ZUNvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybVRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNl
KG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgZmluZEhpZ2hsaWdodENvbG9y
XSk7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZU1h
Yzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBl
eHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBBcHBLaXQuCiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4
X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OwogfQogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5hdGVTZWxlY3RlZENvbnRy
b2xUZXh0Q29sb3JdKTsKIH0KIApAQCAtNDQ5LDExICs0NDksMTEgQEAgc3RhdGljIFNSR0JBPHVp
bnQ4X3Q+IG1lbnVCYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVu
dHNDbGFtcGluZzxTUkdCQTx1aW50OF90Pj4ocGl4ZWxbMF0sIHBpeGVsWzFdLCBwaXhlbFsyXSwg
cGl4ZWxbM10pOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFs
dWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1Zh
bHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAg
ICBjb25zdCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwotICAgIGNvbnN0IGJvb2wgdXNl
RGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgY29u
c3QgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSk7CisgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBl
YXJhbmNlKTsKKyAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgYXV0byYgY2FjaGUg
PSBjb2xvckNhY2hlKG9wdGlvbnMpOwogCkBAIC0xNTcxLDcgKzE1NzEsNyBAQCB2b2lkIFJlbmRl
clRoZW1lTWFjOjphZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
RWxlbWVudCogZSkgYwogICAgIC8vIFNldCB0aGUgZm9yZWdyb3VuZCBjb2xvciB0byBibGFjayBv
ciBncmF5IHdoZW4gd2UgaGF2ZSB0aGUgYXF1YSBsb29rLgogICAgIENvbG9yIGMgPSBDb2xvcjo6
ZGFya0dyYXk7CiAgICAgaWYgKGUpIHsKLSAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZzdHlsZSk7
CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucyA9IGUtPmRvY3Vt
ZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJnN0eWxlKTsKICAgICAgICAgYyA9ICFlLT5pc0Rpc2Fi
bGVkRm9ybUNvbnRyb2woKSA/IHN5c3RlbUNvbG9yKENTU1ZhbHVlQnV0dG9udGV4dCwgb3B0aW9u
cykgOiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUdyYXl0ZXh0LCBvcHRpb25zKTsKICAgICB9CiAgICAg
c3R5bGUuc2V0Q29sb3IoYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcAppbmRleCA4NWRhYWQ4NTc3YmQ4ZTc2YzdhZDk3OGUyYzJkZDBjODA0ZTFjYjhjLi4w
ZDQ1YWQ1ZTkyMzBmZDI1OTczNWZjNjFkZTg1ZDA4ZWUzMmFjYTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTI4NSwyNSArMjg1LDI1IEBAIGJv
b2wgUmVuZGVyVGhlbWVXaW46OnN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25z
dAogICAgIHJldHVybiBoYXZlVGhlbWU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVCk7CiAg
ICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZhbHVlKGNvbG9yKSwgR2V0R1ZhbHVlKGNv
bG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6cGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdAogewogICAgIC8vIFRoaXMgY29sb3IgbWF0Y2hlcyBGaXJlZm94LgogICAgIHJldHVybiBT
UkdCQTx1aW50OF90PiB7IDE3NiwgMTc2LCAxNzYgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVX
aW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
KSBjb25zdAogewogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3IoQ09MT1JfSElHSExJ
R0hUVEVYVCk7CiAgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgR2V0UlZhbHVlKGNvbG9yKSwg
R2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSB9OwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
V2luOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CkBAIC0xMDAyLDcgKzEw
MDIsNyBAQCBzdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoQ1NTVmFsdWVJRCBj
c3NWYWx1ZUlkKQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKICAgICBzd2l0Y2ggKGNzc1ZhbHVl
SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdp
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmgKaW5kZXggYzgx
YjUwYTMyYTI5M2ViNjdiMGIyNjI3MDNlMTBlNTAzZTg2ZDgyNS4uNmIwMGNmMDc4NGMyZjA3ZGFl
YzZjMzhmNjJjZmQ0NDZiZDJjN2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luLmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2Qg
YXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFjdHVhbGx5IGNhcmUgYWJvdXQgcmVkcmF3
aW5nIHdoZW4gaG92ZXJlZC4KICAgICBib29sIHN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRl
OworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBv
dmVycmlkZTsKIAotICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3Igc3lzdGVtQ29s
b3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHBhaW50Q2hlY2tib3goY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25z
dCBQYWludEluZm8mIGksIGNvbnN0IEZsb2F0UmVjdCYgcikgb3ZlcnJpZGUKICAgICB7IHJldHVy
biBwYWludEJ1dHRvbihvLCBpLCBJbnRSZWN0KHIpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBhZjA0MTljZjZjNDkyNWQxYzk0NDcyNzNhNzEwNWQx
YzRiOTg1YTE3Li5kNmNjOWI3MWE4YWNiMzE5YWU0NWIxYzBlN2UwNDFiNGViYWU2ODQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtMjQsNiArMjQsNyBA
QAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJl
Y3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtlZFRleHQuY3BwCmlu
ZGV4IGM5Y2ZjN2ZmNWRiMTAwYTQxZWU2MTE0Mzg4NjlkNGExYzdiZGVjZWYuLjA0N2YwMmExNzlm
YTU2MTNiZDgzYTZmNTc5NzliZjZiMTQwNDI2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU3R5bGVkTWFya2VkVGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIFN0eWxl
ZE1hcmtlZFRleHQgcmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBNYXJrZWRUZXh0JiBt
YXJrZWRUZXh0LAogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAg
ICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKLSAgICAgICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlIH07CiAgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHJlbmRlcmVy
LnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJl
c29sdmVTdHlsZUZvck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAg
ICB9CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpUZXh0TWF0Y2g6IHsKICAgICAgICAgLy8gVGV4dCBt
YXRjaGVzIGFsd2F5cyB1c2UgdGhlIGxpZ2h0IHN5c3RlbSBhcHBlYXJhbmNlLgotICAgICAgICBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvck9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHN0
eWxlLnRleHRTdHlsZXMuZmlsbENvbG9yID0gcmVuZGVyZXIudGhlbWUoKS5zeXN0ZW1Db2xvcihD
U1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAKaW5kZXggYmZmMjE3ZTk0
MDEyZTIxZDZjMTJjMDRlODhiODcwOWNmOWU1NzdkYi4uZmM2OGY0M2VmZGUzNmM0Y2Y4YmUxNTEx
ZWRlODY0ZmQwZmE0YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50
U3R5bGUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIFRleHRQYWludFN0eWxlIGNvbXB1dGVUZXh0UGFp
bnRTdHlsZShjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lCiAgICAg
aWYgKGxpbmVTdHlsZS5pbnNpZGVEZWZhdWx0QnV0dG9uKCkpIHsKICAgICAgICAgUGFnZSogcGFn
ZSA9IGZyYW1lLnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnM7CisgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnM7CiAgICAgICAgICAgICBpZiAocGFnZS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpKQot
ICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3Rl
bUFwcGVhcmFuY2UpOworICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3JPcHRp
b25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKICAgICAgICAgICAgIHBhaW50U3R5bGUuZmlsbENv
bG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmRlZmF1bHRCdXR0b25UZXh0Q29sb3Iob3B0
aW9ucyk7CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTdHlsZTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ci5jcHAKaW5kZXggNDMwYTM0MmY2M2I5Mzg0NGY0MWI3NTdiMGRmYWQ5YWFiYjI3Y2NjNC4uOWNl
NTE2Yjg2NzNmMzc3NDc0NDExYWYyYjA4NDMwYmFlNWRkMTQ3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIuaCIKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQnV0dG9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNDZkYmY1
YmIzM2Q1ZTg1ZTE1MjFhYmU3ODhiOTE3ZmUyODEzYzdhOS4uNDNjNDljOTUwZTNiOTk1YzY1YjE1
MDJjNTViMjM2NjgyMTRhMTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIK
QEAgLTQ2MzMsMTQgKzQ2MzQsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFBhZ2VNdXRlZChTdHJp
bmdWaWV3IHN0YXRlc1N0cmluZykKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZTsKICAgICBmb3Ig
KFN0cmluZ1ZpZXcgc3RhdGVTdHJpbmcgOiBzdGF0ZXNTdHJpbmcuc3BsaXQoJywnKSkgewogICAg
ICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcsICJhdWRp
byIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1
ZGlvSXNNdXRlZCk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShzdGF0ZVN0cmluZywgImNhcHR1cmVkZXZpY2VzIikpCiAgICAgICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAg
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5nLCAic2NyZWVuY2Fw
dHVyZSIpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6
OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKKyAgICAgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1
Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgIH0KIAogICAgIGlmIChQ
YWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTQ2NTUsNDMgKzQ2NTYsNDMgQEAgU3Ry
aW5nIEludGVybmFsczo6cGFnZU1lZGlhU3RhdGUoKQogCiAgICAgYXV0byBzdGF0ZSA9IGRvY3Vt
ZW50LT5wYWdlKCktPm1lZGlhU3RhdGUoKTsKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsKLSAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nQXVkaW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc1BsYXlpbmdB
dWRpbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJJc1BsYXlpbmdWaWRlbywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCisgICAgaWYgKHN0
YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcpKQorICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1BsYXliYWNrVGFy
Z2V0TW9uaXRvcmluZywiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkpCisgICAgaWYg
KHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmlj
ZUF1dG9QbGF5Q2FuZGlkYXRlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZp
Y2VBdXRvUGxheUNhbmRpZGF0ZSwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5kKSkKKyAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkpCiAgICAgICAgIHN0
cmluZy5hcHBlbmQoIkRpZFBsYXlUb0VuZCwiKTsKLSAgICBpZiAoc3RhdGUuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCisgICAg
aWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNTb3VyY2VFbGVtZW50UGxh
eWluZywiKTsKIAotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkKSkKKyAgICBpZiAoc3RhdGUuY29udGFp
bnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQp
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCIpOwot
ICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1By
ZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCkpCiAg
ICAgICAgIHN0cmluZy5hcHBlbmQoIklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCIpOwog
Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQorICAgIGlmIChzdGF0ZS5jb250
YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lcikpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXIsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpCisgICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pKQogICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8sIik7Ci0gICAgaWYgKHN0YXRlLmNv
bnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5k
KCJIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNB
Y3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKSkKKyAg
ICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVk
QXVkaW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRBdWRp
b0NhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0
dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzTXV0ZWRWaWRlb0NhcHR1cmVE
ZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCkpCisgICAgaWYgKHN0YXRl
LmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNVc2VySW50ZXJhY3Rl
ZFdpdGhNZWRpYUVsZW1lbnQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKSkKKyAgICBp
ZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURp
c3BsYXlDYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlRGlz
cGxheUNhcHR1cmVEZXZpY2UsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNw
bGF5Q2FwdHVyZURldmljZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkRGlzcGxh
eUNhcHR1cmVEZXZpY2UsIik7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKQEAgLTYxMjQs
MTEgKzYxMjUsMTEgQEAgU3RyaW5nIEludGVybmFsczo6c3lzdGVtQ29sb3JGb3JDU1NWYWx1ZShj
b25zdCBTdHJpbmcmIGNzc1ZhbHVlLCBib29sIHVzZURhcmtNb2QKICAgICBDU1NWYWx1ZUlEIGlk
ID0gY3NzVmFsdWVLZXl3b3JkSUQoY3NzVmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKFN0eWxl
Q29sb3I6OmlzU3lzdGVtQ29sb3JLZXl3b3JkKGlkKSk7CiAKLSAgICBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnM7CiAgICAgaWYgKHVzZURhcmtNb2RlQXBwZWFyYW5jZSkKLSAgICAgICAgb3B0aW9u
cy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgICAgICBv
cHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwogICAgIGlm
ICh1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKLSAgICAgICAgb3B0aW9ucy5hZGQoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAg
ICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwpOwogICAgIAogICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NTKFJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmlu
ZGV4IGFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJhMjc0Mjc3NTMuLmE4YzNlMThlNDdh
ZWNhZDBhMDIyYTA4NGM0OWEyMWY2YzcxNGMzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1LDYgKzU1
LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgi
CiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgog
I2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRl
eCAxNTM5OTI4YmFmNGMwNTcxZDM1NTI5NjhhMWZiY2YxZjJjNzRiYmRmLi44YjAzYzgxZDA3NWJi
OWMzMzM0NDU3NjYzMzYzYzEyMzNlMmFjMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC01Myw2
ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KIAogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiAjaW5jbHVkZSAiUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKaW5kZXggNzZmMTI5M2U0ODQ4ZTRlZjRlMjkwNGU1ODU3NTFjNGNmNmU0YzhhOS4u
OTAyMzZhY2IxZjA0Mjc3YTc4MmY1NTNmOTZlMzZhYTRhZDFiNmQxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApA
QCAtMTYxNSw3ICsxNjE1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRDU1BW
aW9sYXRpb25SZXBvcnQoVVJMJiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGEKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0IHsgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIFdURk1vdmUocmVwb3J0VVJMKSwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdU
Rk1vdmUocmVwb3J0KSB9IH0sIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpOwogfQogCi12b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkK
K3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50
SW5pdCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKGV2ZW50
SW5pdCkgfSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCBiMmQxZGNi
N2M3NjgxNTc5YTFjZjZmZmJkNDI0ZDQxZjEwOWQwNTgyLi5kMTc3NmU4MWY5Yzc2ZjgyNGQ5ZjRh
MzI2NDIzZTE5MGRmODk1YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTIwOCw3ICsyMDgsNyBAQCBwcml2YXRl
OgogICAgIC8vIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudAogICAgIHZvaWQgYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgZmluYWw7CiAgICAgdm9pZCBzZW5kQ1NQ
VmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiYpIGZpbmFsOwot
ICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSBmaW5hbDsKKyAgICB2b2lkIGVucXVl
dWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnRJbml0JiYpIGZpbmFsOwogCiAgICAgdm9pZCBsb2dTbG93Q2FjaGVSZXRyaWV2
ZUlmTmVlZGVkKGNvbnN0IE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJldHJpZXZlSW5mbyYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyNzgxZDEwZTljNjhl
ZWNjYjU2Yjc2OGIyNDUxOGQ5YWM1NDE3Yjg5Li45MTZjYTBlMzE5NDI2ZDE2NmFkZGMzNjQ5YTY0
MjVlNjJiNGUwOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTcyNiw2ICs3MjYsOSBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAg
J1dlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlJzogWyc8
V2ViQ29yZS9MZWdhY3lDRE1TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRp
YVBsYXllci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGUn
OiBbJzxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUv
TWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNv
cmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok5ldHdvcmtUcmFuc2Fj
dGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+J10s
CkBAIC03NDgsNiArNzUxLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAg
ICdXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsn
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50SW5pdCc6IFsnPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uJzogWyc8V2ViQ29yZS9WaXNpYmxl
U2VsZWN0aW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeSc6IFsn
IkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGFk
NDExYjgwNjI5OGE0Yjg1ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYuLmNiY2E5MDhlMzgzNjBkMWQ5
Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgc3RkOjpv
cHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVk
aWFWb2x1bWUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3M+IG11dGVkU3RhdGVG
bGFnczsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
RmxhZ3M+IG11dGVkU3RhdGVGbGFnczsKICAgICBkZWNvZGVyID4+IG11dGVkU3RhdGVGbGFnczsK
ICAgICBpZiAoIW11dGVkU3RhdGVGbGFncykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA0YTA1ZDYwYjJhY2UxMjI0MDEzNDhiYmE5YWExZGExNzQ2Yjg5MjQwLi5lYjFlZTA5NTlh
NTEzZGI4MjU3ZDY0YWRkY2VlYTUwOWI3YTNlODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTksNyArMTE5LDcgQEAgc3Ry
dWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGZsb2F0IHRvcENvbnRlbnRJbnNl
dDsKICAgICAKICAgICBmbG9hdCBtZWRpYVZvbHVtZTsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGVGbGFncyBtdXRlZDsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7
CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDJkYjBmNTY5Y2IyMjUwNTg5
ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjU0OTEwMmViNWZlZWFiMDA5YmY5NDc3NTMyZDRmOWQ1
MDFlYThlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURp
ZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZl
bnRGbGFncz4pIHsgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDcwMWYxYTI5MDg4ZDg0MjAxNjBjNzNlMGNk
OWVmZDMyZGNjNmYyM2QuLjFmYjJmMjdhZDJiOTIxYTg4ZWFjYWQ4Yzc5Njg0YjY4NTIxZTY3ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjgxNiwxNCAr
MjgxNiwxNCBAQCB2b2lkIFdLUGFnZVNldE1lZGlhVm9sdW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBm
bG9hdCB2b2x1bWUpCiB2b2lkIFdLUGFnZVNldE11dGVkKFdLUGFnZVJlZiBwYWdlUmVmLCBXS01l
ZGlhTXV0ZWRTdGF0ZSBtdXRlZFN0YXRlKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOworICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwogCiAgICAg
aWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5h
ZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsKKyAg
ICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVk
aW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlhQ2FwdHVyZURldmljZXNN
dXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRp
b0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYga1dLTWVkaWFT
Y3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBjb3Jl
U3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJl
SXNNdXRlZCk7CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldE11dGVkKGNvcmVTdGF0ZSk7CiB9
CkBAIC0yOTcxLDI0ICsyOTcxLDI0IEBAIGJvb2wgV0tQYWdlSXNQbGF5aW5nQXVkaW8oV0tQYWdl
UmVmIHBhZ2UpCiAKIFdLTWVkaWFTdGF0ZSBXS1BhZ2VHZXRNZWRpYVN0YXRlKFdLUGFnZVJlZiBw
YWdlKQogewotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBjb3Jl
U3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOworICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgY29yZVN0YXRlID0gdG9JbXBsKHBhZ2UpLT5y
ZXBvcnRlZE1lZGlhU3RhdGUoKTsKICAgICBXS01lZGlhU3RhdGUgc3RhdGUgPSBrV0tNZWRpYUlz
Tm90UGxheWluZzsKIAotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICBzdGF0
ZSB8PSBrV0tNZWRpYUlzUGxheWluZ0F1ZGlvOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKKyAgICBpZiAoY29y
ZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVv
KQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUlzUGxheWluZ1ZpZGVvOwotICAgIGlmIChjb3Jl
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRl
IHw9IGtXS01lZGlhSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9
IGtXS01lZGlhSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tN
ZWRpYUhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmlj
ZSkKKyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhh
c011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkK
KyAgICBpZiAoY29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhh
c0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhh
c0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlOwotICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNl
KQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFI
YXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlOwogCiAgICAgcmV0dXJuIHN0YXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDA0NGE4
MWEyN2E5YmE1MGM5NzhkNjcyNWQwNjkzZGExZmIxMDc5Yy4uNTcyZWM5NmRjYTdjNzVmNGIxN2I0
ODJlMjdhYWU1MmQyNDQ3MWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMDM3LDkgKzEwMzcsOSBAQCAtICh2b2lkKXJlcXVlc3RN
ZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTWVkaWFQ
bGF5YmFjawogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIHsKICAg
ICBhdXRvIHN0YXRlID0gX3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwotICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRp
YUNhcHR1cmVTdGF0ZUFjdGl2ZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CiAgICAg
cmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lOwogfQpAQCAtMTA0Nyw5ICsxMDQ3LDkgQEAg
LSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSljYW1lcmFDYXB0dXJlU3RhdGUKIC0gKFdLTWVkaWFDYXB0
dXJlU3RhdGUpbWljcm9waG9uZUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8gc3RhdGUgPSBfcGFn
ZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
OwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAg
cmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1cm4gV0tNZWRpYUNhcHR1
cmVTdGF0ZU5vbmU7CiB9CkBAIC0xMDYxLDE2ICsxMDYxLDE2IEBAIC0gKHZvaWQpc2V0TWljcm9w
aG9uZUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFu
ZGxlcjooCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gW10geyB9OwogCiAgICAgaWYgKHN0
YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7Ci0gICAgICAgIF9wYWdlLT5zdG9wTWVk
aWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7
CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtdXRlZFN0YXRl
ID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOwogICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlKQotICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0
ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2Fw
dHVyZUlzTXV0ZWQpOwogICAgIGVsc2UgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVN
dXRlZCkKLSAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3RhdGUuYWRkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAg
ICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgIH0pOwpAQCAtMTA4MywxNiArMTA4MywxNiBAQCAtICh2b2lkKXNldENhbWVyYUNhcHR1
cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfTsKIAogICAgIGlmIChzdGF0ZSA9
PSBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgewotICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2Fw
dHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgW2Nv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAg
ICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFD
YXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAg
ICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9w
YWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVT
dGF0ZUFjdGl2ZSkKLSAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIG11dGVkU3Rh
dGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICBlbHNlIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQp
Ci0gICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgX3Bh
Z2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0
cihjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAg
ICB9KTsKQEAgLTIyNzEsNyArMjI3MSw3IEBAIC0gKHZvaWQpX2Nsb3NlQWxsTWVkaWFQcmVzZW50
YXRpb25zCiAtICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCiB7CiAgICAgVEhST1dfSUZfU1VTUEVO
REVEOwotICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsK
IH0KIAogLSAodm9pZClfc3RvcEFsbE1lZGlhUGxheWJhY2sKQEAgLTM1OTQsMTQgKzM1OTQsMTQg
QEAgLSAoQk9PTClfbWVkaWFDYXB0dXJlRW5hYmxlZAogLSAodm9pZClfc2V0UGFnZU11dGVkOihf
V0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZQogewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsK
LSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgY29yZVN0YXRlOwogCiAg
ICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYUF1ZGlvTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0
ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsK
KyAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6
QXVkaW9Jc011dGVkKTsKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01lZGlhQ2FwdHVyZURldmlj
ZXNNdXRlZCkKICAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpB
dWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGlmIChtdXRlZFN0YXRlICYgX1dLTWVk
aWFTY3JlZW5DYXB0dXJlTXV0ZWQpCi0gICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBj
b3JlU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CiAKICAgICBfcGFnZS0+c2V0TXV0ZWQoY29yZVN0YXRlKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5k
ZXggZjA5NGY1Mzg5Mzk0NDk1NWY3OTgzOWMyNWQ5ZGVlOTI1ZGY0NzAwZS4uNGU1ZDczMjU3MTQ0
YjUxZGQ0MmE0ZWZhY2M3MGVlZmNjZTg1M2U5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTQ4NjgsNyArNDg2OCw3IEBA
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jb3JzX2FsbG93bGlzdChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBnY2hhciogY29uCiAgICAgZ2V0UGFnZSh3ZWJWaWV3KS5zZXRDT1JTRGlz
YWJsaW5nUGF0dGVybnMoV1RGTW92ZShhbGxvd0xpc3RWZWN0b3IpKTsKIH0KIAotc3RhdGljIHZv
aWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGNhcHR1cmVLaW5k
LCBXZWJLaXRNZWRpYUNhcHR1cmVTdGF0ZSBjYXB0dXJlU3RhdGUsIGJvb2wgaXNGcm9tRGlzcGxh
eUNhcHR1cmUgPSBmYWxzZSkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRp
YUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRlIGNhcHR1
cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZhbHNlKQogewogICAgIGF1dG8m
IHBhZ2UgPSBnZXRQYWdlKHdlYlZpZXcpOwogICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IHBhZ2UubXV0
ZWRTdGF0ZUZsYWdzKCk7CkBAIC00ODc3LDEzICs0ODc3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
Q29yZTo6CiAgICAgY2FzZSBXRUJLSVRfTUVESUFfQ0FQVFVSRV9TVEFURV9OT05FOgogICAgICAg
ICBwYWdlLnN0b3BNZWRpYUNhcHR1cmUoY2FwdHVyZUtpbmQsIFt3ZWJWaWV3LCBjYXB0dXJlS2lu
ZF0gewogICAgICAgICAgICAgc3dpdGNoIChjYXB0dXJlS2luZCkgewotICAgICAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
OgogICAgICAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJW
aWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9NSUNST1BIT05FX0NBUFRVUkVfU1RBVEVdKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgICAgICBjYXNlIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAgICAgICAgICAgICAgICBn
X29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVz
W1BST1BfQ0FNRVJBX0NBUFRVUkVfU1RBVEVdKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6
QXVkaW9WaWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNDg5MSwx
NiArNDg5MSwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0
dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX0FDVElWRToKICAgICAgICAgc3dpdGNo
IChjYXB0dXJlS2luZCkgewotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3Zl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAgaWYgKGlzRnJvbURp
c3BsYXlDYXB0dXJlKQogICAgICAgICAgICAgICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQ6OkF1ZGlvVmlkZW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW86CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDkwOCwxNiArNDkw
OCwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6OgogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX01VVEVEOgogICAgICAgICBzd2l0Y2ggKGNhcHR1
cmVLaW5kKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW86CisgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvOgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZDo6VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9tRGlzcGxheUNhcHR1
cmUpCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZDo6QXVkaW9WaWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00OTY1LDcgKzQ5NjUsNyBAQCB2b2lkIHdlYmtp
dF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0TWVkaQogICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NhbWVyYV9jYXB0dXJl
X3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2Vi
VmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0
YXRlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUpOwogfQog
CiAvKioKQEAgLTUwMDcsNyArNTAwNyw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9taWNy
b3Bob25lX2NhcHR1cmVfc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0CiAgICAg
aWYgKHdlYmtpdF93ZWJfdmlld19nZXRfbWljcm9waG9uZV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcp
ID09IFdFQktJVF9NRURJQV9DQVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIHN0YXRlKTsKKyAgICB3ZWJr
aXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywgc3RhdGUpOwogfQogCiAvKioKQEAgLTUwNDks
NSArNTA0OSw1IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3Rh
dGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TWVkCiAgICAgaWYgKHdlYmtpdF93ZWJf
dmlld19nZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlKHdlYlZpZXcpID09IFdFQktJVF9NRURJQV9D
QVBUVVJFX1NUQVRFX05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZpZXdD
b25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVk
aWFDYXB0dXJlS2luZDo6VmlkZW8sIHN0YXRlLCB0cnVlKTsKKyAgICB3ZWJraXRXZWJWaWV3Q29u
ZmlndXJlTWVkaWFDYXB0dXJlKHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNh
cHR1cmVLaW5kOjpWaWRlbywgc3RhdGUsIHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKaW5kZXggZTFkYTQ2ZjI2YjE4Yzc3ZjJhMTg5
ZWQ4NjU0MGJhNjEzMjI5YmNmYi4uOGExNjIwNzc4ZWRkOWNiZmYxMjA5OWIxNTJhZDUwYjQ3OWVk
ZjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGll
cy5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1fV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwotX1dLTWVkaWFNdXRlZFN0YXRl
IHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZs
YWdzKTsKK19XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOworX1dL
TWVkaWFNdXRlZFN0YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck11dGVkU3RhdGVGbGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQppbmRleCA1M2JiZjQyMDE0
NzFkOWQ4YTRmNjZlNzAxZjY0Mzg4ZWVlZDVkMTVhLi45ODUwYThmY2E2NzBkYzc4NTVmNDEwMDY3
YjA1YzEyZjgwODgwNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9NZWRpYVV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5tbQpAQCAtMjgsMjkgKzI4LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUp
CitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewog
ICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNl
KQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmU7Ci0gICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYTsKLSAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2UpCiAgICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9w
aG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCiAgICAg
ICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11
dGVkQ2FtZXJhOwogCiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwogfQogCi1fV0tNZWRp
YU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRT
dGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQogewogICAg
IF9XS01lZGlhTXV0ZWRTdGF0ZSBtZWRpYU11dGVkU3RhdGUgPSBfV0tNZWRpYU5vbmVNdXRlZDsK
LSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGU6OkF1ZGlvSXNNdXRlZCkKICAgICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlhQXVk
aW9NdXRlZDsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0ZWRTdGF0ZSB8PSBfV0tNZWRp
YUNhcHR1cmVEZXZpY2VzTXV0ZWQ7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCisgICAgaWYgKHN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKQog
ICAgICAgICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFTY3JlZW5DYXB0dXJlTXV0ZWQ7CiAg
ICAgcmV0dXJuIG1lZGlhTXV0ZWRTdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaAppbmRleCAzMjlkYjc5MWNmNDMyNzI0NjM2MzQyODAwNTA0YjA4ZWE4
OWRiMGUzLi5lNjc5Njk1YTNmZTFhMGFlZjI4ZGQ1YWYwMjQ4ZDY5MDZmMzQxOTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xNDEsNyArMTQxLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBX
ZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwogICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJv
eHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwor
ICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgICAgICB2b2lkIHByaW50RnJhbWUoV2Vi
UGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgcGRm
Rmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJTktTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMTFiN2E0MDU4YTViNjQxYWI4ODRh
OTc2NTc3Y2YyMTAzYmNiNmJkZC4uZDc4ZjRjYzBkNTY1NTk0YzBlODgxYTQ1OGJmZDIzODI3NTEy
MjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBA
IC0xMjI3LDcgKzEyMjcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLAogICAgIFsoaWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJW
aWV3LmdldCgpLmdldCgpIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJh
bWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJh
bWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07
CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgaWYgKCFtX3VpRGVs
ZWdhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAppbmRleCBiMzkzN2FjMDQzNzczOTJkMzBiMTgzM2RlZTBjMDFlNmNhMTY4OWYzLi4yYjcyNDU4
NjkxNmJmNWUxY2JiNjUzYmUxZTZhMjRiMWFkOTkxZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotc3RhdGlj
IGNvbnN0IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJlTWFzayB7
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH07
CitzdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBhY3RpdmVDYXB0dXJl
TWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2Ug
fTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTk1LDcgKzk1LDcgQEAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KFcKIAogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6On5Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpCiB7Ci0g
ICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlh
Q2FwdHVyZSB7IE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8gfSwg
W10geyB9KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
OjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW8gfSwgW10geyB9KTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5yZXZva2VTYW5kYm94RXh0ZW5zaW9uc0lmTmVl
ZGVkKHBhZ2UoKS5wcm9jZXNzKCkpOwogICAgIHByb3hpZXMoKS5yZW1vdmUodGhpcyk7CkBAIC0x
MjksNyArMTI5LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6c3RvcENhcHR1cmUoKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAg
aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwotICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJl
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOworICAgIG1fcGFn
ZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1Zp
ZGVvKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNv
bnN0CiAjZW5kaWYKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
b2xkU3RhdGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNhcHR1cmVTdGF0ZUNoYW5n
ZWQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKIHsKICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJv
Y2VzcygpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApp
bmRleCA2NGViZmE1ZTQ1OWExNmU0Y2QzN2U0OTM2OWE5MDRhZTYyZGViNzYwLi42NzRiYWI0ZGI3
YzljNjRkZWQ4NTc4NzQxZGJkMmFiOTk2ZGM0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJDYWNoZWRT
dGF0ZSgpOwogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIGNh
cHR1cmVTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3Rh
dGUpOworICAgIHZvaWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG5ld1N0YXRlKTsKICAgICB2b2lkIHN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3Q7
CiAKICAgICBlbnVtIGNsYXNzIFJlcXVlc3RBY3Rpb24gewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5pZWRSZXF1ZXN0czsKIAot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX2NhcHR1cmVTdGF0
ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0
YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5PiBtX3dhdGNoZG9nVGltZXI7CiAgICAgU2Vjb25kcyBtX2N1cnJlbnRXYXRjaGRvZ0lu
dGVydmFsOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjFjMDdmNmRmYjliNDYzNjVkNzY3ZTQxMzNjYmQ2OGRh
MGQzMmE3Yy4uZDMzMWYyY2E3ZDAzYTcwM2I1Y2I2ZGQwYzhmZDhiNTkxMjg0ZmYzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTEzLDExICsyMTEzLDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rp
dml0eVN0YXRlOjpGbGFnPiBmbGFnc1RvVXBkCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQo
QWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdyk7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rp
dml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSAmJiBwYWdlQ2xpZW50KCkuaXNWaXN1YWxseUlkbGUo
KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5
SWRsZSk7Ci0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUg
JiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxh
eWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlOjpBdWRpb0lzTXV0ZWQpKSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5
U3RhdGU6OklzQXVkaWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnMoTWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSAmJiAhKG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRp
YVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKSkpCiAgICAgICAgIG1fYWN0aXZpdHlT
dGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlKTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0
ZSAmIEFjdGl2aXR5U3RhdGU6OklzTG9hZGluZyAmJiBtX3BhZ2VMb2FkU3RhdGUuaXNMb2FkaW5n
KCkpCiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZS5hZGQoQWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5n
KTsKLSAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVk
aWEgJiYgbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQorICAgIGlmIChmbGFnc1RvVXBkYXRl
ICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlhU3RhdGUuY29udGFp
bnNBbnkoeyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2
aWNlLCAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmlj
ZSB9KSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0NhcHR1
cmluZ01lZGlhKTsKIH0KIApAQCAtNjIzNiw3ICs2MjM2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpTZXRNZWRpYVZvbHVtZSh2b2x1bWUpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJv
eHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X211dGVkU3RhdGUgPSBzdGF0ZTsKIApAQCAtNjI2Nyw3ICs2MjY3LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC05NDQ2LDcgKzk0NDYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6bmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdFdhc1JlbW92ZWQoKQogICAgIG1f
bmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgqdGhp
cyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBuZXdT
dGF0ZSkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghbV9wcm9jZXNzLT50
aHJvdHRsZXIoKS5zaG91bGRCZVJ1bm5hYmxlKCkpCkBAIC05NDU3LDcgKzk0NTcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG5ld1N0YQogICAgICAgICB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
bmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uOjpZZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVsYXlOb3RpZmljYXRp
b24pCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUsIENhbkRlbGF5Tm90aWZpY2F0aW9uIGNh
bkRlbGF5Tm90aWZpY2F0aW9uKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYXV0
byB1cGRhdGVNZWRpYUNhcHR1cmVTdGF0ZUltbWVkaWF0ZWx5SWZOZWVkZWQgPSBbJl0gewpAQCAt
OTQ4NiwxNCArOTQ4NiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld01lZGlhQ2FwdHVyZVN0YXRlID0gbmV3U3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkTWVkaWFDYXB0dXJlU3RhdGUgPSBtX21lZGlh
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVNYXNrOworICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3TWVkaWFDYXB0dXJlU3RhdGUg
PSBuZXdTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CiAj
ZW5kaWYKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBwbGF5aW5nTWVkaWFN
YXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgcGxheWluZ01lZGlhTWFzayB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvIH07CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSA9IG1fbWVk
aWFTdGF0ZTsKIAotICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5jb250
YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykpICE9IChuZXdT
dGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbykp
OworICAgIGJvb2wgcGxheWluZ0F1ZGlvQ2hhbmdlcyA9IChvbGRTdGF0ZS5jb250YWlucyhNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pKSAhPSAobmV3U3RhdGUuY29udGFp
bnMoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7CiAgICAgaWYgKHBs
YXlpbmdBdWRpb0NoYW5nZXMpCiAgICAgICAgIHBhZ2VDbGllbnQoKS5pc1BsYXlpbmdBdWRpb1dp
bGxDaGFuZ2UoKTsKICAgICBtX21lZGlhU3RhdGUgPSBuZXdTdGF0ZTsKQEAgLTk1MTcsNyArOTUx
Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5lCiAgICAgaWYgKChvbGRTdGF0ZSAmIHBsYXlp
bmdNZWRpYU1hc2spICE9IChtX21lZGlhU3RhdGUgJiBwbGF5aW5nTWVkaWFNYXNrKSkKICAgICAg
ICAgbV91aUNsaWVudC0+aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoKnRoaXMpOwogCi0gICAgaWYg
KChvbGRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBdWRp
b09yVmlkZW8pKSAhPSAobV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpKQorICAgIGlmICgob2xkU3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpICE9IChtX21lZGlh
U3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRl
bykpKQogICAgICAgICB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwogCiAgICAgbV9w
cm9jZXNzLT51cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCk7CkBAIC05NzE3LDcgKzk3MTcs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZQogICAgIHBhZ2VDbGllbnQoKS5tZWRpYVNlc3Np
b25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIHBh
Z2VDbGllbnQoKS5yb290Vmlld1RvU2NyZWVuKEludFJlY3QocmVjdCkpLCBoYXNWaWRlbywgdXNl
RGFya0FwcGVhcmFuY2UoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3Mgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAg
ICBwYWdlQ2xpZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLmNsaWVudFN0YXRlRGlkQ2hhbmdl
KCp0aGlzLCBjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggNzUxY2M0NzllYzlmZDY5Y2QzNzMwNzczNzI4MDE3NTBlNzliMmMyZC4u
ZGY3ZGM5ZGM3NGU2ZmUzZGQyZjQ5YTg3MDk4YjVlOTU4OTc0ZDQ0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzOTYsMTMgKzEzOTYsMTMgQEAgcHVibGljOgog
ICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVl
U2l6ZTsgfQogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7Ci0gICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25z
dCB7IHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiA9IFtdIHsgfSk7CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211
dGVkU3RhdGUuY29udGFpbnMoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlv
SXNNdXRlZCk7IH07CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wp
OwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1f
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJlRW5h
YmxlZChib29sKTsKICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmID0gW10geyB9KTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiA9IFtdIHsgfSk7CiAKICAgICB2b2lkIHBhdXNlQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE1MDgsMTggKzE1MDgsMTggQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgY29uc3Qg
eyByZXR1cm4gbV9pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OyB9CiAKLSAgICBi
b29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOyB9Ci0gICAg
dm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MpOworICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiAh
IShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5
aW5nQXVkaW8pOyB9CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHVwZGF0ZVJlcG9ydGVkTWVk
aWFDYXB0dXJlU3RhdGUoKTsKIAogICAgIGVudW0gY2xhc3MgQ2FuRGVsYXlOb3RpZmljYXRpb24g
eyBObywgWWVzIH07Ci0gICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlmaWNhdGlvbiA9
IENhbkRlbGF5Tm90aWZpY2F0aW9uOjpObyk7CisgICAgdm9pZCB1cGRhdGVQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncywgQ2FuRGVsYXlO
b3RpZmljYXRpb24gPSBDYW5EZWxheU5vdGlmaWNhdGlvbjo6Tm8pOwogICAgIGJvb2wgaXNDYXB0
dXJpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKTsgfQogICAgIGJvb2wgaXNDYXB0
dXJpbmdWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKTsgfQotICAgIGJvb2wgaGFzQWN0
aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNBbnko
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJl
RGV2aWNlKTsgfQotICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVy
biBtX21lZGlhU3RhdGUuY29udGFpbnNBbnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQotICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyByZXBvcnRlZE1lZGlhU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgfCAobV9tZWRpYVN0YXRlIC0gV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzayk7IH0KLSAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1
cm4gbV9tdXRlZFN0YXRlOyB9CisgICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsgfQorICAgIGJvb2wgaGFz
QWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUuY29udGFpbnNB
bnkoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVy
ZURldmljZSk7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHJl
cG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVT
dGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVNYXNrKTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0
ZWRTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlOyB9CiAKICAgICB2b2lk
IGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdl
YkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pOwogCkBAIC0xNjAzLDcgKzE2MDMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZVBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAg
IHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ckRpc21pc3NQb3B1cCgpOwpAQCAtMjkwNCw3ICsyOTA0LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpMYXlvdXRQb2ludCBtX21heFN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luOwogCiAgICAg
ZmxvYXQgbV9tZWRpYVZvbHVtZSB7IDEgfTsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
dXRlZFN0YXRlRmxhZ3MgbV9tdXRlZFN0YXRlOwogICAgIGJvb2wgbV9tYXlTdGFydE1lZGlhV2hl
bkluV2luZG93IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9tZWRpYUNhcHR1cmVFbmFibGVkIHsgdHJ1ZSB9OwpAQCAt
Mjk0MCwxMCArMjk0MCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hY3Rpdml0eVN0YXRlQ2hh
bmdlV2FudHNTeW5jaHJvbm91c1JlcGx5IHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPj4gbV9uZXh0QWN0aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNrczsKIAot
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7
CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7
CiAKICAgICAvLyBUbyBtYWtlIHN1cmUgY2FwdHVyZSBpbmRpY2F0b3JzIGFyZSB2aXNpYmxlIGxv
bmcgZW5vdWdoLCBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgaXMgdGhlIHNhbWUgYXMgbV9t
ZWRpYVN0YXRlIGV4Y2VwdCB0aGF0IHdlIG1pZ2h0IGRlbGF5IGEgYml0IHRyYW5zaXRpb24gZnJv
bSBjYXB0dXJpbmcgdG8gbm90LWNhcHR1cmluZy4KLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOworICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0
YXRlOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4gbV91cGRhdGVSZXBvcnRlZE1l
ZGlhQ2FwdHVyZVN0YXRlVGltZXI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIERlZmF1
bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IDNfcyB9OwogICAgIFNlY29uZHMgbV9tZWRp
YUNhcHR1cmVSZXBvcnRpbmdEZWxheSB7IERlZmF1bHRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxh
eSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDcyZTU2ZGZmZTZlNWY0MGIzZWE1MzJlYWRlM2ZkMTk4ZDhkZWYwZTUuLjExOGE3
MWE5Nzk1NmM5MWI1NmU2MjgwYzQyMWNmOGEzMjYzMjhkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ2Miw3ICs0NjIsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hh
bmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAKLSAgICBJ
c1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCisgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBzdGF0ZSkKICAgICBIYW5kbGVBdXRvcGxheUV2
ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50IGV2ZW50LCBPcHRpb25TZXQ8
V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKIAogI2lmIFBMQVRGT1JNKE1BQykK
QEAgLTQ4MSw3ICs0ODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0
IHBpY2tlckxvY2F0aW9uLCBib29sIGhhc1ZpZGVvKQotICAgIFBsYXliYWNrVGFyZ2V0UGlja2Vy
Q2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBtZWRpYVN0YXRlKQorICAgIFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gbWVkaWFT
dGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoU3RyaW5n
IG5hbWUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
TW9ja1N0YXRlIHBpY2tlclN0YXRlKQogICAgIE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc1BvcHVwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDhkNDdhNjNmNmNhNzZiNDFlYzg2ZWE3YzQ0MTcyZDczMGEwNDJiYTkuLmFmNDA5
NjFkYTBmOWE4ZWM0ODc1MDhiZjIxNDEzMjA3ZmEwN2RmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTg0Nyw3ICsxODQ3LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiAKICNlbmRpZgogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBmbGFncykKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBmbGFncykKIHsK
ICAgICBib29sIG11dGVkRm9yQ2FwdHVyZSA9IGZsYWdzLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgaWYgKCFtdXRlZEZvckNhcHR1
cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDljZjIz
YWQ4OTI5ZGJlOWE4MDNjMGFjMDA0YWEzM2RjMmYyYzY3MWUuLjg3MmYwMmUxNTQ3MDgxNmJjMmVj
YWFjNjRmMWFmYTEyZTU4ZWVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC00MDYsNyArNDA2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG11
dGVDYXB0dXJlSW5QYWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwogI2VuZGlm
Ci0gICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgdm9pZCBwYWdl
TXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MpOwogICAgIHZvaWQgcGFnZUlzQmVjb21pbmdJbnZpc2li
bGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4
IGZmZGQ0MzM0NTdlY2VmY2Q2YWRkOGQ5YTQyMTRiYWI0NWRkNWU2NTAuLjFmMTc2ZWJkOTg4Y2Uw
MmZlZTZkODIwODQyNjJlODRmMWU1NmFlOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcAppbmRleCBkMDdmNmU3MmE0YjQ5NWNkOTQzNTA5MmNmNzZlMGI3YTU5YjgyMGM5Li5kZGFm
ODYzZmU3NWI3NTliOWJlODA0NTcyOWVhYjQ1MWVjMTEwYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9j
dW1lbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAKQEAgLTU0LDcgKzU0LDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRET01YUGF0aFJlc3VsdFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTUV4Y2VwdGlvbi5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
SW5saW5lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbHNjcmVlbk1hbmFnZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0pTRXhlY1N0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAppbmRleCBhM2Q2Y2MzMmY2NTQ5ZmEwZmFiNGEyNDUwOGZlMjJmMDQ3ZjlkMzM1Li5kM2Fh
ZDZlYTI2MTY4YTIxYjgzZDUzMGU3YWI2ZGQ0N2EyNjdmMjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNTksNyArNTksNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUlubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
cm94eVNlcnZlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oCmluZGV4IGFhOWQzZWNlM2Q2MjU4OWQ2YmJhZWM5MTRiNjM1NmQ1MDRhNGU5YmEuLjVh
YmM0ODZlMGM1OTEwYWRlOGI4YzZmYzhkOGY5MGE5Zjk2ZWI1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE4Niw3ICsxODYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgbWVkaWFDYW5TdGFydChXZWJDb3JlOjpEb2N1bWVudCYpIG92ZXJy
aWRlOwogCiAgICAgLy8gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcgotICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpIG92ZXJyaWRl
OwogCiAgICAgLy8gUGx1Z2luQ29udHJvbGxlcgpAQCAtMjc2LDExICsyNzYsMTEgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fcGx1Z2luSXNQbGF5aW5nQXVkaW8geyBmYWxzZSB9OwogfTsKIAotaW5s
aW5lIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBQbHVnaW5WaWV3Ojpt
ZWRpYVN0YXRlKCkgY29uc3QKK2lubGluZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25zdAogewotICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlOworICAgIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZTsKICAgICBpZiAobV9wbHVnaW5J
c1BsYXlpbmdBdWRpbykKLSAgICAgICAgbWVkaWFTdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOworICAgICAgICBtZWRpYVN0YXRlLmFkZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pOwogICAgIHJldHVybiBt
ZWRpYVN0YXRlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDEyMGEwNGQzNmYwMzhh
YzczMTkxNTUyZWNmNDVlMzIxNGUxNWI3ZWUuLmEyMzk2Y2UyYzI5NGU4MjZlZTg2ZDNmNzZkOWY1
YTcxM2I5OTYzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMjUyLDcgKzEyNTIsNyBA
QCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaQogICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEo
KS0+c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAg
ICBtX3BhZ2UuaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUpOwogfQpAQCAtMTM4NCw3ICsx
Mzg0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGkKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29udGV4dElkLCByZWN0
LCBpc1ZpZGVvKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENo
YW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hh
bmdlKGNvbnRleHRJZCwgc3RhdGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA2NDQ4MmE0
MmU0ZWM3MmQ1MmFhODQ2YTU3ODQ1YTE0Njg0NjZjNzEwLi5iOTkzOGYyYmZhNjEwMGIyOTYyM2Nk
MDMwNWNlMGIxNGM0MzIyMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNTIsNyArMzUyLDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MpIGZpbmFsOworICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBoYW5kbGVBdXRvcGxh
eUV2ZW50KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxh
eUV2ZW50RmxhZ3M+KSBmaW5hbDsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKQEAgLTM5
MSw3ICszOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmlu
YWw7CiAgICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpIGZpbmFsOwotICAg
IHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKSBmaW5h
bDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29s
KSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tT
dGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21p
c3NQb3B1cCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBlNmVlNDIwZjQ1YTQyNzU5ZTA2MTRjYjUwMGNhNmVmNmI1MjRjOTA0Li5k
ZThjNWYzN2IwMmQxMTIxNjA4ZDI5Nzk0YzVmNWI4MDZkYzhmZWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDM3NSw3ICs0Mzc1LDcgQEAg
dm9pZCBXZWJQYWdlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJvbUNP
T1BSZXNwb25zZShGcmFtZUlkZW50aWYKICAgICAgICAgV2ViQ29yZTo6c2VuZFZpb2xhdGlvblJl
cG9ydFdoZW5OYXZpZ2F0aW5nQXdheUZyb21DT09QUmVzcG9uc2UoKmZyYW1lLT5jb3JlRnJhbWUo
KSwgY29vcCwgZGlzcG9zaXRpb24sIGNvb3BVUkwsIG5leHRSZXNwb25zZVVSTCwgY29vcE9yaWdp
bi5zZWN1cml0eU9yaWdpbigpLCBuZXh0UmVzcG9uc2VPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwg
aXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCB1c2VyQWdlbnQpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0
KQordm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBl
dmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNTU3NSwxMyArNTU3NSwxMyBA
QCB2b2lkIFdlYlBhZ2U6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3BhZ2Ut
PnNldE1lZGlhVm9sdW1lKHZvbHVtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJv
ZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UtPnNldE11dGVkKHN0YXRlKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUo
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1
cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgbV9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKGtpbmQpOwpAQCAtNzQ1MSw3ICs3NDUxLDcg
QEAgdm9pZCBXZWJQYWdlOjpzeW5jaHJvbml6ZUNPUlNEaXNhYmxpbmdQYXR0ZXJuc1dpdGhOZXR3
b3JrUHJvY2VzcygpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDT1JTRGlzYWJsaW5nUGF0dGVybnMobV9pZGVudGlmaWVy
LCBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyksIDApOwogfQogCi12b2lkIFdlYlBhZ2U6OmlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OklzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHN0YXRlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzEzODU1NzNiMGJl
NWZlYzgwMTUwYTk1ZmIzOTUxOTQzYTUwNDY2Ni4uYzI3ZDQwMGI2NmQzN2RiZTBhOWU1NGQyN2Fi
ZjQ0MGM0OWQ0MTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtNDQ4LDcgKzQ0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRDT0VQQ09SUFZp
b2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQsIFdlYkNv
cmU6OkNPRVBEaXNwb3NpdGlvbiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiwg
Y29uc3QgVVJMJiBibG9ja2VkVVJMKTsKICAgICB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVu
TmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRp
b24sIGNvbnN0IFVSTCYgY29vcFVSTCwgY29uc3QgVVJMJiBwcmV2aW91c1Jlc3BvbnNlVVJMLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgcHJldmlvdXNSZXNwb25zZU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgcmVw
b3J0VG9IZWFkZXJWYWx1ZSk7CiAgICAgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmln
YXRpbmdBd2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiwgV2ViQ29yZTo6Q09PUERpc3Bvc2l0
aW9uLCBjb25zdCBVUkwmIGNvb3BVUkwsIGNvbnN0IFVSTCYgbmV4dFJlc3BvbnNlVVJMLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGNvb3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgbmV4dFJlc3BvbnNlT3JpZ2luLCBib29sIGlzQ09PUFJlc3Bv
bnNlTmF2aWdhdGlvblNvdXJjZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpOwotICAgIHZvaWQg
ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAg
IHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKTsK
IAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZh
Y2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTEwMjcsOSArMTAyNyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZVJlc291cmNlUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9p
ZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sKTsKLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5p
bmcoKTsKIApAQCAtMTQyMSw3ICsxNDIxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOwog
I2VuZGlmCiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENo
YW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKIAogI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJUykKICAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oV2ViQ29y
ZTo6RWxlbWVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVsZW1l
bnQ+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDhhZmM0ZWE1ZTNjZDAxYzJhYzNhNGEzNDFmMzE2YTlh
MjExMzMyZTEuLjc4MmZmMjgyYmFhM2RkOGEzOGIwYThhY2EzMTkzMzJhOWEzYzgxMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMzMsNyArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTZW5kQ09FUENPUlBWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4s
IFN0cmluZyBlbmRwb2ludCwgZW51bTpib29sIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNw
b3NpdGlvbiwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24g
ZGVzdGluYXRpb24sIFVSTCBibG9ja2VkVVJMKQogICAgIFNlbmRWaW9sYXRpb25SZXBvcnRXaGVu
TmF2aWdhdGluZ1RvQ09PUFJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29s
IFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBw
cmV2aW91c1Jlc3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGNv
b3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgcHJldmlvdXNSZXNw
b25zZU9yaWdpbiwgU3RyaW5nIHJlZmVycmVyLCBTdHJpbmcgdXNlckFnZW50LCBTdHJpbmcgcmVw
b3J0VG9IZWFkZXJWYWx1ZSkKICAgICBTZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdB
d2F5RnJvbUNPT1BSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNvb3AsIGVudW06Ym9vbCBXZWJD
b3JlOjpDT09QRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIFVSTCBjb29wVVJMLCBVUkwgbmV4dFJl
c3BvbnNlVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGNvb3BPcmlnaW4s
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgbmV4dFJlc3BvbnNlT3JpZ2luLCBi
b29sIGlzQ09PUFJlc3BvbnNlTmF2aWdhdGlvblNvdXJjZSwgU3RyaW5nIHVzZXJBZ2VudCkKLSAg
ICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dCBldmVudEluaXQpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVk
KSBTeW5jaHJvbm91cwogCkBAIC00MTcsOSArNDE3LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKIAogICAgICMgTWVkaWEKICAgICBTZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0gICAg
U2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKSAt
PiAoKSBBc3luYworICAgIFNldE11dGVkKE9wdGlvblNldDxXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TXV0ZWRTdGF0ZT4gbXV0ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0TWF5U3RhcnRNZWRpYVdoZW5J
bldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCi0gICAgU3RvcE1lZGlhQ2FwdHVyZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCisgICAg
U3RvcE1lZGlhQ2FwdHVyZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKIAogICAgIFNldENhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBT
ZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTURvY3VtZW50Lm1tCmluZGV4IDhlYTQwNDNlMTYxNWUzMTk2NTc5YjA2MDBiNjAwZDU2
ODZjNjZhNGUuLjYyZmE2MjIwMjg2NWRmYWRjNTFjMjU4NTI3NjY3YjNmYmZhNzNhNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01Eb2N1bWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0KQEAgLTYwLDkgKzYwLDkg
QEAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Db21tZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTVdpbmRvdy5oPgotI2ltcG9ydCA8
V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudEZyYWdtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnVsbHNjcmVlbi5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9Eb2N1bWVudElubGluZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRUeXBlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxDb2xsZWN0aW9u
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFjNTc2NzkzN2M2NTQ5ZmExY2U0OWM5Mzg1MmNhNGVl
M2I3YWRlNmMuLjM1NTVkNTQ0Y2E3NGI3MTE5ZDZiMDY3NjI2NjdlMmM0MTc1MWQwM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yNDMsNyArMjQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBib29sIC8qIGhhc1ZpZGVvICovKSBmaW5hbDsKLSAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBm
aW5hbDsKKyAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIGZpbmFsOwogICAgIHZvaWQg
bW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQppbmRleCBhNDZiMWFkYTYwNDk3ZGE3ZjVlZWUyN2Y4MTFlMzJlN2MwODI2
ZTExLi4xNjkzZDg3NWZlMDA4NTRmOTJkNWJhMzE2ZDVmNzMxMWQ4N2Q4YWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aQog
ICAgIFttX3dlYlZpZXcgX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjpjb250ZXh0SWQgbG9jYXRp
b246bG9jYXRpb24gaGFzVmlkZW86aGFzVmlkZW9dOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAg
ICAgW21fd2ViVmlldyBfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTpj
b250ZXh0SWQgc3RhdGU6c3RhdGVdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRl
eCA4Y2EzMjk0N2E1YjQ2ZTA2N2I4ZThiYWU0NDYzOTNlYmI5MGU4NmVmLi4zOTY1NTVjZDFmOThi
NmJjMTM0NDUwNTdlZGNhNTc2ZmZkNGViNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
aApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
KTsKICAgICB2b2lkIHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlkZW8pOwotICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5
YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNl
dE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAgdm9pZCBtb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLm1tCmluZGV4IDdkYmQ1ODk0NzU0MDVhMTZlYmRkMGZhOWJjZmE2MmMzMzdlNzQx
NTIuLjVjZmZiY2ZjM2Y1ZWFjNmU1ZWI4MmVlYTAzZWM4YjBjNWE5OGU3NmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIubW0KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJh
Y2tUYXIKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdChy
ZWN0KSwgaGFzVmlkZW8sIG1fcGFnZSA/IG1fcGFnZS0+dXNlRGFya0FwcGVhcmFuY2UoKSA6IGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xp
ZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6
OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuY2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIGNvbnRl
eHRJZCwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGMyNjRhZmE4NjJmZTg5Y2ZkODgwNTc5MWZhYTIyZmU0MzM1MDk5NTcuLjZkNjk3
ZGQ4N2JkNzA2YmE5ZGE3NDM5ZjJkYjJkNWMxNWE0NGRkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyNDEsNyArOTI0MSw3IEBAIC0gKHZvaWQp
X3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllCiAgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCBoYXNWaWRlbyk7
CiB9CiAKLS0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElk
IHN0YXRlOihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mpc3RhdGUKKy0g
KHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNvcmU6
OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRlOihX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKXN0YXRlCiB7CiAgICAgW3NlbGYg
X2RldmljZVBpY2tlcl0tPnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
Y29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCBhNDdkYTJjZjRkNzQ5NDk2MGY1YzUwOGYyMmI3
ZjE1MGEyN2Q4ZGE3Li5jY2Q4Y2Q3M2E0MWUzOWExYTczZWYxOTQxNTRmMTkyOTRkMjFlOTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKQEAgLTMzNiw3ICszMzYsNyBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVz
dG9uZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogLSAodm9pZClfYWRk
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkOwogLSAodm9pZClfcmVtb3ZlUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQ6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIpY29udGV4dElkOwogLSAodm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBsb2Nh
dGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0aW9uIGhhc1ZpZGVvOihCT09MKWhh
c1ZpZGVvOwotLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0
SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZTsK
Ky0gKHZvaWQpX3BsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2U6KFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIHN0YXRl
OihXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKXN0YXRlOwogLSAodm9pZClf
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkOihib29sKWVuYWJsZWQ7CiAt
ICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck5hbWU6KE5TU3RyaW5nICop
bmFtZSBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0
ZSlzdGF0ZTsKIC0gKHZvaWQpX21vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1Bv
cHVwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0RvY3Vt
ZW50T3JkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0RvY3VtZW50
T3JkZXIuY3BwCmluZGV4IDZhNDNmOTI2NDgwZGZmNDZlOWE2Mjk3M2JkYzA1ZjYyNjhjNWJhMGUu
LmYzNzYyOGNmNTgwNmMwNGVhZTA0YzIyMDc4M2RiZTM5ODBjNDgxYTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRlci5jcHAKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IVE1MQm9keUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxEaXZF
bGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MSHRtbEVsZW1lbnQuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441038</attachid>
            <date>2021-10-12 21:56:14 -0700</date>
            <delta_ts>2021-10-12 22:55:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231489-20211012215613.patch</filename>
            <type>text/plain</type>
            <size>279494</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE2ZWQzZDE3NGU3ZjBj
MTY1OTE4ZWQ1NWY4M2NjODU3YzZmYmFlZS4uOGRhY2I4ZjRmOTkxNzAxMDNmOWUyNzdkNzIyNDI0
YzU0ZGRjNGQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0OSBAQAorMjAyMS0xMC0xMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBwZXJm
XSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dpbmcg
ZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZv
cndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisgICAg
ICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZQorICAgICAgICAtIFN0eWxlQ29sb3I6Ok9wdGlvbnMgLT4gU3R5bGVDb2xvck9wdGlvbnMKKyAg
ICAgICAgLSBNdXRhdGlvbk9ic2VydmVyOjp7TXV0YXRpb25UeXBlLE9ic2VydmF0aW9uRmxhZ3Ms
RGVsaXZlcnlGbGFnc30gLT4gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUKKworICAgICAgICBB
ZGRpdGlvbmFsbHksIG1ha2UgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgYSBPcHRpb25TZXQ8TXV0
YXRpb25PYnNlcnZlck9wdGlvblR5cGU+LCBhbmQgdXBkYXRlCisgICAgICAgIGNhbGxzaXRlcyB0
byB1c2UgT3B0aW9uU2V0IG1ldGhvZHMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGZsYWdzLgor
CisgICAgICAgIE1vdmUgaW5saW5lZCBtZXRob2RzIHRvIERvY3VtZW50SW5saW5lcy5oIGFuZCBQ
YWdlSW5saW5lcy5oIGFuZCBtYXJrIHRoZSBkZWNsYXJhdGlvbnMgYXMgYGlubGluZWAuCisKKyAg
ICAgICAgT24gdGhpcyBtYWNoaW5lLCB0aGlzIHNob3dzIGEgcmVkdWN0aW9uIGZyb20gfjEuMnMg
Y29tcGlsYXRpb24gdGltZSBmb3IgRG9jdW1lbnQuaCB0byB+MS4wcywgbW9zdAorICAgICAgICBv
ZiB0aGUgcmVtYWluZGVyIGR1ZSB0byB0aGUgaW5jbHVzaW9uIG9mIE5vZGUuaCAodmlhIENvbnRh
aW5lck5vZGUuaCkgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKworICAgICAgICAqIE1v
ZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZsYWdzQXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUHJvZHVjZXJTdGF0ZVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0
TW9uaXRvcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpj
b25maWd1cmVXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzPjo6dG9TdHJpbmcpOgorICAgICAgICAoV1RGOjpM
b2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+Ojp0b1N0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNvdXJjZUNhcHR1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRy
YWNrOjpjYXB0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6
dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
azo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0YXR1cy5jcHA6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9Db250ZXh0OjptZWRpYVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6dmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNvbG9yOjpjb2xvckZyb21LZXl3b3JkKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhblVzZVNldERhdGFPcHRpbWl6YXRpb24pOgorICAgICAgICAq
IGRvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZExp
c3RNdXRhdGlvblNjb3BlOjpDaGlsZExpc3RNdXRhdGlvblNjb3BlKToKKyAgICAgICAgKiBkb20v
Q29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1v
dmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzZXRWaXNpdGVkTGlua0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRT
dGF0ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2Fw
dHVyZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aGFzTXV0YXRpb25PYnNlcnZlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6Z2V0T3ZlcnJpZGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2hh
cnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2Rp
bmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFJUQ05l
dHdvcmtNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoYXNN
dXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNDYXB0dXJpbmcgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRFbmNvZGluZyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGVtcGxhdGVEb2N1bWVudCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZXhpc3RpbmdBWE9iamVjdENhY2hl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVBY2Nlc3NLZXlD
YWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnRJbmxpbmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5jb2RpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNoYXJzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzQ2FwdHVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpo
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCBjb25zdCk6CisgICAgICAgICogZG9tL011
dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlcjo6
dmFsaWRhdGVPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXI6Om9i
c2VydmUpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVyLmg6CisgICAgICAgICogZG9t
L011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVJZk5lZWRlZCk6CisgICAgICAgICog
ZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hpbGRMaXN0TXV0YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoYXJhY3RlckRhdGFNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQXR0cmlidXRlc011dGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjpoYXNPbGRWYWx1ZSBj
b25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6c2hvdWxkUmVj
ZWl2ZU11dGF0aW9uRnJvbSBjb25zdCk6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJSZWdpc3Ry
YXRpb246OmlzU3VidHJlZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpkZWxpdmVyeU9wdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6bXV0YXRpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdE1hdGNoaW5n
T2JzZXJ2ZXJzRm9yTXV0YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJl
ZE11dGF0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnRJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQ6OmRlY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0OjplbmNvZGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdDo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVz
dHJpY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBk
YXRlTWVkaWFTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tTdGF0ZUNoYW5nZVBlcm1pdHRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjptZWRpYVN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNQbGF5aW5nTWVk
aWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OnN0eWxlQ29sb3JPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOgorICAgICAgICAqIHBhZ2UvTWVkaWFQcm9kdWNlci5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjptdXRlZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlz
QXVkaW9NdXRlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc01l
ZGlhQ2FwdHVyZU11dGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VJbmxp
bmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudElubGluZXMuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzQXVkaW9NdXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc01lZGlhQ2FwdHVyZU11dGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6c3R5bGVDb2xvck9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWU6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6Y29sb3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0
b25UZXh0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3Vz
UmluZ0NvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c1NlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnN1cHBv
cnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9y
bUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVTdHlsZUZvck1hcmtlZFRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0UGFpbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVGV4dFBhaW50
U3R5bGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0UGFnZU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cGFnZU1lZGlhU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHA6CisKIDIwMjEtMTAtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0J1aWxkLXRpbWUgcGVyZl0gU3BlZWQgdXAgdGhlIFdlYkNvcmUgbnVs
bCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAwOThlNmEyMDY1MDZhOGZlYWJmMzg5ZmYyNmZlYjMyZDYyZjVl
ZDEwLi41YjQ1ODAyYjdlYWM3ZWM3MjA5YzI1ZDVhMGQ4YjE0MDUxMjI1M2Y5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgxIEBACisyMDIxLTEwLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRo
aW5ncyBpbiBEb2N1bWVudC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVs
ZC4KKworICAgICAgICBNb3ZlIHRoZSBmb2xvd2luZyBlbnVtZXJhdGlvbnMgb3V0c2lkZSB0aGVp
ciBjbGFzc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgZm9yd2FyZC1kZWNsYXJlZDoKKyAgICAgICAg
LSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgLT4gTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncworICAgICAgICAtIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgLT4gTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQKKyAgICAgICAgLSBNZWRpYVByb2R1Y2VyOjpNdXRl
ZFN0YXRlIC0+IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlU2V0TXV0ZWQpOgorICAgICAgICAoV0tQYWdlR2V0TWVkaWFTdGF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBjYW1lcmFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhv
bmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uZmlndXJlTWVkaWFDYXB0dXJlKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9taWNyb3Bob25lX2NhcHR1cmVfc3RhdGUpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OnRvV0tNZWRpYU11dGVkU3RhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6
OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6Om1lZGlhU3RhdGUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAy
MS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDg5YTNlY2ViMTk0MzY3YTA3NjAyNzBkYmZlNDMx
ZTEyODRlZDhkOGIuLjBhNDg4MWFhOTk4ZDAzYzE4ZjFlZDJkOGI5YWUyMWE5MmUwYTAyYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0xMC0xMCAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQnVpbGQtdGltZSBw
ZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQuCisKKyAgICAgICAgTW92ZSB0aGUgZm9sb3dp
bmcgZW51bWVyYXRpb25zIG91dHNpZGUgdGhlaXIgY2xhc3NlcyBzbyB0aGF0IHRoZXkgY2FuIGJl
IGZvcndhcmQtZGVjbGFyZWQ6CisgICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIC0+IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MKKyAgICAgICAgLSBNZWRpYVByb2R1
Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIC0+IE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kCisg
ICAgICAgIC0gTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZSAtPiBNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZQorCisgICAgICAgICogRE9NL0RPTURvY3VtZW50Lm1tOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogV2ViVmlldy9XZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLmg6CisgICAgICAgICogV2ViVmlldy9XZWJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLm1tOgorICAgICAgICAoV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6
cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlOnN0YXRlOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
d0ludGVybmFsLmg6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJp
bWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDE5OTEyYmQ1ZDkwNjFiZTc4ZDNh
OWJiY2ZhY2EyMmIwNTc3NDNhYmIuLmRkMDkzMzlhYmNiMGU2YWZhZTcyYWM0ZjNjMTg2ODA4OWY1
NjQwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNDc2LDYgKzQ3Niw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBkb20vRG9jdW1lbnRGb250TG9hZGVyLmgK
ICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5oCiAgICAgZG9tL0RvY3VtZW50RnVsbHNjcmVlbi5o
CisgICAgZG9tL0RvY3VtZW50SW5saW5lcy5oCiAgICAgZG9tL0RvY3VtZW50TWFya2VyLmgKICAg
ICBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKICAgICBkb20vRG9jdW1lbnRTdG9yYWdl
QWNjZXNzLmgKQEAgLTk2MSw2ICs5NjIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCiAgICAgcGFnZS9QYWdlR3Jv
dXAuaAogICAgIHBhZ2UvUGFnZUlkZW50aWZpZXIuaAorICAgIHBhZ2UvUGFnZUlubGluZXMuaAog
ICAgIHBhZ2UvUGFnZU92ZXJsYXkuaAogICAgIHBhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgK
ICAgICBwYWdlL1BhZ2VQYXN0ZWJvYXJkQ29udGV4dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXgg
Mjk4M2MwZWYxMWFhM2MwNmUyMjYzMTQ3NjU0YmJkNWYzZGRkZjM5MC4uOGM2Nzg3YzM2YjQ4ZTNi
M2NjYzMzZTZkNDM2Mjg3YjdkZWUxYTM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtNTgsMzcg
KzU4LDM3IEBAIHN0cnVjdCBDbGllbnRTdGF0ZSB7CiAKICAgICBXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyQ2xpZW50JiBjbGllbnQ7CiAgICAgUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQ7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIGZsYWdzOworICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgZmxh
Z3M7CiAgICAgYm9vbCByZXF1ZXN0ZWRQaWNrZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgcHJldmlv
dXNseVJlcXVlc3RlZFBpY2tlciB7IGZhbHNlIH07CiAgICAgYm9vbCBjb25maWd1cmF0aW9uUmVx
dWlyZWQgeyB0cnVlIH07CiAgICAgYm9vbCBwbGF5ZWRUb0VuZCB7IGZhbHNlIH07CiB9OwogCi1z
dGF0aWMgYm9vbCBmbGFnc0FyZVNldChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgdmFs
dWUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBmbGFncykKK3N0YXRpYyBib29sIGZs
YWdzQXJlU2V0KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgdmFsdWUsIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgcmV0dXJuIHZhbHVlLmNvbnRhaW5zQW55
KGZsYWdzKTsKIH0KIAotU3RyaW5nIG1lZGlhUHJvZHVjZXJTdGF0ZVN0cmluZyhNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCitTdHJpbmcgbWVkaWFQcm9kdWNlclN0YXRlU3Ry
aW5nKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgU3RyaW5nQnVp
bGRlciBzdHJpbmc7CiAgICAgc3RyaW5nLmFwcGVuZCgiIHsgIik7Ci0gICAgaWYgKGZsYWdzICYg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pCisgICAgaWYgKGZsYWdz
ICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQogICAgICAgICBzdHJp
bmcuYXBwZW5kKCJJc1BsYXlpbmdBdWRpbysiKTsKLSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykKKyAgICBpZiAoZmxhZ3MgJiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCiAgICAgICAgIHN0cmluZy5hcHBlbmQo
IklzUGxheWluZ1ZpZGVvKyIpOwotICAgIGlmIChmbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpCisgICAgaWYgKGZsYWdzICYgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpCiAgICAgICAgIHN0
cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UrIik7Ci0gICAgaWYgKGZsYWdz
ICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lcikKKyAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFz
UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcikKICAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSGFzVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3Jpbmcp
CisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJh
Y2tUYXJnZXRNb25pdG9yaW5nKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJSZXF1aXJlc1Rhcmdl
dE1vbml0b3JpbmcrIik7Ci0gICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkKKyAgICBpZiAoZmxhZ3MgJiBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkKICAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSsiKTsK
LSAgICBpZiAoZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQp
CisgICAgaWYgKGZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiRGlkUGxheVRvRW5kKyIpOwotICAgIGlmIChmbGFncyAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykKKyAgICBpZiAoZmxh
Z3MgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKQogICAgICAgICBz
dHJpbmcuYXBwZW5kKCJIYXNBdWRpb09yVmlkZW8rIik7CiAgICAgaWYgKHN0cmluZy5pc0VtcHR5
KCkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIklzTm90UGxheWluZyIpOwpAQCAtMjU2LDExICsy
NTYsMTEgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWUKIAogICAgIEFMV0FZU19MT0dfTUVESUFT
RVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgbV9jbGllbnRTdGF0ZVtpbmRleF0uZ2V0KCkpOwogCi0g
ICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3RhdGVbaW5kZXhd
LT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSk7CisgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZsYWdzQXJlU2V0KG1fY2xpZW50U3Rh
dGVbaW5kZXhdLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpOwogICAgIHRhcmdldFBpY2tlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tl
cihjbGllbnQucGxhdGZvcm1WaWV3KCksIEZsb2F0UmVjdChyZWN0KSwgaGFzQWN0aXZlUm91dGUs
IHVzZURhcmtBcHBlYXJhbmNlLCBjbGllbnQudXNlaVR1bmVzQVZPdXRwdXRDb250ZXh0KCkpOwog
fQogCi12b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgUGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdGbGFncykKK3ZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYgY2xpZW50LCBQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBuZXdGbGFncykKIHsKICAgICBzaXplX3QgaW5kZXggPSBmaW5kKCZjbGllbnQsIGNv
bnRleHRJZCk7CiAgICAgQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKQEAgLTI2OCw3ICsyNjgs
NyBAQCB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNsaWVudFN0YXRlRGlkQ2hhbmdlKFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8m
IGNoYW5nZWRDbGllbnRTdGF0ZSA9IG1fY2xpZW50U3RhdGVbaW5kZXhdOwotICAgIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRGbGFncyA9IGNoYW5nZWRDbGllbnRTdGF0ZS0+Zmxh
Z3M7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBvbGRGbGFncyA9IGNoYW5nZWRD
bGllbnRTdGF0ZS0+ZmxhZ3M7CiAgICAgaWYgKG5ld0ZsYWdzID09IG9sZEZsYWdzKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTI3NiwxOCArMjc2LDE4IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYK
IAogICAgIGNoYW5nZWRDbGllbnRTdGF0ZS0+ZmxhZ3MgPSBuZXdGbGFnczsKIAotICAgIGNvbnN0
ZXhwciBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgdXBkYXRlQ29uZmlndXJhdGlvbkZs
YWdzIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1v
bml0b3JpbmcsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5TGlzdGVuZXIsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JW
aWRlbyB9OworICAgIGNvbnN0ZXhwciBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHVwZGF0
ZUNvbmZpZ3VyYXRpb25GbGFncyB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1Bs
YXliYWNrVGFyZ2V0TW9uaXRvcmluZywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc1BsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNBdWRpb09yVmlkZW8gfTsKICAgICBpZiAoKG9sZEZsYWdzICYgdXBkYXRlQ29uZmlndXJhdGlv
bkZsYWdzKSAhPSAobmV3RmxhZ3MgJiB1cGRhdGVDb25maWd1cmF0aW9uRmxhZ3MpKQogICAgICAg
ICBzY2hlZHVsZURlbGF5ZWRUYXNrKFRhcmdldE1vbml0b3JpbmdDb25maWd1cmF0aW9uVGFzayk7
CiAKLSAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdU
b1RhcmdldEZsYWdzIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRl
cm5hbERldmljZSwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8gfTsK
KyAgICBjb25zdGV4cHIgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBwbGF5aW5nVG9UYXJn
ZXRGbGFncyB7IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2
aWNlLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8gfTsKICAgICBpZiAo
KG9sZEZsYWdzICYgcGxheWluZ1RvVGFyZ2V0RmxhZ3MpICE9IChuZXdGbGFncyAmIHBsYXlpbmdU
b1RhcmdldEZsYWdzKSkgewotICAgICAgICBpZiAoZmxhZ3NBcmVTZXQob2xkRmxhZ3MsIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiAhZmxhZ3NBcmVTZXQobmV3
RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiBmbGFn
c0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6RGlkUGxheVRvRW5k
KSkKKyAgICAgICAgaWYgKGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVmlkZW8pICYmICFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSAmJiBmbGFnc0FyZVNldChuZXdGbGFncywg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkRpZFBsYXlUb0VuZCkpCiAgICAgICAgICAgICBjaGFu
Z2VkQ2xpZW50U3RhdGUtPnBsYXllZFRvRW5kID0gdHJ1ZTsKICAgICAgICAgc2NoZWR1bGVEZWxh
eWVkVGFzayhXYXRjaGRvZ1RpbWVyQ29uZmlndXJhdGlvblRhc2spOwogICAgIH0KIAotICAgIGlm
ICghbV9wbGF5YmFja1RhcmdldCB8fCAhbV9wbGF5YmFja1RhcmdldC0+aGFzQWN0aXZlUm91dGUo
KSB8fCAhZmxhZ3NBcmVTZXQobmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpKQorICAgIGlmICghbV9wbGF5YmFja1Rhcmdl
dCB8fCAhbV9wbGF5YmFja1RhcmdldC0+aGFzQWN0aXZlUm91dGUoKSB8fCAhZmxhZ3NBcmVTZXQo
bmV3RmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpFeHRlcm5hbERldmljZUF1dG9QbGF5
Q2FuZGlkYXRlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG8gbm90IGludGVycnVwdCBh
bm90aGVyIGVsZW1lbnQgYWxyZWFkeSBwbGF5aW5nIHRvIGEgZGV2aWNlLgpAQCAtMjk1LDE0ICsy
OTUsMTQgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0ZURpZENoYW5n
ZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JgogICAgICAgICBpZiAoc3RhdGUgPT0gY2hh
bmdlZENsaWVudFN0YXRlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKGZs
YWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVG9FeHRlcm5hbERldmljZSkgJiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKKyAgICAgICAgaWYgKGZsYWdz
QXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1Rv
RXh0ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNl
ck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkgewogICAgICAgICAgICAgQUxXQVlTX0xPR19N
RURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBzdGF0ZS5nZXQoKSwgIiByZXR1cm5pbmcgZWFy
bHkiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIERv
IG5vdCBiZWdpbiBwbGF5aW5nIHRvIHRoZSBkZXZpY2UgdW5sZXNzIHBsYXliYWNrIGhhcyBqdXN0
IHN0YXJ0ZWQuCi0gICAgaWYgKCFmbGFnc0FyZVNldChuZXdGbGFncywgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pIHx8IGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbykpIHsKKyAgICBpZiAoIWZsYWdz
QXJlU2V0KG5ld0ZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8p
IHx8IGZsYWdzQXJlU2V0KG9sZEZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8pKSB7CiAgICAgICAgIEFMV0FZU19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1
bmNfXywgInJldHVybmluZyBlYXJseSwgcGxheWJhY2sgZGlkbid0IGp1c3Qgc3RhcnQiKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM3Nyw3ICszNzcsNyBAQCB2b2lkIFdlYk1lZGlhU2Vz
c2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0Q2xpZW50cygpCiAgICAgICAgIGlm
ICgobV90YXJnZXRDaGFuZ2VkIHx8IG1fcGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzZWQpICYm
IHN0YXRlLT5yZXF1ZXN0ZWRQaWNrZXIpCiAgICAgICAgICAgICBpbmRleE9mQ2xpZW50VGhhdFJl
cXVlc3RlZFBpY2tlciA9IGk7CiAKLSAgICAgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRv
VGFyZ2V0ID09IG5vdEZvdW5kICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCisgICAgICAgIGlm
IChpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1RhcmdldCA9PSBub3RGb3VuZCAmJiBmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKSkKICAgICAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID0g
aTsKIAogICAgICAgICBpZiAoaW5kZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91
bmQgJiYgaGF2ZUFjdGl2ZVJvdXRlICYmIHN0YXRlLT5wcmV2aW91c2x5UmVxdWVzdGVkUGlja2Vy
KQpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmln
dXJlUGxheWJhY2tUYXJnZXRDbGllbnRzKCkKICAgICAgICAgaW5kZXhPZkNsaWVudFdpbGxQbGF5
VG9UYXJnZXQgPSBpbmRleE9mQ2xpZW50VGhhdFJlcXVlc3RlZFBpY2tlcjsKICAgICBpZiAoaW5k
ZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPT0gbm90Rm91bmQgJiYgaW5kZXhPZkxhc3RDbGll
bnRUb1JlcXVlc3RQaWNrZXIgIT0gbm90Rm91bmQpCiAgICAgICAgIGluZGV4T2ZDbGllbnRXaWxs
UGxheVRvVGFyZ2V0ID0gaW5kZXhPZkxhc3RDbGllbnRUb1JlcXVlc3RQaWNrZXI7Ci0gICAgaWYg
KGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVS
b3V0ZSAmJiBmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0ZSkgJiYgIWZsYWdz
QXJlU2V0KG1fY2xpZW50U3RhdGVbMF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpJc1BsYXlpbmdWaWRlbykpCisgICAgaWYgKGluZGV4T2ZDbGllbnRXaWxsUGxheVRvVGFyZ2V0
ID09IG5vdEZvdW5kICYmIGhhdmVBY3RpdmVSb3V0ZSAmJiBmbGFnc0FyZVNldChtX2NsaWVudFN0
YXRlWzBdLT5mbGFncywgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0
b1BsYXlDYW5kaWRhdGUpICYmICFmbGFnc0FyZVNldChtX2NsaWVudFN0YXRlWzBdLT5mbGFncywg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgaW5kZXhP
ZkNsaWVudFdpbGxQbGF5VG9UYXJnZXQgPSAwOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2NsaWVudFN0YXRlLnNpemUoKTsgKytpKSB7CkBAIC00MTQsNyArNDE0LDcgQEAgdm9pZCBX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1cmVQbGF5YmFja1RhcmdldENsaWVudHMoKQog
CiAgICAgaWYgKGhhdmVBY3RpdmVSb3V0ZSAmJiBpbmRleE9mQ2xpZW50V2lsbFBsYXlUb1Rhcmdl
dCAhPSBub3RGb3VuZCkgewogICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fY2xpZW50U3RhdGVbaW5k
ZXhPZkNsaWVudFdpbGxQbGF5VG9UYXJnZXRdOwotICAgICAgICBpZiAoIWZsYWdzQXJlU2V0KHN0
YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5h
bERldmljZSkpIHsKKyAgICAgICAgaWYgKCFmbGFnc0FyZVNldChzdGF0ZS0+ZmxhZ3MsIE1lZGlh
UHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKSkgewogICAgICAg
ICAgICAgQUxXQVlTX0xPR19NRURJQVNFU1NJT05NQU5BR0VSKF9fZnVuY19fLCBzdGF0ZS5nZXQo
KSwgIiBjYWxsaW5nIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHRydWUpIik7CiAgICAg
ICAgICAgICBzdGF0ZS0+Y2xpZW50LnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHN0YXRl
LT5jb250ZXh0SWQsIHRydWUpOwogICAgICAgICB9CkBAIC00MzEsMTMgKzQzMSwxMyBAQCB2b2lk
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVBsYXliYWNrVGFyZ2V0TW9uaXRvcmlu
ZygpCiAgICAgYm9vbCBoYXZlQ2xpZW50V2l0aE1lZGlhID0gZmFsc2U7CiAgICAgZm9yIChhdXRv
JiBzdGF0ZSA6IG1fY2xpZW50U3RhdGUpIHsKICAgICAgICAgQUxXQVlTX0xPR19NRURJQVNFU1NJ
T05NQU5BR0VSKF9fZnVuY19fLCBzdGF0ZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZS0+Zmxh
Z3MgJiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9u
aXRvcmluZykgeworICAgICAgICBpZiAoc3RhdGUtPmZsYWdzICYgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKSB7CiAgICAgICAgICAgICBt
b25pdG9yaW5nUmVxdWlyZWQgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpCisgICAgICAgIGlmIChzdGF0ZS0+
ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lcikKICAgICAgICAgICAgIGhhc0F2YWlsYWJpbGl0eUxpc3RlbmVyID0gdHJ1
ZTsKLSAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0F1ZGlvT3JWaWRlbykKKyAgICAgICAgaWYgKHN0YXRlLT5mbGFncyAmIE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pCiAgICAgICAgICAgICBoYXZlQ2xpZW50V2l0
aE1lZGlhID0gdHJ1ZTsKICAgICB9CiAKQEAgLTUwMSw3ICs1MDEsNyBAQCB2b2lkIFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXI6OmNvbmZpZ3VyZVdhdGNoZG9nVGltZXIoKQogCiAgICAgICAgIEFMV0FZ
U19MT0dfTUVESUFTRVNTSU9OTUFOQUdFUihfX2Z1bmNfXywgc3RhdGUuZ2V0KCksICIgcGxheWVk
VG9FbmQgPSAiLCBzdGF0ZS0+cGxheWVkVG9FbmQpOwogCi0gICAgICAgIGlmIChmbGFnc0FyZVNl
dChzdGF0ZS0+ZmxhZ3MsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0
ZXJuYWxEZXZpY2UpICYmIGZsYWdzQXJlU2V0KHN0YXRlLT5mbGFncywgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pKQorICAgICAgICBpZiAoZmxhZ3NBcmVTZXQoc3Rh
dGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERl
dmljZSkgJiYgZmxhZ3NBcmVTZXQoc3RhdGUtPmZsYWdzLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nVmlkZW8pKQogICAgICAgICAgICAgc3RvcFRpbWVyID0gdHJ1ZTsKICAgICAg
ICAgaWYgKHN0YXRlLT5wbGF5ZWRUb0VuZCkKICAgICAgICAgICAgIGRpZFBsYXlUb0VuZCA9IHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlh
U2Vzc2lvbk1hbmFnZXIuaAppbmRleCAxYmExMjg0ZjIzMzNjNzg0NmFiODBkNGUxMWRiMmJmNGYw
MjA2NmI1Li42YWQ3NzE1MDNhNmVlNmI1Mzg0NmRkMWViNmRjZmNhZTBjNjg3MDU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQWxsUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRzKFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiwgUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UmVjdCYsIGJvb2ws
IGJvb2wpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50U3RhdGVEaWRDaGFuZ2UoV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCYsIFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjbGllbnRTdGF0ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50JiwgUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAKICAgICBib29sIGFsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKIApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX21vY2tQaWNrZXJFbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKLVN0cmluZyBtZWRp
YVByb2R1Y2VyU3RhdGVTdHJpbmcoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzKTsKK1N0cmluZyBtZWRpYVByb2R1Y2VyU3RhdGVTdHJpbmcoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMTI2
LDggKzEyNiw4IEBAIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0
IExvZ0FyZ3VtZW50OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3M+IHsKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBmbGFncykgeyByZXR1
cm4gV2ViQ29yZTo6bWVkaWFQcm9kdWNlclN0YXRlU3RyaW5nKGZsYWdzKTsgfQordGVtcGxhdGU8
PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cz4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGVGbGFncyBmbGFncykgeyByZXR1cm4gV2ViQ29yZTo6bWVkaWFQcm9kdWNlclN0YXRl
U3RyaW5nKGZsYWdzKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDM4MTY4
ZWU3NWFkYjFlNjgyZDlkOTg3Mzg5MTZkODBkZDQzMjQ1N2IuLjRmYjA0YTNhZTU2OWE3ODlkY2Iy
YjAxMDg3NTEyYjIxZDUzZmY0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC0yNzcsOSArMjc3LDkgQEAgdm9pZCBNZWRp
YVN0cmVhbTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIG1fcHJpdmF0ZS0+c3RvcFByb2R1Y2lu
Z0RhdGEoKTsKIH0KIAotTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFt
OjptZWRpYVN0YXRlKCkgY29uc3QKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFT
dHJlYW06Om1lZGlhU3RhdGUoKSBjb25zdAogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBzdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwog
CiAgICAgaWYgKCFtX2lzQWN0aXZlIHx8ICFkb2N1bWVudCgpIHx8ICFkb2N1bWVudCgpLT5wYWdl
KCkpCiAgICAgICAgIHJldHVybiBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAppbmRleCA3Y2UxZjY0MTgyMTEwN2E0NDMxOTIzOWYx
MGQzOGE0OTQwNTM2NWZjLi4zNDE4Y2Y2M2M5NzY1MDYxZTdkZjFkMGZhNWJiY2I2YWU1YmZjMjlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5oCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlbW92ZVRyYWNr
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCkgZmluYWw7CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
bWVkaWFTdGF0ZSgpIGNvbnN0OworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVk
aWFTdGF0ZSgpIGNvbnN0OwogCiAgICAgLy8gTWVkaWFDYW5TdGFydExpc3RlbmVyCiAgICAgdm9p
ZCBtZWRpYUNhblN0YXJ0KERvY3VtZW50JikgZmluYWw7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHJp
dmF0ZToKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IG1f
dHJhY2tTZXQ7CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9zdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fc3RhdGU7CiAKICAgICBib29sIG1f
aXNBY3RpdmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAKaW5kZXggZDU0ZjFkYzJkNjU1MDE3NGJiMDcxZjEyOGJjODIxMzc5ZmQ4
ZGM5OC4uMTMxNzExOWMzYTc2N2JjNmZkOTM3ODUyMGMzODFmY2M3MWI3NWUzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBIYXNoU2V0PE1lZGlhU3RyZWFtVHJhY2sq
PiYgYWxsQ2FwdHVyZVRyYWNrcygpCiAgICAgcmV0dXJuIGNhcHR1cmVUcmFja3M7CiB9CiAKLXN0
YXRpYyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc291cmNlQ2FwdHVyZVN0YXRlKFJl
YWx0aW1lTWVkaWFTb3VyY2UmKTsKK3N0YXRpYyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IHNvdXJjZUNhcHR1cmVTdGF0ZShSZWFsdGltZU1lZGlhU291cmNlJik7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChNZWRpYVN0cmVhbVRyYWNrKTsKIApAQCAtNDAxLDcgKzQwMSw3IEBA
IHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVy
KQogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KCZvYnNlcnZlcik7CiB9CiAKLU1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjptZWRpYVN0YXRlKCkgY29u
c3QKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZW5kZWQgfHwgIWlzQ2FwdHVyZVRyYWNrKCkpCiAg
ICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CkBAIC00MTMsMzMgKzQx
MywzMyBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlYW1UcmFjazo6
bWVkaWFTdGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNvdXJjZUNhcHR1cmVTdGF0ZShzb3VyY2Uo
KSk7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzb3VyY2VDYXB0dXJlU3Rh
dGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQorTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzb3VyY2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQogewog
ICAgIHN3aXRjaCAoc291cmNlLmRldmljZVR5cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKICAgICAgICAgaWYgKHNvdXJjZS5tdXRlZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVk
aW9DYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKICAgICAgICAgaWYgKHNvdXJjZS5pbnRl
cnJ1cHRlZCgpKQotICAgICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlOworICAgICAgICAgICAgcmV0dXJuIE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZTsK
ICAgICAgICAgaWYgKHNvdXJjZS5pc1Byb2R1Y2luZ0RhdGEoKSkKLSAgICAgICAgICAgIHJldHVy
biBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7
CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmE6CiAgICAgICAgIGlmIChzb3VyY2UubXV0ZWQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2Fw
dHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChzb3VyY2UuaW50ZXJydXB0
ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJ
bnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZTsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7CiAgICAg
ICAgIGlmIChzb3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOworICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2lu
ZG93OgogICAgICAgICBpZiAoc291cmNlLm11dGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZTsKKyAg
ICAgICAgICAgIHJldHVybiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWREaXNwbGF5
Q2FwdHVyZURldmljZTsKICAgICAgICAgaWYgKHNvdXJjZS5pbnRlcnJ1cHRlZCgpKQotICAgICAg
ICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkRGlz
cGxheUNhcHR1cmVEZXZpY2U7CisgICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0ludGVycnVwdGVkRGlzcGxheUNhcHR1cmVEZXZpY2U7CiAgICAgICAgIGlmIChz
b3VyY2UuaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZpY2U7CisgICAgICAgICAg
ICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJl
RGV2aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNwZWFrZXI6CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3du
OgpAQCAtNDQ5LDkgKzQ0OSw5IEBAIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzb3Vy
Y2VDYXB0dXJlU3RhdGUoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQogICAgIHJldHVybiBN
ZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CiB9CiAKLU1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQorTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJl
U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBzdGF0ZTsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlOwog
ICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAg
ICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgIT0gJmRvY3VtZW50IHx8IGNhcHR1cmVU
cmFjay0+ZW5kZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDgzLDEzICs0ODMsMTMg
QEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogICAgIGF1dG8qIGFjdGl2ZUF1ZGlvU291cmNlID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlmIChhY3RpdmVBdWRpb1NvdXJjZSAmJiBpc1NvdXJj
ZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZlQXVkaW9Tb3VyY2UsIGRvY3VtZW50
KSkgewotICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlu
cyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKKyAgICAg
ICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICBhY3RpdmVBdWRp
b1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IChkb2N1bWVudC5oaWRkZW4oKSAmJiBkb2N1
bWVudC5zZXR0aW5ncygpLmludGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJs
ZWQoKSkpOwogICAgIH0KIAogICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2
ZVNvdXJjZSgpOwogICAgIGlmIChhY3RpdmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmlu
Z0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZlVmlkZW9Tb3VyY2UsIGRvY3VtZW50KSkgewotICAg
ICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKTsKKyAgICAgICAgYm9vbCBw
YWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+
c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKICAgICB9CiAjZWxzZQpA
QCAtNTA5LDE0ICs1MDksMTQgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VN
dXRlZFN0YXRlKCkKIAogICAgIHN3aXRjaCAoc291cmNlKCkuZGV2aWNlVHlwZSgpKSB7CiAgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBtX3By
aXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKSk7CisgICAgICAgIG1fcHJpdmF0ZS0+
c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0
YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBtX3ByaXZhdGUtPnNldE11
dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpWaWRlb0NhcHR1cmVJc011dGVkKSk7CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFn
ZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0Nh
cHR1cmVJc011dGVkKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
V2luZG93OgotICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5j
b250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZCkp
OworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKS5jb250YWlu
cyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKQEAgLTUyNSwyMCAr
NTI1LDIwIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgp
CiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQg
a2luZCkKK3N0YXRpYyBpbmxpbmUgYm9vbCB0cmFja01hdGNoZXNLaW5kKFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGUgdHlwZSwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsK
ICAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVy
ZUtpbmQ6OkF1ZGlvOgorICAgIGNhc2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvOgogICAgICAgICByZXR1cm4gdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbzsKLSAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlk
ZW86CisgICAgY2FzZSBNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoK
ICAgICAgICAgcmV0dXJuIHR5cGUgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsK
LSAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAgIGNh
c2UgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgogICAgICAgICByZXR1cm4g
dHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKICAgICB9CiAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpl
bmRDYXB0dXJlKERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZCBraW5kKQordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKERvY3VtZW50JiBk
b2N1bWVudCwgTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsKICAgICBib29s
IGRpZEVuZENhcHR1cmUgPSBmYWxzZTsKICAgICBmb3IgKGF1dG8qIGNhcHR1cmVUcmFjayA6IGFs
bENhcHR1cmVUcmFja3MoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAppbmRleCA3NzcwOGJlODk4MzYyMGVlZTg5NzI1
ZDlmOTQ0NWM0ZjJlMGY1MzUyLi5kMDk4NTI3Y2U3ZDU3ODk5N2I2NjYxZDJlNzA4ZTQ3ZTY0ZjZj
MmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaApAQCAtNjksOSArNjksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFj
aygpOwogCi0gICAgc3RhdGljIHZvaWQgZW5kQ2FwdHVyZShEb2N1bWVudCYsIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQpOworICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1l
bnQmLCBNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCk7CiAKLSAgICBzdGF0aWMgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGNhcHR1cmVTdGF0ZShEb2N1bWVudCYpOworICAgIHN0
YXRpYyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIGNhcHR1cmVTdGF0ZShEb2N1bWVudCYp
OwogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhbnZhcygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CkBAIC0xNDEsNyArMTQxLDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPFdlYkF1ZGlv
U291cmNlUHJvdmlkZXI+IGNyZWF0ZUF1ZGlvU291cmNlUHJvdmlkZXIoKTsKIAotICAgIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Q7CisgICAgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Q7CiAKICAgICB2b2lkIGFk
ZE9ic2VydmVyKE9ic2VydmVyJik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJv
bGxlci5jcHAKaW5kZXggY2YzNDVhNDYyZmNkYjIxMTlmN2ZiZGY1ZWJkZGYwMTQ1ZWJhNzZiMy4u
NjBjN2Q1YzM5NzU1ZDQ5NmQxZmE0MzNjYmNhNjUyM2M3MDdlNjhhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkxpYldlYlJU
Q1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiUlRDTmV0d29ya01hbmFnZXIuaCIKICNpbmNsdWRlICJS
VENQZWVyQ29ubmVjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApp
bmRleCA5YTAwMGQ0ZmQ4ZWI0MDljNDUxOGQzNWZmNzNkZGRlODFiZjllZGY1Li44NTI1ZTdkODhj
N2NlNTVjYzkwMTE3MGYxZDg0YmMyMDZjYjQxZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU01lZGlhU3RyZWFt
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1p
c3Npb25TdGF0dXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJt
aXNzaW9uU3RhdHVzLmNwcAppbmRleCA2NmEwZjBiYmE5NWJkNDU1NWQxN2EyZGY3Yzk2ODYyYWE4
ZjFjMGM5Li5jZDliMDdjOTdjNmYyOGIwOWEwOGJiNTU3Y2E0ZTAwOTNiNjBjY2FkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25TdGF0dXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvblN0
YXR1cy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJQZXJtaXNzaW9uQ29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGViYjJmMmY1NDZjNzMyMmNlOTM1ZjhhNGVi
YTk0OTNhMDJiMjlhYjYuLmFkMjU3YjIzNTZlOWRjZmJiYWI1NTRmM2YwMzUwMWQ3MjA1OTVlOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKQEAgLTMxLDkgKzMxLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0T3B0aW9ucy5oIgog
I2luY2x1ZGUgIkF1ZGlvVGltZXN0YW1wLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBh
Z2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJRdWlya3MuaCIKQEAgLTM1NiwxMCAr
MzU3LDEwIEBAIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQbGF5YmFjaygpCiAgICAgcmV0
dXJuIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRXaWxsUGF1c2VQbGF5YmFjaygpOwogfQogCi1NZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgQXVkaW9Db250ZXh0OjptZWRpYVN0YXRlKCkgY29u
c3QKK01lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgQXVkaW9Db250ZXh0OjptZWRpYVN0YXRl
KCkgY29uc3QKIHsKICAgICBpZiAoIWlzU3RvcHBlZCgpICYmIGRlc3RpbmF0aW9uKCkuaXNQbGF5
aW5nQXVkaW8oKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvOworICAgICAgICByZXR1cm4gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvOwogCiAgICAgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsK
IH0KQEAgLTQxOSw3ICs0MjAsNyBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbEJlZ2luUGxheWJh
Y2soKQogdm9pZCBBdWRpb0NvbnRleHQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAg
IC8vIERvIG5vdCBzdXNwZW5kIGlmIGF1ZGlvIGlzIGF1ZGlibGUuCi0gICAgaWYgKCFkb2N1bWVu
dCgpIHx8IG1lZGlhU3RhdGUoKSA9PSBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbyB8fCBpc1N0b3BwZWQoKSkKKyAgICBpZiAoIWRvY3VtZW50KCkgfHwgbWVkaWFTdGF0
ZSgpID09IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyB8fCBpc1N0b3Bw
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGRvY3VtZW50KCktPmhpZGRlbigpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRl
eCAwZjY1OGIzYjdiYzRjZDM4MTkzNmNmYWY2YWZjZTU2ZDU0Mjc5ZGIxLi40YWI4NDcxNjlmMWJh
ZDdjNzFiMjkyMGNkMDY1ZWFlNjJiMDU4NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaXNPZmZsaW5lQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAKICAgICAvLyBNZWRpYVByb2R1Y2VyCi0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRl
RGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICAvLyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGVhYThjMGNjOTU4YjU4YWI0OGQ2YTNlZDczMTQ1NzU3MzdkMjMyMjcuLmI1YTRiNGQ2Yjcw
MjQ3MzA3NWYyOThmMzlhYzM5NjQ1OGIyN2NjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1NDYsNiArNDU0Niw4IEBACiAJ
CUNERUQxQzNDMjRDRDMwNTcwMDkzNEUxMiAvKiBWUDlVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENkZFNUI4MjRCQ0U2NDUw
MDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXNDb2NvYS5tbSAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4
RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RFRkEy
MjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEg
LyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDREVGREEwQjI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVG
REEwOTI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkRBMEUyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREVGREEwRDI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREYxMzUwODI0
QzlGQTQ0MDA0MzJFMUUgLyogU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4RjY2NzIyNEMwRjIwODAwMEM0MjFD
IC8qIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDREYxMzUwOTI0QzlGQ0EzMDA0MzJFMUUgLyogU291cmNl
QnVmZmVyUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREVCM0Q3MzI0QzQxQTZFMDAxRkJFRUYgLyogU291cmNlQnVmZmVyUGFyc2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMkIwMDQx
ODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDAzMTgxRjA1OUMwMEYyQjQyNCAvKiBN
ZWRpYURlc2NyaXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE1NDQwLDYgKzE1NDQyLDggQEAKIAkJQ0RFRTM5MzgxNzk3NDI3NDAwMUQ3
NTgwIC8qIFVSTFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFJlZ2lzdHJ5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlk
TGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRMZW5ndGguaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRkQ5RUEyNzEwQTY5MzAwNTU1OUE3IC8q
IE1lZGlhS2V5TWVzc2FnZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhS2V5TWVzc2FnZVR5cGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVGREEwOTI3MTIyNjM4MDA1NTU5QTcgLyog
RG9jdW1lbnRJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3Vt
ZW50SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVGREEwRDI3MTIy
OUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0
IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFEZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREYyQjAw
NjE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNb2NrQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RGMkIwMDcxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTW9ja0JveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjI1ODAsNiArMjI1ODQsNyBAQAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAv
KiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKIAkJCQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhB
QTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKKwkJCQlDREVGREEwRDI3MTIyOUJBMDA1NTU5QTcg
LyogUGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNGQjE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3Zl
cmxheS5oICovLAogCQkJCTJENUM5Q0ZEMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheUNv
bnRyb2xsZXIuY3BwICovLApAQCAtMzA1NTAsNiArMzA1NTUsNyBAQAogCQkJCUE4MTg1RjM1MDk3
NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50LmggKi8sCiAJCQkJMUE0OTRFRDUwQTEy
M0YxQTAwRkRBRkMxIC8qIERvY3VtZW50RnJhZ21lbnQuaWRsICovLAogCQkJCUNEOTJGNTEwMjI2
MEZGRUUwMEY4N0JCMyAvKiBEb2N1bWVudEZ1bGxzY3JlZW4uaCAqLywKKwkJCQlDREVGREEwOTI3
MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVzLmggKi8sCiAJCQkJRUQyQkE4M0IwOUEy
NEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggKi8sCiAJCQkJQ0UwNTdGQTMxMjIwNzMx
MTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJQ0UwNTdG
QTQxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oICovLApAQCAt
MzI0NzksNiArMzI0ODUsNyBAQAogCQkJCUE4MTg1RjNEMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1
bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDkyRjUxMzIyNjBGRkVFMDBGODdC
QjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTgyNkJGMjIz
RkI1OTc3MDBCOTIyQjEgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDREVGREEwQjI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NTZEMzczNjBBREJBNURFMDBBNDU1NEQgLyogRG9jdW1lbnRMb2FkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExv
YWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUVEMkJBODNDMDlBMjRCOTEwMDZDMEFDNCAv
KiBEb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDYxMSw2ICszNDYxOCw3IEBA
CiAJCQkJN0E2NzRCREMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQzQxRkFBNDRCQzAwMzdEMUU2IC8qIFBhZ2VIZWFw
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QjY1MEREMjI5NjI2MjcwMEZEOEFBNCAvKiBQ
YWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRkRBMEUyNzEyMjlCQTAwNTU1
OUE3IC8qIFBhZ2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNCMDUyNDFGQjUxRjMz
MDAwODlCOTcgLyogUGFnZU5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1QzlE
MDAxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQky
RDVDOUQwMjE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXlDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCmluZGV4IGQ3
MjI2ZjJlNTJlOTE3MzNmZTVlMTU1ZDliNDMxN2Q0ZGYzZDBiMTcuLjZmNjhlNzE1M2U0ODYxNTI2
ZTYyZmQxYTcyYjQ4ZmViNGEwNTNiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WEltYWdlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFYTG9nZ2VyLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCAyYzU0OWY4Nzc4OTY4NmVjOGQz
YmM2YjRhZmJjNzVmNjA4NmJkYmJlLi5hMjU1YzlhN2Y4ZmRkZmIyY2YxMTQ0NTJhNTMyZGQzNDFj
OGVlYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha0hhc2hTZXQuaD4KIAogI2lmIFVTRShBVEspCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1Jl
ZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKaW5kZXggMWQ4N2YxYTk5MWMyMmY4ZmEzMDJhZDA0NjBjY2Y1MjU4OGYy
OGVlZS4uZTE3NGIyZmI0ZDUzNmY5MjI3MGM3NGRhNDc3ZWVhN2VkMTAxODA2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZURvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VE
b2N1bWVudC5jcHAKaW5kZXggN2YwYjVhMDA1NDc4MzNiNmE5NjQwMGYxMDJjZjhhOGU4ZDZkZTg4
YS4uMzQ5MDBlNzFiMzE2ZDlhMTg1ZGQxYTYwZTdhZjFkNDE2ZTJlYWZiMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJL
aXRBY2Nlc3NpYmxlSW50ZXJmYWNlRG9jdW1lbnQuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFkpICYmIFVTRShBVEspCiAKICNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5T2JqZWN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJXZWJLaXRBY2Nl
c3NpYmxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0QWNjZXNzaWJsZVV0aWwuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDdlYTRlZDFmNzNl
MGI0MGQzYjUwYTE0MDM0ZDhmZjc0MTk1ZjNkMzcuLjk4YTI4MzhkZGFkMjZjNDNhZmU5ZDk2OTJm
MDFlOGYwMWI2NzFiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcApAQCAtMTAzLDYgKzEwMyw4IEBAIEpTRE9NV2luZG93QmFzZTo6SlNET01X
aW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+
CiAgICAgbV9wcm94eS5zZXQodm0sIHRoaXMsIHByb3h5KTsKIH0KIAorSlNET01XaW5kb3dCYXNl
Ojp+SlNET01XaW5kb3dCYXNlKCkgPSBkZWZhdWx0OworCiBTVVBQUkVTU19BU0FOIGlubGluZSB2
b2lkIEpTRE9NV2luZG93QmFzZTo6aW5pdFN0YXRpY0dsb2JhbHMoSlNDOjpWTSYgdm0pCiB7CiAg
ICAgYXV0byYgYnVpbHRpbk5hbWVzID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDc2YjBjMTYyNTI1ZjM4ZjhkZjlmY2I3NzUwMzMyNGEx
YjFmNDVhNTcuLjZmMmM2M2FiNzc5Njc1MWE5MzM2OGNhMmU0M2Y3YzE1Mzg5ZmQ2YmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2Vz
cz4KICAgICBzdGF0aWMgdm9pZCBzdWJzcGFjZUZvcihKU0M6OlZNJikgeyBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAKKyAgICB+SlNET01XaW5kb3dCYXNlKCk7CiAgICAgdm9pZCB1
cGRhdGVEb2N1bWVudCgpOwogCiAgICAgRE9NV2luZG93JiB3cmFwcGVkKCkgY29uc3QgeyByZXR1
cm4gKm1fd3JhcHBlZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmNwcAppbmRleCAzZTMwNDIxNmE3YmFiMjIxYWE2NmU0NGVjOThlZjgy
OWVmMDZkYjNhLi42ZDJkNWI0YTYwMDM0OTY1YmIwOWE4NTg2Yzc1Njk3ZDQ5ZWYzNDM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNw
cApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgog
I2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkpTTm9kZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCBhMGY4YTE4YjE2MmI0ODk1ZDNiZTdhMDM3MTVlZjFlZTI1NDNhZWNj
Li5hNDNhZWUwNDhmNGJjODUwNDg2ODllY2YxNzEwOGNiZDg1MTliNmJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVDb2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5jcHAKaW5kZXggNmMw
ODVhODAwY2RmNGFmMzRiMjM1MmMyNWNhYmIxMzllYjA1ZTZkZS4uMDM4NmUzNjYwOWU0Y2U4ZDc0
MGM3OWYxODY3ZTc2NjdiZWQyYzY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmNwcApAQCAt
MzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNvbG9yIFN0eWxlQ29sb3I6
OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCBrZXl3b3JkLCBPcHRpb25TZXQ8T3B0aW9ucz4g
b3B0aW9ucykKK0NvbG9yIFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCBr
ZXl3b3JkLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpCiB7CiAgICAgaWYg
KGNvbnN0IGNoYXIqIHZhbHVlTmFtZSA9IGdldFZhbHVlTmFtZShrZXl3b3JkKSkgewogICAgICAg
ICBpZiAoY29uc3QgTmFtZWRDb2xvciogbmFtZWRDb2xvciA9IGZpbmRDb2xvcih2YWx1ZU5hbWUs
IHN0cmxlbih2YWx1ZU5hbWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUNvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCmluZGV4IGU0ZTU4ZGY5
YzVlZmU0ODc1MmNlODhmMTI0MTBjZTIzOWYxMzkyNzYuLjMyMTQ0ZjRmMWY2NWI2MGY2ODZkZjI3
NmYyNTRlOWYyMGRkNmM3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNv
bG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaApAQCAtMzcsMTUgKzM3
LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFN0eWxlQ29sb3IgewotICAg
IGVudW0gY2xhc3MgT3B0aW9ucyA6IHVpbnQ4X3QgewotICAgICAgICBGb3JWaXNpdGVkTGluayA9
IDEgPDwgMCwKLSAgICAgICAgVXNlU3lzdGVtQXBwZWFyYW5jZSA9IDEgPDwgMSwKLSAgICAgICAg
VXNlRGFya0FwcGVhcmFuY2UgPSAxIDw8IDIsCi0gICAgICAgIFVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsID0gMSA8PCAzCi0gICAgfTsKK2VudW0gY2xhc3MgU3R5bGVDb2xvck9wdGlvbnMg
OiB1aW50OF90IHsKKyAgICBGb3JWaXNpdGVkTGluayA9IDEgPDwgMCwKKyAgICBVc2VTeXN0ZW1B
cHBlYXJhbmNlID0gMSA8PCAxLAorICAgIFVzZURhcmtBcHBlYXJhbmNlID0gMSA8PCAyLAorICAg
IFVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID0gMSA8PCAzCit9OwogCi0gICAgc3RhdGlj
IENvbG9yIGNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PE9wdGlvbnM+KTsK
K3N0cnVjdCBTdHlsZUNvbG9yIHsKKyAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tS2V5d29yZChD
U1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsKICAgICBzdGF0aWMgYm9v
bCBpc0Fic29sdXRlQ29sb3JLZXl3b3JkKENTU1ZhbHVlSUQpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIGlzU3lzdGVtQ29sb3JLZXl3b3JkKENTU1ZhbHVlSUQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKaW5kZXggYmI4ZDUzY2NjNDQ1YzcwY2ZhODJmZWNmNjM1
ZDVjYjIwNDZmNjRhNy4uMmU2NWM2MjQ0OTczMzdlNmI5MDBhZTM5MDBjMWExMjZjOTdkNmM4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAtNDQsNyArNDQsNyBAQCBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQ2hhcmFjdGVyRGF0YSk7CiBzdGF0aWMgYm9vbCBjYW5V
c2VTZXREYXRhT3B0aW1pemF0aW9uKGNvbnN0IENoYXJhY3RlckRhdGEmIG5vZGUpCiB7CiAgICAg
YXV0byYgZG9jdW1lbnQgPSBub2RlLmRvY3VtZW50KCk7Ci0gICAgcmV0dXJuICFkb2N1bWVudC5o
YXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OkRPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNURU5F
UikgJiYgIWRvY3VtZW50Lmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2
ZXI6OkNoYXJhY3RlckRhdGEpCisgICAgcmV0dXJuICFkb2N1bWVudC5oYXNMaXN0ZW5lclR5cGUo
RG9jdW1lbnQ6OkRPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNURU5FUikgJiYgIWRvY3VtZW50
Lmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpD
aGFyYWN0ZXJEYXRhKQogICAgICAgICAmJiAhZG9jdW1lbnQuaGFzTGlzdGVuZXJUeXBlKERvY3Vt
ZW50OjpET01TVUJUUkVFTU9ESUZJRURfTElTVEVORVIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuaAppbmRleCAyOTY2NzY3NzY4ZjBkNzE0NzQyZTM2
YmNlNWI2MTA4Njk3N2Y5MWZmLi42NGM5MjQ2NWYyYTEwM2IzYTk5MGU2MWEzY2YxMjhhMDk1YjJi
Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmgKQEAg
LTMxLDcgKzMxLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5o
IgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgQ2hpbGRMaXN0TXV0
YXRpb25TY29wZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZShDb250YWluZXJOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAodGFyZ2V0LmRvY3Vt
ZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6Q2hpbGRM
aXN0KSkKKyAgICAgICAgaWYgKHRhcmdldC5kb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGlsZExpc3QpKQogICAgICAgICAg
ICAgbV9hY2N1bXVsYXRvciA9IENoaWxkTGlzdE11dGF0aW9uQWNjdW11bGF0b3I6OmdldE9yQ3Jl
YXRlKHRhcmdldCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5k
ZXggMmI1OWIzNmJjODlhZDJlZGY5NTI5OTQ1MTZkYTk4OTdhMDdmNDc4ZS4uYWQ4YTc1NDk0ZmJl
ZDAyOWU4MTYyZDBjYmE1ZWU0YThlMjBkMTZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIEFMV0FZU19JTkxJTkUgTm9kZVZlY3RvciBDb250
YWluZXJOb2RlOjpyZW1vdmVBbGxDaGlsZHJlbldpdGhTY3JpcHRBc3NlcnRpb24oQ2hpCiAgICAg
fSBlbHNlIHsKICAgICAgICAgQVNTRVJUKHNvdXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQ
YXJzZXIpOwogICAgICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3Jp
cHREaXNhbGxvd2VkU2NvcGU7Ci0gICAgICAgIGlmIChVTkxJS0VMWShkb2N1bWVudCgpLmhhc011
dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCkpKSB7Cisg
ICAgICAgIGlmIChVTkxJS0VMWShkb2N1bWVudCgpLmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBl
KE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlOjpDaGlsZExpc3QpKSkgewogICAgICAgICAgICAg
Q2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbigqdGhpcyk7CiAgICAgICAgICAgICBmb3Ig
KGF1dG8mIGNoaWxkIDogY2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgbXV0YXRpb24ud2lsbFJl
bW92ZUNoaWxkKGNoaWxkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDcxNWQ1
ZjA3OTZhNjVkNDcwZGE5ZWYwM2UyYmNhOTE0ZDZiMDJkZDEuLjQ2ZjRkOGFiMWY0ZjIwMGIwNmFj
NmU3MGM0M2FkNGJhZTk0ODZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjIsNiAr
NjIsNyBAQAogI2luY2x1ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCiAjaW5jbHVkZSAiRGVwcmVj
YXRlZEdsb2JhbFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGb250TG9hZGVyLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dFNoYXJlZE9iamVjdFBvb2wuaCIKQEAgLTE3Nyw2ICsxNzgsNyBAQAogI2luY2x1ZGUgIlBzZXVk
b0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiUHVibGljU3VmZml4LmgiCiAj
aW5jbHVkZSAiUXVpcmtzLmgiCisjaW5jbHVkZSAiUlRDTmV0d29ya01hbmFnZXIuaCIKICNpbmNs
dWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJDaGlsZEl0ZXJhdG9yLmgiCkBAIC0yMzksNiArMjQxLDcgQEAKICNpbmNs
dWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlRleHROb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNl
RGVjb2Rlci5oIgogI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgpAQCAtOTc5LDcgKzk4Miw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnJlc2V0TGlua0NvbG9yKCkKIAogdm9pZCBEb2N1bWVudDo6cmVzZXRWaXNp
dGVkTGlua0NvbG9yKCkKIHsKLSAgICBtX3Zpc2l0ZWRMaW5rQ29sb3IgPSBTdHlsZUNvbG9yOjpj
b2xvckZyb21LZXl3b3JkKENTU1ZhbHVlV2Via2l0TGluaywgc3R5bGVDb2xvck9wdGlvbnMobnVs
bHB0cikgfCBTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgbV92aXNp
dGVkTGlua0NvbG9yID0gU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZVdlYmtp
dExpbmssIHN0eWxlQ29sb3JPcHRpb25zKG51bGxwdHIpIHwgU3R5bGVDb2xvck9wdGlvbnM6OkZv
clZpc2l0ZWRMaW5rKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVzZXRBY3RpdmVMaW5rQ29sb3Io
KQpAQCAtMzU3NCw2ICszNTc3LDEzIEBAIFJlZlB0cjxSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRs
ZXJDb25uZWN0aW9uPiBEb2N1bWVudDo6Y3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vCiAgICAgcmV0
dXJuIHBhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuY3JlYXRlUlRDRGF0YUNoYW5uZWxSZW1vdGVI
YW5kbGVyQ29ubmVjdGlvbigpOwogfQogCisjaWYgRU5BQkxFKFdFQl9SVEMpCit2b2lkIERvY3Vt
ZW50OjpzZXRSVENOZXR3b3JrTWFuYWdlcihSZWY8UlRDTmV0d29ya01hbmFnZXI+JiYgcnRjTmV0
d29ya01hbmFnZXIpCit7CisgICAgbV9ydGNOZXR3b3JrTWFuYWdlciA9IFdURk1vdmUocnRjTmV0
d29ya01hbmFnZXIpOworfQorI2VuZGlmCisKIGJvb2wgRG9jdW1lbnQ6OmNhbk5hdmlnYXRlKEZy
YW1lKiB0YXJnZXRGcmFtZSwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCkKIHsKICAgICBpZiAo
IW1fZnJhbWUpCkBAIC00Mzk5LDE4ICs0NDA5LDE4IEBAIHZvaWQgRG9jdW1lbnQ6Om5vdGVVc2Vy
SW50ZXJhY3Rpb25XaXRoTWVkaWFFbGVtZW50KCkKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUlzUGxh
eWluZ01lZGlhKCkKIHsKICAgICBBU1NFUlQoIW1fYXVkaW9Qcm9kdWNlcnMuaGFzTnVsbFJlZmVy
ZW5jZXMoKSk7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOworICAg
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yIChhdXRvJiBhdWRp
b1Byb2R1Y2VyIDogbV9hdWRpb1Byb2R1Y2VycykKICAgICAgICAgc3RhdGUuYWRkKGF1ZGlvUHJv
ZHVjZXIubWVkaWFTdGF0ZSgpKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3Rh
dGUuYWRkKE1lZGlhU3RyZWFtVHJhY2s6OmNhcHR1cmVTdGF0ZSgqdGhpcykpOwogICAgIGlmICht
X2FjdGl2ZVNwZWVjaFJlY29nbml0aW9uKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgc3Rh
dGUuYWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZp
Y2UpOwogI2VuZGlmCiAKICAgICBpZiAobV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1l
bnQpCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2Vy
SW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCk7CiAKICAg
ICBpZiAoc3RhdGUgPT0gbV9tZWRpYVN0YXRlKQogICAgICAgICByZXR1cm47CkBAIC02NzU1LDcg
KzY3NjUsNyBAQCB2b2lkIERvY3VtZW50OjpkaXNwYXRjaFBhZ2VzaG93RXZlbnQoUGFnZXNob3dF
dmVudFBlcnNpc3RlbmNlIHBlcnNpc3RlZCkKICAgICBkaXNwYXRjaFdpbmRvd0V2ZW50KFBhZ2VU
cmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZXNob3dFdmVudCwgcGVyc2lz
dGVkKSwgdGhpcyk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudElu
aXQpCit2b2lkIERvY3VtZW50OjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBxdWV1
ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNlY3VyaXR5cG9saWN5
dmlvbGF0aW9uRXZlbnQsIFdURk1vdmUoZXZlbnRJbml0KSwgRXZlbnQ6OklzVHJ1c3RlZDo6WWVz
KSk7CiB9CkBAIC03NTM5LDE1ICs3NTQ5LDE1IEBAIGJvb2wgRG9jdW1lbnQ6OnVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLU9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBEb2N1bWVudDo6c3R5bGVDb2xvck9wdGlvbnMoY29u
c3QgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAorT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25z
PiBEb2N1bWVudDo6c3R5bGVDb2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKSBj
b25zdAogewotICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOworICAg
IE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9uczsKICAgICBpZiAodXNlU3lzdGVt
QXBwZWFyYW5jZSgpKQotICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpV
c2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwogICAgIGlmICh1c2VEYXJrQXBwZWFyYW5jZShzdHls
ZSkpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBl
YXJhbmNlKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKTsKICAgICBpZiAodXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwoKSkKLSAg
ICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50
ZXJmYWNlTGV2ZWwpOworICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogICAgIHJldHVybiBvcHRpb25zOwogfQogCkBA
IC03NzI0LDcgKzc3MzQsNyBAQCB2b2lkIERvY3VtZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYgY2xpZW50LCBib29sCiAgICAgcGFnZS0+c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKGl0LT52YWx1ZSwgcG9zaXRpb24sIGlzVmlkZW8sIHJvdXRl
U2hhcmluZ1BvbGljeSwgcm91dGluZ0NvbnRleHRVSUQpOwogfQogCi12b2lkIERvY3VtZW50Ojpw
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKE1lZGlhUGxheWJhY2tUYXJn
ZXRDbGllbnQmIGNsaWVudCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQor
dm9pZCBEb2N1bWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShN
ZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50JiBjbGllbnQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUpCiB7CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAo
IXBhZ2UpCkBAIC04MjI5LDcgKzgyMzksNyBAQCB2b2lkIERvY3VtZW50OjpvcmllbnRhdGlvbkNo
YW5nZWQoaW50IG9yaWVudGF0aW9uKQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotdm9p
ZCBEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kIGtpbmQpCit2b2lkIERvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVy
ZSgqdGhpcywga2luZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDMzMjk0NjJhMDk2ZWMw
ZGNiZTFmNTVlYzMwZDg5MjBmNjE5ODdjZjkuLjY0ZGE4N2JkY2Q5NTk0NjA3ZjU2MDE3ODAxYTQ4
YmE1ZmJjNzNkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5j
bHVkZSAiRGlzYWJsZWRBZGFwdGF0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRUaW1p
bmcuaCIKICNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFbGVtZW50SWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkZvY3VzT3B0aW9ucy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3RvckNsaWVudC5o
IgpAQCAtNDMsMzAgKzQyLDIxIEBACiAjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKLSNp
bmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCi0jaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKICNpbmNsdWRlICJQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiUlRDTmV0d29ya01hbmFnZXIu
aCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgotI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2lu
Y2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCi0jaW5j
bHVkZSAiU3R5bGVDb2xvci5oIgotI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCiAjaW5jbHVkZSAi
U3VwcGxlbWVudGFibGUuaCIKLSNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKICNpbmNsdWRlICJVc2VyQWN0
aW9uRWxlbWVudFNldC5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSAiVmlzaWJpbGl0eVN0YXRlLmgiCi0jaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CkBAIC05NiwxMSArODYsMTYgQEAgbmFtZXNwYWNlIFdURiB7CiBj
bGFzcyBUZXh0U3RyZWFtOwogfQogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsK
K30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBWE9iamVjdENhY2hlOwogY2xhc3Mg
QXBwSGlnaGxpZ2h0U3RvcmFnZTsKIGNsYXNzIEF0dHI7CitjbGFzcyBDYW52YXNCYXNlOwogY2xh
c3MgQ0RBVEFTZWN0aW9uOwogY2xhc3MgQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZTsKIGNsYXNzIENT
U0ZvbnRTZWxlY3RvcjsKQEAgLTEzMiw2ICsxMjcsNyBAQCBjbGFzcyBEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXI7CiBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNsYXNzIERvY3VtZW50U2hhcmVkT2Jq
ZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VGltZWxpbmU7CitjbGFzcyBEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI7CiBjbGFzcyBEb2N1bWVudFR5cGU7CiBjbGFzcyBFZGl0aW5nQmVoYXZpb3I7
CiBjbGFzcyBFZGl0b3I7CkBAIC0xODMsNiArMTc5LDcgQEAgY2xhc3MgTG9jYXRpb247CiBjbGFz
cyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xh
c3MgTWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKK2NsYXNzIE1lZGlhUHJvZHVjZXI7CiBjbGFz
cyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOwogY2xhc3MgTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI7CkBAIC0xOTYsNyArMTkzLDkgQEAgY2xhc3MgUGxhdGZvcm1N
b3VzZUV2ZW50OwogY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uOwogY2xhc3MgUXVhbGlmaWVk
TmFtZTsKIGNsYXNzIFF1aXJrczsKK2NsYXNzIFJUQ05ldHdvcmtNYW5hZ2VyOwogY2xhc3MgUmFu
Z2U7CitjbGFzcyBSZWdpb247CiBjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjsKIGNsYXNzIFJlbmRl
clZpZXc7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjazsKQEAgLTIyMyw2ICsy
MjIsNyBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBjbGFzcyBTdHlsZVNoZWV0TGlzdDsK
IGNsYXNzIFRleHQ7CiBjbGFzcyBUZXh0QXV0b1NpemluZzsKK2NsYXNzIFRleHRFbmNvZGluZzsK
IGNsYXNzIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOwogY2xhc3MgVGV4dFJlc291cmNlRGVj
b2RlcjsKIGNsYXNzIFRyYW5zZm9ybVNvdXJjZTsKQEAgLTI1MCwyMCArMjUwLDI5IEBAIHN0cnVj
dCBBcHBsaWNhdGlvbk1hbmlmZXN0Owogc3RydWN0IEJvdW5kYXJ5UG9pbnQ7CiBzdHJ1Y3QgSGln
aGxpZ2h0UmFuZ2VEYXRhOwogc3RydWN0IEludGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKK3N0cnVj
dCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDsKIAogdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIEV4Y2VwdGlvbk9yOwogCiBlbnVtIENvbGxlY3Rpb25UeXBlOwogCitlbnVtIGNsYXNz
IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlIDogdWludDMyX3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJv
ZHVjZXJNZWRpYUNhcHR1cmVLaW5kIDogdWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNl
ck11dGVkU3RhdGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1
aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IDogdWludDhf
dDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nVXBkYXRlU3RlcCA6IHVpbnQxNl90OworZW51bSBjbGFz
cyBTdHlsZUNvbG9yT3B0aW9ucyA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25UeXBlIDogdWludDhfdDsKIAordXNpbmcgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyA9IE9wdGlvblNldDxNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT47Cit1c2luZyBNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
PjsKIHVzaW5nIFBsYXRmb3JtRGlzcGxheUlEID0gdWludDMyX3Q7CiAKIG5hbWVzcGFjZSBTdHls
ZSB7CiBjbGFzcyBSZXNvbHZlcjsKIGNsYXNzIFNjb3BlOworY2xhc3MgVXBkYXRlOwogfQogCiBl
bnVtIFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSB7IFBhZ2VzaG93RXZlbnROb3RQZXJzaXN0ZWQs
IFBhZ2VzaG93RXZlbnRQZXJzaXN0ZWQgfTsKQEAgLTM1NCw3ICszNjMsNyBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IEV2ZW50VGFyZ2V0OjpXZWFrVmFsdWVUeXBlOwogICAg
IHVzaW5nIEV2ZW50VGFyZ2V0Ojp3ZWFrUHRyRmFjdG9yeTsKIAotICAgIHN0YXRpYyBSZWY8RG9j
dW1lbnQ+IGNyZWF0ZShjb25zdCBTZXR0aW5ncyYsIGNvbnN0IFVSTCYpOworICAgIGlubGluZSBz
dGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGUoY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmKTsK
ICAgICBzdGF0aWMgUmVmPERvY3VtZW50PiBjcmVhdGVOb25SZW5kZXJlZFBsYWNlaG9sZGVyKEZy
YW1lJiwgY29uc3QgVVJMJik7CiAgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3JlYXRlKERvY3Vt
ZW50Jik7CiAKQEAgLTQ2MCwxMSArNDY5LDExIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBkZWZhdWx0Q2hhcnNldEZvckxlZ2FjeUJpbmRpbmdzKCkgY29uc3Q7CiAKLSAg
ICBTdHJpbmcgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIERvY3VtZW50OjplbmNvZGluZygpOyB9
CisgICAgaW5saW5lIFN0cmluZyBjaGFyc2V0KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGNoYXJhY3RlclNldFdpdGhVVEY4RmFsbGJhY2soKSBjb25zdDsKLSAgICBUZXh0RW5j
b2RpbmcgdGV4dEVuY29kaW5nKCkgY29uc3Q7CisgICAgaW5saW5lIFRleHRFbmNvZGluZyB0ZXh0
RW5jb2RpbmcoKSBjb25zdDsKIAotICAgIEF0b21TdHJpbmcgZW5jb2RpbmcoKSBjb25zdCB7IHJl
dHVybiB0ZXh0RW5jb2RpbmcoKS5kb21OYW1lKCk7IH0KKyAgICBpbmxpbmUgQXRvbVN0cmluZyBl
bmNvZGluZygpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFyc2V0KGNv
bnN0IFN0cmluZyYpOyAvLyBVc2VkIGJ5IE9iakMgLyBHT0JqZWN0IGJpbmRpbmdzIG9ubHkuCiAK
QEAgLTU3OSw3ICs1ODgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgdXNlRGFya0FwcGVhcmFuY2UoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKIAotICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyhjb25zdCBSZW5k
ZXJTdHlsZSopIGNvbnN0OworICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVD
b2xvck9wdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICBDb21wb3NpdGVPcGVy
YXRvciBjb21wb3NpdGVPcGVyYXRvckZvckJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIGNv
bnN0IFJlbmRlck9iamVjdCYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPFJhbmdl
PiBjcmVhdGVSYW5nZSgpOwpAQCAtNjQ1LDcgKzY1NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBi
b29sIHVwZGF0ZUxheW91dElmRGltZW5zaW9uc091dE9mRGF0ZShFbGVtZW50JiwgRGltZW5zaW9u
c0NoZWNrID0gQWxsRGltZW5zaW9uc0NoZWNrKTsKICAgICAKLSAgICBBWE9iamVjdENhY2hlKiBl
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSBjb25zdDsKKyAgICBpbmxpbmUgQVhPYmplY3RDYWNoZSog
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgQVhPYmpl
Y3RDYWNoZSogYXhPYmplY3RDYWNoZSgpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJBWE9iamVjdENh
Y2hlKCk7CiAKQEAgLTcxMyw3ICs3MjIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoV0VCX1JU
QykKICAgICBSVENOZXR3b3JrTWFuYWdlciogcnRjTmV0d29ya01hbmFnZXIoKSB7IHJldHVybiBt
X3J0Y05ldHdvcmtNYW5hZ2VyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRSVENOZXR3b3JrTWFuYWdl
cihSZWY8UlRDTmV0d29ya01hbmFnZXI+JiYgcnRjTmV0d29ya01hbmFnZXIpIHsgbV9ydGNOZXR3
b3JrTWFuYWdlciA9IFdURk1vdmUocnRjTmV0d29ya01hbmFnZXIpOyB9CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRSVENOZXR3b3JrTWFuYWdlcihSZWY8UlRDTmV0d29ya01hbmFnZXI+JiYp
OwogI2VuZGlmCiAKICAgICBib29sIGNhbk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSwgY29u
c3QgVVJMJiBkZXN0aW5hdGlvblVSTCA9IFVSTCgpKTsKQEAgLTg5NiwxMiArOTA1LDkgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzTGlzdGVuZXJUeXBlRm9yRXZlbnRUeXBlKFBsYXRmb3JtRXZlbnQ6
OlR5cGUpIGNvbnN0OwogICAgIHZvaWQgYWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRv
bVN0cmluZyYgZXZlbnRUeXBlKTsKIAotICAgIGJvb2wgaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5
cGUoTXV0YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gbV9tdXRhdGlvbk9ic2VydmVyVHlwZXMgJiB0eXBlOwotICAgIH0KLSAgICBi
b29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tdXRhdGlvbk9ic2Vy
dmVyVHlwZXM7IH0KLSAgICB2b2lkIGFkZE11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRhdGlvbk9i
c2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9uT2JzZXJ2ZXJUeXBlcyB8PSB0eXBlczsg
fQorICAgIGlubGluZSBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25UeXBlKSBjb25zdDsKKyAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzKCkg
Y29uc3QgeyByZXR1cm4gIW1fbXV0YXRpb25PYnNlcnZlclR5cGVzLmlzRW1wdHkoKTsgfQorICAg
IHZvaWQgYWRkTXV0YXRpb25PYnNlcnZlclR5cGVzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIHR5
cGVzKSB7IG1fbXV0YXRpb25PYnNlcnZlclR5cGVzLmFkZCh0eXBlcyk7IH0KIAogICAgIENTU1N0
eWxlRGVjbGFyYXRpb24qIGdldE92ZXJyaWRlU3R5bGUoRWxlbWVudCosIGNvbnN0IFN0cmluZyYp
IHsgcmV0dXJuIG51bGxwdHI7IH0KIApAQCAtMTE4NSw3ICsxMTkxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50T25XaW5kb3coVGFza1NvdXJjZSwgUmVmPEV2
ZW50PiYmKTsKICAgICB2b2lkIGVucXVldWVPdmVyZmxvd0V2ZW50KFJlZjxFdmVudD4mJik7CiAg
ICAgdm9pZCBkaXNwYXRjaFBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmKTsKICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZl
bnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lk
IGRpc3BhdGNoUG9wc3RhdGVFdmVudChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHN0
YXRlT2JqZWN0KTsKIApAQCAtMTM3MCw3ICsxMzc2LDcgQEAgcHVibGljOgogICAgIFNlY3VyaXR5
T3JpZ2luJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuICpTZWN1cml0eUNvbnRleHQ6
OnNlY3VyaXR5T3JpZ2luKCk7IH0KICAgICBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpOyB9CiAKLSAg
ICBib29sIGlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBzZWN1cml0
eU9yaWdpbigpLmlzU2FtZU9yaWdpbkFzKHRvcE9yaWdpbigpKTsgfQorICAgIGlubGluZSBib29s
IGlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZEZvcmNl
Tm9PcGVuZXJCYXNlZE9uQ09PUCgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3Qg
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3Qg
ZmluYWw7CkBAIC0xNDA3LDkgKzE0MTMsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhZGRBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZUF1ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYpOwogICAgIHZvaWQgc2V0
QWN0aXZlU3BlZWNoUmVjb2duaXRpb24oU3BlZWNoUmVjb2duaXRpb24qKTsKLSAgICBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVk
aWFTdGF0ZTsgfQorICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQogICAgIHZvaWQgbm90ZVVzZXJJbnRlcmFj
dGlvbldpdGhNZWRpYUVsZW1lbnQoKTsKLSAgICBib29sIGlzQ2FwdHVyaW5nKCkgY29uc3QgeyBy
ZXR1cm4gTWVkaWFQcm9kdWNlcjo6aXNDYXB0dXJpbmcobV9tZWRpYVN0YXRlKTsgfQorICAgIGlu
bGluZSBib29sIGlzQ2FwdHVyaW5nKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2Uo
KTsKIApAQCAtMTQxNyw3ICsxNDIzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnQoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYpOwogICAgIHZvaWQg
cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoTWVkaWFQbGF5YmFja1RhcmdldENsaWVu
dCYpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKE1lZGlhUGxheWJhY2tUYXJn
ZXRDbGllbnQmLCBib29sLCBSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwotICAg
IHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShNZWRpYVBsYXli
YWNrVGFyZ2V0Q2xpZW50JiwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2
b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoTWVkaWFQbGF5YmFj
a1RhcmdldENsaWVudCYsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgdm9p
ZCBzZXRQbGF5YmFja1RhcmdldChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJik7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldEF2
YWlsYWJpbGl0eURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBib29sKTsKQEAgLTE0NTYsNyArMTQ2Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogICAgIHZvaWQgc2V0SGFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSB7IG1faGFz
SGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNIYWRDYXB0
dXJlTWVkaWFTdHJlYW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1faGFzSGFkQ2FwdHVyZU1lZGlh
U3RyZWFtVHJhY2s7IH0KLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZCk7CisgICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVj
ZXJNZWRpYUNhcHR1cmVLaW5kKTsKICAgICB2b2lkIG1lZGlhU3RyZWFtQ2FwdHVyZVN0YXRlQ2hh
bmdlZCgpOwogI2VuZGlmCiAKQEAgLTIwNjgsMTQgKzIwNzQsMTQgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX3dyaXRlUmVjdXJzaW9uRGVwdGggeyAwIH07CiAKICAgICBJbmhlcml0ZWRCb29s
IG1fZGVzaWduTW9kZSB7IGluaGVyaXQgfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbV9tZWRpYVN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9t
ZWRpYVN0YXRlOwogICAgIGJvb2wgbV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQg
eyBmYWxzZSB9OwogICAgIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSB7IE5vdEluQmFja0ZvcndhcmRDYWNoZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8UmVmZXJy
ZXJQb2xpY3k+IG1fcmVmZXJyZXJQb2xpY3k7CiAgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUg
eyBDb21wbGV0ZSB9OwogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IG1fY3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3k7CiAKLSAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtX211dGF0aW9uT2Jz
ZXJ2ZXJUeXBlcyB7IDAgfTsKKyAgICBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBtX211dGF0aW9u
T2JzZXJ2ZXJUeXBlczsKIAogICAgIGJvb2wgbV9hY3RpdmVQYXJzZXJXYXNBYm9ydGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fd3JpdGVSZWN1cnNpb25Jc1Rvb0RlZXAgeyBmYWxzZSB9OwpAQCAt
MjIzNyw0MyArMjI0Myw2IEBAIHByaXZhdGU6CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVu
dEZvckRvY3VtZW50KERvY3VtZW50Kik7CiAKLWlubGluZSBUZXh0RW5jb2RpbmcgRG9jdW1lbnQ6
OnRleHRFbmNvZGluZygpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8qIGRlY29kZXIgPSB0aGlzLT5k
ZWNvZGVyKCkpCi0gICAgICAgIHJldHVybiBkZWNvZGVyLT5lbmNvZGluZygpOwotICAgIHJldHVy
biBUZXh0RW5jb2RpbmcoKTsKLX0KLQotaW5saW5lIGNvbnN0IERvY3VtZW50KiBEb2N1bWVudDo6
dGVtcGxhdGVEb2N1bWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVu
dEhvc3QgPyB0aGlzIDogbV90ZW1wbGF0ZURvY3VtZW50LmdldCgpOwotfQotCi1pbmxpbmUgQVhP
YmplY3RDYWNoZSogRG9jdW1lbnQ6OmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgcmV0dXJuIGV4aXN0aW5nQVhPYmplY3RDYWNoZVNsb3coKTsKLX0KLQotaW5s
aW5lIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNyZWF0ZShjb25zdCBTZXR0aW5ncyYgc2V0dGlu
Z3MsIGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERvY3VtZW50
KG51bGxwdHIsIHNldHRpbmdzLCB1cmwpKTsKLX0KLQotaW5saW5lIHZvaWQgRG9jdW1lbnQ6Omlu
dmFsaWRhdGVBY2Nlc3NLZXlDYWNoZSgpCi17Ci0gICAgaWYgKFVOTElLRUxZKG1fYWNjZXNzS2V5
Q2FjaGUpKQotICAgICAgICBpbnZhbGlkYXRlQWNjZXNzS2V5Q2FjaGVTbG93Q2FzZSgpOwotfQot
Ci0vLyBUaGVzZSBmdW5jdGlvbnMgYXJlIGhlcmUgYmVjYXVzZSB0aGV5IHJlcXVpcmUgdGhlIERv
Y3VtZW50IGNsYXNzIGRlZmluaXRpb24gYW5kIHdlIHdhbnQgdG8gaW5saW5lIHRoZW0uCi0KLWlu
bGluZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBOb2RlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gJmRvY3VtZW50KCkuY29udGV4dERvY3VtZW50KCk7Ci19
Ci0KIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBE
b2N1bWVudCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRJbmxpbmVzLmgKaW5kZXggNDBhZGQwNGU2YTBmYTZhZDJlMzQ0ZjBkN2VhN2E0YjEzODcxOGYz
ZS4uZGQyNTBhZTJjODg5ZGViMmI2MjA3YzBkMjQ5OGI1NmMxMTZjZmUxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50SW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudElubGluZXMuaApAQCAtMjYsNiArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiw2ICszOSwxMCBAQCBpbmxpbmUgVGV4dEVu
Y29kaW5nIERvY3VtZW50Ojp0ZXh0RW5jb2RpbmcoKSBjb25zdAogICAgIHJldHVybiBUZXh0RW5j
b2RpbmcoKTsKIH0KIAoraW5saW5lIEF0b21TdHJpbmcgRG9jdW1lbnQ6OmVuY29kaW5nKCkgY29u
c3QgeyByZXR1cm4gdGV4dEVuY29kaW5nKCkuZG9tTmFtZSgpOyB9CisKK2lubGluZSBTdHJpbmcg
RG9jdW1lbnQ6OmNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBEb2N1bWVudDo6ZW5jb2RpbmcoKTsg
fQorCiBpbmxpbmUgY29uc3QgRG9jdW1lbnQqIERvY3VtZW50Ojp0ZW1wbGF0ZURvY3VtZW50KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdCA/IHRoaXMgOiBtX3Rl
bXBsYXRlRG9jdW1lbnQuZ2V0KCk7CkBAIC01OSw2ICs2NiwxOSBAQCBpbmxpbmUgdm9pZCBEb2N1
bWVudDo6aW52YWxpZGF0ZUFjY2Vzc0tleUNhY2hlKCkKICAgICAgICAgaW52YWxpZGF0ZUFjY2Vz
c0tleUNhY2hlU2xvd0Nhc2UoKTsKIH0KIAoraW5saW5lIGJvb2wgRG9jdW1lbnQ6OmlzQ2FwdHVy
aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTWVkaWFQcm9kdWNlcjo6aXNDYXB0dXJpbmcobV9t
ZWRpYVN0YXRlKTsKK30KKworaW5saW5lIGJvb2wgRG9jdW1lbnQ6Omhhc011dGF0aW9uT2JzZXJ2
ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzLmNvbnRhaW5zQW55KHR5cGUpOworfQorCitp
bmxpbmUgYm9vbCBEb2N1bWVudDo6aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgpIGNvbnN0IHsg
cmV0dXJuIHNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lT3JpZ2luQXModG9wT3JpZ2luKCkpOyB9CisK
KwogLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBoZXJlIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSBE
b2N1bWVudCBjbGFzcyBkZWZpbml0aW9uIGFuZCB3ZSB3YW50IHRvIGlubGluZSB0aGVtLgogCiBp
bmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMjY0ZWM1YmRiZmZiMDc3MmEyZmQx
MmM5NmQ3MTVjOTZlMzJiY2ExYS4uZGUyN2M2ZjU1ZmQ3N2EzYTc3M2I4NDFmYmU5ZGEzZjdmNmMw
NjA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRTaGFyZWRPYmplY3RQb29sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGluZS5oIgogI2lu
Y2x1ZGUgIkVkaXRpbmcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApp
bmRleCA0NzZmOGRhYjliNjUxNjE4ODllZjllODBiYjQ1OGNiNjZkZWY0ZGI1Li42NTA1ZGM5YWIy
ZWZiNmI2NGY0MzE4ZGVjOTk3NmFlODg2MDAxMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXIuY3BwCkBAIC03MSwzNyArNzEsMzcgQEAgTXV0YXRpb25PYnNlcnZlcjo6fk11
dGF0aW9uT2JzZXJ2ZXIoKQogCiBib29sIE11dGF0aW9uT2JzZXJ2ZXI6OnZhbGlkYXRlT3B0aW9u
cyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyBvcHRpb25zKQogewotICAgIHJldHVybiAob3B0aW9u
cyAmIChBdHRyaWJ1dGVzIHwgQ2hhcmFjdGVyRGF0YSB8IENoaWxkTGlzdCkpCi0gICAgICAgICYm
ICgob3B0aW9ucyAmIEF0dHJpYnV0ZXMpIHx8ICEob3B0aW9ucyAmIEF0dHJpYnV0ZU9sZFZhbHVl
KSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQXR0cmlidXRlcykgfHwgIShvcHRpb25zICYgQXR0
cmlidXRlRmlsdGVyKSkKLSAgICAgICAgJiYgKChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YSkgfHwg
IShvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlKSk7CisgICAgcmV0dXJuIG9wdGlvbnMu
Y29udGFpbnNBbnkoQWxsTXV0YXRpb25UeXBlcykKKyAgICAgICAgJiYgKG9wdGlvbnMuY29udGFp
bnMoT3B0aW9uVHlwZTo6QXR0cmlidXRlcykgfHwgIW9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlw
ZTo6QXR0cmlidXRlT2xkVmFsdWUpKQorICAgICAgICAmJiAob3B0aW9ucy5jb250YWlucyhPcHRp
b25UeXBlOjpBdHRyaWJ1dGVzKSB8fCAhb3B0aW9ucy5jb250YWlucyhPcHRpb25UeXBlOjpBdHRy
aWJ1dGVGaWx0ZXIpKQorICAgICAgICAmJiAob3B0aW9ucy5jb250YWlucyhPcHRpb25UeXBlOjpD
aGFyYWN0ZXJEYXRhKSB8fCAhb3B0aW9ucy5jb250YWlucyhPcHRpb25UeXBlOjpDaGFyYWN0ZXJE
YXRhT2xkVmFsdWUpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTXV0YXRpb25PYnNlcnZlcjo6
b2JzZXJ2ZShOb2RlJiBub2RlLCBjb25zdCBJbml0JiBpbml0KQogewotICAgIE11dGF0aW9uT2Jz
ZXJ2ZXJPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG9w
dGlvbnM7CiAKICAgICBpZiAoaW5pdC5jaGlsZExpc3QpCi0gICAgICAgIG9wdGlvbnMgfD0gQ2hp
bGRMaXN0OworICAgICAgICBvcHRpb25zLmFkZChPcHRpb25UeXBlOjpDaGlsZExpc3QpOwogICAg
IGlmIChpbml0LnN1YnRyZWUpCi0gICAgICAgIG9wdGlvbnMgfD0gU3VidHJlZTsKKyAgICAgICAg
b3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6U3VidHJlZSk7CiAgICAgaWYgKGluaXQuYXR0cmlidXRl
T2xkVmFsdWUudmFsdWVfb3IoZmFsc2UpKQotICAgICAgICBvcHRpb25zIHw9IEF0dHJpYnV0ZU9s
ZFZhbHVlOworICAgICAgICBvcHRpb25zLmFkZChPcHRpb25UeXBlOjpBdHRyaWJ1dGVPbGRWYWx1
ZSk7CiAgICAgaWYgKGluaXQuY2hhcmFjdGVyRGF0YU9sZFZhbHVlLnZhbHVlX29yKGZhbHNlKSkK
LSAgICAgICAgb3B0aW9ucyB8PSBDaGFyYWN0ZXJEYXRhT2xkVmFsdWU7CisgICAgICAgIG9wdGlv
bnMuYWRkKE9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAKICAgICBIYXNoU2V0
PEF0b21TdHJpbmc+IGF0dHJpYnV0ZUZpbHRlcjsKICAgICBpZiAoaW5pdC5hdHRyaWJ1dGVGaWx0
ZXIpIHsKICAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluaXQuYXR0cmlidXRlRmlsdGVyLnZh
bHVlKCkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXIuYWRkKHZhbHVlKTsKLSAgICAgICAg
b3B0aW9ucyB8PSBBdHRyaWJ1dGVGaWx0ZXI7CisgICAgICAgIG9wdGlvbnMuYWRkKE9wdGlvblR5
cGU6OkF0dHJpYnV0ZUZpbHRlcik7CiAgICAgfQogCi0gICAgaWYgKGluaXQuYXR0cmlidXRlcyA/
IGluaXQuYXR0cmlidXRlcy52YWx1ZSgpIDogKG9wdGlvbnMgJiAoQXR0cmlidXRlRmlsdGVyIHwg
QXR0cmlidXRlT2xkVmFsdWUpKSkKLSAgICAgICAgb3B0aW9ucyB8PSBBdHRyaWJ1dGVzOworICAg
IGlmIChpbml0LmF0dHJpYnV0ZXMgPyBpbml0LmF0dHJpYnV0ZXMudmFsdWUoKSA6IG9wdGlvbnMu
Y29udGFpbnNBbnkoeyBPcHRpb25UeXBlOjpBdHRyaWJ1dGVGaWx0ZXIsIE9wdGlvblR5cGU6OkF0
dHJpYnV0ZU9sZFZhbHVlIH0pKQorICAgICAgICBvcHRpb25zLmFkZChPcHRpb25UeXBlOjpBdHRy
aWJ1dGVzKTsKIAotICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGEgPyBpbml0LmNoYXJhY3RlckRh
dGEudmFsdWUoKSA6IChvcHRpb25zICYgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlKSkKLSAgICAgICAg
b3B0aW9ucyB8PSBDaGFyYWN0ZXJEYXRhOworICAgIGlmIChpbml0LmNoYXJhY3RlckRhdGEgPyBp
bml0LmNoYXJhY3RlckRhdGEudmFsdWUoKSA6IG9wdGlvbnMuY29udGFpbnMoT3B0aW9uVHlwZTo6
Q2hhcmFjdGVyRGF0YU9sZFZhbHVlKSkKKyAgICAgICAgb3B0aW9ucy5hZGQoT3B0aW9uVHlwZTo6
Q2hhcmFjdGVyRGF0YSk7CiAKICAgICBpZiAoIXZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKSkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbk9ic2VydmVyLmgKaW5kZXggMmFmMjYzYmQ0YTcyNTRhMjBhM2I5MzUzMTdiNzk2OTFhZjRj
YzdkYS4uMDRhZjAwNGE5ZTA5NWVmZWVlYzFmNjEwZTUyOGI0NmU2MGY1ZTdmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCkBAIC01MywzMCArNTQsMjcg
QEAgY2xhc3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgV2luZG93RXZlbnRM
b29wOwogCi11c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7Ci11
c2luZyBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9IHVuc2lnbmVkIGNoYXI7CitlbnVt
IGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIDogdWludDhfdCB7CisgICAgLy8gTXV0
YXRpb25UeXBlCisgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAorICAgIEF0dHJpYnV0ZXMgPSAxIDw8
IDEsCisgICAgQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMiwKIAotY2xhc3MgTXV0YXRpb25PYnNlcnZl
ciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE11dGF0aW9uT2JzZXJ2ZXI+IHsKLSAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKE11dGF0aW9uT2JzZXJ2ZXIpOwotcHVibGljOgotICAgIGVudW0g
TXV0YXRpb25UeXBlIHsKLSAgICAgICAgQ2hpbGRMaXN0ID0gMSA8PCAwLAotICAgICAgICBBdHRy
aWJ1dGVzID0gMSA8PCAxLAotICAgICAgICBDaGFyYWN0ZXJEYXRhID0gMSA8PCAyLAorICAgIC8v
IE9ic2VydmF0aW9uRmxhZ3MKKyAgICBTdWJ0cmVlID0gMSA8PCAzLAorICAgIEF0dHJpYnV0ZUZp
bHRlciA9IDEgPDwgNCwKIAotICAgICAgICBBbGxNdXRhdGlvblR5cGVzID0gQ2hpbGRMaXN0IHwg
QXR0cmlidXRlcyB8IENoYXJhY3RlckRhdGEKLSAgICB9OworICAgIC8vIERlbGl2ZXJ5RmxhZ3MK
KyAgICBBdHRyaWJ1dGVPbGRWYWx1ZSA9IDEgPDwgNSwKKyAgICBDaGFyYWN0ZXJEYXRhT2xkVmFs
dWUgPSAxIDw8IDYsCit9OwogCi0gICAgZW51bSBPYnNlcnZhdGlvbkZsYWdzICB7Ci0gICAgICAg
IFN1YnRyZWUgPSAxIDw8IDMsCi0gICAgICAgIEF0dHJpYnV0ZUZpbHRlciA9IDEgPDwgNAotICAg
IH07Ci0KLSAgICBlbnVtIERlbGl2ZXJ5RmxhZ3MgewotICAgICAgICBBdHRyaWJ1dGVPbGRWYWx1
ZSA9IDEgPDwgNSwKLSAgICAgICAgQ2hhcmFjdGVyRGF0YU9sZFZhbHVlID0gMSA8PCA2LAotICAg
IH07Cit1c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IE9wdGlvblNldDxNdXRhdGlvbk9i
c2VydmVyT3B0aW9uVHlwZT47Cit1c2luZyBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyA9
IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZT47CiAKK2NsYXNzIE11dGF0aW9u
T2JzZXJ2ZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvbk9ic2VydmVyPiB7Cisg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChNdXRhdGlvbk9ic2VydmVyKTsKK3B1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPE11dGF0aW9uT2JzZXJ2ZXI+IGNyZWF0ZShSZWY8TXV0YXRpb25DYWxsYmFj
az4mJik7CiAKICAgICB+TXV0YXRpb25PYnNlcnZlcigpOwpAQCAtMTE0LDYgKzExMiwxMSBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBub3RpZnlNdXRhdGlvbk9ic2VydmVycyhXaW5kb3dF
dmVudExvb3AmKTsKIAorICAgIHVzaW5nIE9wdGlvblR5cGUgPSBNdXRhdGlvbk9ic2VydmVyT3B0
aW9uVHlwZTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMg
QWxsTXV0YXRpb25UeXBlcyB7IE9wdGlvblR5cGU6OkNoaWxkTGlzdCwgT3B0aW9uVHlwZTo6QXR0
cmlidXRlcywgT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSB9OworICAgIHN0YXRpYyBjb25zdGV4
cHIgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgQWxsRGVsaXZlcnlGbGFncyB7IE9wdGlvblR5cGU6
OkF0dHJpYnV0ZU9sZFZhbHVlLCBPcHRpb25UeXBlOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUgfTsK
KwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNdXRhdGlvbk9ic2VydmVyKFJlZjxNdXRhdGlvbkNh
bGxiYWNrPiYmKTsKICAgICB2b2lkIGRlbGl2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwCmluZGV4IDAyNzZlNDJiZTVi
ZDgzZmY0MmE3OTM1NmJkZTljZTczNjA5OWNiZGUuLjJhZWM2NTI5MGMzODQ3NzIyNmEwZjA4ODIy
ZmZhMzdjNWRmN2IwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApAQCAtNDQsOSArNDQsOSBAQCBpbmxpbmUgTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKEhh
c2hNYXA8UmVmPAogICAgIEFTU0VSVCghbV9vYnNlcnZlcnMuaXNFbXB0eSgpKTsKIH0KIAotc3Rk
Ojp1bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9i
c2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
b2xkVmFsdWVGbGFnLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKQorc3RkOjp1
bmlxdWVfcHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2Vy
dmVyT3B0aW9uVHlwZSB0eXBlLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1
ZUZsYWcsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgQVNTRVJU
KCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkg
fHwgIWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVy
T3B0aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFt
ZSk7CiAgICAgYXV0byBvYnNlcnZlcnMgPSB0YXJnZXQucmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2
ZXJzKHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChvYnNlcnZlcnMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgKaW5kZXggM2MwYWU1MjM3ZDRiMmUyZWZmNzBkZGU2
NjJlNWY0ZTFlNTY5MjZhZC4uMmY0NmM4MWU4ZTVlODkzMGZmY2NjMWRiODRkYTgwYmNhOTA0MWI5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIk11dGF0
aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTQ2LDM2ICs0NiwzNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JDaGlsZExpc3RNdXRh
dGlvbihOb2RlJiB0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAoIXRhcmdldC5kb2N1bWVudCgp
Lmhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCkp
CisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5
cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlzdCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBv
bGRWYWx1ZUZsYWcgPSAwOwotICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFyZ2V0LCBN
dXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QsIG9sZFZhbHVlRmxhZyk7CisgICAgICAgIE11dGF0
aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZzsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZUlmTmVlZGVkKHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkNoaWxkTGlz
dCwgb2xkVmFsdWVGbGFnKTsKICAgICB9CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRp
b24oTm9kZSYgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5o
YXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRh
KSkKKyAgICAgICAgaWYgKCF0YXJnZXQuZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09m
VHlwZShNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSkpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhLCBNdXRhdGlvbk9ic2VydmVyOjpD
aGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgICAgICByZXR1cm4gY3JlYXRlSWZOZWVkZWQodGFy
Z2V0LCBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6Q2hhcmFjdGVyRGF0YSwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGU6OkNoYXJhY3RlckRhdGFPbGRWYWx1ZSk7CiAgICAgfQogCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3Jl
YXRlRm9yQXR0cmlidXRlc011dGF0aW9uKE5vZGUmIHRhcmdldCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSkKICAgICB7Ci0gICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCku
aGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcykp
CisgICAgICAgIGlmICghdGFyZ2V0LmRvY3VtZW50KCkuaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5
cGUoTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMpKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwg
TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
T2xkVmFsdWUsICZhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVk
KHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMsIE11dGF0aW9u
T2JzZXJ2ZXJPcHRpb25UeXBlOjpBdHRyaWJ1dGVPbGRWYWx1ZSwgJmF0dHJpYnV0ZU5hbWUpOwog
ICAgIH0KIAogICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgpIGNvbnN0OwogICAgIHZvaWQg
ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFJlZjxNdXRhdGlvblJlY29yZD4mJik7CiAKIHByaXZhdGU6
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlv
blR5cGUsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSA9IG51bGxwdHIpOworICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUlmTmVlZGVk
KE5vZGUmIHRhcmdldCwgTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGUsIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmli
dXRlTmFtZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCBoYXNPbGRWYWx1ZShNdXRhdGlvblJlY29y
ZERlbGl2ZXJ5T3B0aW9ucyBvcHRpb25zKSBjb25zdCB7IHJldHVybiBvcHRpb25zICYgbV9vbGRW
YWx1ZUZsYWc7IH0KKyAgICBib29sIGhhc09sZFZhbHVlKE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zIG9wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG9wdGlvbnMuY29udGFpbnNBbnkobV9vbGRW
YWx1ZUZsYWcpOyB9CiAKICAgICBIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IG1fb2JzZXJ2ZXJzOwogICAgIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zIG1fb2xkVmFsdWVGbGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGM2ZjFmYjE1ZGZmOGQ1
ZWJmZjJmNWM1YjdiN2VkZTNhZTNkMGViNzkuLmQzYzFmYTY2ZWQyZjU1NDdmMGI4MDljNjkwN2Ji
NDVjNGY5ZjU0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTk1LDE2ICs5NSwxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
SGFzaFNldDxHQ1JlYWNoYWJsZVJlZjxOb2RlPj4+IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b246OnRhawogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAotYm9vbCBNdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uOjpzaG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11
dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyaWJ1dGVOYW1lKSBjb25zdAorYm9vbCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpz
aG91bGRSZWNlaXZlTXV0YXRpb25Gcm9tKE5vZGUmIG5vZGUsIE11dGF0aW9uT2JzZXJ2ZXJPcHRp
b25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpIGNvbnN0CiB7
Ci0gICAgQVNTRVJUKCh0eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0
cmlidXRlTmFtZSkgfHwgIWF0dHJpYnV0ZU5hbWUpOwotICAgIGlmICghKG1fb3B0aW9ucyAmIHR5
cGUpKQorICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0
cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7CisgICAgaWYgKCFt
X29wdGlvbnMuY29udGFpbnModHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
ICgmbV9ub2RlICE9ICZub2RlICYmICFpc1N1YnRyZWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKHR5cGUgIT0gTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcyB8fCAhKG1f
b3B0aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZUZpbHRlcikpCisgICAgaWYgKHR5
cGUgIT0gTXV0YXRpb25PYnNlcnZlck9wdGlvblR5cGU6OkF0dHJpYnV0ZXMgfHwgIW1fb3B0aW9u
cy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZTo6QXR0cmlidXRlRmlsdGVyKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWF0dHJpYnV0ZU5hbWUtPm5hbWVzcGFj
ZVVSSSgpLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2Vy
dmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzExMDg0MThmMWVkNTY0ZmFiOTViOTZmYzhhMGNmZGE1
MzUzZjNlYi4uNzViYjI3YzM1MTQwMmY1OGY0ZTc4NDk2NTYzMGFiYjhlMjliNTFiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oCkBA
IC01NiwxMiArNTYsMTIgQEAgcHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEdD
UmVhY2hhYmxlUmVmPE5vZGU+Pj4gdGFrZVRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKTsKICAgICBi
b29sIGhhc1RyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaWVu
dFJlZ2lzdHJhdGlvbk5vZGVzICYmICFtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzLT5pc0Vt
cHR5KCk7IH0KIAotICAgIGJvb2wgc2hvdWxkUmVjZWl2ZU11dGF0aW9uRnJvbShOb2RlJiwgTXV0
YXRpb25PYnNlcnZlcjo6TXV0YXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyaWJ1
dGVOYW1lKSBjb25zdDsKLSAgICBib29sIGlzU3VidHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucyAmIE11dGF0aW9uT2JzZXJ2ZXI6OlN1YnRyZWU7IH0KKyAgICBib29sIHNob3VsZFJlY2Vp
dmVNdXRhdGlvbkZyb20oTm9kZSYsIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlLCBjb25zdCBR
dWFsaWZpZWROYW1lKiBhdHRyaWJ1dGVOYW1lKSBjb25zdDsKKyAgICBib29sIGlzU3VidHJlZSgp
IGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jb250YWlucyhNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZTo6U3VidHJlZSk7IH0KIAogICAgIE11dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKCkgeyBy
ZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIE5vZGUmIG5vZGUoKSB7IHJldHVybiBtX25v
ZGU7IH0KLSAgICBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBkZWxpdmVyeU9wdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMgJiAoTXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRl
T2xkVmFsdWUgfCBNdXRhdGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOyB9Cisg
ICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgZGVsaXZlcnlPcHRpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zICYgTXV0YXRpb25PYnNlcnZlcjo6QWxsRGVsaXZlcnlGbGFnczsg
fQogICAgIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zIG11dGF0aW9uVHlwZXMoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnMgJiBNdXRhdGlvbk9ic2VydmVyOjpBbGxNdXRhdGlvblR5cGVzOyB9CiAK
ICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6QWJzdHJhY3RTbG90Vmlz
aXRvciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGE2ZjE5ODM2YTliZGQ1MTY2Zjg4MGNl
NjA2NDMyZGMwNjFlYzQzYWYuLmU1MzUxNDcxMDhmY2ZhZTM0ZTM3NzRmN2Q3YmY5MzQyNDUxMDkz
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb250ZXh0
TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRh
VHJhbnNmZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVt
ZW50UmFyZURhdGEuaCIKQEAgLTIyODIsNyArMjI4Myw3IEBAIEhhc2hTZXQ8TXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbio+KiBOb2RlOjp0cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0
cnkoCiAgICAgcmV0dXJuICZkYXRhLT50cmFuc2llbnRSZWdpc3RyeTsKIH0KIAotdGVtcGxhdGU8
dHlwZW5hbWUgUmVnaXN0cnk+IHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0TWF0Y2hpbmdPYnNl
cnZlcnNGb3JNdXRhdGlvbihIYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVyPiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIFJlZ2lzdHJ5KiByZWdpc3RyeSwgTm9k
ZSYgdGFyZ2V0LCBNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBz
dGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFz
aE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25z
PiYgb2JzZXJ2ZXJzLCBSZWdpc3RyeSogcmVnaXN0cnksIE5vZGUmIHRhcmdldCwgTXV0YXRpb25P
YnNlcnZlck9wdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFt
ZSkKIHsKICAgICBpZiAoIXJlZ2lzdHJ5KQogICAgICAgICByZXR1cm47CkBAIC0yMjkyLDE1ICsy
MjkzLDE1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFJlZ2lzdHJ5PiBzdGF0aWMgaW5saW5lIHZvaWQg
Y29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpCiAgICAgICAgICAgICBhdXRvIGRlbGl2
ZXJ5T3B0aW9ucyA9IHJlZ2lzdHJhdGlvbi0+ZGVsaXZlcnlPcHRpb25zKCk7CiAgICAgICAgICAg
ICBhdXRvIHJlc3VsdCA9IG9ic2VydmVycy5hZGQocmVnaXN0cmF0aW9uLT5vYnNlcnZlcigpLCBk
ZWxpdmVyeU9wdGlvbnMpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKLSAg
ICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlIHw9IGRlbGl2ZXJ5T3B0aW9uczsK
KyAgICAgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChkZWxpdmVyeU9wdGlv
bnMpOwogICAgICAgICB9CiAgICAgfQogfQogCi1IYXNoTWFwPFJlZjxNdXRhdGlvbk9ic2VydmVy
PiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+IE5vZGU6OnJlZ2lzdGVyZWRNdXRhdGlv
bk9ic2VydmVycyhNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSkKK0hhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+
LCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gTm9kZTo6cmVnaXN0ZXJlZE11dGF0aW9u
T2JzZXJ2ZXJzKE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmll
ZE5hbWUqIGF0dHJpYnV0ZU5hbWUpCiB7CiAgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZl
cj4sIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zPiByZXN1bHQ7Ci0gICAgQVNTRVJUKCh0
eXBlID09IE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMgJiYgYXR0cmlidXRlTmFtZSkgfHwg
IWF0dHJpYnV0ZU5hbWUpOworICAgIEFTU0VSVCgodHlwZSA9PSBNdXRhdGlvbk9ic2VydmVyT3B0
aW9uVHlwZTo6QXR0cmlidXRlcyAmJiBhdHRyaWJ1dGVOYW1lKSB8fCAhYXR0cmlidXRlTmFtZSk7
CiAgICAgY29sbGVjdE1hdGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ocmVzdWx0LCBtdXRhdGlv
bk9ic2VydmVyUmVnaXN0cnkoKSwgKnRoaXMsIHR5cGUsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGNv
bGxlY3RNYXRjaGluZ09ic2VydmVyc0Zvck11dGF0aW9uKHJlc3VsdCwgdHJhbnNpZW50TXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJ5KCksICp0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsKICAgICBm
b3IgKE5vZGUqIG5vZGUgPSBwYXJlbnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnRO
b2RlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDFmMzFiOWVhMTFjYmU1ZGEyNTdkOWM5ODkwZDQzYjZm
NTAxZDQxOWMuLmMxZjBiMzUzMjIzNTUyZjJjMGEyYjJjZmZjMWU3ZmM5YjdkNWJkZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAj
aW5jbHVkZSAiU3R5bGVWYWxpZGl0eS5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgpAQCAtNTQs
NiArNTMsOCBAQCBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgSFRNTFF1YWxpZmllZE5hbWU7CiBj
bGFzcyBIVE1MU2xvdEVsZW1lbnQ7CiBjbGFzcyBNYXRoTUxRdWFsaWZpZWROYW1lOworY2xhc3Mg
TXV0YXRpb25PYnNlcnZlcjsKK2NsYXNzIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb247CiBj
bGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOb2RlTGlzdDsKIGNsYXNzIE5vZGVMaXN0c05vZGVE
YXRhOwpAQCAtNjcsNiArNjgsMTAgQEAgY2xhc3MgU1ZHUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNo
YWRvd1Jvb3Q7CiBjbGFzcyBUb3VjaEV2ZW50OwogCitlbnVtIGNsYXNzIE11dGF0aW9uT2JzZXJ2
ZXJPcHRpb25UeXBlIDogdWludDhfdDsKK3VzaW5nIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25zID0g
T3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBlPjsKK3VzaW5nIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zID0gT3B0aW9uU2V0PE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25UeXBl
PjsKKwogdXNpbmcgTm9kZU9yU3RyaW5nID0gc3RkOjp2YXJpYW50PFJlZlB0cjxOb2RlPiwgU3Ry
aW5nPjsKIAogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CkBAIC00OTQsNyArNDk5
LDcgQEAgcHVibGljOgogICAgIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhQ29uY3Vy
cmVudGx5KCkgZmluYWw7CiAgICAgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdldERh
dGEoKSBmaW5hbDsKIAotICAgIEhhc2hNYXA8UmVmPE11dGF0aW9uT2JzZXJ2ZXI+LCBNdXRhdGlv
blJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gcmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzKE11dGF0
aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRl
TmFtZSk7CisgICAgSGFzaE1hcDxSZWY8TXV0YXRpb25PYnNlcnZlcj4sIE11dGF0aW9uUmVjb3Jk
RGVsaXZlcnlPcHRpb25zPiByZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnMoTXV0YXRpb25PYnNl
cnZlck9wdGlvblR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJpYnV0ZU5hbWUpOwogICAg
IHZvaWQgcmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2ZXImLCBNdXRhdGlv
bk9ic2VydmVyT3B0aW9ucywgY29uc3QgSGFzaFNldDxBdG9tU3RyaW5nPiYgYXR0cmlidXRlRmls
dGVyKTsKICAgICB2b2lkIHVucmVnaXN0ZXJNdXRhdGlvbk9ic2VydmVyKE11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJhbnNpZW50TXV0YXRpb25PYnNl
cnZlcihNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDE3NmJjM2I0ODkyMGZlZDA4YTJhYTk1
YWEyYmFlNjY3YWVkZjQyZmQuLjNlMGY3ZTU0MzVlYTM3ZmM2YjlkY2ZiNDFmZTM2MTg1MjVmMmRm
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBA
IC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNo
ZWV0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFMaXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZjA0
OWJkODRiMTJhYWQwY2RhM2VlNzE1ODI2MDk0MzgxZjA5MTI1My4uYzRmMjk1OTk5MzllYzE2ODMy
YzZkZjZjMGNlYzAyMGJjZDQyNTBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgog
I2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkN1cnJlbnRT
Y3JpcHRJbmNyZW1lbnRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1
ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQuaAppbmRleCBiMTA3NjY1OTkzMTBkZjQ1NDYxNzMxZjM0YmIzYzllOWMyOGNlMzNj
Li5hYjI3ODM3Yjk4ODM3OTY0ZThiNjhkMzZkMTBmNzE4OTVkNmE2MGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgKQEAgLTI5LDMw
ICsyOSwzMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uIDogYm9vbCB7IEVuZm9yY2UsIFJlcG9ydCB9
OworCitzdHJ1Y3QgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQgOiBFdmVudEluaXQg
eworICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0KCkgeyB9CisKKyAgICBTdHJp
bmcgZG9jdW1lbnRVUkk7CisgICAgU3RyaW5nIHJlZmVycmVyOworICAgIFN0cmluZyBibG9ja2Vk
VVJJOworICAgIFN0cmluZyB2aW9sYXRlZERpcmVjdGl2ZTsKKyAgICBTdHJpbmcgZWZmZWN0aXZl
RGlyZWN0aXZlOworICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeTsKKyAgICBTdHJpbmcgc291cmNl
RmlsZTsKKyAgICBTdHJpbmcgc2FtcGxlOworICAgIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnREaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiB7IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRE
aXNwb3NpdGlvbjo6RW5mb3JjZSB9OworICAgIHVuc2lnbmVkIHNob3J0IHN0YXR1c0NvZGUgeyAw
IH07CisgICAgdW5zaWduZWQgbGluZU51bWJlciB7IDAgfTsKKyAgICB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIgeyAwIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudEluaXQmKTsKK307CisKIGNsYXNzIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQg
ZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudCk7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBEaXNwb3Np
dGlvbiA6IGJvb2wgeyBFbmZvcmNlLCBSZXBvcnQgfTsKLQotICAgIHN0cnVjdCBJbml0IDogRXZl
bnRJbml0IHsKLSAgICAgICAgSW5pdCgpIHsgfQotCi0gICAgICAgIFN0cmluZyBkb2N1bWVudFVS
STsKLSAgICAgICAgU3RyaW5nIHJlZmVycmVyOwotICAgICAgICBTdHJpbmcgYmxvY2tlZFVSSTsK
LSAgICAgICAgU3RyaW5nIHZpb2xhdGVkRGlyZWN0aXZlOwotICAgICAgICBTdHJpbmcgZWZmZWN0
aXZlRGlyZWN0aXZlOwotICAgICAgICBTdHJpbmcgb3JpZ2luYWxQb2xpY3k7Ci0gICAgICAgIFN0
cmluZyBzb3VyY2VGaWxlOwotICAgICAgICBTdHJpbmcgc2FtcGxlOwotICAgICAgICBEaXNwb3Np
dGlvbiBkaXNwb3NpdGlvbiB7IERpc3Bvc2l0aW9uOjpFbmZvcmNlIH07Ci0gICAgICAgIHVuc2ln
bmVkIHNob3J0IHN0YXR1c0NvZGUgeyAwIH07Ci0gICAgICAgIHVuc2lnbmVkIGxpbmVOdW1iZXIg
eyAwIH07Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbk51bWJlciB7IDAgfTsKLQotICAgICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAg
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIEluaXQmKTsKLSAgICB9OworICAgIHVzaW5nIERpc3Bvc2l0aW9u
ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOworICAgIHVzaW5nIElu
aXQgPSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdDsKIAogICAgIHN0YXRpYyBSZWY8
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyID0geyB9LCBJc1RydXN0ZWQgaXNUcnVzdGVkID0g
SXNUcnVzdGVkOjpObykKICAgICB7CkBAIC0xMTEsNyArMTE0LDcgQEAgcHJpdmF0ZToKIH07CiAK
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50SW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxjb25zdCBFdmVudEluaXQmPigqdGhpcyk7CiAg
ICAgZW5jb2RlciA8PCBkb2N1bWVudFVSSTsKQEAgLTEyOSw3ICsxMzIsNyBAQCB2b2lkIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotYm9vbCBTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50OjpJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6SW5pdCYgZXZlbnRJbml0KQorYm9vbCBTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50SW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnRJbml0JiBldmVudEluaXQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzdGF0aWNfY2FzdDxFdmVudEluaXQmPihldmVudEluaXQpKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTY0LDExICsxNjcsMTEgQEAgYm9vbCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50OjpJbml0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VjdXJpdHlQb2xpY3kKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb24+IHsKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bv
c2l0aW9uPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbiwKLSAgICBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6RW5mb3JjZSwKLSAgICBX
ZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpEaXNwb3NpdGlvbjo6UmVwb3J0
CisgICAgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uLAor
ICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjo6RW5m
b3JjZSwKKyAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50RGlzcG9zaXRp
b246OlJlcG9ydAogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDU4ZDc1M2IyM2Q2M2I4NzI5NTkwMDdjNWE3MDk2
NzM5N2M4ODc4NGEuLjk4MDQ0NjBjZGIyYmM1YWI1MTcxNGI0MDRhYjg1YzBjYWZlMjJhMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBA
IC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IGY5NWEzMWM1MzkxMmQw
M2JhZmY0Y2M4NTcwMDJiNWMxY2QzNTk5MzIuLmYzNDAxNDM1OWZmN2NkYmQ4NTdjZmRjZGJiYTli
MjRmMjkxMDFhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0y
OCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3Iu
aCIKICNpbmNsdWRlICJFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAppbmRl
eCA4NDY2NGMzYjc0ODM2NTNhZjA5Zjc5ZWJiNTMzZTc1NGJhNjM4NGExLi45Mjk0NmYzNzMxMzNl
MTEwZGRiMTExZjU4YTkzYzFiMmM3ZjBiNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5j
cHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IDk1MDE5NDBjMDEyNzI0M2M1OWYyNmNlNzg5NTVhMzljMTU1MjBiODQuLjY5MmMwZTFlNzZj
ZTQzYTYzNDliNDM2NzE2Y2ViN2M2MmJhNTc1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgog
I2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvckNs
aWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBj
MmViOGE3YmM0MTMyMmNhOGQyMDg0NDMzYTIzNWZmZTk3YjVlYmJkLi43MTM2OTk1NDkwNWY5ZjJm
MWQ4ZTFjZGUwNjBlNDFkY2FlY2ExNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEu
aCIKICNpbmNsdWRlICJDb2xvckJsZW5kaW5nLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1
ZGUgIkVkaXRvckNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKaW5kZXggODc5MTQyMTZjYWEyYWU3MDVhNWM0ODk5YmRmYTAxNDRjMzY2MDhkZC4uMjI3MmVi
YjMwZGU3OTIxNjM2NmZiMTE5MzY1ODFiOTI1OGJkY2ExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiQnJlYWtC
bG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IGYzODNhZGRkMTliMGNmMDA0NmJhNTM3
Y2IyZDU4YmQ0YTcxMDBlOTQuLjQ2MjM3YWQ2YzFlOTM3MWJkY2FkNzBmY2FmYjBmN2ZlNWRmOGQ1
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9u
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFj
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCiAjaW1wb3J0
ICJDaHJvbWUuaCIKICNpbXBvcnQgIkNocm9tZUNsaWVudC5oIgorI2ltcG9ydCAiRG9jdW1lbnRJ
bmxpbmVzLmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiUmVuZGVyVmlldy5oIgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNWU0MWI0OTI0
MTZhMzk0MGVkNmRlMTMxMmEzMTUzM2VkZDgxNzkzOS4uYmY1NDMyYWYzMTZlNWE3NGFmMmFkMjcz
ZjExNTI2ZTRkYjQ1YjJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcApAQCAtMjMsOSArMjMsMTEgQEAKICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQu
aCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudExvb3Au
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiR0NSZWFjaGFibGVSZWYuaCIK
ICNpbmNsdWRlICJIVE1MU2xvdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3VtbWFyeUVsZW1l
bnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwNjljYzQxNzcwY2M5ZmM1MWI5NTgyMjM1MzI0NjMy
MzMzMjZiN2EzLi4yNDM4ZTkxNzZiMjM5YWRlOGVhMDliYmNlZjgxZGQ1ZGJjNTA1MDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgog
I2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZpbGVJbnB1dFR5cGUuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCA1NmYwYzc5ZDQ1ZDkyNzY5Njk2NzIxMzgwMDUz
ZGYwYjQ5ZTFjN2YxLi43NGZkNDVlNmRiYmI0NTZiNTQ1M2IxZDQwZjM4Y2YwNDY0MGQ3N2E0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0zNCw3ICszNCw3IEBA
CiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRE9NVG9r
ZW5MaXN0LmgiCiAjaW5jbHVkZSAiRGVmYXVsdFJlc291cmNlTG9hZFByaW9yaXR5LmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRl
ICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IDVmMWFiZGZkNmNiMDQyYzE3NTAyMDkyMzdmZTUzZWRhOGMxMWUxZGMuLjAzNjBmNGJjNDgxZDky
YzhmMjY2ZTkzNThjMzMyZDE5ZjI0OTczM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcApAQCAtODUsOCArODUsOCBAQAogI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlh
RGV2aWNlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9E
SW50ZXJ2YWxUcmVlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5o
IgorI2luY2x1ZGUgIlBhZ2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUGljdHVyZUluUGljdHVyZVN1
cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgpAQCAtNzk3Myw3ICs3OTczLDcgQEAgYm9vbCBIVE1M
TWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9u
KFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3JjT2JqZWN0KCkg
JiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Oklz
UGxheWluZ0F1ZGlvKSAmJiBkb2N1bWVudCgpLm1lZGlhU3RhdGUoKS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7Cisg
ICAgICAgIGlmIChoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpICYmIG1lZGlhU3RhdGUoKS5jb250
YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRvY3Vt
ZW50KCkubWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKSB7CiAgICAgICAgICAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVzZSBwbGF5aW5nIGFuIGF1ZGlvIE1lZGlh
U3RyZWFtVHJhY2siKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC03
OTg4LDcgKzc5ODgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFj
a2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBp
ZiAoaGFzTWVkaWFTdHJlYW1TcmNPYmplY3QoKSAmJiBtZWRpYVN0YXRlKCkuY29udGFpbnNBbnko
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmIGRvY3VtZW50KCku
bWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkpIHsKKyAgICAgICAgaWYgKGhhc01lZGlhU3RyZWFtU3Jj
T2JqZWN0KCkgJiYgbWVkaWFTdGF0ZSgpLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlOjpJc1BsYXlpbmdBdWRpbykgJiYgZG9jdW1lbnQoKS5tZWRpYVN0YXRlKCkuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkp
IHsKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBi
ZWNhdXNlIHBsYXlpbmcgYW4gYXVkaW8gTWVkaWFTdHJlYW1UcmFjayIpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTgwNDgsNyArODA0OCw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2NoZWR1bGVVcGRhdGVNZWRpYVN0YXRlKCkKIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIHsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUgPSBtZWRpYVN0YXRlKCk7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKICAgICBpZiAobV9tZWRpYVN0YXRlID09IHN0
YXRlKQogICAgICAgICByZXR1cm47CiAKQEAgLTgwNTksMzEgKzgwNTksMzEgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKCkKIH0KICNlbmRpZgogCi1NZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTdGF0ZSgpIGNvbnN0
CitNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3Rh
dGUoKSBjb25zdAogewogICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZTsKIAogICAgIGJvb2wgaGFz
QWN0aXZlVmlkZW8gPSBpc1ZpZGVvKCkgJiYgaGFzVmlkZW8oKTsKICAgICBib29sIGhhc0F1ZGlv
ID0gdGhpcy0+aGFzQXVkaW8oKTsKICAgICBpZiAoaXNQbGF5aW5nVG9FeHRlcm5hbFRhcmdldCgp
KQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5n
VG9FeHRlcm5hbERldmljZSk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSk7CiAKICNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQogICAgIGlmIChtX2hhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
TGlzdGVuZXJzKSB7Ci0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVyKTsKKyAgICAgICAgc3RhdGUu
YWRkKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUxpc3RlbmVyKTsKICAgICAgICAgaWYgKCFtZWRpYVNlc3Npb24oKS53aXJlbGVzc1ZpZGVvUGxh
eWJhY2tEaXNhYmxlZCgpKQotICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKTsKKyAgICAgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1Rhcmdl
dE1vbml0b3JpbmcpOwogICAgIH0KIAogICAgIGJvb2wgcmVxdWlyZVVzZXJHZXN0dXJlID0gbV9t
ZWRpYVNlc3Npb24gJiYgbWVkaWFTZXNzaW9uKCkuaGFzQmVoYXZpb3JSZXN0cmljdGlvbihNZWRp
YUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0F1dG9wbGF5VG9FeHRlcm5hbERl
dmljZSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX01FVEFEQVRBICYmICFyZXF1aXJl
VXNlckdlc3R1cmUgJiYgIW1fZmFpbGVkVG9QbGF5VG9XaXJlbGVzc1RhcmdldCkKLSAgICAgICAg
c3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1Bs
YXlDYW5kaWRhdGUpOworICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZp
ZGVvIHx8IGhhc0F1ZGlvKQotICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZTo6SGFzQXVkaW9PclZpZGVvKTsKKyAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlOjpIYXNBdWRpb09yVmlkZW8pOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZpZGVvICYm
IGVuZGVkUGxheWJhY2soKSkKLSAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OkRpZFBsYXlUb0VuZCk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6RGlkUGxheVRvRW5kKTsKICNlbmRpZgogCiAgICAgaWYgKCFpc1BsYXlpbmcoKSkK
QEAgLTgwOTcsMTAgKzgwOTcsMTAgQEAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIEhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RhdGUoKSBjb25zdAogICAgIGlzUGxheWluZ0F1ZGlvID0g
aXNQbGF5aW5nQXVkaW8gJiYgIW11dGVkKCk7CiAjZW5kaWYKICAgICBpZiAoaXNQbGF5aW5nQXVk
aW8pCi0gICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdBdWRpbyk7CisgICAgICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nQXVkaW8pOwogCiAgICAgaWYgKGhhc0FjdGl2ZVZpZGVvKQotICAgICAgICBzdGF0ZS5h
ZGQoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pOworICAgICAgICBz
dGF0ZS5hZGQoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1ZpZGVvKTsKIAogICAg
IHJldHVybiBzdGF0ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggMGE4ZGNmNDYwN2Q1N2VjMTUyZGVjZTI3NWQxMDZmM2ZhMGFhMzA4ZC4uMTkwM2RmYWVhZmU0
NzAyMTgwMWYzMGM4MzNlYjVjYmJkMzlhZTZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTUyNyw3ICs1MjcsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgbWF4
QnVmZmVyZWRUaW1lKCkgY29uc3Q7CiAKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3MgbWVkaWFTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBsYXlvdXRT
aXplQ2hhbmdlZCgpOwogICAgIHZvaWQgdmlzaWJpbGl0eURpZENoYW5nZSgpOwpAQCAtMTIxNCw3
ICsxMjE0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0
YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9tZWRpYVN0YXRlOwogICAg
IE1vbm90b25pY1RpbWUgbV9jdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzRXZlbnRGaXJl
ZFRpbWU7CiAgICAgYm9vbCBtX2hhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJz
IHsgZmFsc2UgfTsKICAgICBib29sIG1fZmFpbGVkVG9QbGF5VG9XaXJlbGVzc1RhcmdldCB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGUy
ZjhhNGJmNWQ4Yjg1MWJiOWMxNDIzMWI4MTI4ZWMyNDg4NmI3YzAuLjc5YWQ0ZTIyMDZkYTgwOTQ4
YjJhMGI1NWZlYmIxYmI4NGM4MTY3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVy
LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA5OWE0YmIyZWY3YTYxNDY3NGFj
ZjRmNzlmYTdjM2Q3Y2ZhZjk5NjIwLi4wZTM0ODZkNGY3MTA2Y2M1NzE2N2NhZmE2NzQ4MGQ5NzIx
N2Y4OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWxlbWVudEFuY2VzdG9y
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CmluZGV4IGVhMjk3ZmEyMzE5YmZiODU3ZjVmY2JmMjQ1NjY2YjA5ODM1ZjEwOTIuLmI1ZmYwMmJk
YTU1NGEwMWRhOTNiOTBhZmMwODFjNmViMDg4MGNjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEYXRlSW5wdXRUeXBlLmgiCiAjaW5j
bHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogI2luY2x1ZGUgIkRlY2ltYWwuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50SW5saW5lcy5oIgog
I2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggN2Y2ZDM5ZjNl
Y2UwY2ZmNzU3OTRiZWQ0YWMzNGZlZDMxNjQ3ZjUxNy4uMjkxZWY5YTAyODEwMmYzMmFlYzM2Yzg5
Yzg2YWRiNGVjNzBmZTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMzg1LDcgKzM4NSw3IEBA
IEV4cGVjdGVkPHZvaWQsIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb24+IE1lZGlhRWxlbWVudFNl
c3Npb246OnBsYXliYWNrU3RhdGVDaGFuCiAgICAgaWYgKG1fZWxlbWVudC5oYXNNZWRpYVN0cmVh
bVNyY09iamVjdCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVudC5pc0NhcHR1cmluZygpKQogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKGRvY3VtZW50Lm1lZGlhU3RhdGUoKSAm
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKQorICAgICAgICBpZiAo
ZG9jdW1lbnQubWVkaWFTdGF0ZSgpICYgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWlu
Z0F1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAjZW5kaWYKQEAgLTQwMCw3
ICs0MDAsNyBAQCBFeHBlY3RlZDx2b2lkLCBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1N0YXRlQ2hhbgogICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCk7
CiAgICAgfQogCi0gICAgaWYgKHRvcERvY3VtZW50Lm1lZGlhU3RhdGUoKSAmIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc1VzZXJJbnRlcmFjdGVkV2l0aE1lZGlhRWxlbWVudCAmJiB0b3BE
b2N1bWVudC5xdWlya3MoKS5uZWVkc1BlckRvY3VtZW50QXV0b3BsYXlCZWhhdmlvcigpKQorICAg
IGlmICh0b3BEb2N1bWVudC5tZWRpYVN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6
SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50ICYmIHRvcERvY3VtZW50LnF1aXJrcygp
Lm5lZWRzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yKCkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBpZiAodG9wRG9jdW1lbnQuaGFzSGFkVXNlckludGVyYWN0aW9uKCkgJiYgZG9jdW1l
bnQucXVpcmtzKCkuc2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSgpKQpAQCAt
ODA5LDcgKzgwOSw3IEBAIHZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tUYXJnZXRQ
aWNrZXJXYXNEaXNtaXNzZWQoKQogICAgIGNsaWVudCgpLnBsYXliYWNrVGFyZ2V0UGlja2VyV2Fz
RGlzbWlzc2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWVkaWFTdGF0ZURp
ZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIE1lZGlh
RWxlbWVudFNlc3Npb246Om1lZGlhU3RhdGVEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5wbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKCp0aGlzLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCmluZGV4IGRmNjE1MTBjZWM2NTAxMGMyZDZi
ZTVlNGEwYjMwOWY3MDI1MjM0NTUuLmY1YmViZDI4ZGVmODg5YWUwMmEwMDZhYmRlNjkwMDc1YzQx
NTA1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCkBAIC05
NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG1lZGlhU3RhdGVEaWRDaGFu
Z2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIG1lZGlhU3RhdGVE
aWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CiAjZW5kaWYKIAogICAgIGJv
b2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBlYzQ3MDgxZjE3MmUyMzE4NDRkOGQwMGMz
ZTc0MTI2NmIyNjY4ZTliLi43MDEzMTEyZjU1YWE5M2E1NWI5MjhmN2Y5ZTZlZGIyYjgzYmU0MzNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRlY2ltYWwuaCIKKyNp
bmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCmluZGV4IDI5MjAyYTExNTY5ODBhNDg2YWFiOTY1MzBiNTViNTVhNDUwNTMxODcuLjhl
NjVjNGViMTAyMzM1MjFmNDhjN2Y0YjEyMGFkMmM4OTA5YTA3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRm9ybURhdGEu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA5ZThkZjJlY2IwMTA0ODM2MWIy
NDRmODUwZjliY2VjOTlhNTE5ZTE5Li42ZDMxYzgxZmRlMTI4MGQyNDUzOWI5YzlmYjJlMDI4OTdj
YWIzOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgIkRPTUV4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgIkRPTVBhdGNoU3VwcG9ydC5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCAzNzQ2ODQzMjU3N2Y2NGUzZDE4
YmMzNjY3Y2EyOThmNDNhM2JmNTAzLi44NGIxNjM3MDE0ZWY1NmRhZThiY2VmMGQ3MjQ5NTYyZDIw
ZDBkZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAi
Q2VydGlmaWNhdGVTdW1tYXJ5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJE
b2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCmluZGV4IDk0
NjQ3NGI1ODU4MTkzYjBiMzA2YzkyZTFmNWIyZThiYzFmYWM5YmMuLjU4YzdiYjc5Mzg4YWM2ZjAz
ZjJjODIwZDg5NjhmYTRhMzUyMWZmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbk9wZW5lclBvbGljeS5oCkBAIC0yNSwxNSArMjUsMTYgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBGcmFtZTsKIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU2VjdXJp
dHlPcmlnaW47CiAKIHN0cnVjdCBOYXZpZ2F0aW9uUmVxdWVzdGVyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBiZjE0Y2VhNGMwNjhiZDcyNDJkNTRhOTgz
MDNjMTdiMWJkZmMxMzIwLi44Yjk5ODZhN2Q4OTVjNDIyYzU3YWJjMGI4NDljNzgzODE4MjEwZDFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTIzOTgsNyAr
MjM5OCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoVVJM
JiYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwCiAgICAgUGluZ0xvYWRlcjo6c2VuZFZp
b2xhdGlvblJlcG9ydCgqbV9mcmFtZSwgV1RGTW92ZShyZXBvcnRVUkwpLCBXVEZNb3ZlKHJlcG9y
dCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKLXZv
aWQgRG9jdW1lbnRMb2FkZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIERvY3Vt
ZW50TG9hZGVyOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5lbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXVEZNb3ZlKGV2ZW50
SW5pdCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA5ZmM0
MTM3YTY5MDBlMjRhMWE4MmNlYzdjYzc1NzkzZDM0N2U5ODEyLi40ZmJmZDcxMjAxOTlkMjdjZmE4
N2JkZDU5NjczNzEwNmJjZTA4ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaApAQCAtNTIyLDcgKzUyMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ29udGVudFNlY3VyaXR5
UG9saWN5Q2xpZW50CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZENT
UFZpb2xhdGlvblJlcG9ydChVUkwmJiwgUmVmPEZvcm1EYXRhPiYmKSBmaW5hbDsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50SW5pdCYmKSBmaW5hbDsKIAogICAgIGJvb2wgZGlzYWxsb3dXZWJBcmNo
aXZlKCkgY29uc3Q7CiAgICAgYm9vbCBkaXNhbGxvd0RhdGFSZXF1ZXN0KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCA4OTA5NWZlM2RlNzMyODhl
MjczMWMxMmFmM2QyNjE2OGY3Y2MzNTMwLi40MzJiZDEyYjMyY2U4YzBmNzRiMjBmMTFmM2YyODll
OGRlN2M3MWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNs
dWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNjgzZjg0YzI1NDE1ZDNlYzM0NjdlMDgxMDhi
ODEzZjVhNzFhODIzOS4uYWU5MmFkZDg3NTYwNTFkMDU2YTIzMDJkZGNiYzQ4OWIxMGU3NDg0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0zNCw3ICszNCw3
IEBACiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01G
b3JtRGF0YS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkZvcm1EYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBhMjQ2M2NhOTdiMWVkYTYyZWQ5OTVlYzJkZmNiODRmOGFiMGI4ZmUxLi4wZDdlMmY1ZWY3
ZmYwYjUzZTk5Y2JjMjg5ZTAwNGVjNTk5ZTc2MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRpYWdu
b3N0aWNMb2dnaW5nS2V5cy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDEwN2YzMjQ2
NGNkMWQzYmI5MjNjMmE5Zjc1MzBkYWZlYjViMTc4ZTkuLjM2ZWUzMjc1ZDY5MjA3ZTQ1MDIxNjJm
MGFiYWViODhlNThlYmM3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTAsNyArNTAsNyBAQAogI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNGNmY2IxNjgxZjE3MzA5YWM0YTdmYzBiMjE5YWNl
Zjk1OTU3Yjc5ZC4uY2NiZGZhNDk2M2U0MDM5NmM3OWVhOTYzOWNiNWEwNzliNGYzZWQyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01MDMsNyArNTAzLDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25z
dCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lk
IGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykg
eyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRvcGxheUV2
ZW50KEF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxBdXRvcGxheUV2ZW50RmxhZ3M+KSB7IH0KIAog
I2lmIEVOQUJMRShXRUJfQ1JZUFRPKQpAQCAtNTM0LDcgKzUzNCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllcikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJh
Y2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UG9pbnQmLCBib29sIC8q
aXNWaWRlbyovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9v
bCkgIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
clN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3Rh
dGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRp
c21pc3NQb3B1cCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGUw
MDVjZWRmZmNkZWMxZGFkOTFhZmZlODZlZWFiMjJkMzgzNWQ5OTAuLjdmOWQ4ZWM0NTRjMDM1ZjIw
MjU5Y2U4OTgyNGM2NTdmNWFmMWUyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDb21wb3NlZFRyZWVBbmNlc3Rvckl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVlSXRlcmF0b3IuaCIKICNpbmNsdWRlICJDdXJz
b3JMaXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJEcmFnRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApp
bmRleCBiZTc2ZTFiZDI3NzU1MTMxZDA4MzE2ZjJkM2JlOTliY2NhNjhkYzFmLi5hMTFhM2IzNDhh
YmEzOTlmNjQ4NzZkZTQ5NjkyMWRmZThmMGQ2NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4YzQzNzdjYjk1NGEwYjFhMDg5ZTUyZWZhZDhh
NDFkOTEwNThhOGY3Li5mZDMzMzY4YWQyMWRjNTU5Njc0YjNhN2E2OGQyMzM0Y2U0ZjEzMzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxp
bmUuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWRhMzAwNDI4NTcxMTA5NWQyMWUx
OTBjM2M2OTUxMjE4ODI1NWVlMS4uMWExODk3NzRjNzAwYTlmOTJlZGYzNzJiMTVlZjc5MjAxNzcy
ZWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCiAjaW5j
bHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFNWRy5oIgpAQCAtMjA4OCw3ICsy
MDg5LDcgQEAgYm9vbCBGcmFtZVZpZXc6OnVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLU9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBGcmFtZVZp
ZXc6OnN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3QKK09wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gRnJhbWVWaWV3OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKERB
UktfTU9ERV9DU1MpCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyZXJGb3JDb2xvclNj
aGVtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggYWM5MTI2NTlhMTY0YjI0OTgzOTJj
YWFkOTdjNWE1ZGYwMmFiYmRlMS4uZjQ0YTNmMmU5ZDliNzNiYjg3ZTJhY2ZhYjVjZWFjZjYzYzBj
MzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01NDIsNyArNTQyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgc2hvdWxkU2V0Q3Vyc29yKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKCkgY29uc3Q7CisgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OwogCiAgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIHBsdWdpbiBsb2FkaW5nIGlzIGRlY291
cGxlZCBmcm9tIGxheW91dC4KICAgICB2b2lkIGZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNr
cygpOwpAQCAtOTYxLDcgKzk2MSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNUcmFuc3Bh
cmVudCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCi0gICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG1fc3R5bGVDb2xvck9wdGlvbnM7CisgICAgT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPiBtX3N0eWxlQ29sb3JPcHRpb25zOwogI2VuZGlmCiAKICAgICBi
b29sIG1faXNUcmFja2luZ1JlcGFpbnRzIHsgZmFsc2UgfTsgLy8gVXNlZCBmb3IgdGVzdGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggODBhZDVhZWVmYWRmOWVjYjgzNmI5
MTIzYzM4YzU0MGU2ZjRjMTUxNy4uNGUxOWU4Y2Q3MWE2NTI5Zjk4YWY2NDgyZTZjYTVhMDUyYjFm
NzM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTMxLDMyICszMSw1MiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGUgOiB1aW50MzJfdCB7CisgICAgSXNQbGF5aW5nQXVkaW8gPSAxIDw8IDAsCisgICAgSXNQ
bGF5aW5nVmlkZW8gPSAxIDw8IDEsCisgICAgSXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSA9IDEg
PDwgMiwKKyAgICBSZXF1aXJlc1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZyA9IDEgPDwgMywKKyAg
ICBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlID0gMSA8PCA0LAorICAgIERpZFBsYXlU
b0VuZCA9IDEgPDwgNSwKKyAgICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2LAorICAg
IElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCisgICAgSXNQcmV2aW91c1RyYWNr
Q29udHJvbEVuYWJsZWQgPSAxIDw8IDgsCisgICAgSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lciA9IDEgPDwgOSwKKyAgICBIYXNBdWRpb09yVmlkZW8gPSAxIDw8IDEwLAorICAg
IEhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSA9IDEgPDwgMTEsCisgICAgSGFzQWN0aXZlVmlk
ZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwKKyAgICBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSA9IDEgPDwgMTMsCisgICAgSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgPSAxIDw8IDE0LAor
ICAgIEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxNSwKKyAgICBIYXNJ
bnRlcnJ1cHRlZFZpZGVvQ2FwdHVyZURldmljZSA9IDEgPDwgMTYsCisgICAgSGFzVXNlckludGVy
YWN0ZWRXaXRoTWVkaWFFbGVtZW50ID0gMSA8PCAxNywKKyAgICBIYXNBY3RpdmVEaXNwbGF5Q2Fw
dHVyZURldmljZSA9IDEgPDwgMTgsCisgICAgSGFzTXV0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9
IDEgPDwgMTksCisgICAgSGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwg
MjAsCit9OwordXNpbmcgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT47CisKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQgOiB1aW50OF90IHsKKyAgICBBdWRpbywKKyAgICBWaWRlbywKKyAgICBBdWRp
b1ZpZGVvCit9OworCitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlIDogdWludDhf
dCB7CisgICAgQXVkaW9Jc011dGVkID0gMSA8PCAwLAorICAgIEF1ZGlvQ2FwdHVyZUlzTXV0ZWQg
PSAxIDw8IDEsCisgICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMiwKKyAgICBTY3JlZW5D
YXB0dXJlSXNNdXRlZCA9IDEgPDwgMywKK307Cit1c2luZyBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPjsKKwogY2xhc3MgTWVk
aWFQcm9kdWNlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVByb2R1Y2VyPiB7CiBwdWJs
aWM6Ci0gICAgZW51bSBjbGFzcyBNZWRpYVN0YXRlIHsKLSAgICAgICAgSXNQbGF5aW5nQXVkaW8g
PSAxIDw8IDAsCi0gICAgICAgIElzUGxheWluZ1ZpZGVvID0gMSA8PCAxLAotICAgICAgICBJc1Bs
YXlpbmdUb0V4dGVybmFsRGV2aWNlID0gMSA8PCAyLAotICAgICAgICBSZXF1aXJlc1BsYXliYWNr
VGFyZ2V0TW9uaXRvcmluZyA9IDEgPDwgMywKLSAgICAgICAgRXh0ZXJuYWxEZXZpY2VBdXRvUGxh
eUNhbmRpZGF0ZSA9IDEgPDwgNCwKLSAgICAgICAgRGlkUGxheVRvRW5kID0gMSA8PCA1LAotICAg
ICAgICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2LAotICAgICAgICBJc05leHRUcmFj
a0NvbnRyb2xFbmFibGVkID0gMSA8PCA3LAotICAgICAgICBJc1ByZXZpb3VzVHJhY2tDb250cm9s
RW5hYmxlZCA9IDEgPDwgOCwKLSAgICAgICAgSGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlM
aXN0ZW5lciA9IDEgPDwgOSwKLSAgICAgICAgSGFzQXVkaW9PclZpZGVvID0gMSA8PCAxMCwKLSAg
ICAgICAgSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMSwKLSAgICAgICAgSGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlID0gMSA8PCAxMiwKLSAgICAgICAgSGFzTXV0ZWRBdWRp
b0NhcHR1cmVEZXZpY2UgPSAxIDw8IDEzLAotICAgICAgICBIYXNNdXRlZFZpZGVvQ2FwdHVyZURl
dmljZSA9IDEgPDwgMTQsCi0gICAgICAgIEhhc0ludGVycnVwdGVkQXVkaW9DYXB0dXJlRGV2aWNl
ID0gMSA8PCAxNSwKLSAgICAgICAgSGFzSW50ZXJydXB0ZWRWaWRlb0NhcHR1cmVEZXZpY2UgPSAx
IDw8IDE2LAotICAgICAgICBIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgPSAxIDw8
IDE3LAotICAgICAgICBIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSA9IDEgPDwgMTgsCi0g
ICAgICAgIEhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UgPSAxIDw8IDE5LAotICAgICAgICBI
YXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlID0gMSA8PCAyMCwKLSAgICB9OwotICAg
IHVzaW5nIE1lZGlhU3RhdGVGbGFncyA9IE9wdGlvblNldDxNZWRpYVN0YXRlPjsKKyAgICB1c2lu
ZyBNZWRpYVN0YXRlID0gTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU7CisgICAgdXNpbmcgTXV0ZWRT
dGF0ZSA9IE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOworICAgIHVzaW5nIE1lZGlhU3RhdGVGbGFn
cyA9IE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3M7CisgICAgdXNpbmcgTXV0ZWRTdGF0ZUZs
YWdzID0gTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFnczsKKwogICAgIHN0YXRpYyBjb25zdGV4
cHIgTWVkaWFTdGF0ZUZsYWdzIElzTm90UGxheWluZyA9IHsgfTsKICAgICBzdGF0aWMgY29uc3Rl
eHByIE1lZGlhU3RhdGVGbGFncyBBdWRpb0NhcHR1cmVNYXNrID0geyBNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJl
RGV2aWNlLCBNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlvQ2FwdHVyZURldmljZSB9Owog
ICAgIHN0YXRpYyBjb25zdGV4cHIgTWVkaWFTdGF0ZUZsYWdzIFZpZGVvQ2FwdHVyZU1hc2sgPSB7
IE1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSwgTWVkaWFTdGF0ZTo6SGFz
TXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsIE1lZGlhU3RhdGU6Okhhc0ludGVycnVwdGVkVmlkZW9D
YXB0dXJlRGV2aWNlIH07CkBAIC02OSwyMCArODksNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IE1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3QgPSAwOwogCi0gICAgZW51bSBjbGFz
cyBNZWRpYUNhcHR1cmVLaW5kIHsKLSAgICAgICAgQXVkaW8sCi0gICAgICAgIFZpZGVvLAotICAg
ICAgICBBdWRpb1ZpZGVvCi0gICAgfTsKLQotICAgIGVudW0gY2xhc3MgTXV0ZWRTdGF0ZSB7Ci0g
ICAgICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKLSAgICAgICAgQXVkaW9DYXB0dXJlSXNNdXRl
ZCA9IDEgPDwgMSwKLSAgICAgICAgVmlkZW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMiwKLSAgICAg
ICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDMsCi0gICAgfTsKLQotICAgIHVzaW5nIE11
dGVkU3RhdGVGbGFncyA9IE9wdGlvblNldDxNdXRlZFN0YXRlPjsKICAgICBzdGF0aWMgY29uc3Rl
eHByIE11dGVkU3RhdGVGbGFncyBBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQgPSB7IE11dGVk
U3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQsIE11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0
ZWQgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE11dGVkU3RhdGVGbGFncyBNZWRpYVN0cmVhbUNh
cHR1cmVJc011dGVkID0geyBNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0
YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkLCBNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRl
ZCB9OwogCkBAIC05Niw0OSArMTAyLDQ5IEBAIHByb3RlY3RlZDoKIAogbmFtZXNwYWNlIFdURiB7
CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZD4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZD4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6
QXVkaW9WaWRlbworICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2lu
ZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6VmlkZW8s
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1Zp
ZGVvCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZT4gewogICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGUs
Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlp
bmdWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQ
bGF5aW5nVG9FeHRlcm5hbERldmljZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6UmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsCi0gICAgICAgIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlD
YW5kaWRhdGUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkRp
ZFBsYXlUb0VuZCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6
SXNTb3VyY2VFbGVtZW50UGxheWluZywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwKLSAgICAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQs
Ci0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbywKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhh
c011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSwKLSAgICAgICAgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWRBdWRpb0NhcHR1cmVE
ZXZpY2UsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0lu
dGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQsCi0gICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZURpc3BsYXlD
YXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZERpc3BsYXlDYXB0dXJlRGV2aWNlCisg
ICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlLAorICAgICAgICBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8sCisgICAgICAgIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdWaWRlbywKKyAgICAgICAgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2Us
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpSZXF1aXJlc1BsYXli
YWNrVGFyZ2V0TW9uaXRvcmluZywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6OkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQsCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nLAorICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNOZXh0VHJhY2tDb250cm9sRW5h
YmxlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUHJldmlv
dXNUcmFja0NvbnRyb2xFbmFibGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFTdGF0ZTo6SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lciwKKyAgICAgICAg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbywKKyAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVy
ZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0Fj
dGl2ZVZpZGVvQ2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1l
ZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UsCisgICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNJbnRlcnJ1cHRlZEF1ZGlv
Q2FwdHVyZURldmljZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
Okhhc0ludGVycnVwdGVkVmlkZW9DYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50LAor
ICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxh
eUNhcHR1cmVEZXZpY2UsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzSW50ZXJydXB0ZWREaXNwbGF5Q2FwdHVyZURldmljZQogICAg
ID47CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGU+IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlLAotICAgICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQsCi0gICAg
ICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0
ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OlZpZGVvQ2Fw
dHVyZUlzTXV0ZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6
OlNjcmVlbkNhcHR1cmVJc011dGVkCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9J
c011dGVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9D
YXB0dXJlSXNNdXRlZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6
OlZpZGVvQ2FwdHVyZUlzTXV0ZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRl
ZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNNdXRlZAogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAppbmRleCBkN2JiYzRjYmQ2ODAzNzVjNGVhOTg1ZTI2ZTdhYmRjYmIwYzZlMGFmLi4xZGU5MWRj
N2U4ZjVlYjhlZDBkNmI2NmNiNDA2ODUzZjI4ZTQ4NGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAg
LTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFn
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
QEAgLTIxNzMsNyArMjE3NCw3IEBAIHZvaWQgUGFnZTo6c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFu
Z2VkKCkKIAogdm9pZCBQYWdlOjp1cGRhdGVJc1BsYXlpbmdNZWRpYSgpCiB7Ci0gICAgTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlOworICAgIE1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yRWFjaERvY3VtZW50KFsmXShhdXRvJiBkb2N1bWVudCkg
ewogICAgICAgICBzdGF0ZS5hZGQoZG9jdW1lbnQubWVkaWFTdGF0ZSgpKTsKICAgICB9KTsKQEAg
LTIyMTEsNyArMjIxMiw3IEBAIHZvaWQgUGFnZTo6cGxheWJhY2tDb250cm9sc01lZGlhRW5naW5l
Q2hhbmdlZCgpCiAKICNlbmRpZgogCi12b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKK3ZvaWQgUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNl
ck11dGVkU3RhdGVGbGFncyBtdXRlZCkKIHsKICAgICBtX211dGVkU3RhdGUgPSBtdXRlZDsKIApA
QCAtMjIyMCw3ICsyMjIxLDcgQEAgdm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCiAgICAgfSk7CiB9CiAKLXZvaWQgUGFnZTo6c3RvcE1lZGlh
Q2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCit2b2lkIFBhZ2U6
OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsK
ICAgICBVTlVTRURfUEFSQU0oa2luZCk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTMw
MjEsNyArMzAyMiw3IEBAIHZvaWQgUGFnZTo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4CiAjZW5kaWYKIH0KIAotdm9p
ZCBQYWdlOjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFBhZ2U6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xp
ZW50U3RhdGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgY2hy
b21lKCkuY2xpZW50KCkucGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShj
b250ZXh0SWQsIHN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNjgzNzE1YTBlYmYwYzRmOWJi
OTQyM2VkMjc5NzY4NzJlMGJjNjMwMC4uZWM3NzExZmUzYmRkNzlmN2VhYjAzMzBmMWJlM2JlMGRj
YWMwOWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3Nyw2ICsxNzcsMTIgQEAgZW51bSBjbGFzcyBD
YW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFJv
dXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
IDogdWludDMyX3Q7CitlbnVtIGNsYXNzIE1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIDog
dWludDhfdDsKK2VudW0gY2xhc3MgTWVkaWFQcm9kdWNlck11dGVkU3RhdGUgOiB1aW50OF90Owor
Cit1c2luZyBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzID0gT3B0aW9uU2V0PE1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlPjsKK3VzaW5nIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgPSBP
cHRpb25TZXQ8TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+OwogCiBlbnVtIGNsYXNzIEV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUsIFVucmVzcG9uc2l2ZSB9OwogZW51
bSBjbGFzcyBNYWluRnJhbWVNYWluUmVzb3VyY2UgOiBib29sIHsgTm8sIFllcyB9OwpAQCAtNzMx
LDE4ICs3MzcsMTggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Vzc2lv
bklEKFBBTDo6U2Vzc2lvbklEKTsKICAgICBib29sIHVzZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29u
c3QgeyByZXR1cm4gbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsgfQogCi0gICAgTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGU7IH0KKyAgICBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KICAgICB2b2lkIHVwZGF0ZUlzUGxheWluZ01l
ZGlhKCk7Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KLSAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlOjpBdWRpb0lzTXV0ZWQpOyB9Ci0gICAgYm9vbCBpc01lZGlhQ2FwdHVyZU11dGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOyB9OworICAgIE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxh
Z3MgbXV0ZWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQorICAgIGlubGlu
ZSBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0OworICAgIGlubGluZSBib29sIGlzTWVkaWFDYXB0
dXJlTXV0ZWQoKSBjb25zdDsKICAgICB2b2lkIHNjaGVkdWxlUGxheWJhY2tDb250cm9sc01hbmFn
ZXJVcGRhdGUoKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdm9pZCBwbGF5YmFja0NvbnRyb2xz
TWVkaWFFbmdpbmVDaGFuZ2VkKCk7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRNdXRlZChNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVLaW5kKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVk
aWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAgTWVkaWFTZXNzaW9uR3JvdXBJZGVu
dGlmaWVyIG1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllcigpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgbWVkaWFQbGF5YmFja0V4aXN0cygpOwpAQCAtNzY1LDcgKzc3MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAg
ICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciwgY29uc3QgSW50UG9pbnQmLCBib29sLCBSb3V0ZVNoYXJpbmdQb2xpY3ks
IGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0
ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVy
LCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29u
c3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQ
b3B1cCgpOwpAQCAtOTk4LDcgKzEwMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbkxvd1F1
YWxpdHlJbnRlcnBvbGF0aW9uTW9kZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FyZU1lbW9yeUNh
Y2hlQ2xpZW50Q2FsbHNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGZsb2F0IG1fbWVkaWFWb2x1bWUg
eyAxIH07Ci0gICAgTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsK
KyAgICBNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG1fbXV0ZWRTdGF0ZTsKIAogICAgIGZs
b2F0IG1fcGFnZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIGZsb2F0IG1fem9vbWVkT3V0UGFnZVNj
YWxlRmFjdG9yIHsgMCB9OwpAQCAtMTEyMiw3ICsxMTI4LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNDbG9zaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNSZXN0b3JpbmdDYWNoZWRQYWdl
IHsgZmFsc2UgfTsKIAotICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlh
U3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGU7CiAK
ICNpZiBFTkFCTEUoVklERU8pCiAgICAgVGltZXIgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlclVw
ZGF0ZVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5lcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSW5saW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkYTkyMjYz
YTcyMzI4MzY1N2RlZjM5YTM4NTFlMjBkNjU2ZDA3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VJbmxpbmVzLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbmxpbmUgYm9vbCBQYWdlOjppc0F1
ZGlvTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211dGVkU3RhdGUuY29udGFpbnMoTWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCk7Cit9CisKK2lubGluZSBib29sIFBh
Z2U6OmlzTWVkaWFDYXB0dXJlTXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211dGVkU3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggNzYzZmY2
NGJmNGU3ZTllMGZlNDZlMTNmOGQ4MTMxNmQ4ZTNmYWE2Yy4uMWExMjEwZmE4MzM3Y2Q5NTIwZjRl
MDExYTkwNzM2NzU0ZGU1MThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVk
ZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkVsZW1l
bnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25l
ckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCmluZGV4IGRmYWMxZDFmM2NlMzkzMmQyNzhiOGRjMjI1Y2Q1M2FiYjQwMzcw
ZmUuLmQ4ODUxNjc0N2E0NGQ2YWRhNGVhZDBjNjk5MGU3M2I5MTQyYjFhMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMzYs
NyArMzYsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCIKICNpbmNsdWRlICJET01T
dHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjCiAgICAgdW5zaWduZWQgc2hvcnQgaHR0cFN0YXR1c0NvZGUgPSBtX3Nl
bGZTb3VyY2VQcm90b2NvbCA9PSAiaHR0cCIgPyBtX2h0dHBTdGF0dXNDb2RlIDogMDsKIAogICAg
IC8vIDEuIERpc3BhdGNoIHZpb2xhdGlvbiBldmVudC4KLSAgICBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50OjpJbml0IHZpb2xhdGlvbkV2ZW50SW5pdDsKKyAgICBTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50SW5pdCB2aW9sYXRpb25FdmVudEluaXQ7CiAgICAgdmlvbGF0aW9uRXZlbnRJ
bml0LmRvY3VtZW50VVJJID0gaW5mby5kb2N1bWVudFVSSTsKICAgICB2aW9sYXRpb25FdmVudElu
aXQucmVmZXJyZXIgPSBtX3JlZmVycmVyOwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5ibG9ja2Vk
VVJJID0gYmxvY2tlZFVSSTsKQEAgLTc5MSw3ICs3OTEsNyBAQCB2b2lkIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWRE
aXJlYwogICAgIHZpb2xhdGlvbkV2ZW50SW5pdC5lZmZlY3RpdmVEaXJlY3RpdmUgPSBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjdGl2ZTsKICAgICB2aW9sYXRpb25FdmVudEluaXQub3JpZ2luYWxQb2xp
Y3kgPSB2aW9sYXRlZERpcmVjdGl2ZUxpc3QuaGVhZGVyKCk7CiAgICAgdmlvbGF0aW9uRXZlbnRJ
bml0LnNvdXJjZUZpbGUgPSBpbmZvLnNvdXJjZUZpbGU7Ci0gICAgdmlvbGF0aW9uRXZlbnRJbml0
LmRpc3Bvc2l0aW9uID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LmlzUmVwb3J0T25seSgpID8gU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6RGlzcG9zaXRpb246OlJlcG9ydCA6IFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkRpc3Bvc2l0aW9uOjpFbmZvcmNlOworICAgIHZpb2xhdGlv
bkV2ZW50SW5pdC5kaXNwb3NpdGlvbiA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5pc1JlcG9ydE9u
bHkoKSA/IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnREaXNwb3NpdGlvbjo6UmVwb3J0IDog
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudERpc3Bvc2l0aW9uOjpFbmZvcmNlOwogICAgIHZp
b2xhdGlvbkV2ZW50SW5pdC5zdGF0dXNDb2RlID0gaHR0cFN0YXR1c0NvZGU7CiAgICAgdmlvbGF0
aW9uRXZlbnRJbml0LmxpbmVOdW1iZXIgPSAgaW5mby5saW5lTnVtYmVyOwogICAgIHZpb2xhdGlv
bkV2ZW50SW5pdC5jb2x1bW5OdW1iZXIgPSBpbmZvLmNvbHVtbk51bWJlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgKaW5k
ZXggOGUwNTE4MjY0MTQwNmYyY2M4Y2FhMmRjNTZhZTMzNjA2MzRlNmIxZS4uZjJmZTYzODk0NjQ5
NmVkYmIzMDM4NDUzOThmZjllNzM5N2MzNGJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgKQEAgLTUxLDcgKzUxLDcg
QEAgc3RydWN0IFdFQkNPUkVfRVhQT1JUIENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudCB7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0g
MCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVSTCYmLCBS
ZWY8Rm9ybURhdGE+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
KFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpID0gMDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAppbmRleCA3MmU0ZjY5MWI0Zjk1MjU3NWQ5MzExZTRkMGE3ZGUxN2NmZjAy
MzY4Li5kMGE0ZmU0YTIwZTBhZThkMjdkZTNkNGI5ZWU2OWU1MDdhNWEwZWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zMCw3
ICszMCw2IEBACiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkRlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5ncy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxlZ2FjeUNE
TVNlc3Npb24uaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1l
UmFuZ2VzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCmluZGV4IDUwMGZkYjBmZGNjYzNlMzE5YmNkNjFhZTIzYjRkZWVlMDVkYTlhNWYu
LmExNDg4N2ZjNzc1ZTJiOTdiNjlmOWM1OTVhZTgyNzBhYWQ3MTFjODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9EYXRhTXV0ZXguaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
ZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5l
TGF5b3V0LmNwcAppbmRleCAxM2JhMTVkN2EyY2VhMTc5OTg1YWExZjdhMGQ1MzNlOWNkNDc4ZjRj
Li43MWZiMjIzNWFkZWE3YTdmMjQ1MTZmNDIxOGJkYTg5NTI3YWQ1MmEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkJpZGlSZXNvbHZlci5oIgog
I2luY2x1ZGUgIkJyZWFraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5o
IgogI2luY2x1ZGUgIkZsb2F0aW5nT2JqZWN0cy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckJveC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDRkOWYyYzcxOWViYzQ5YWRkYjJiYmViZmVlYzQx
YWUxYmNkY2VlZS4uZjE0NDk4MTQ1NmZmZjg4NDFjZGIxNDg1Y2JlNjVmYzQ4YjI2OTZmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yNSw3ICsyNSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
LSNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudFJl
Z2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4
IDgzYTBlYzM5YjQ5YmUzNTk0NmZkZDkxOTRmN2VhYjQyNzc4MzczZDkuLjI3ZjlkNGUzMzg2OTM4
ZmEzYWY4YjBhOGE2YTAxOTNiYzRhMGQ0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCiAjaW5jbHVkZSAiQ3Vyc29y
TGlzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
VGltZWxpbmUuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
aW5kZXggMDAwMmNhNzcyZDQ1OWU5Mjc4MGM5MDAwNTU0MzgwNzI4ZmUzZjY2Mi4uNGU4OWMyZTgw
Yjc4MDE0MDdkOGVlYTBhZTA2YzM0OTY2NjEyNTAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2Uu
aCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDY3ZGY2MTg0
MjNiZTFjNTg2YzMyOGNkNjQzMTNkYjU2ZWQ3Y2UzOGIuLmNhYjYzZjViMTRjZTVlYjg3ZWU0ZDg3
YTgwYjM4NjVkZmI2ZTliMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGlu
ZXMuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5jcHAKaW5kZXggMTdkZjk0ZWM0MGNjMmUxOTY0ZDA1Y2EyODMzMGQ5MDEyOTBl
MjA5MS4uMTAyYzRlZTE2YzBkMWFkNGQ4MTU3ZjgxYmU0NjY2YmY0M2QxNjgzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ29sb3JCbGVuZGluZy5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5k
ZXggY2I2Y2VlMjZmNWQyMmM5OGQ1YjFmNDQ0ODZkNGFkMmMwZjAwNDlmNi4uMjZjYWJjODc4MDhi
N2UxNTI2YThjNjQzNDNhODNkMmE2OTkwNGMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRWxlbWVudEFuY2VzdG9y
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKQEAgLTE3OTUsNyArMTc5Niw3IEBA
IGJvb2wgUmVuZGVyT2JqZWN0Ojp1c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGRvY3VtZW50KCkudXNlRGFya0FwcGVhcmFuY2UoJnN0eWxlKCkpOwogfQogCi1PcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4gUmVuZGVyT2JqZWN0OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNv
bnN0CitPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IFJlbmRlck9iamVjdDo6c3R5bGVDb2xv
ck9wdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBkb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRp
b25zKCZzdHlsZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApp
bmRleCAxMjYwMDA0ZjVjMmY3ZTFkZDAyYjI0MDg1NWQyMTU4NTViZjZiMzNiLi5jNTM0YzlmZGQw
NWQ1ODQ3MGZhN2U2NjE0ODZhNmFlYWNjZDY2OGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHVibGljOgogICAgIFJlbmRlckZy
YWdtZW50ZWRGbG93KiBlbmNsb3NpbmdGcmFnbWVudGVkRmxvdygpIGNvbnN0OwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0OwotICAgIE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0OworICAgIE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKIAog
I2lmIEFTU0VSVF9FTkFCTEVECiAgICAgdm9pZCBzZXRIYXNBWE9iamVjdChib29sIGZsYWcpIHsg
bV9oYXNBWE9iamVjdCA9IGZsYWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwCmluZGV4IDdlZTk0NDI2Y2M1MmJhZGI0MGZmYzRjYjdjZmJkMTI3NzRiY2U3
M2EuLjFmZTYzYjE1Nzk2OWRlODA5ZThmYjNhOGU0ODAyMmZiYjgyOTg2NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBA
IENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0CiAg
ICAgICAgICAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0
YSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAg
ICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7
IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgICAg
ICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9
IHsgU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlv
bnMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCBhZWQ5NjYxMThjMTEwNTQyYjI3MzM2ZDE4ZTI0NzM3
ZDgyYzE4ZTE2Li5mODI1NGNkNzEyOGRiMmE0MTQ0M2IzNTkwY2FjNDczZWIwMzM3YzgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiQnJlYWtMaW5lcy5oIgogI2luY2x1ZGUgIkJyZWFraW5nQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkNoYXJhY3RlclByb3BlcnRpZXMuaCIKKyNpbmNsdWRlICJEb2N1bWVudElubGluZXMu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGbG9h
dFF1YWQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKaW5kZXggZWNmMjQwN2JkYzQ2NDYxODc3ZDlkMDNjOTFjYmJmMjE0MDAxMzMx
Ny4uMzA4MWJlMzQyMDVhNjA3OWZlOTE4N2JhYzEyZDJkODEzMzM0NmY4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC03MjMsNyArNzIzLDcgQEAgTGF5b3V0
UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKGNvbnN0
IFJlbmRlckJveCYgbXV0ZUIKIAogI2VuZGlmCiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAg
ICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQpAQCAtNzMxLDcgKzczMSw3IEBA
IENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+CiAgICAgcmV0dXJuIGNhY2hlLmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBh
dXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC03MzksMTIgKzczOSwxMiBA
QCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnRyYW5zZm9ybVNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjp0cmFuc2Zvcm1TZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBPcHRpb25TZXQ8U3R5bGVD
b2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBibGVuZFdpdGhXaGl0ZShjb2xvcik7
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2Fj
aGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhvcHRpb25z
KSkKQEAgLTc1Miw3ICs3NTIsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPgogICAgIHJldHVy
biBjYWNoZS5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjppbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwog
ICAgIGlmICghY2FjaGUuaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgp
ICYmIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhvcHRpb25zKSkKQEAgLTc2MCw3
ICs3NjAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZTo6aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVybiBjYWNoZS5pbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0CiB7CiAgICAgYXV0byYgY2FjaGUgPSBjb2xvckNhY2hlKG9wdGlvbnMpOwog
ICAgIGlmICghY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1Zh
bGlkKCkpCkBAIC03NjgsNyArNzY4LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KICAgICBy
ZXR1cm4gY2FjaGUuYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcjsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hl
ID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCkBAIC03NzYsNyArNzc2LDcgQEAgQ29s
b3IgUmVuZGVyVGhlbWU6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjoKICAgICByZXR1cm4gY2FjaGUuaW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYg
KCFjYWNoZS5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLmlzVmFsaWQoKSAm
JiBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKG9wdGlvbnMpKQpAQCAt
Nzg0LDcgKzc4NCw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjphY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAgICAgcmV0dXJuIGNhY2hl
LmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6
aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2Fj
aGUob3B0aW9ucyk7CiAgICAgaWYgKCFjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IuaXNWYWxpZCgpICYmIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcnMob3B0aW9ucykpCkBAIC03OTIsNDcgKzc5Miw0NyBAQCBDb2xvciBSZW5kZXJUaGVt
ZTo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOgogICAgIHJldHVybiBjYWNoZS5pbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitD
b2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBibHVl
IGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3JtIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFu
eXRoaW5nLgogICAgIHJldHVybiBDb2xvcjo6Ymx1ZTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6
OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dAogewogICAgIC8vIFVzZSBhIHdoaXRlIGNvbG9yIGJ5IGRlZmF1bHQgaWYgdGhlIHBsYXRmb3Jt
IHRoZW1lIGRvZXNuJ3QgZGVmaW5lIGFueXRoaW5nLgogICAgIHJldHVybiBDb2xvcjo6d2hpdGU7
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgLy8gVXNlIGEgZ3JleSBjb2xv
ciBieSBkZWZhdWx0IGlmIHRoZSBwbGF0Zm9ybSB0aGVtZSBkb2Vzbid0IGRlZmluZSBhbnl0aGlu
Zy4KICAgICAvLyBUaGlzIGNvbG9yIG1hdGNoZXMgRmlyZWZveCdzIGluYWN0aXZlIGNvbG9yLgog
ICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDE3NiwgMTc2LCAxNzYgfTsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBVc2UgYSBibGFjayBjb2xvciBieSBkZWZhdWx0
LgogICAgIHJldHVybiBDb2xvcjo6YmxhY2s7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0
Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZv
cm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
OjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICByZXR1cm4gcGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CiAKLUNvbG9yIFJlbmRl
clRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRl
clRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Iob3B0aW9ucyk7CiB9CiAK
LUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Iob3B0
aW9ucyk7CiB9CkBAIC0xMzU0LDEwICsxMzU0LDEwIEBAIHZvaWQgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtQ29sb3JzRGlkQ2hhbmdlKCkKICAgICBQYWdlOjp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0
ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7CiB9CiAKLWF1dG8gUmVuZGVyVGhlbWU6OmNv
bG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0IC0+
IENvbG9yQ2FjaGUmCithdXRvIFJlbmRlclRoZW1lOjpjb2xvckNhY2hlKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QgLT4gQ29sb3JDYWNoZSYKIHsKICAgICBhdXRv
IG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rID0gb3B0aW9uczsKLSAgICBvcHRpb25zSWdub3Jp
bmdWaXNpdGVkTGluay5yZW1vdmUoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmsp
OworICAgIG9wdGlvbnNJZ25vcmluZ1Zpc2l0ZWRMaW5rLnJlbW92ZShTdHlsZUNvbG9yT3B0aW9u
czo6Rm9yVmlzaXRlZExpbmspOwogCiAgICAgcmV0dXJuIG1fY29sb3JDYWNoZU1hcC5lbnN1cmUo
b3B0aW9uc0lnbm9yaW5nVmlzaXRlZExpbmsudG9SYXcoKSwgW10gewogICAgICAgICByZXR1cm4g
Q29sb3JDYWNoZSgpOwpAQCAtMTQwNCwxMSArMTQwNCwxMSBAQCB2b2lkIFJlbmRlclRoZW1lOjpz
eXN0ZW1Gb250KENTU1ZhbHVlSUQgc3lzdGVtRm9udElELCBGb250Q2FzY2FkZURlc2NyaXB0aW9u
JiBmbwogICAgIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihzeXN0ZW1Gb250SUQs
IGZvbnREZXNjcmlwdGlvbik7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihD
U1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3Nz
VmFsdWVJZCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRMaW5rOgot
ICAgICAgICByZXR1cm4gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JW
aXNpdGVkTGluaykgPyBTUkdCQTx1aW50OF90PiB7IDg1LCAyNiwgMTM5IH0gOiBTUkdCQTx1aW50
OF90PiB7IDAsIDAsIDIzOCB9OworICAgICAgICByZXR1cm4gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yT3B0aW9uczo6Rm9yVmlzaXRlZExpbmspID8gU1JHQkE8dWludDhfdD4geyA4NSwgMjYs
IDEzOSB9IDogU1JHQkE8dWludDhfdD4geyAwLCAwLCAyMzggfTsKICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0QWN0aXZlbGluazoKICAgICBjYXNlIENTU1ZhbHVlQWN0aXZldGV4dDoKICAgICAgICAg
cmV0dXJuIENvbG9yOjpyZWQ7CkBAIC0xNDg5LDcgKzE0ODksNyBAQCBDb2xvciBSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aQogICAgIH0KIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnRleHRTZWFyY2hIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lOjp0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGF1dG8mIGNhY2hlID0gY29sb3JD
YWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLnRleHRTZWFyY2hIaWdobGlnaHRDb2xvci5p
c1ZhbGlkKCkpCkBAIC0xNDk3LDEzICsxNDk3LDEzIEBAIENvbG9yIFJlbmRlclRoZW1lOjp0ZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
CiAgICAgcmV0dXJuIGNhY2hlLnRleHRTZWFyY2hIaWdobGlnaHRDb2xvcjsKIH0KIAotQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybVRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93OwogfQogCiAjaWYgRU5BQkxFKEFQUF9ISUdI
TElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmFw
cEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29u
c3QKIHsKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgaWYgKCFj
YWNoZS5hcHBIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCkBAIC0xNTExLDEzICsxNTExLDEzIEBA
IENvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucykgY29uCiAgICAgcmV0dXJuIGNhY2hlLmFwcEhpZ2hsaWdodENv
bG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdAogewogICAgIHJldHVybiBDb2xvcjo6eWVsbG93OwogfQogI2VuZGlmCiAKLUNvbG9yIFJl
bmRlclRoZW1lOjpkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25U
ZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewog
ICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKICAgICBpZiAoIWNhY2hlLmRl
ZmF1bHRCdXR0b25UZXh0Q29sb3IuaXNWYWxpZCgpKQpAQCAtMTUyNSw3ICsxNTI1LDcgQEAgQ29s
b3IgUmVuZGVyVGhlbWU6OmRlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMKICAgICByZXR1cm4gY2FjaGUuZGVmYXVsdEJ1dHRvblRleHRD
b2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lOjpwbGF0Zm9ybURlZmF1bHRCdXR0b25UZXh0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIHJldHVybiBzeXN0ZW1Db2xv
cihDU1NWYWx1ZUFjdGl2ZWJ1dHRvbnRleHQsIG9wdGlvbnMpOwogfQpAQCAtMTU4NSw3ICsxNTg1
LDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6c2V0Q3VzdG9tRm9jdXNSaW5nQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQogICAgIGN1c3RvbUZvY3VzUmluZ0NvbG9yKCkgPSBjb2xvcjsKIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBpZiAoY3Vz
dG9tRm9jdXNSaW5nQ29sb3IoKS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjdXN0b21Gb2N1
c1JpbmdDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCBi
YmQ2MDgwZjAzZjZkMTJjNGQ1OTBjYTQwOTliZGZkYzk4YjJhNjIxLi44ZWFlNjgyYzY3MTY1ZDhk
YmZkMzU5NzA0N2NmMmQzNTczYWVkMGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaApAQCAtMTQ2LDM0ICsxNDYsMzQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0JveFNoYWRvdyhjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICAvLyBUZXh0IHNlbGVjdGlvbiBjb2xvcnMuCi0gICAgQ29sb3IgYWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Q7Ci0gICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHRyYW5zZm9y
bVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3IgYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0gICAgQ29sb3Ig
aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29u
c3Q7CisgICAgdmlydHVhbCBDb2xvciB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
Y29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICBD
b2xvciBhY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKICAgICAvLyBMaXN0IGJv
eCBzZWxlY3Rpb24gY29sb3JzCi0gICAgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIENv
bG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsK
LSAgICBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICBDb2xvciBhY3RpdmVMaXN0Qm94
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0OworICAgIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgaW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0OworICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAgIC8vIEhpZ2hsaWdo
dGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCi0gICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29s
b3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4p
IGNvbnN0OwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIC8vIERlZmF1bHQgaGln
aGxpZ2h0aW5nIGNvbG9yIGZvciBhcHAgaGlnaGxpZ2h0cy4KLSAgICBDb2xvciBhcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIENvbG9y
IGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owog
I2VuZGlmCiAKLSAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgQ29sb3IgZGVmYXVsdEJ1dHRvblRleHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKIAogICAgIENvbG9yIGRhdGVQ
bGFjZWhvbGRlclRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYg
YmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29sb3IgZGlzYWJsZWRUZXh0
Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xv
cikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IHsgcmV0dXJuIENvbG9yOjpibGFjazsgfQorICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZvY3Vz
UmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdCB7IHJldHVybiBDb2xvcjo6YmxhY2s7IH0KICAgICBzdGF0aWMgdm9pZCBzZXRD
dXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHN0YXRpYyBmbG9hdCBwbGF0
Zm9ybUZvY3VzUmluZ1dpZHRoKCkgeyByZXR1cm4gMzsgfQogICAgIHN0YXRpYyBmbG9hdCBwbGF0
Zm9ybUZvY3VzUmluZ09mZnNldChmbG9hdCBvdXRsaW5lV2lkdGgpIHsgcmV0dXJuIHN0ZDo6bWF4
PGZsb2F0PihvdXRsaW5lV2lkdGggLSBwbGF0Zm9ybUZvY3VzUmluZ1dpZHRoKCksIDApOyB9CkBA
IC0xODcsNyArMTg3LDcgQEAgcHVibGljOgogCiAgICAgLy8gU3lzdGVtIGZvbnRzIGFuZCBjb2xv
cnMgZm9yIENTUy4KICAgICB2b2lkIHN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udENhc2NhZGVE
ZXNjcmlwdGlvbiYpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFs
dWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFs
IENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShjb25zdCBS
ZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApAQCAtMjcyLDI1ICsyNzIsMjUgQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3Jp
cHRpb24oQ1NTVmFsdWVJRCBzeXN0ZW1Gb250SUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBj
b25zdCA9IDA7CiAKICAgICAvLyBUaGUgcGxhdGZvcm0gc2VsZWN0aW9uIGNvbG9yLgotICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7
Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
QWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
OwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1B
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdDsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi0gICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1EZWZh
dWx0QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0Owog
Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICNpZiAhVVNFKE5FV19U
SEVNRSkKICAgICAvLyBNZXRob2RzIGZvciBlYWNoIGFwcGVhcmFuY2UgdmFsdWUuCkBAIC00NTEs
NyArNDUxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBDb2xvciBkZWZhdWx0QnV0dG9uVGV4dENv
bG9yOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIENvbG9yQ2FjaGUmIGNvbG9yQ2FjaGUoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yQ2FjaGUm
IGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgQ29udHJvbFBhcnQgYXV0b0FwcGVhcmFuY2VGb3JFbGVtZW50KGNvbnN0IEVsZW1l
bnQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUFkd2FpdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3
YWl0YS5jcHAKaW5kZXggMzJhYjVjMmM5ODYyMzQ0MjNlYTQ5ZmY4NDFjMzU3YTNhOGRkYzZiNi4u
ZDFkNjIzZTY3MzBmMmMyYzVmNGQ3YTVmMzJmYTAwOGViMjFjMjI5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5jcHAKQEAgLTEzNSw0OSArMTM1
LDQ5IEBAIGJvb2wgUmVuZGVyVGhlbWVBZHdhaXRhOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0
b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYgZWxlCiAgICAgcmV0dXJuIGVsZW1lbnQuaXNQYXNz
d29yZEZpZWxkKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1BY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkp
LmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRh
OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3
YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuaW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVBZHdhaXRhOjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFRoZW1lQWR3YWl0YSY+KFRoZW1lOjpzaW5nbGV0b24oKSkuYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQWR3YWl0
YTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JP
cHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4o
VGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEmPihUaGVtZTo6c2luZ2xldG9uKCkp
LmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1l
QWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRvbigpKS5pbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3Jt
QWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
ck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUaGVtZUFkd2FpdGEm
PihUaGVtZTo6c2luZ2xldG9uKCkpLmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QKK0NvbG9yIFJlbmRlclRoZW1lQWR3YWl0YTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QK
IHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGhlbWVBZHdhaXRhJj4oVGhlbWU6OnNpbmdsZXRv
bigpKS5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOwogfQogCi1Db2xvciBSZW5k
ZXJUaGVtZUFkd2FpdGE6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnBs
YXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewotICAgIHJldHVybiBUaGVtZUFkd2FpdGE6OmZvY3VzQ29sb3Iob3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIHJl
dHVybiBUaGVtZUFkd2FpdGE6OmZvY3VzQ29sb3Iob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKIH0KIAogdm9pZCBSZW5kZXJUaGVtZUFkd2Fp
dGE6OnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkKQEAgLTIwMyw5ICsyMDMsOSBAQCBWZWN0b3I8
U3RyaW5nLCAyPiBSZW5kZXJUaGVtZUFkd2FpdGE6Om1lZGlhQ29udHJvbHNTY3JpcHRzKCkKIH0K
ICNlbmRpZgogCi1Db2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnN5c3RlbUNvbG9yKENTU1ZhbHVl
SUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZUFkd2FpdGE6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3Nz
VmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewot
ICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURh
cmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpOwogCiAgICAgc3dpdGNoIChjc3NWYWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUFjdGl2ZWNhcHRpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVBZHdhaXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVBZHdhaXRhLmgKaW5kZXggNmM3OTkzMjNiN2RkYmJkMTU5OTAxN2Q2MGNmZWNmMDkxMjQ0MDJl
Yi4uOTkzMzI1YzQxNjY1ZWRkYjM0ODk3ZmNjN2U1MzM4NzU4NThjMmI5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaApAQCAtNDYsMTUgKzQ2LDE1
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlv
bihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3Qgb3ZlcnJpZGUgeyB9
OwogCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBm
aW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3Ig
cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1BY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBj
b25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRm
b3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7
CisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBs
YXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBm
aW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgcGxhdGZvcm1Db2xvcnNEaWRDaGFu
Z2UoKSBmaW5hbDsKIAogICAgIGJvb2wgcGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0
JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CkBAIC04Nyw3ICs4
Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwog
CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgSW50U2l6ZSBzbGlkZXJUaWNrU2l6
ZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aAppbmRleCBkNjZiNmFkZmRhZjM5MjYwNmFmMGFlMGQxNjYzYTllZDU0NDZhZmE4Li43MTMzZjBi
N2RlYmQxYWJhNzc0NGQ3ODVmNWY2MmI0ZWE4NjdkNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTE4LDEwICsxMTgsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBhaW50U2VhcmNoRmllbGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJCb3gmLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoSU9T
X0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQotICAgIENvbG9yIGNoZWNrYm94UmFkaW9Cb3JkZXJDb2xv
cihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KTsKLSAgICBDb2xvciBjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKGJvb2wg
dXNlQWx0ZXJuYXRlRGVzaWduLCBPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvQm9y
ZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pOworICAgIENvbG9yIGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29sb3Io
Ym9vbCB1c2VBbHRlcm5hdGVEZXNpZ24sIE9wdGlvblNldDxDb250cm9sU3RhdGVzOjpTdGF0ZXM+
LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KTsKICAgICBSZWZQdHI8R3JhZGllbnQ+IGNo
ZWNrYm94UmFkaW9CYWNrZ3JvdW5kR3JhZGllbnQoY29uc3QgRmxvYXRSZWN0JiwgT3B0aW9uU2V0
PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4pOwotICAgIENvbG9yIGNoZWNrYm94UmFkaW9JbmRpY2F0
b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiwgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KTsKKyAgICBDb2xvciBjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3Io
T3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4sIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4pOwogCiAgICAgYm9vbCBwYWludENoZWNrYm94KGNvbnN0IFJlbmRlck9iamVjdCYsIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJvb2wgcGFp
bnRSYWRpbyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKQEAgLTE1OSwxMiArMTU5LDEyIEBAIHByaXZhdGU6CiAKICAgICBi
b29sIHN1cHBvcnRzQm94U2hhZG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CiAK
LSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0Nv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29s
b3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBj
b25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdI
TElHSFRTKQotICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhp
Z2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjAxLDcgKzIwMSw3IEBAIHBy
aXZhdGU6CiAKICAgICBGbG9hdFJlY3QgYWRkUm91bmRlZEJvcmRlckNsaXAoY29uc3QgUmVuZGVy
T2JqZWN0JiBib3gsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKTsKIAotICAgIENv
bG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBVU0UoU1lT
VEVNX1BSRVZJRVcpCiAgICAgUmV0YWluUHRyPENJQ29udGV4dD4gbV9jaUNvbnRleHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggYWM3MGQwMjdlYTUy
ZmUwN2FjZTgzZTg4MDRhMGZlMTUwZGFlNGU1OC4uOTVhYmNkMzg4MzViYjFlYzJlYWJhOTAwMDBk
ODMzOTZhMWI5NzVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQpAQCAtMTMxMiwxMiArMTMxMiwxMiBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpwYWludEZp
bGVVcGxvYWRJY29uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUgogICAg
IGljb24tPnBhaW50KHBhaW50SW5mby5jb250ZXh0KCksIHRodW1ibmFpbFJlY3QpOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVJT1M6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVu
dEJsYWNrOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIHJldHVy
biBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKIH0KQEAgLTEzMzcsMTMgKzEzMzcsMTMgQEAgQ29s
b3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gKmNh
Y2hlZEZvY3VzUmluZ0NvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9y
bUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK0Nv
bG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN5c3RlbUZvY3VzUmluZ0NvbG9y
KCk7CiB9CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCi1Db2xvciBSZW5kZXJUaGVtZUlP
Uzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBl
eHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBVSUtpdC4KICAgICByZXR1cm4gU1JHQkE8dWludDhf
dD4geyAyNTUsIDIzOCwgMTkwIH07CkBAIC0xNDk4LDkgKzE0OTgsOSBAQCB2b2lkIFJlbmRlclRo
ZW1lSU9TOjpzZXRGb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgY2FjaGVk
Rm9jdXNSaW5nQ29sb3IoKSA9IGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUlPUzo6c3lz
dGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihD
U1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9u
cykgY29uc3QKIHsKLSAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5rID0gb3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7CisgICAgY29uc3QgYm9v
bCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OkZv
clZpc2l0ZWRMaW5rKTsKIAogICAgIC8vIFRoZSBzeXN0ZW0gY29sb3IgY2FjaGUgYmVsb3cgY2Fu
J3QgaGFuZGxlIHZpc2l0ZWQgbGlua3MuIFRoZSBvbmx5IGNvbG9yIHZhbHVlCiAgICAgLy8gdGhh
dCBjYXJlcyBhYm91dCB2aXNpdGVkIGxpbmtzIGlzIENTU1ZhbHVlV2Via2l0TGluaywgc28gaGFu
ZGxlIGl0IGhlcmUgYnkKQEAgLTE1MTIsOCArMTUxMiw4IEBAIENvbG9yIFJlbmRlclRoZW1lSU9T
OjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPCiAKICAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CiAgICAgcmV0dXJu
IGNhY2hlLnN5c3RlbVN0eWxlQ29sb3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3NzVmFs
dWVJRCwgb3B0aW9uc10gKCkgLT4gQ29sb3IgewotICAgICAgICBjb25zdCBib29sIHVzZURhcmtB
cHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJr
QXBwZWFyYW5jZSk7Ci0gICAgICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5j
ZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KTsKKyAgICAgICAgY29uc3QgYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFj
ZUxldmVsKTsKICAgICAgICAgaWYgKCFnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgIGF1dG8gaXQgPSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXAoKS5maW5kKENTU1ZhbHVlS2V5IHsgY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFu
Y2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIH0pOwogICAgICAgICAgICAgaWYgKGl0
ID09IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmVuZCgpKQpAQCAtMjExOSw3ICsy
MTE5LDcgQEAgY29uc3RleHByIGF1dG8gbmF0aXZlQ29udHJvbEJvcmRlcldpZHRoID0gMS4wZjsK
IGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94UmFkaW9Cb3JkZXJXaWR0aCA9IDEuNWY7CiBjb25zdGV4
cHIgYXV0byBjaGVja2JveFJhZGlvQm9yZGVyRGlzYWJsZWRPcGFjaXR5ID0gMC4zZjsKIAotQ29s
b3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9Cb3JkZXJDb2xvcihPcHRpb25TZXQ8Q29u
dHJvbFN0YXRlczo6U3RhdGVzPiBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlv
Qm9yZGVyQ29sb3IoT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGF1dG8g
ZGVmYXVsdEJvcmRlckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29u
ZGFyeUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyk7CiAKQEAgLTIxMzIsNyArMjEzMiw3IEBAIENv
bG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvQm9yZGVyQ29sb3IoT3B0aW9uU2V0PENv
bnRyb2xTdGF0ZXM6OlN0YXRlcz4KICAgICByZXR1cm4gZGVmYXVsdEJvcmRlckNvbG9yOwogfQog
Ci1Db2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29s
IHVzZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3Rh
dGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMpCitD
b2xvciBSZW5kZXJUaGVtZUlPUzo6Y2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihib29sIHVz
ZUFsdGVybmF0ZURlc2lnbiwgT3B0aW9uU2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVz
LCBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAg
IGJvb2wgaXNFbXB0eSA9ICFzdGF0ZXMuY29udGFpbnNBbnkoeyBDb250cm9sU3RhdGVzOjpTdGF0
ZXM6OkNoZWNrZWQsIENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6SW5kZXRlcm1pbmF0ZSB9KTsKICAg
ICBib29sIGlzRW5hYmxlZCA9IHN0YXRlcy5jb250YWlucyhDb250cm9sU3RhdGVzOjpTdGF0ZXM6
OkVuYWJsZWQpOwpAQCAtMjE3MiwxMiArMjE3MiwxMiBAQCBSZWZQdHI8R3JhZGllbnQ+IFJlbmRl
clRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFja2dyb3VuZEdyYWRpZW50KGNvbnN0IEZsb2F0UmVj
dAogICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVJT1M6OmNoZWNr
Ym94UmFkaW9JbmRpY2F0b3JDb2xvcihPcHRpb25TZXQ8Q29udHJvbFN0YXRlczo6U3RhdGVzPiBz
dGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucykK
K0NvbG9yIFJlbmRlclRoZW1lSU9TOjpjaGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoT3B0aW9u
U2V0PENvbnRyb2xTdGF0ZXM6OlN0YXRlcz4gc3RhdGVzLCBPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQogewogICAgIGlmICghc3RhdGVzLmNvbnRhaW5zKENv
bnRyb2xTdGF0ZXM6OlN0YXRlczo6RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBzeXN0ZW1Db2xv
cihDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpOwog
Ci0gICAgQ29sb3IgZW5hYmxlZEluZGljYXRvckNvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVB
cHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICBDb2xvciBlbmFibGVkSW5kaWNhdG9yQ29sb3IgPSBz
eXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwg
U3R5bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBpZiAoc3RhdGVzLmNv
bnRhaW5zKENvbnRyb2xTdGF0ZXM6OlN0YXRlczo6UHJlc3NlZCkpCiAgICAgICAgIHJldHVybiBl
bmFibGVkSW5kaWNhdG9yQ29sb3IuY29sb3JXaXRoQWxwaGFNdWx0aXBsaWVkQnkocHJlc3NlZFN0
YXRlT3BhY2l0eSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgK
aW5kZXggMWU2MTY4NzYwZjExNzQ3NzYxYThhM2MzZTViMmU4ZDZkMmQxYjg4ZC4uYzQxZjc0OTAw
OTI1ZWZhMTY1ZWVlZTg5ZDY4YjhlNjY2MTA1MzU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTUzLDIzICs1MywyMyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzQ29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0eWxl
JiB1c2VyQWdlbnRTdHlsZSkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIHN1cHBvcnRzU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwotCi0gICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xv
ciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHRyYW5zZm9ybVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3QgZmluYWw7Ci0gICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0
Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxp
c3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KSBjb25zdCBmaW5hbDsKLSAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7Ci0g
ICAgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0IGZpbmFsOwotICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAg
Ym9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29s
b3JPcHRpb25zPikgY29uc3QgZmluYWw7CisKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBm
aW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciB0cmFu
c2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImLCBPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNv
bnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29s
b3IgcGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtQWN0
aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKKyAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyAg
ICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKLSAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxh
dGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKICNlbmRpZgotICAgIENvbG9yIHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9y
IHBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlv
bnM+KSBjb25zdCBmaW5hbDsKIAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNv
bnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU2Nyb2xsYmFyQ29u
dHJvbFNpemU6OlNtYWxsOyB9CiAKQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogcHJpdmF0
ZToKICAgICBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25z
dCBGb250Q2FzY2FkZSYsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkgY29u
c3QgZmluYWw7CiAKLSAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworICAgIENvbG9yIHN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IGZpbmFsOwog
CiAgICAgLy8gR2V0IHRoZSBjb250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSBmb250LiBVc2VkIGJ5
IHNvbWUgb2YgdGhlIGNvbnRyb2xzIChsaWtlIGJ1dHRvbnMpLgogICAgIE5TQ29udHJvbFNpemUg
Y29udHJvbFNpemVGb3JGb250KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWZhYTE5ZWU0NTIwODgyMjRh
ZTM0NTMyZDg3NmYxMzQ1YWQyMmM5Ni4uY2EwZDE1NWEzMWVhZmE0NGIwYWYwY2U0YTdlZjUyY2Ez
M2YyNTkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpA
QCAtMjg0LDE2ICsyODQsMTYgQEAgTlNWaWV3ICpSZW5kZXJUaGVtZU1hYzo6ZG9jdW1lbnRWaWV3
Rm9yKGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29uc3QKICAgICByZXR1cm4gVGhlbWVNYWM6OmVu
c3VyZWRWaWV3KCZvLnZpZXcoKS5mcmFtZVZpZXcoKSwgc3RhdGVzKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9u
czo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlND
b2xvciBzZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1h
Yzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVf
U1VQUE9SVCkKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNl
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAg
ICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1bmVtcGhhc2l6ZWRTZWxlY3RlZFRl
eHRCYWNrZ3JvdW5kQ29sb3JdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpA
QCAtMzAxLDkgKzMwMSw5IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvCiAjZW5kaWYKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnRyYW5zZm9ybVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IsIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFu
Y2UpKTsKICAgICBpZiAobG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkgewog
ICAgICAgICAvLyBVc2UgYW4gYWxwaGEgdmFsdWUgdGhhdCBpcyBzaW1pbGFyIHRvIHJlc3VsdHMg
ZnJvbSBibGVuZFdpdGhXaGl0ZSgpIG9uIGxpZ2h0IGNvbG9ycy4KICAgICAgICAgc3RhdGljIGNv
bnN0IGZsb2F0IGRhcmtBcHBlYXJhbmNlQWxwaGEgPSAwLjg7CkBAIC0zMTMsMjQgKzMxMywyNCBA
QCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6dHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KGNvbnN0IENvbG9yJiBjb2xvciwgT3B0aQogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dHJhbnNm
b3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKGNvbG9yLCBvcHRpb25zKTsKIH0KIAotYm9vbCBS
ZW5kZXJUaGVtZU1hYzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorYm9vbCBSZW5kZXJUaGVtZU1h
Yzo6c3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFy
a0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gbG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVh
cmFuY2UoKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
IHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRp
b25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7Cisg
ICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAo
bG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIGNv
bG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1cm4g
eyB9OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QK
IHsKICNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3Rl
bUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25z
OjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIGlmIChsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJr
QXBwZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1
bmVtcGhhc2l6ZWRTZWxlY3RlZFRleHRDb2xvcl0pOwogICAgIHJldHVybiB7IH07CkBAIC0zNDAs
MTAgKzM0MCwxMCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwogI2VuZGlmCiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNp
ZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNl
IGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNl
bGVjdGVkQ29udGVudEJhY2tncm91bmRDb2xvcl0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
b3B0aW9ucyk7CkBAIC0zNTMsMTAgKzM1MywxMCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxh
dGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdAog
I2VuZGlmCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICBM
b2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKG9wdGlvbnMpOwogI2VuZGlmCkBAIC0zNjQsMTYgKzM2NCwxNiBAQCBDb2xvciBSZW5k
ZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PAogCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNl
IGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2Nh
bEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBhbHRlcm5h
dGVTZWxlY3RlZENvbnRyb2xUZXh0Q29sb3JdKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yT3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBIQVZFKE9TX0RB
UktfTU9ERV9TVVBQT1JUKQotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxB
cHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0Fw
cGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFy
YW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5j
ZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNl
bGVjdGVkVGV4dENvbG9yXSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAg
LTM4MSwzMiArMzgxLDMyIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
TGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8CiAjZW5kaWYKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0CiB7CiAgICAgaWYgKHVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yKCkpCiAgICAg
ICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3IoKTsKLSAgICBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yT3B0aW9u
czo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICAvLyBUaGUgY29sb3IgaXMgZXhwZWN0ZWQgdG8g
YmUgb3BhcXVlLCBzaW5jZSBDb3JlR3JhcGhpY3Mgd2lsbCBhcHBseSBvcGFjaXR5IHdoZW4gZHJh
d2luZyAoYmVjYXVzZSBvcGFjaXR5IGlzIG5vcm1hbGx5IGFuaW1hdGVkKS4KICAgICByZXR1cm4g
Y29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBrZXlib2FyZEZvY3VzSW5kaWNhdG9yQ29sb3JdKS5v
cGFxdWVDb2xvcigpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewotICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKKyAgICBMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xv
ckZyb21OU0NvbG9yKFtOU0NvbG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQogCiAjaWYgRU5B
QkxFKEFQUF9ISUdITElHSFRTKQotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGln
aGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAorQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFsIHZh
bHVlIGZyb20gQXBwS2l0LgogICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAx
OTAgfTsKIH0KICNlbmRpZgogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1EZWZhdWx0
QnV0dG9uVGV4dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRGVmYXVsdEJ1dHRvblRleHRDb2xv
cihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJv
bU5TQ29sb3IoW05TQ29sb3IgYWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENvbG9yXSk7CiB9
CiAKQEAgLTQ0OSwxMSArNDQ5LDExIEBAIHN0YXRpYyBTUkdCQTx1aW50OF90PiBtZW51QmFja2dy
b3VuZENvbG9yKCkKICAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmc8U1JHQkE8
dWludDhfdD4+KHBpeGVsWzBdLCBwaXhlbFsxXSwgcGl4ZWxbMl0sIHBpeGVsWzNdKTsKIH0KIAot
Q29sb3IgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5k
ZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8
U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgY29uc3QgYm9vbCB1c2VT
eXN0ZW1BcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpV
c2VTeXN0ZW1BcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0g
b3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7
Ci0gICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOworICAgIGNvbnN0IGJvb2wgdXNlU3lzdGVt
QXBwZWFyYW5jZSA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlvbnM6OlVzZVN5c3Rl
bUFwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3JPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgY29u
c3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvck9wdGlv
bnM6OkZvclZpc2l0ZWRMaW5rKTsKIAogICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRp
b25zKTsKIApAQCAtMTU3MSw3ICsxNTcxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0
TWVudUxpc3RTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGUpIGMKICAg
ICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3IgdG8gYmxhY2sgb3IgZ3JheSB3aGVuIHdlIGhh
dmUgdGhlIGFxdWEgbG9vay4KICAgICBDb2xvciBjID0gQ29sb3I6OmRhcmtHcmF5OwogICAgIGlm
IChlKSB7Ci0gICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zID0g
ZS0+ZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmc3R5bGUpOworICAgICAgICBPcHRpb25T
ZXQ8U3R5bGVDb2xvck9wdGlvbnM+IG9wdGlvbnMgPSBlLT5kb2N1bWVudCgpLnN0eWxlQ29sb3JP
cHRpb25zKCZzdHlsZSk7CiAgICAgICAgIGMgPSAhZS0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkg
PyBzeXN0ZW1Db2xvcihDU1NWYWx1ZUJ1dHRvbnRleHQsIG9wdGlvbnMpIDogc3lzdGVtQ29sb3Io
Q1NTVmFsdWVHcmF5dGV4dCwgb3B0aW9ucyk7CiAgICAgfQogICAgIHN0eWxlLnNldENvbG9yKGMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggODVk
YWFkODU3N2JkOGU3NmM3YWQ5NzhlMmMyZGQwYzgwNGUxY2I4Yy4uMGQ0NWFkNWU5MjMwZmQyNTk3
MzVmYzYxZGU4NWQwOGVlMzJhY2EwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW4uY3BwCkBAIC0yODUsMjUgKzI4NSwyNSBAQCBib29sIFJlbmRlclRoZW1lV2lu
OjpzdXBwb3J0c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QKICAgICByZXR1cm4gaGF2
ZVRoZW1lOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAor
Q29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0CiB7CiAgICAgQ09MT1JSRUYg
Y29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9ISUdITElHSFQpOwogICAgIHJldHVybiBTUkdCQTx1
aW50OF90PiB7IEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShj
b2xvcikgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICAvLyBU
aGlzIGNvbG9yIG1hdGNoZXMgRmlyZWZveC4KICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAx
NzYsIDE3NiwgMTc2IH07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3QKIHsKICAgICBD
T0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVFRFWFQpOwogICAgIHJl
dHVybiBTUkdCQTx1aW50OF90PiB7IEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciks
IEdldEJWYWx1ZShjb2xvcikgfTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVXaW46OnBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6cGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+
IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKG9wdGlvbnMpOwogfQpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgc3RhdGljIGlu
dCBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkKICAgICB9
CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lV2luOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1Zh
bHVlSWQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgT3B0
aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIEhBVkUoT1Nf
REFSS19NT0RFX1NVUFBPUlQpCiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCmluZGV4IGM4MWI1MGEzMmEyOTNlYjY3YjBi
MjYyNzAzZTEwZTUwM2U4NmQ4MjUuLjZiMDBjZjA3ODRjMmYwN2RhZWM2YzM4ZjYyY2ZkNDQ2YmQy
YzdmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdp
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCkBAIC01
NCwxMiArNTQsMTIgQEAgcHVibGljOgogICAgIC8vIEEgbWV0aG9kIGFza2luZyBpZiB0aGUgdGhl
bWUncyBjb250cm9scyBhY3R1YWxseSBjYXJlIGFib3V0IHJlZHJhd2luZyB3aGVuIGhvdmVyZWQu
CiAgICAgYm9vbCBzdXBwb3J0c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9y
IHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKLSAgICBDb2xvciBwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IG92ZXJyaWRlOwotICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKKyAgICBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKKyAgICBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92
ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBD
b2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQsIE9w
dGlvblNldDxTdHlsZUNvbG9yT3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBw
YWludENoZWNrYm94KGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBpLCBj
b25zdCBGbG9hdFJlY3QmIHIpIG92ZXJyaWRlCiAgICAgeyByZXR1cm4gcGFpbnRCdXR0b24obywg
aSwgSW50UmVjdChyKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5j
cHAKaW5kZXggMGY1MGI0MWQ2MTY3NTk4OWM1NmQyYzBmYmU0YTE4MTExYzZhNDYyMi4uNmRmZTgw
YTI2MjgxYjljZTYyOTlkYmY2MWU2MDYyN2RkNTY2ZThjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJSZW5k
ZXJXaWRnZXQuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1
bWVudElubGluZXMuaCIKICNpbmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TdHlsZWRNYXJrZWRUZXh0LmNwcAppbmRleCBjOWNmYzdmZjVkYjEw
MGE0MWVlNjExNDM4ODY5ZDRhMWM3YmRlY2VmLi4wNDdmMDJhMTc5ZmE1NjEzYmQ4M2E2ZjU3OTc5
YmY2YjE0MDQyNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU3R5bGVk
TWFya2VkVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1N0eWxlZE1hcmtl
ZFRleHQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBTdHlsZWRNYXJrZWRUZXh0IHJlc29s
dmVTdHlsZUZvck1hcmtlZFRleHQoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCwKICAgICAg
ICAgYnJlYWs7CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAgIGNhc2UgTWFya2VkVGV4
dDo6QXBwSGlnaGxpZ2h0OiB7Ci0gICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBw
ZWFyYW5jZSB9OworICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvck9wdGlvbnM+IHN0eWxlQ29s
b3JPcHRpb25zID0geyBTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9Owog
ICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSByZW5kZXJlci50aGVtZSgpLmFwcEhpZ2hs
aWdodENvbG9yKHN0eWxlQ29sb3JPcHRpb25zKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAt
OTIsNyArOTIsNyBAQCBzdGF0aWMgU3R5bGVkTWFya2VkVGV4dCByZXNvbHZlU3R5bGVGb3JNYXJr
ZWRUZXh0KGNvbnN0IE1hcmtlZFRleHQmIG1hcmtlZFRleHQsCiAgICAgfQogICAgIGNhc2UgTWFy
a2VkVGV4dDo6VGV4dE1hdGNoOiB7CiAgICAgICAgIC8vIFRleHQgbWF0Y2hlcyBhbHdheXMgdXNl
IHRoZSBsaWdodCBzeXN0ZW0gYXBwZWFyYW5jZS4KLSAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpV
c2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yT3B0aW9u
cz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3JPcHRpb25zOjpVc2VTeXN0ZW1BcHBl
YXJhbmNlIH07CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBzdHlsZS50ZXh0U3R5bGVzLmZp
bGxDb2xvciA9IHJlbmRlcmVyLnRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3Rl
bUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCmluZGV4IGJmZjIxN2U5NDAxMmUyMWQ2YzEyYzA0ZTg4
Yjg3MDljZjllNTc3ZGIuLmZjNjhmNDNlZmRlMzZjNGNmOGJlMTUxMWVkZTg2NGZkMGZhNGE3YWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludFN0eWxlLmNwcApAQCAtOTgs
OSArOTgsOSBAQCBUZXh0UGFpbnRTdHlsZSBjb21wdXRlVGV4dFBhaW50U3R5bGUoY29uc3QgRnJh
bWUmIGZyYW1lLCBjb25zdCBSZW5kZXJTdHlsZSYgbGluZQogICAgIGlmIChsaW5lU3R5bGUuaW5z
aWRlRGVmYXVsdEJ1dHRvbigpKSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCk7
CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCkp
IHsKLSAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zOwor
ICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgICAg
ICAgICAgaWYgKHBhZ2UtPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSkKLSAgICAgICAgICAgICAgICBv
cHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKTsKKyAg
ICAgICAgICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yT3B0aW9uczo6VXNlU3lzdGVtQXBw
ZWFyYW5jZSk7CiAgICAgICAgICAgICBwYWludFN0eWxlLmZpbGxDb2xvciA9IFJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5kZWZhdWx0QnV0dG9uVGV4dENvbG9yKG9wdGlvbnMpOwogICAgICAgICAg
ICAgcmV0dXJuIHBhaW50U3R5bGU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQzMGEz
NDJmNjNiOTM4NDRmNDFiNzU3YjBkZmFkOWFhYmIyN2NjYzQuLjljZTUxNmI4NjczZjM3NzQ3NDQx
MWFmMmIwODQzMGJhZTVkZDE0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGRlNDk0OGVkNGU3M2M1OWE0NzE5ODdj
NzlhYWE1YTJmZDliYTVmODkuLjQ0MzlhZjM4NDY4ZmU3MmU0ZmExMzk4MTNhNzI4YTlhMWJkMzVj
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTY5LDYgKzY5LDcgQEAK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKKyNpbmNsdWRlICJEb2N1
bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBAIC00NjI0LDE0ICs0NjI1
LDE0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlTXV0ZWQoU3RyaW5nVmlldyBzdGF0ZXNTdHJp
bmcpCiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGU7CiAgICAgZm9yIChTdHJpbmdWaWV3IHN0YXRl
U3RyaW5nIDogc3RhdGVzU3RyaW5nLnNwbGl0KCcsJykpIHsKICAgICAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0YXRlU3RyaW5nLCAiYXVkaW8iKSkKLSAgICAgICAgICAg
IHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAg
ICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQp
OwogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RhdGVTdHJpbmcs
ICJjYXB0dXJlZGV2aWNlcyIpKQogICAgICAgICAgICAgc3RhdGUuYWRkKE1lZGlhUHJvZHVjZXI6
OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShzdGF0ZVN0cmluZywgInNjcmVlbmNhcHR1cmUiKSkKLSAgICAgICAg
ICAgIHN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0dXJlSXNN
dXRlZCk7CisgICAgICAgICAgICBzdGF0ZS5hZGQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlNj
cmVlbkNhcHR1cmVJc011dGVkKTsKICAgICB9CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3Vt
ZW50LT5wYWdlKCkpCkBAIC00NjQ2LDQzICs0NjQ3LDQzIEBAIFN0cmluZyBJbnRlcm5hbHM6OnBh
Z2VNZWRpYVN0YXRlKCkKIAogICAgIGF1dG8gc3RhdGUgPSBkb2N1bWVudC0+cGFnZSgpLT5tZWRp
YVN0YXRlKCk7CiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKHN0YXRlLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSkKKyAgICBp
ZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nQXVkaW8sIik7Ci0gICAgaWYg
KHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ1Zp
ZGVvKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6
OklzUGxheWluZ1ZpZGVvKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSXNQbGF5aW5nVmlkZW8s
Iik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
OklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVG9FeHRlcm5hbERldmljZSkpCiAgICAg
ICAgIHN0cmluZy5hcHBlbmQoIklzUGxheWluZ1RvRXh0ZXJuYWxEZXZpY2UsIik7Ci0gICAgaWYg
KHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OlJlcXVpcmVzUGxh
eWJhY2tUYXJnZXRNb25pdG9yaW5nKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6OlJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKSkKICAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiUmVxdWlyZXNQbGF5YmFja1RhcmdldE1vbml0b3JpbmcsIik7
Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OkV4
dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRhdGUpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0Fu
eShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6RXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNhbmRpZGF0
ZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkV4dGVybmFsRGV2aWNlQXV0b1BsYXlDYW5kaWRh
dGUsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OkRpZFBsYXlUb0VuZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpEaWRQbGF5VG9FbmQpKQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJEaWRQ
bGF5VG9FbmQsIik7Ci0gICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGU6OklzU291cmNlRWxlbWVudFBsYXlpbmcpKQorICAgIGlmIChzdGF0ZS5jb250YWlu
c0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNTb3VyY2VFbGVtZW50UGxheWluZykpCiAg
ICAgICAgIHN0cmluZy5hcHBlbmQoIklzU291cmNlRWxlbWVudFBsYXlpbmcsIik7CiAKLSAgICBp
ZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNOZXh0VHJh
Y2tDb250cm9sRW5hYmxlZCkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkKSkKICAgICAgICAgc3RyaW5n
LmFwcGVuZCgiSXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCwiKTsKLSAgICBpZiAoc3RhdGUuY29u
dGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJv
bEVuYWJsZWQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpKQogICAgICAgICBzdHJpbmcuYXBw
ZW5kKCJJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5hYmxlZCwiKTsKIAotICAgIGlmIChzdGF0ZS5j
b250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNQbGF5YmFja1RhcmdldEF2
YWlsYWJpbGl0eUxpc3RlbmVyKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNBbnkoTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGU6Okhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXIpKQog
ICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3Rl
bmVyLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBdWRpb09yVmlkZW8pKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkKICAgICAgICAgc3RyaW5nLmFwcGVu
ZCgiSGFzQXVkaW9PclZpZGVvLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpKQorICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlQXVk
aW9DYXB0dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlQXVkaW9D
YXB0dXJlRGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpKQorICAgIGlmIChzdGF0
ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0
dXJlRGV2aWNlKSkKICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzQWN0aXZlVmlkZW9DYXB0dXJl
RGV2aWNlLCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRh
aW5zQW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmlj
ZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlLCIp
OwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkpCiAgICAg
ICAgIHN0cmluZy5hcHBlbmQoIkhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlLCIpOwotICAgIGlm
IChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNVc2VySW50
ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQpKQorICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50KSkK
ICAgICAgICAgc3RyaW5nLmFwcGVuZCgiSGFzVXNlckludGVyYWN0ZWRXaXRoTWVkaWFFbGVtZW50
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmljZSkpCisgICAgaWYgKHN0YXRlLmNvbnRhaW5z
QW55KE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVEaXNwbGF5Q2FwdHVyZURldmlj
ZSkpCiAgICAgICAgIHN0cmluZy5hcHBlbmQoIkhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNl
LCIpOwotICAgIGlmIChzdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlKSkKKyAgICBpZiAoc3RhdGUuY29udGFpbnNB
bnkoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2Up
KQogICAgICAgICBzdHJpbmcuYXBwZW5kKCJIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2aWNlLCIp
OwogCiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCkBAIC02MTE1LDExICs2MTE2LDExIEBAIFN0
cmluZyBJbnRlcm5hbHM6OnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NW
YWx1ZSwgYm9vbCB1c2VEYXJrTW9kCiAgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29y
ZElEKGNzc1ZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNv
bG9yS2V5d29yZChpZCkpOwogCi0gICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnM7CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3JPcHRpb25zPiBvcHRpb25zOwogICAgIGlm
ICh1c2VEYXJrTW9kZUFwcGVhcmFuY2UpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVD
b2xvck9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBpZiAodXNlRWxldmF0ZWRVc2Vy
SW50ZXJmYWNlTGV2ZWwpCi0gICAgICAgIG9wdGlvbnMuYWRkKFN0eWxlQ29sb3I6Ok9wdGlvbnM6
OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5
bGVDb2xvck9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKICAgICAKICAg
ICByZXR1cm4gc2VyaWFsaXphdGlvbkZvckNTUyhSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc3lz
dGVtQ29sb3IoaWQsIG9wdGlvbnMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhZjc2OTc2MjNjYzlj
ZjQ0NmNlOGRjZTNjZGQ0YzJiYTI3NDI3NzUzLi5hOGMzZTE4ZTQ3YWVjYWQwYTAyMmEwODRjNDlh
MjFmNmM3MTRjMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdHlsZVNj
b3BlLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxEb2N1
bWVudFBhcnNlclNjb3BlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggMTAwZmE2MjBlNGEyOGNi
NzI2Y2I1Yjk4MTkyZmI4ZWE4ZmE5YThkNC4uOWU4MTQ5NGUyMDMyZDViZDE2ZTZkNjA5N2Y4ZWM2
ZWY3NjNjYmE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVy
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGJm
NWM0MTlmZDRmZWY3ZTRlMDJkNmMwNzQ3YjVjY2Y5NTNjM2Y0YzUuLmRhYzE4NDA1Y2JjZjVmNmNm
ZGYwMzYzNGI0NDY4ZjJmYmIxOGQ5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE2MTUsNyArMTYxNSw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFVS
TCYmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
U2VuZENTUFZpb2xhdGlvblJlcG9ydCB7IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3Zl
KHJlcG9ydFVSTCksIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKHJlcG9ydCkgfSB9
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlEKTsKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudEluaXQmJiBldmVudEluaXQpCiB7CiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6RW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQg
eyBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgV1RGTW92ZShldmVudEluaXQpIH0sIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggYjJkMWRjYjdjNzY4MTU3OWExY2Y2ZmZi
ZDQyNGQ0MWYxMDlkMDU4Mi4uZDE3NzZlODFmOWM3NmY4MjRkOWY0YTMyNjQyM2UxOTBkZjg5NWE1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCkBAIC0yMDgsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb250ZW50
U2VjdXJpdHlQb2xpY3lDbGllbnQKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRlbnRpZmllciA9IDApIGZpbmFsOwogICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChV
UkwmJiwgUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiYmKSBmaW5hbDsKLSAgICB2b2lkIGVucXVldWVT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OkluaXQmJikgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudChXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYm
KSBmaW5hbDsKIAogICAgIHZvaWQgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25zdCBO
ZXR3b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNGJiNTRkMTYzZTMxOTZhZDY2NGFlMjkxY2VmNjI5
Mzc0MTkzM2IwZC4uZjZmNzM0ZmUyMDc2MWZjMjQ5NTQyNjdkNjgzYTc4NjQ3NTZlZjhmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MzUsNiArNzM1LDkg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpMaW5lSm9p
bic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TG9j
a0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyc6IFsnPFdlYkNvcmUv
TWVkaWFQbGF5ZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5o
PiddLAorICAgICAgICAnV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGUnOiBbJzxXZWJD
b3JlL01lZGlhUHJvZHVjZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSc6IFsnPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3knOiBbJzxX
ZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3ZlRGF0YSc6
IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKQEAgLTc1OSw2ICs3NjIsNyBAQCBkZWYg
aGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlJvdXRlU2hhcmluZ1Bv
bGljeSc6IFsnPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFi
bGVkJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JzogWyc8V2ViQ29yZS9TZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rp
b25EaXJlY3Rpb24nOiBbJzxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYWQ0MTFiODA2Mjk4YTRiODVlODc4NWJiZjQ3
NWZmMmQ5M2NmMTdlZi4uY2JjYTkwOGUzODM2MGQxZDljOTk0NDJlMDkzZmEwODkxNTFlOTZkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKQEAgLTI4NCw3ICsyODQsNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYVZvbHVtZSkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncz4gbXV0ZWRTdGF0ZUZsYWdzOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncz4gbXV0ZWRTdGF0ZUZsYWdzOwog
ICAgIGRlY29kZXIgPj4gbXV0ZWRTdGF0ZUZsYWdzOwogICAgIGlmICghbXV0ZWRTdGF0ZUZsYWdz
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDRhMDVkNjBiMmFjZTEyMjQwMTM0
OGJiYTlhYTFkYTE3NDZiODkyNDAuLmViMWVlMDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5Yjdh
M2U4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTExOSw3ICsxMTksNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0OwogICAgIAogICAgIGZsb2F0IG1lZGlh
Vm9sdW1lOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRl
ZDsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIG11dGVkOwogICAg
IGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBib29sIG1lZGlhUGxheWJhY2tJ
c1N1c3BlbmRlZCB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKaW5kZXggMmRiMGY1NjljYjIyNTA1ODllN2VjMTYwNThkYWZiNWE2YTRlN2JmMC4u
NTQ5MTAyZWI1ZmVlYWIwMDliZjk0Nzc1MzJkNGY5ZDUwMWVhOGU1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0YXRlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVBy
b3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYXB0dXJlU3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggNzAxZjFhMjkwODhkODQyMDE2MGM3M2UwY2Q5ZWZkMzJkY2M2ZjIzZC4uMWZiMmYyN2Fk
MmI5MjFhODhlYWNhZDhjNzk2ODRiNjg1MjFlNjdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yODE2LDE0ICsyODE2LDE0IEBAIHZvaWQgV0tQYWdlU2V0
TWVkaWFWb2x1bWUoV0tQYWdlUmVmIHBhZ2VSZWYsIGZsb2F0IHZvbHVtZSkKIHZvaWQgV0tQYWdl
U2V0TXV0ZWQoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLTWVkaWFNdXRlZFN0YXRlIG11dGVkU3RhdGUp
CiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11
dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CiAKICAgICBpZiAobXV0ZWRTdGF0ZSAmIGtXS01lZGlh
QXVkaW9NdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwogICAgIGlmIChtdXRl
ZFN0YXRlICYga1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkKQogICAgICAgICBjb3JlU3RhdGUu
YWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCk7
CiAgICAgaWYgKG11dGVkU3RhdGUgJiBrV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZCkKLSAgICAg
ICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3Jl
ZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKIAogICAgIHRvSW1wbChw
YWdlUmVmKS0+c2V0TXV0ZWQoY29yZVN0YXRlKTsKIH0KQEAgLTI5NzEsMjQgKzI5NzEsMjQgQEAg
Ym9vbCBXS1BhZ2VJc1BsYXlpbmdBdWRpbyhXS1BhZ2VSZWYgcGFnZSkKIAogV0tNZWRpYVN0YXRl
IFdLUGFnZUdldE1lZGlhU3RhdGUoV0tQYWdlUmVmIHBhZ2UpCiB7Ci0gICAgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGNvcmVTdGF0ZSA9IHRvSW1wbChwYWdlKS0+cmVw
b3J0ZWRNZWRpYVN0YXRlKCk7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBjb3JlU3RhdGUgPSB0b0ltcGwocGFnZSktPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOwogICAg
IFdLTWVkaWFTdGF0ZSBzdGF0ZSA9IGtXS01lZGlhSXNOb3RQbGF5aW5nOwogCi0gICAgaWYgKGNv
cmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1
ZGlvKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nQXVkaW8pCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSXNQbGF5aW5nQXVk
aW87Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6OklzUGxheWluZ1ZpZGVvKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8pCiAgICAgICAgIHN0YXRlIHw9IGtXS01l
ZGlhSXNQbGF5aW5nVmlkZW87Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKKyAgICBpZiAo
Y29yZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1
ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICBpZiAoY29y
ZVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZSkKICAgICAgICAgc3RhdGUgfD0ga1dLTWVkaWFIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWRBdWRpb0NhcHR1cmVE
ZXZpY2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2U7
Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6
Okhhc0FjdGl2ZURpc3BsYXlDYXB0dXJlRGV2aWNlKQorICAgIGlmIChjb3JlU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZp
Y2UpCiAgICAgICAgIHN0YXRlIHw9IGtXS01lZGlhSGFzQWN0aXZlRGlzcGxheUNhcHR1cmVEZXZp
Y2U7Ci0gICAgaWYgKGNvcmVTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGU6Okhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZpY2UpCisgICAgaWYgKGNvcmVTdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZERpc3BsYXlDYXB0dXJlRGV2
aWNlKQogICAgICAgICBzdGF0ZSB8PSBrV0tNZWRpYUhhc011dGVkRGlzcGxheUNhcHR1cmVEZXZp
Y2U7CiAKICAgICByZXR1cm4gc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwNTYwNTRjYmM5ZWM5OWU5M2QyZmVmY2I0ZGUzOTgx
YWY5ZmNlMmY2Li5kZDExOWZkNzM2OWNkZDliM2EyNWFiYWY1NDlhZjAyMDZhZjIzY2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEw
NDEsOSArMTA0MSw5IEBAIC0gKHZvaWQpcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tNZWRpYVBsYXliYWNrCiAtIChXS01lZGlhQ2FwdHVy
ZVN0YXRlKWNhbWVyYUNhcHR1cmVTdGF0ZQogewogICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVw
b3J0ZWRNZWRpYVN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlOwotICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVk
VmlkZW9DYXB0dXJlRGV2aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgcmV0dXJu
IFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0
ZU5vbmU7CiB9CkBAIC0xMDUxLDkgKzEwNTEsOSBAQCAtIChXS01lZGlhQ2FwdHVyZVN0YXRlKWNh
bWVyYUNhcHR1cmVTdGF0ZQogLSAoV0tNZWRpYUNhcHR1cmVTdGF0ZSltaWNyb3Bob25lQ2FwdHVy
ZVN0YXRlCiB7CiAgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsK
LSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNB
Y3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAg
cmV0dXJuIFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Ci0gICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2Up
CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc011
dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQogICAgICAgICByZXR1cm4gV0tNZWRpYUNhcHR1cmVTdGF0
ZU11dGVkOwogICAgIHJldHVybiBXS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKIH0KQEAgLTEwNjUs
MTYgKzEwNjUsMTYgQEAgLSAodm9pZClzZXRNaWNyb3Bob25lQ2FwdHVyZVN0YXRlOihXS01lZGlh
Q2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOigKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIgPSBbXSB7IH07CiAKICAgICBpZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0
ZU5vbmUpIHsKLSAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdz
KCk7CiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUpCi0gICAgICAg
IG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1
ZGlvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBtdXRlZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgZWxzZSBp
ZiAoc3RhdGUgPT0gV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQotICAgICAgICBtdXRlZFN0YXRl
LmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011
dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0
YXRlLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIp
XSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CkBAIC0xMDg3LDE2ICsx
MDg3LDE2IEBAIC0gKHZvaWQpc2V0Q2FtZXJhQ2FwdHVyZVN0YXRlOihXS01lZGlhQ2FwdHVyZVN0
YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkCiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyID0gW10geyB9OwogCiAgICAgaWYgKHN0YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVOb25l
KSB7Ci0gICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgW2NvbXBs
ZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOwog
ICAgIGlmIChzdGF0ZSA9PSBXS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlKQotICAgICAgICBtdXRl
ZFN0YXRlLnJlbW92ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpWaWRlb0Nh
cHR1cmVJc011dGVkKTsKKyAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgIGVsc2UgaWYgKHN0
YXRlID09IFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKLSAgICAgICAgbXV0ZWRTdGF0ZS5hZGQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7
CisgICAgICAgIG11dGVkU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRl
OjpWaWRlb0NhcHR1cmVJc011dGVkKTsKICAgICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAtMjI3NSw3ICsyMjc1LDcg
QEAgLSAodm9pZClfY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMKIC0gKHZvaWQpX3N0b3BNZWRp
YUNhcHR1cmUKIHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7Ci0gICAgX3BhZ2UtPnN0b3BNZWRp
YUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbyk7CisgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQogCiAtICh2b2lkKV9zdG9wQWxsTWVk
aWFQbGF5YmFjawpAQCAtMzU5OCwxNCArMzU5OCwxNCBAQCAtIChCT09MKV9tZWRpYUNhcHR1cmVF
bmFibGVkCiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0
YXRlCiB7CiAgICAgVEhST1dfSUZfU1VTUEVOREVEOwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
ck11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGU7CiAKICAgICBpZiAobXV0ZWRTdGF0ZSAmIF9XS01l
ZGlhQXVkaW9NdXRlZCkKLSAgICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOworICAgICAgICBjb3JlU3RhdGUuYWRkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQpOwogICAgIGlmICht
dXRlZFN0YXRlICYgX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkKQogICAgICAgICBjb3JlU3Rh
dGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRl
ZCk7CiAgICAgaWYgKG11dGVkU3RhdGUgJiBfV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZCkKLSAg
ICAgICAgY29yZVN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpT
Y3JlZW5DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGNvcmVTdGF0ZS5hZGQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGU6OlNjcmVlbkNhcHR1cmVJc011dGVkKTsKIAogICAgIF9wYWdl
LT5zZXRNdXRlZChjb3JlU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBmMDk0ZjUzODkzOTQ0OTU1Zjc5ODM5
YzI1ZDlkZWU5MjVkZjQ3MDBlLi40ZTVkNzMyNTcxNDRiNTFkZDQyYTRlZmFjYzcwZWVmY2NlODUz
ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcApAQCAtNDg2OCw3ICs0ODY4LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2NvcnNfYWxsb3dsaXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBjb24K
ICAgICBnZXRQYWdlKHdlYlZpZXcpLnNldENPUlNEaXNhYmxpbmdQYXR0ZXJucyhXVEZNb3ZlKGFs
bG93TGlzdFZlY3RvcikpOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uZmlndXJl
TWVkaWFDYXB0dXJlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQgY2FwdHVyZUtpbmQsIFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRl
IGNhcHR1cmVTdGF0ZSwgYm9vbCBpc0Zyb21EaXNwbGF5Q2FwdHVyZSA9IGZhbHNlKQorc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBjYXB0dXJlS2lu
ZCwgV2ViS2l0TWVkaWFDYXB0dXJlU3RhdGUgY2FwdHVyZVN0YXRlLCBib29sIGlzRnJvbURpc3Bs
YXlDYXB0dXJlID0gZmFsc2UpCiB7CiAgICAgYXV0byYgcGFnZSA9IGdldFBhZ2Uod2ViVmlldyk7
CiAgICAgYXV0byBtdXRlZFN0YXRlID0gcGFnZS5tdXRlZFN0YXRlRmxhZ3MoKTsKQEAgLTQ4Nzcs
MTMgKzQ4NzcsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2Fw
dHVyZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjoKICAgICBjYXNlIFdFQktJVF9N
RURJQV9DQVBUVVJFX1NUQVRFX05PTkU6CiAgICAgICAgIHBhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShj
YXB0dXJlS2luZCwgW3dlYlZpZXcsIGNhcHR1cmVLaW5kXSB7CiAgICAgICAgICAgICBzd2l0Y2gg
KGNhcHR1cmVLaW5kKSB7Ci0gICAgICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvOgorICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAgICAgICAgICAgICAgICAgZ19vYmpl
Y3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdlYlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X01JQ1JPUEhPTkVfQ0FQVFVSRV9TVEFURV0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbzoKKyAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQ6OlZpZGVvOgogICAgICAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9DQU1FUkFfQ0FQVFVSRV9TVEFU
RV0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgorICAgICAgICAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoK
ICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CkBAIC00ODkxLDE2ICs0ODkxLDE2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViQ29yZTo6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX01FRElBX0NBUFRV
UkVfU1RBVEVfQUNUSVZFOgogICAgICAgICBzd2l0Y2ggKGNhcHR1cmVLaW5kKSB7Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW86Cisg
ICAgICAgIGNhc2UgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
OgogICAgICAgICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZTo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRl
bzoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6
VmlkZW86CiAgICAgICAgICAgICBpZiAoaXNGcm9tRGlzcGxheUNhcHR1cmUpCiAgICAgICAgICAg
ICAgICAgbXV0ZWRTdGF0ZS5yZW1vdmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG11dGVkU3RhdGUucmVtb3ZlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6
OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbzoKKyAg
ICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CkBAIC00OTA4LDE2ICs0OTA4LDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
Q29yZTo6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX01FRElBX0NBUFRVUkVfU1RB
VEVfTVVURUQ6CiAgICAgICAgIHN3aXRjaCAoY2FwdHVyZUtpbmQpIHsKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbzoKKyAgICAgICAg
Y2FzZSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW86CiAgICAg
ICAgICAgICBtdXRlZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRl
OjpBdWRpb0NhcHR1cmVJc011dGVkKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvOgorICAgICAg
ICBjYXNlIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoKICAg
ICAgICAgICAgIGlmIChpc0Zyb21EaXNwbGF5Q2FwdHVyZSkKICAgICAgICAgICAgICAgICBtdXRl
ZFN0YXRlLmFkZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5DYXB0
dXJlSXNNdXRlZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbXV0ZWRTdGF0
ZS5hZGQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZTo6VmlkZW9DYXB0dXJlSXNN
dXRlZCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgorICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvOgogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
QEAgLTQ5NjUsNyArNDk2NSw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jYW1lcmFfY2Fw
dHVyZV9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRNZWRpCiAgICAgaWYgKHdl
YmtpdF93ZWJfdmlld19nZXRfY2FtZXJhX2NhcHR1cmVfc3RhdGUod2ViVmlldykgPT0gV0VCS0lU
X01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Via2l0
V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3RhdGUpOworICAgIHdlYmtpdFdlYlZpZXdD
b25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSk7CiB9CiAKIC8qKgpAQCAtNTAwNyw3ICs1MDA3LDcg
QEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X21pY3JvcGhvbmVfY2FwdHVyZV9zdGF0ZShXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXQKICAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9t
aWNyb3Bob25lX2NhcHR1cmVfc3RhdGUod2ViVmlldykgPT0gV0VCS0lUX01FRElBX0NBUFRVUkVf
U1RBVEVfTk9ORSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Via2l0V2ViVmlld0NvbmZpZ3Vy
ZU1lZGlhQ2FwdHVyZSh3ZWJWaWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kOjpBdWRpbywgc3RhdGUpOworICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNh
cHR1cmUod2ViVmlldywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLCBzdGF0ZSk7CiB9CiAKIC8qKgpAQCAtNTA0OSw1ICs1MDQ5LDUgQEAgdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfc2V0X2Rpc3BsYXlfY2FwdHVyZV9zdGF0ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXRNZWQKICAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9kaXNwbGF5X2NhcHR1cmVf
c3RhdGUod2ViVmlldykgPT0gV0VCS0lUX01FRElBX0NBUFRVUkVfU1RBVEVfTk9ORSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgd2Via2l0V2ViVmlld0NvbmZpZ3VyZU1lZGlhQ2FwdHVyZSh3ZWJW
aWV3LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgc3Rh
dGUsIHRydWUpOworICAgIHdlYmtpdFdlYlZpZXdDb25maWd1cmVNZWRpYUNhcHR1cmUod2ViVmll
dywgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBzdGF0ZSwg
dHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRp
YVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRp
ZXMuaAppbmRleCBlMWRhNDZmMjZiMThjNzdmMmExODllZDg2NTQwYmE2MTMyMjliY2ZiLi44YTE2
MjA3NzhlZGQ5Y2JmZjEyMDk5YjE1MmFkNTBiNDc5ZWRmMTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGVGbGFncyk7Ci1fV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOworX1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyk7CitfV0tNZWRpYU11dGVkU3RhdGUgdG9XS01lZGlh
TXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9NZWRpYVV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01l
ZGlhVXRpbGl0aWVzLm1tCmluZGV4IDUzYmJmNDIwMTQ3MWQ5ZDhhNGY2NmU3MDFmNjQzODhlZWVk
NWQxNWEuLjk4NTBhOGZjYTY3MGRjNzg1NWY0MTAwNjdiMDVjMTJmODA4ODA2YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCkBAIC0yOCwy
OSArMjgsMjkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK19XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVE
ZXByZWNhdGVkIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkTm9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0YXRlICYgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkK
ICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkQWN0aXZlTWljcm9waG9uZTsKLSAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6Okhhc0FjdGl2ZVZpZGVvQ2Fw
dHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAg
IGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNNdXRlZEF1
ZGlvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lOwotICAgIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2
aWNlKQorICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKICAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmE7CiAKICAgICByZXR1cm4g
bWVkaWFDYXB0dXJlU3RhdGU7CiB9CiAKLV9XS01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRl
ZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKK19X
S01lZGlhTXV0ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCiB7CiAgICAgX1dLTWVkaWFNdXRlZFN0YXRlIG1lZGlh
TXV0ZWRTdGF0ZSA9IF9XS01lZGlhTm9uZU11dGVkOwotICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkKKyAgICBpZiAoc3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKQogICAgICAg
ICBtZWRpYU11dGVkU3RhdGUgfD0gX1dLTWVkaWFBdWRpb011dGVkOwogICAgIGlmIChzdGF0ZSAm
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZCkKICAg
ICAgICAgbWVkaWFNdXRlZFN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZDsKLSAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpTY3JlZW5D
YXB0dXJlSXNNdXRlZCkKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0
ZWRTdGF0ZTo6U2NyZWVuQ2FwdHVyZUlzTXV0ZWQpCiAgICAgICAgIG1lZGlhTXV0ZWRTdGF0ZSB8
PSBfV0tNZWRpYVNjcmVlbkNhcHR1cmVNdXRlZDsKICAgICByZXR1cm4gbWVkaWFNdXRlZFN0YXRl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDMy
OWRiNzkxY2Y0MzI3MjQ2MzYzNDI4MDA1MDRiMDhlYTg5ZGIwZTMuLmU2Nzk2OTVhM2ZlMWEwYWVm
MjhkZDVhZjAyNDhkNjkwNmYzNDE5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lk
IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikg
ZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYp
IGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOwot
ICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgICAgIHZvaWQgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncykgZmlu
YWw7CiAgICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYg
SEFWRShBUFBfTElOS1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQppbmRleCAxMWI3YTQwNThhNWI2NDFhYjg4NGE5NzY1NzdjZjIxMDNiY2I2YmRkLi5kNzhm
NGNjMGQ1NjU1OTRjMGU4ODFhNDU4YmZkMjM4Mjc1MTIyNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEyMjcsNyArMTIyNyw3IEBAIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihX
ZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lv
bkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAotdm9pZCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6bWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVG
bGFncyBzdGF0ZSkKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDgzZTAzYmEyNzY4OThkOWU0
NjUzM2NjNjdjMTQyZDk3NDcyMzQ2ZDcuLmFiOTBkZmRiMTg1MWJmN2VkZDI5YjQ1YzdkZDU3OWQ3
MDc5YzAxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQ5LDcg
KzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1zdGF0aWMgY29uc3QgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNrIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZTo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
OjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UgfTsKK3N0YXRpYyBjb25zdCBNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNrIHsgTWVkaWFQcm9kdWNlck1lZGlh
U3RhdGU6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSwgTWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSB9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQpAQCAtOTUsNyArOTUsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVwog
CiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6flVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCkKIHsKLSAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyB9LCBbXSB7IH0pOworICAgIG1fcGFnZS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRp
YVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyB9LCBbXSB7IH0pOwogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRv
bigpLnJldm9rZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQocGFnZSgpLnByb2Nlc3MoKSk7CiAg
ICAgcHJveGllcygpLnJlbW92ZSh0aGlzKTsKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSgpCiB7CiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3Rz
KCk7Ci0gICAgbV9wYWdlLnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbyk7CisgICAgbV9wYWdlLnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQ
cm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQogCiB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQpA
QCAtODYzLDcgKzg2Myw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlU3RhdGVDaGFuZ2Vk
KE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBvbGRTdGF0ZSwgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y2FwdHVyZVN0YXRlQ2hhbmdlZChNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZUZsYWdzIG9sZFN0YXRlLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQog
ewogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDY0ZWJmYTVlNDU5YTE2ZTRjZDM3
ZTQ5MzY5YTkwNGFlNjJkZWI3NjAuLjY3NGJhYjRkYjdjOWM2NGRlZDg1Nzg3NDFkYmQyYWI5OTZk
YzQwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtODgsNyArODgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hlZFN0YXRlKCk7CiAgICAgdm9pZCBjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKTsKIAotICAgIHZvaWQgY2FwdHVyZVN0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7CisgICAgdm9pZCBjYXB0dXJlU3Rh
dGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpOwogICAgIHZv
aWQgc3luY1dpdGhXZWJDb3JlUHJlZnMoKSBjb25zdDsKIAogICAgIGVudW0gY2xhc3MgUmVxdWVz
dEFjdGlvbiB7CkBAIC0xNjcsNyArMTY3LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxEZW5p
ZWRSZXF1ZXN0PiBtX2RlbmllZFJlcXVlc3RzOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG1fY2FwdHVyZVN0YXRlOworICAgIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXJNZWRpYVN0YXRlRmxhZ3MgbV9jYXB0dXJlU3RhdGU7CiAgICAgUnVuTG9vcDo6VGltZXI8
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fd2F0Y2hkb2dUaW1lcjsK
ICAgICBTZWNvbmRzIG1fY3VycmVudFdhdGNoZG9nSW50ZXJ2YWw7CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBj
MmExNmU2YzBjMTQ4OTY4NDliYjNmN2E1N2I3MzU3Y2ZmZTQ4YTZmLi43YTVlNWM0OTk2MmFhMGYz
YjNhOWRmNTAwNDk5NjNjOWZjOTMyNjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTIxMTMsMTEgKzIxMTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVw
ZGF0ZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IGZsYWdzVG9V
cGQKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93
KTsKICAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxl
ICYmIHBhZ2VDbGllbnQoKS5pc1Zpc3VhbGx5SWRsZSgpKQogICAgICAgICBtX2FjdGl2aXR5U3Rh
dGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKTsKLSAgICBpZiAoZmxhZ3NUb1Vw
ZGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSAmJiBtX21lZGlhU3RhdGUuY29udGFpbnMo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8pICYmICEobV9tdXRlZFN0
YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGU6OkF1ZGlvSXNNdXRlZCkpKQor
ICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlICYmIG1fbWVk
aWFTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nQXVkaW8p
ICYmICEobV9tdXRlZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRp
b0lzTXV0ZWQpKSkKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJ
c0F1ZGlibGUpOwogICAgIGlmIChmbGFnc1RvVXBkYXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNMb2Fk
aW5nICYmIG1fcGFnZUxvYWRTdGF0ZS5pc0xvYWRpbmcoKSkKICAgICAgICAgbV9hY3Rpdml0eVN0
YXRlLmFkZChBY3Rpdml0eVN0YXRlOjpJc0xvYWRpbmcpOwotICAgIGlmIChmbGFnc1RvVXBkYXRl
ICYgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSAmJiBtX21lZGlhU3RhdGUuY29udGFp
bnNBbnkoeyBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVE
ZXZpY2UsICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVE
ZXZpY2UgfSkpCisgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1
cmluZ01lZGlhICYmIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueSh7IE1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UsICBNZWRpYVByb2R1Y2VyTWVkaWFT
dGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlIH0pKQogICAgICAgICBtX2FjdGl2aXR5
U3RhdGUuYWRkKEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEpOwogfQogCkBAIC02MjQ2
LDcgKzYyNDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9s
dW1lKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZvbHVtZSkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fbXV0ZWRTdGF0ZSA9IHN0YXRlOwogCkBA
IC02Mjc3LDcgKzYyNzcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFDYXB0dXJlRW5h
YmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BN
ZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
KTsKQEAgLTk0NTgsNyArOTQ1OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpuYXZpZ2F0aW9uR2Vz
dHVyZVNuYXBzaG90V2FzUmVtb3ZlZCgpCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZW1v
dmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdTdGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShN
ZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQogewogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgaWYgKCFtX3Byb2Nlc3MtPnRocm90dGxlcigpLnNob3VsZEJlUnVubmFi
bGUoKSkKQEAgLTk0NjksNyArOTQ2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhCiAgICAg
ICAgIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShuZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmlj
YXRpb246Olllcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlLCBDYW5EZWxh
eU5vdGlmaWNhdGlvbiBjYW5EZWxheU5vdGlmaWNhdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBu
ZXdTdGF0ZSwgQ2FuRGVsYXlOb3RpZmljYXRpb24gY2FuRGVsYXlOb3RpZmljYXRpb24pCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBhdXRvIHVwZGF0ZU1lZGlhQ2FwdHVyZVN0YXRl
SW1tZWRpYXRlbHlJZk5lZWRlZCA9IFsmXSB7CkBAIC05NDk4LDE0ICs5NDk4LDE0IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG5lCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG9sZE1lZGlhQ2FwdHVy
ZVN0YXRlID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlTWFzazsKLSAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
TWVkaWFDYXB0dXJlU3RhdGUgPSBuZXdTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBvbGRNZWRpYUNhcHR1cmVTdGF0ZSA9IG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2s7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
U3RhdGVGbGFncyBuZXdNZWRpYUNhcHR1cmVTdGF0ZSA9IG5ld1N0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlTWFzazsKICNlbmRpZgogCi0gICAgTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIHBsYXlpbmdNZWRpYU1hc2sgeyBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SXNQbGF5
aW5nVmlkZW8gfTsKLSAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgb2xkU3RhdGUg
PSBtX21lZGlhU3RhdGU7CisgICAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBwbGF5aW5n
TWVkaWFNYXNrIHsgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvLCBNZWRp
YVByb2R1Y2VyTWVkaWFTdGF0ZTo6SXNQbGF5aW5nVmlkZW8gfTsKKyAgICBNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG9sZFN0YXRlID0gbV9tZWRpYVN0YXRlOwogCi0gICAgYm9vbCBwbGF5
aW5nQXVkaW9DaGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXI6Ok1lZGlh
U3RhdGU6OklzUGxheWluZ0F1ZGlvKSkgIT0gKG5ld1N0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGU6OklzUGxheWluZ0F1ZGlvKSk7CisgICAgYm9vbCBwbGF5aW5nQXVkaW9D
aGFuZ2VzID0gKG9sZFN0YXRlLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1Bs
YXlpbmdBdWRpbykpICE9IChuZXdTdGF0ZS5jb250YWlucyhNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SXNQbGF5aW5nQXVkaW8pKTsKICAgICBpZiAocGxheWluZ0F1ZGlvQ2hhbmdlcykKICAgICAg
ICAgcGFnZUNsaWVudCgpLmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpOwogICAgIG1fbWVkaWFT
dGF0ZSA9IG5ld1N0YXRlOwpAQCAtOTUyOSw3ICs5NTI5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgbmUKICAgICBpZiAoKG9sZFN0YXRlICYgcGxheWluZ01lZGlhTWFzaykgIT0gKG1fbWVkaWFT
dGF0ZSAmIHBsYXlpbmdNZWRpYU1hc2spKQogICAgICAgICBtX3VpQ2xpZW50LT5pc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSgqdGhpcyk7CiAKLSAgICBpZiAoKG9sZFN0YXRlLmNvbnRhaW5zQW55KE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGU6Okhhc0F1ZGlvT3JWaWRlbykpICE9IChtX21lZGlhU3Rh
dGUuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVv
KSkpCisgICAgaWYgKChvbGRTdGF0ZS5jb250YWluc0FueShNZWRpYVByb2R1Y2VyTWVkaWFTdGF0
ZTo6SGFzQXVkaW9PclZpZGVvKSkgIT0gKG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZTo6SGFzQXVkaW9PclZpZGVvKSkpCiAgICAgICAgIHZpZGVvQ29udHJv
bHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CiAKICAgICBtX3Byb2Nlc3MtPnVwZGF0ZUF1ZGlibGVNZWRp
YUFzc2VydGlvbnMoKTsKQEAgLTk3MjksNyArOTcyOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRp
ZmllCiAgICAgcGFnZUNsaWVudCgpLm1lZGlhU2Vzc2lvbk1hbmFnZXIoKS5zaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgcGFnZUNsaWVudCgpLnJvb3RWaWV3VG9TY3Jl
ZW4oSW50UmVjdChyZWN0KSksIGhhc1ZpZGVvLCB1c2VEYXJrQXBwZWFyYW5jZSgpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFy
Z2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIHBhZ2VDbGllbnQoKS5tZWRpYVNlc3Np
b25NYW5hZ2VyKCkuY2xpZW50U3RhdGVEaWRDaGFuZ2UoKnRoaXMsIGNvbnRleHRJZCwgc3RhdGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3MDE4MTRiYWY4
MDE0YWEzYmIxNjFkNjJkZmM2YTg4OTY1MzQ4NTAzLi5jYzAwMjRhYjlmNWI3ZDY4MjlmZmEyMDI1
MzFiMTVkNTY5ZTQwMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTM5OCwxMyArMTM5OCwxMyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgcmVuZGVyVHJlZVNp
emUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVTaXplOyB9CiAKICAgICB2b2lkIHNldE1l
ZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9
KTsKLSAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5j
b250YWlucyhXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlOjpBdWRpb0lzTXV0ZWQp
OyB9OworICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVG
bGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKKyAgICBib29sIGlz
QXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZS5jb250YWlucyhXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9Jc011dGVkKTsgfTsKICAgICB2b2lkIHNl
dE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCk7CiAgICAgYm9vbCBtYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93
OyB9CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wpOwogICAgIGJvb2wgbWVk
aWFDYXB0dXJlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDYXB0dXJlRW5hYmxlZDsg
fQotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOworICAg
IHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJl
S2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKIAogICAgIHZvaWQg
cGF1c2VBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzdXNwZW5kQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpAQCAtMTUxMCwxOCArMTUxMCwxOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2hvd2luZ05h
dmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBjb25zdCB7IHJldHVybiBtX2lzU2hvd2luZ05hdmln
YXRpb25HZXN0dXJlU25hcHNob3Q7IH0KIAotICAgIGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25z
dCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7IH0KLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgYm9vbCBp
c1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7IH0KKyAgICB2b2lkIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxh
Z3MpOwogICAgIHZvaWQgdXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSgpOwogCiAgICAg
ZW51bSBjbGFzcyBDYW5EZWxheU5vdGlmaWNhdGlvbiB7IE5vLCBZZXMgfTsKLSAgICB2b2lkIHVw
ZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MsIENhbkRlbGF5Tm90aWZpY2F0aW9uID0gQ2FuRGVsYXlOb3RpZmljYXRpb246Ok5v
KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTWVkaWFTdGF0ZUZsYWdzLCBDYW5EZWxheU5vdGlmaWNhdGlvbiA9IENhbkRlbGF5Tm90
aWZpY2F0aW9uOjpObyk7CiAgICAgYm9vbCBpc0NhcHR1cmluZ0F1ZGlvKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlv
Q2FwdHVyZU1hc2spOyB9CiAgICAgYm9vbCBpc0NhcHR1cmluZ1ZpZGVvKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlLmNvbnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OlZpZGVv
Q2FwdHVyZU1hc2spOyB9Ci0gICAgYm9vbCBoYXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpOyB9Ci0gICAgYm9vbCBoYXNB
Y3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0Fu
eShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2UpOyB9Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IHJlcG9ydGVkTWVkaWFTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0ZWRNZWRpYUNhcHR1
cmVTdGF0ZSB8IChtX21lZGlhU3RhdGUgLSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNh
cHR1cmVNYXNrKTsgfQotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBtdXRlZFN0YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KKyAgICBi
b29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlLmNv
bnRhaW5zQW55KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlOjpIYXNBY3RpdmVBdWRp
b0NhcHR1cmVEZXZpY2UpOyB9CisgICAgYm9vbCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZS5jb250YWluc0FueShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZTo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKTsgfQorICAgIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgcmVwb3J0ZWRNZWRpYVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlIHwgKG1fbWVkaWFTdGF0ZSAtIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZU1hc2spOyB9CisgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtdXRlZFN0YXRlRmxhZ3MoKSBjb25zdCB7IHJl
dHVybiBtX211dGVkU3RhdGU7IH0KIAogICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJD
b3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdz
Pik7CiAKQEAgLTE2MDUsNyArMTYwNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2Vi
Q29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7
Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKICAgICB2
b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCk7CkBAIC0yOTA5
LDcgKzI5MDksNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkxheW91dFBvaW50IG1fbWF4U3Rh
YmxlTGF5b3V0Vmlld3BvcnRPcmlnaW47CiAKICAgICBmbG9hdCBtX21lZGlhVm9sdW1lIHsgMSB9
OwotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtX211dGVkU3Rh
dGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBtX211dGVkU3Rh
dGU7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cgeyB0cnVlIH07CiAgICAg
Ym9vbCBtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21l
ZGlhQ2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CkBAIC0yOTQ1LDEwICsyOTQ1LDEwIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VXYW50c1N5bmNocm9ub3VzUmVwbHkg
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX25leHRB
Y3Rpdml0eVN0YXRlQ2hhbmdlQ2FsbGJhY2tzOwogCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZTsKIAogICAgIC8vIFRvIG1ha2Ugc3VyZSBj
YXB0dXJlIGluZGljYXRvcnMgYXJlIHZpc2libGUgbG9uZyBlbm91Z2gsIG1fcmVwb3J0ZWRNZWRp
YUNhcHR1cmVTdGF0ZSBpcyB0aGUgc2FtZSBhcyBtX21lZGlhU3RhdGUgZXhjZXB0IHRoYXQgd2Ug
bWlnaHQgZGVsYXkgYSBiaXQgdHJhbnNpdGlvbiBmcm9tIGNhcHR1cmluZyB0byBub3QtY2FwdHVy
aW5nLgotICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX3JlcG9y
dGVkTWVkaWFDYXB0dXJlU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGVGbGFncyBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGU7CiAgICAgUnVuTG9vcDo6VGltZXI8
V2ViUGFnZVByb3h5PiBtX3VwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGVUaW1lcjsKICAg
ICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgRGVmYXVsdE1lZGlhQ2FwdHVyZVJlcG9ydGluZ0Rl
bGF5IHsgM19zIH07CiAgICAgU2Vjb25kcyBtX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5IHsg
RGVmYXVsdE1lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5IH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggN2E5MzkxYTA3Nzk3NmVk
MWMzYjZkMDc2ZjQ0YWFjOTIxMzI5MGUxYi4uNWVkZjMxZDM0M2FlZDhkNzIxNjlkYjk3MzUyZTVi
NzFmNzI4NTA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNDYzLDcgKzQ2Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxlciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAotICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKKyAgICBJc1BsYXlp
bmdNZWRpYURpZENoYW5nZShPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3Rh
dGU+IHN0YXRlKQogICAgIEhhbmRsZUF1dG9wbGF5RXZlbnQoZW51bTp1aW50OF90IFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnQgZXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50Rmxh
Z3M+IGZsYWdzKQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNDgyLDcgKzQ4Miw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQp
CiAgICAgUmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tU
YXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgU2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgcGlja2VyTG9jYXRpb24sIGJvb2wgaGFz
VmlkZW8pCi0gICAgUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUpCisgICAgUGxh
eWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgT3B0aW9uU2V0PFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlPiBtZWRpYVN0YXRlKQogICAgIFNldE1vY2tNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgU2V0TW9ja01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShTdHJpbmcgbmFtZSwgZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUgcGlja2VyU3RhdGUpCiAg
ICAgTW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjYxMjE5YTIyODllNGRl
OTAwZDhmNDM5YWRiOTEwOGQ2NGU4Njc0Ny4uOTI1MzcxYTQ3NTg3ZDUyNTA2YTQ1OTE2NzVmNmUz
OWM3ODc4N2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bXV0ZUNhcHR1
cmVJblBhZ2VzRXhjZXB0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIAogI2VuZGlm
CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRT
dGF0ZUZsYWdzIGZsYWdzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VNdXRlZFN0YXRlQ2hh
bmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZUZsYWdzIGZsYWdzKQogewogICAgIGJvb2wgbXV0ZWRGb3JDYXB0dXJl
ID0gZmxhZ3MuY29udGFpbnNBbnkoTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJ
c011dGVkKTsKICAgICBpZiAoIW11dGVkRm9yQ2FwdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZmU0ZmI4ZDUyOTk4YTBiMmQ5MjgzZmJiNmNjNWVi
ZWQxYjg3OGZiMC4uZTM5ZDRhZjg2NTNiZDc4NGEwOTBjMTM2ZTgwZTBjNTdiNzQ3NDlmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTQwOCw3ICs0MDgs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbXV0ZUNhcHR1cmVJblBhZ2VzRXhjZXB0KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHBhZ2VNdXRlZFN0YXRl
Q2hhbmdlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyk7
CiAgICAgdm9pZCBwYWdlSXNCZWNvbWluZ0ludmlzaWJsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMTFlNDU4OGU2N2JmNWZiYWIyYzkwNmVj
YjhlYzE0YTI4NGUyNDUwZC4uMWNiODk0ZDBiYTdkMDg2NWVkNDQ1MjRhYzJjYWM5YmJiZjRiYzhk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UaW1lUmFuZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5
ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01E
b2N1bWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwCmluZGV4IGQwN2Y2ZTcyYTRiNDk1
Y2Q5NDM1MDkyY2Y3NmUwYjdhNTliODIwYzkuLmRkYWY4NjNmZTc1Yjc1OWI5YmU4MDQ1NzI5ZWFi
NDUxZWMxMTBjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURv
Y3VtZW50R3RrLmNwcApAQCAtNTQsNyArNTQsNyBAQAogI2luY2x1ZGUgIldlYktpdERPTVhQYXRo
UmVzdWx0UHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJbmxpbmVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GdWxsc2NyZWVuTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNFeGVjU3RhdGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGEzZDZjYzMyZjY1NDlm
YTBmYWI0YTI0NTA4ZmUyMmYwNDdmOWQzMzUuLmQzYWFkNmVhMjYxNjhhMjFiODNkNTMwZTdhYjZk
ZDQ3YTI2N2YyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Nb3VzZUV2
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSW5saW5lcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0
aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYWE5ZDNlY2UzZDYy
NTg5ZDZiYmFlYzkxNGI2MzU2ZDUwNGE0ZTliYS4uNWFiYzQ4NmUwYzU5MTBhZGU4YjhjNmZjOGQ4
ZjkwYTlmOTZlYjU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYUNh
blN0YXJ0KFdlYkNvcmU6OkRvY3VtZW50Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyCi0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
IG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHBh
Z2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQbHVnaW5Db250cm9s
bGVyCkBAIC0yNzYsMTEgKzI3NiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wbHVnaW5Jc1Bs
YXlpbmdBdWRpbyB7IGZhbHNlIH07CiB9OwogCi1pbmxpbmUgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIFBsdWdpblZpZXc6Om1lZGlhU3RhdGUoKSBjb25zdAoraW5saW5l
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgUGx1Z2luVmlldzo6bWVkaWFT
dGF0ZSgpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGU7CisgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFn
cyBtZWRpYVN0YXRlOwogICAgIGlmIChtX3BsdWdpbklzUGxheWluZ0F1ZGlvKQotICAgICAgICBt
ZWRpYVN0YXRlLmFkZChNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlOjpJc1BsYXlpbmdBdWRpbyk7
CisgICAgICAgIG1lZGlhU3RhdGUuYWRkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRl
OjpJc1BsYXlpbmdBdWRpbyk7CiAgICAgcmV0dXJuIG1lZGlhU3RhdGU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggZTRjMTlhZGNjZGQxZDU0OTY5ZDI3NjBkZTMzOGM4ZGY0OTJkYjFj
OS4uZTM3OTZiYWI2NGJhNGVlMjA1NjYyMjNkNzk4M2RjYTRmZjA5NThkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTEyNjAsNyArMTI2MCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZp
CiAgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdG
b3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1
Y2VyTWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewogICAgIG1fcGFnZS5pc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShzdGF0ZSk7CiB9CkBAIC0xMzkyLDcgKzEzOTIsNyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihjb250ZXh0SWQsIHJlY3QsIGlzVmlkZW8pKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
IHN0YXRlKQogewogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoY29udGV4dElkLCBzdGF0ZSkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDY0NDgyYTQyZTRlYzcyZDUyYWE4NDZhNTc4NDVhMTQ2
ODQ2NmM3MTAuLmI5OTM4ZjJiZmE2MTAwYjI5NjIzY2QwMzA1Y2UwYjE0YzQzMjIxNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTM1Miw3ICszNTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3
JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CisgICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZsYWdz
KSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViQ29yZTo6QXV0b3BsYXlF
dmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogCiAj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQpAQCAtMzkxLDcgKzM5MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZVBsYXli
YWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdl
YkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4
dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmlu
YWw7CisgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9j
a01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKSBmaW5hbDsKICAgICB2b2lkIG1v
Y2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDIyYzMzMThiMjIx
YTZiZWRmYWIwMjRlY2UyY2YwOWVmZjUwOTMzNjEuLmVmZjhiMThiMWQwMDcyZmUyZTFkMGVlZDVj
ZTRkNDcyNTU3NGIxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC00MzgyLDcgKzQzODIsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRWaW9sYXRp
b25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKEZyYW1lSWRlbnRpZgog
ICAgICAgICBXZWJDb3JlOjpzZW5kVmlvbGF0aW9uUmVwb3J0V2hlbk5hdmlnYXRpbmdBd2F5RnJv
bUNPT1BSZXNwb25zZSgqZnJhbWUtPmNvcmVGcmFtZSgpLCBjb29wLCBkaXNwb3NpdGlvbiwgY29v
cFVSTCwgbmV4dFJlc3BvbnNlVVJMLCBjb29wT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIG5leHRS
ZXNwb25zZU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBpc0NPT1BSZXNwb25zZU5hdmlnYXRpb25T
b3VyY2UsIHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBhdXRvKiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC01NTgyLDEzICs1NTgyLDEzIEBAIHZvaWQgV2ViUGFnZTo6c2V0TWVkaWFW
b2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIG1fcGFnZS0+c2V0TWVkaWFWb2x1bWUodm9sdW1lKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlck11dGVkU3RhdGVGbGFncyBzdGF0
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IG1fcGFnZS0+c2V0TXV0ZWQoc3RhdGUpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1
cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyTWVkaWFDYXB0
dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBtX3BhZ2UtPnN0b3BNZWRpYUNh
cHR1cmUoa2luZCk7CkBAIC03NDU4LDcgKzc0NTgsNyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNocm9u
aXplQ09SU0Rpc2FibGluZ1BhdHRlcm5zV2l0aE5ldHdvcmtQcm9jZXNzKCkKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENP
UlNEaXNhYmxpbmdQYXR0ZXJucyhtX2lkZW50aWZpZXIsIG1fY29yc0Rpc2FibGluZ1BhdHRlcm5z
KSwgMCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlOjpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzIHN0YXRlKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SXNQbGF5aW5n
TWVkaWFEaWRDaGFuZ2Uoc3RhdGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBmZTI5MGNmYzRkZDZkMzI5MzE3YzE5NDFhODJhOGVjNTdiMzRh
MzQyLi41Mzk2MWEwM2E1MmMzODE5YmNhMjllMGI3MTdkYmM1MDA4ZjlmZTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NDgsNyArNDQ4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdp
biwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJsb2NrZWRVUkwpOwog
ICAgIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5l
clBvbGljeSYsIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiwgY29uc3QgVVJMJiBjb29wVVJMLCBj
b25zdCBVUkwmIHByZXZpb3VzUmVzcG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBw
cmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiByZXBvcnRUb0hlYWRlclZhbHVlKTsKICAgICB2
b2lkIHNlbmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNl
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kmLCBXZWJDb3JlOjpDT09QRGlzcG9zaXRpb24sIGNvbnN0IFVSTCYgY29vcFVSTCwg
Y29uc3QgVVJMJiBuZXh0UmVzcG9uc2VVUkwsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgY29vcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBuZXh0
UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0aW9uU291cmNlLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRo
ZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBp
bnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmlj
aWFsPwpAQCAtMTAyOSw5ICsxMDI5LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVzb3Vy
Y2VSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcik7CiAKICAgICB2b2lk
IHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3Ms
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KGJvb2wpOwotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVk
aWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQg
dXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygpOwogCkBAIC0xNDI2LDcgKzE0MjYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAgIHZvaWQgaXNQbGF5
aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KTsKKyAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogICAgIHZv
aWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
OGFmYzRlYTVlM2NkMDFjMmFjM2E0YTM0MWYzMTZhOWEyMTEzMzJlMS4uNzgyZmYyODJiYWEzZGQ4
YTM4YjBhOGFjYTMxOTMzMmE5YTNjODEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbmRDT0VQQ09SUFZpb2xh
dGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJv
b2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgVVJMIGJsb2NrZWRV
UkwpCiAgICAgU2VuZFZpb2xhdGlvblJlcG9ydFdoZW5OYXZpZ2F0aW5nVG9DT09QUmVzcG9uc2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpDcm9zc09y
aWdpbk9wZW5lclBvbGljeSBjb29wLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9u
IGRpc3Bvc2l0aW9uLCBVUkwgY29vcFVSTCwgVVJMIHByZXZpb3VzUmVzcG9uc2VVUkwsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBwcmV2aW91c1Jlc3BvbnNlT3JpZ2luLCBTdHJpbmcgcmVmZXJy
ZXIsIFN0cmluZyB1c2VyQWdlbnQsIFN0cmluZyByZXBvcnRUb0hlYWRlclZhbHVlKQogICAgIFNl
bmRWaW9sYXRpb25SZXBvcnRXaGVuTmF2aWdhdGluZ0F3YXlGcm9tQ09PUFJlc3BvbnNlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kgY29vcCwgZW51bTpib29sIFdlYkNvcmU6OkNPT1BEaXNwb3NpdGlvbiBkaXNw
b3NpdGlvbiwgVVJMIGNvb3BVUkwsIFVSTCBuZXh0UmVzcG9uc2VVUkwsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgY29vcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBuZXh0UmVzcG9uc2VPcmlnaW4sIGJvb2wgaXNDT09QUmVzcG9uc2VOYXZpZ2F0
aW9uU291cmNlLCBTdHJpbmcgdXNlckFnZW50KQotICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBFbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnRJbml0IGV2
ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAKQEAgLTQxNyw5
ICs0MTcsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgIyBNZWRpYQogICAgIFNl
dE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKLSAgICBTZXRNdXRlZChXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0TXV0ZWQo
T3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiBtdXRlZCkgLT4gKCkg
QXN5bmMKICAgICBTZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRp
YSkKLSAgICBTdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKKyAgICBTdG9wTWVkaWFDYXB0dXJlKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKSAtPiAoKSBB
c3luYwogCiAgICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGJvb2wgY2FuUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgIFNldENhblJ1bk1vZGFsKGJvb2wgY2FuUnVu
TW9kYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1l
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRG9jdW1lbnQubW0KaW5kZXgg
OGVhNDA0M2UxNjE1ZTMxOTY1NzliMDYwMGI2MDBkNTY4NmM2NmE0ZS4uNjJmYTYyMjAyODY1ZGZh
ZGM1MWMyNTg1Mjc2NjdiM2ZiZmE3M2E0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTURvY3VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01Eb2N1bWVudC5tbQpAQCAtNjAsOSArNjAsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9DU1NT
dHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbW1lbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1l
bnRGdWxsc2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50SW5saW5lcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Eb2N1bWVudFR5cGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSFRNTENvbGxlY3Rpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
MWM1NzY3OTM3YzY1NDlmYTFjZTQ5YzkzODUyY2E0ZWUzYjdhZGU2Yy4uMzU1NWQ1NDRjYTc0Yjcx
MTlkNmIwNjc2MjY2N2UyYzQxNzUxZDAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI0Myw3ICsy
NDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQo
V2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAg
ICAgdm9pZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJDb3JlOjpQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgLyogaGFzVmlkZW8gKi8pIGZp
bmFsOwotICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFTdGF0ZUZs
YWdzKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5h
YmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlckRpc21pc3NQb3B1cCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGE0NmIx
YWRhNjA0OTdkYTdmNWVlZTI3ZjgxMWUzMmU3YzA4MjZlMTEuLjE2OTNkODc1ZmUwMDg1NGY5MmQ1
YmEzMTZkNWY3MzExZDg3ZDhhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTExMjksNyArMTEy
OSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoUGxh
eWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpCiAgICAgW21fd2ViVmlldyBfc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyOmNvbnRleHRJZCBsb2NhdGlvbjpsb2NhdGlvbiBoYXNWaWRlbzpoYXNW
aWRlb107CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgTWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBbbV93ZWJWaWV3IF9wbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOmNvbnRleHRJZCBzdGF0ZTpzdGF0ZV07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IDhjYTMyOTQ3YTViNDZlMDY3YjhlOGJh
ZTQ0NjM5M2ViYjkwZTg2ZWYuLjM5NjU1NWNkMWY5OGI2YmMxMzQ0NTA1N2VkY2E1NzZmZmQ0ZWI2
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KFdlYkNvcmU6OlBsYXli
YWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiwgYm9vbCBoYXNWaWRlbyk7Ci0gICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CisgICAg
dm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBs
YXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXJNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6TW9ja1N0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
RGlzbWlzc1BvcHVwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KaW5kZXggN2RiZDU4
OTQ3NTQwNWExNmViZGQwZmE5YmNmYTYyYzMzN2U3NDE1Mi4uNWNmZmJjZmMzZjVlYWM2ZTVlYjgy
ZWVhMDNlYzhiMGM1YTk4ZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQpAQCAt
NTgsNyArNTgsNyBAQCB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihXZWJDb3JlOjpQbGF5YmFja1RhcgogICAgIFdlYkNvcmU6OldlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhp
cywgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0KHJlY3QpLCBoYXNWaWRlbywgbV9wYWdlID8g
bV9wYWdlLT51c2VEYXJrQXBwZWFyYW5jZSgpIDogZmFsc2UpOwogfQogCi12b2lkIFdlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXI6OnBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK3Zv
aWQgV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBz
dGF0ZSkKIHsKICAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5j
bGllbnRTdGF0ZURpZENoYW5nZSgqdGhpcywgY29udGV4dElkLCBzdGF0ZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYzI2NGFmYTg2MmZlODlj
ZmQ4ODA1NzkxZmFhMjJmZTQzMzUwOTk1Ny4uNmQ2OTdkZDg3YmQ3MDZiYTlkYTc0MzlmMmRiMmQ1
YzE1YTQ0ZGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtOTI0MSw3ICs5MjQxLDcgQEAgLSAodm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
OihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWUKICAgICBbc2Vs
ZiBfZGV2aWNlUGlja2VyXS0+c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnRleHRJZCwgcmVj
dEluU2NyZWVuQ29vcmRpbmF0ZXMsIGhhc1ZpZGVvKTsKIH0KIAotLSAodm9pZClfcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRD
bGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncylzdGF0ZQorLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRp
YVN0YXRlRmxhZ3Mpc3RhdGUKIHsKICAgICBbc2VsZiBfZGV2aWNlUGlja2VyXS0+cGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShjb250ZXh0SWQsIHN0YXRlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmlu
ZGV4IGE0N2RhMmNmNGQ3NDk0OTYwZjVjNTA4ZjIyYjdmMTUwYTI3ZDhkYTcuLmNjZDhjZDczYTQx
ZTM5YTFhNzNlZjE5NDE1NGYxOTI5NGQyMWU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtMzM2LDcgKzMzNiw3IEBAIFdl
YkxheW91dE1pbGVzdG9uZXMga2l0TGF5b3V0TWlsZXN0b25lcyhPcHRpb25TZXQ8V2ViQ29yZTo6
TGF5b3V0TWlsZXN0b25lPik7CiAtICh2b2lkKV9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dDooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0
SWQ7CiAtICh2b2lkKV9yZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDooV2ViQ29yZTo6
UGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciljb250ZXh0SWQ7CiAtICh2b2lk
KV9zaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIpY29udGV4dElkIGxvY2F0aW9uOihjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpbG9jYXRpb24gaGFzVmlkZW86KEJPT0wpaGFzVmlkZW87Ci0tICh2b2lkKV9wbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlOihXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyKWNvbnRleHRJZCBzdGF0ZTooV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKXN0YXRlOworLSAodm9pZClfcGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYVN0YXRlRmxhZ3Mpc3RhdGU7CiAtICh2b2lkKV9zZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlckVuYWJsZWQ6KGJvb2wpZW5hYmxlZDsKIC0gKHZvaWQpX3NldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTmFtZTooTlNTdHJpbmcgKiluYW1lIHN0YXRlOihXZWJDb3JlOjpNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKXN0YXRlOwogLSAodm9pZClfbW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXA7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRG9jdW1lbnRPcmRlci5jcHAKaW5kZXggNmE0M2Y5MjY0
ODBkZmY0NmU5YTYyOTczYmRjMDVmNjI2OGM1YmEwZS4uZjM3NjI4Y2Y1ODA2YzA0ZWFlMDRjMjIw
NzgzZGJlMzk4MGM0ODFhMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0RvY3VtZW50T3JkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Eb2N1bWVudE9yZGVyLmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9Eb2N1bWVudElubGluZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxCb2R5RWxlbWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTERpdkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxIdG1sRWxlbWVudC5oPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>