<?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>209146</bug_id>
          
          <creation_ts>2020-03-16 12:10:30 -0700</creation_ts>
          <short_desc>Fix many warnings with Clang 7.0 on GTK x86-64 in Debug.</short_desc>
          <delta_ts>2020-03-19 08:17:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Charlie Turner">cturner</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tommyw</cc>
    
    <cc>tzagallo</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1630410</commentid>
    <comment_count>0</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-16 12:10:30 -0700</bug_when>
    <thetext>Fix many warnings with Clang 7.0 on GTK x86-64 in Debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630413</commentid>
    <comment_count>1</comment_count>
      <attachid>393673</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-16 12:29:15 -0700</bug_when>
    <thetext>Created attachment 393673
Patch

Fix a load of warnings I was seeing on GTK with Clang 7.0. Hopefully the EWS will alert me to any issues with RELEASE_LOG_DISABLED=0, which is Cocoa specific at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630414</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-03-16 12:29:53 -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 http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630465</commentid>
    <comment_count>3</comment_count>
      <attachid>393683</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-16 14:32:33 -0700</bug_when>
    <thetext>Created attachment 393683
Patch

Now it becomes visible why there were several seemingly unused this captures in lambdas, the RELEASE_LOG macros implicity depend on this for the class-local logger() method to resovllve. When https://bugs.webkit.org/show_bug.cgi?id=195182  lands these logging macros will become less of a maintenance burden for non-Cocoa ports. .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630487</commentid>
    <comment_count>4</comment_count>
      <attachid>393690</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-16 15:08:23 -0700</bug_when>
    <thetext>Created attachment 393690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630551</commentid>
    <comment_count>5</comment_count>
      <attachid>393690</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-16 16:53:33 -0700</bug_when>
    <thetext>Comment on attachment 393690
Patch

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

&gt; Source/WTF/wtf/LoggerHelper.h:89
&gt; +#define ALWAYS_LOG(id, ...)  (UNUSED_PARAM(id))
&gt; +#define ERROR_LOG(id, ...)   (UNUSED_PARAM(id))
&gt; +#define WARNING_LOG(id, ...) (UNUSED_PARAM(id))
&gt; +#define NOTICE_LOG(id, ...)  (UNUSED_PARAM(id))
&gt; +#define INFO_LOG(id, ...)    (UNUSED_PARAM(id))
&gt; +#define DEBUG_LOG(id, ...)   (UNUSED_PARAM(id))
&gt; +#define WILL_LOG(_level_)    false

&apos;id&apos; is a reserved word in Obj-C. I would suggest something else (it&apos;s the channel name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630691</commentid>
    <comment_count>6</comment_count>
      <attachid>393742</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-17 04:10:49 -0700</bug_when>
    <thetext>Created attachment 393742
Patch

Avoid using the uid=1000(cht) gid=1001(cht) groups=1001(cht),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),113(bluetooth),117(scanner),131(wireshark) identifier which is reserved in Obj-C, explain non-obvious things in ChangeLogs now that the dust has settled in the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630693</commentid>
    <comment_count>7</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-17 04:41:39 -0700</bug_when>
    <thetext>Shell expansion is fun. The gobbledygook was intially just &quot;.... `id` ...&quot;, and bash kindly told the world of my group subscriptions :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630718</commentid>
    <comment_count>8</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-17 07:51:05 -0700</bug_when>
    <thetext>
+fast/hidpi/image-srcset-relative-svg-canvas-2x.html		reference images diff (0.01%)	image	pass	history


I&apos;m not convinced the ios-wk2 failure is caused by my patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630930</commentid>
    <comment_count>9</comment_count>
      <attachid>393742</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-17 15:35:26 -0700</bug_when>
    <thetext>Comment on attachment 393742
Patch

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

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h:38
&gt; -    const char* name() final { return &quot;Video&quot;; }
&gt; +    const char* name() { return &quot;Video&quot;; }

This seems strange. Why would we need this function if it’s not overriding a virtual function?

&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:303
&gt; +        auto encoder = createEncoder();
&gt; +        if (encoder) {

I suggest putting the definition inside the if:

    if (auto encoder = createEncoder()) {

&gt; Source/WebCore/testing/Internals.cpp:5517
&gt;  String Internals::encodedPreferenceValue(const String&amp; domain, const String&amp; key)
&gt;  {
&gt; +    UNUSED_PARAM(domain);
&gt; +    UNUSED_PARAM(key);
&gt;      return emptyString();
&gt;  }
&gt;  
&gt;  String Internals::getUTIFromMIMEType(const String&amp; mimeType)
&gt;  {
&gt; +    UNUSED_PARAM(mimeType);
&gt;      return emptyString();
&gt;  }
&gt;  
&gt;  String Internals::getUTIFromTag(const String&amp; tagClass, const String&amp; tag, const String&amp; conformingToUTI)
&gt;  {
&gt; +    UNUSED_PARAM(tagClass);
&gt; +    UNUSED_PARAM(tag);
&gt; +    UNUSED_PARAM(conformingToUTI);
&gt;      return emptyString();
&gt;  }

I suggest taking out the argument names instead of using UNUSED_PARAM, but either is OK I suppose.

&gt; Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:67
&gt; +#if PLATFORM(COCOA)
&gt;      , m_isHTTPSUpgradeEnabled(isHTTPSUpgradeEnabled)
&gt; +#endif

Don’t we need UNUSED_PARAM for non-PLATFORM(COCOA)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631097</commentid>
    <comment_count>10</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-18 06:29:53 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 393742 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=393742&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h:38
&gt; &gt; -    const char* name() final { return &quot;Video&quot;; }
&gt; &gt; +    const char* name() { return &quot;Video&quot;; }
&gt; 
&gt; This seems strange. Why would we need this function if it’s not overriding a
&gt; virtual function?

It is overriding a virtual function. I incorrectly assumed a class-final specifier implied that the overridden virtuals from the base were implied final in the derived class. Fixed by putting the final back.

&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:303
&gt; &gt; +        auto encoder = createEncoder();
&gt; &gt; +        if (encoder) {
&gt; 
&gt; I suggest putting the definition inside the if:
&gt; 
&gt;     if (auto encoder = createEncoder()) {

Done.

&gt; 
&gt; &gt; Source/WebCore/testing/Internals.cpp:5517
&gt; &gt;  String Internals::encodedPreferenceValue(const String&amp; domain, const String&amp; key)
&gt; &gt;  {
&gt; &gt; +    UNUSED_PARAM(domain);
&gt; &gt; +    UNUSED_PARAM(key);
&gt; &gt;      return emptyString();
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  String Internals::getUTIFromMIMEType(const String&amp; mimeType)
&gt; &gt;  {
&gt; &gt; +    UNUSED_PARAM(mimeType);
&gt; &gt;      return emptyString();
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  String Internals::getUTIFromTag(const String&amp; tagClass, const String&amp; tag, const String&amp; conformingToUTI)
&gt; &gt;  {
&gt; &gt; +    UNUSED_PARAM(tagClass);
&gt; &gt; +    UNUSED_PARAM(tag);
&gt; &gt; +    UNUSED_PARAM(conformingToUTI);
&gt; &gt;      return emptyString();
&gt; &gt;  }
&gt; 
&gt; I suggest taking out the argument names instead of using UNUSED_PARAM, but
&gt; either is OK I suppose.

I will follow your suggestion, I figured leaving the names in would save a little time if they ever were to be fleshed out, but it&apos;s an eye-sore.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:67
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt;      , m_isHTTPSUpgradeEnabled(isHTTPSUpgradeEnabled)
&gt; &gt; +#endif
&gt; 
&gt; Don’t we need UNUSED_PARAM for non-PLATFORM(COCOA)?

Yes, I am not warning free yet, and this one slipped my eye.

Remaining sources of warning litter are,

  1. -Wcast-align, a check that appears not to peel back all the layers of allocations in WebKit and see the original alignment restrictions made, tempting to disable it.

  2. Warnings about unused `this` captures in lambdas, they&apos;re only used in !RELEASE_LOG_DISABLED builds, when the macro expands inside the lambda... It&apos;s ongoing work to make this logging macro port-agnostic, a systemd backend recently landed, but my embedded device does not use systemd, so I will need to think about an alternative in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631098</commentid>
    <comment_count>11</comment_count>
      <attachid>393742</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-18 06:32:05 -0700</bug_when>
    <thetext>Comment on attachment 393742
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h:38
&gt;&gt;&gt; +    const char* name() { return &quot;Video&quot;; }
&gt;&gt; 
&gt;&gt; This seems strange. Why would we need this function if it’s not overriding a virtual function?
&gt; 
&gt; It is overriding a virtual function. I incorrectly assumed a class-final specifier implied that the overridden virtuals from the base were implied final in the derived class. Fixed by putting the final back.

Final specifier on class indeed does that, however missing final on method hurts readability</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631119</commentid>
    <comment_count>12</comment_count>
      <attachid>393851</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-18 07:31:54 -0700</bug_when>
    <thetext>Created attachment 393851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631251</commentid>
    <comment_count>13</comment_count>
      <attachid>393742</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-18 11:07:37 -0700</bug_when>
    <thetext>Comment on attachment 393742
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h:38
&gt;&gt;&gt;&gt; +    const char* name() { return &quot;Video&quot;; }
&gt;&gt;&gt; 
&gt;&gt;&gt; This seems strange. Why would we need this function if it’s not overriding a virtual function?
&gt;&gt; 
&gt;&gt; It is overriding a virtual function. I incorrectly assumed a class-final specifier implied that the overridden virtuals from the base were implied final in the derived class. Fixed by putting the final back.
&gt; 
&gt; Final specifier on class indeed does that, however missing final on method hurts readability

The reason to include *either* final or override to to state explicitly that we are overriding a function and make it an error if there is no virtual function in a base class.

We choose to include only &quot;final&quot; in a case like this. We could have chosen as a matter of coding style to include &quot;override&quot; or both &quot;override&quot; and &quot;final&quot;. All of those would have the same effect since the class is already marked final.

But listing nothing at all means we miss out on a warning or error if the function in the base class is removed or renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631253</commentid>
    <comment_count>14</comment_count>
      <attachid>393851</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-18 11:09:58 -0700</bug_when>
    <thetext>Comment on attachment 393851
Patch

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

&gt; Source/WebCore/loader/cache/CachedResource.cpp:336
&gt; +#if !RELEASE_LOG_DISABLED
&gt;              auto&amp; frame = frameRef.get();
&gt;              RELEASE_LOG_IF(loggingAllowed, Network, &quot;%p - [pageID=%&quot; PRIu64 &quot;, frameID=%&quot; PRIu64 &quot;] CachedResource::load: Unable to create SubresourceLoader&quot;, this, PAGE_ID(frame), FRAME_ID(frame));
&gt; +#endif

I personally would have just repeated frameRef.get() three times, making the RELEASE_LOG_IF line a bit longer to keep this a little more tidy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631603</commentid>
    <comment_count>15</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-19 04:20:14 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Comment on attachment 393851 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=393851&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResource.cpp:336
&gt; &gt; +#if !RELEASE_LOG_DISABLED
&gt; &gt;              auto&amp; frame = frameRef.get();
&gt; &gt;              RELEASE_LOG_IF(loggingAllowed, Network, &quot;%p - [pageID=%&quot; PRIu64 &quot;, frameID=%&quot; PRIu64 &quot;] CachedResource::load: Unable to create SubresourceLoader&quot;, this, PAGE_ID(frame), FRAME_ID(frame));
&gt; &gt; +#endif
&gt; 
&gt; I personally would have just repeated frameRef.get() three times, making the
&gt; RELEASE_LOG_IF line a bit longer to keep this a little more tidy.

Done.

Thanks for the review, patch for landing coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631604</commentid>
    <comment_count>16</comment_count>
      <attachid>393964</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-19 04:21:49 -0700</bug_when>
    <thetext>Created attachment 393964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631609</commentid>
    <comment_count>17</comment_count>
      <attachid>393966</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-19 04:42:03 -0700</bug_when>
    <thetext>Created attachment 393966
Patch

Accidentally cleared the r+ status uploaded the last patch. Manually added the Reviewed by lines for the commit queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631620</commentid>
    <comment_count>18</comment_count>
      <attachid>393970</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-03-19 06:08:37 -0700</bug_when>
    <thetext>Created attachment 393970
Patch

r258635 landed unreviewed while this was being reviewed, and conflicted with its approach of eliminating unused parameter warnings. They were using UNUSED_PARAM(), I am deleting the parameter names as suggested by Darin. So, in affect this patch is now acting as a revert of r258635 as well as a more general warnings suppression patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631657</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-19 08:17:23 -0700</bug_when>
    <thetext>Committed r258698: &lt;https://trac.webkit.org/changeset/258698&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 393970.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393673</attachid>
            <date>2020-03-16 12:29:15 -0700</date>
            <delta_ts>2020-03-16 14:32:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200316192913.patch</filename>
            <type>text/plain</type>
            <size>43982</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTFhMjkzOTM3ZmJiMTgyNDBiZjAzMmVkNjE4NTRkYzYxZGQwNTJjLi41ZGU4NGY5MmFkYmIxZmYw
MDk5Zjc1MzhiNThjNmZjMGU3NzY4MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxtYWlsQGNoYXJsZXMucGx1
cz4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2
LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
OjpkZXByZWNhdGVkVk0gY29uc3QpOiBUaGlzIGFzc2VydCBpcyBhbHdheXMgdHJ1ZSwKKyAgICAg
ICAgc2luY2UgYSByZWZlcmVuY2UgbWF5IG5vdCBiZSBOVUxMLgorCiAyMDIwLTAzLTE1ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgcmVwb3J0WmFwcGVkQ2Vs
bEFuZENyYXNoIHNob3VsZCBoYW5kbGUgUHJlY2lzZUFsbG9jYXRpb24gaW4gSXNvU3Vic3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjAxMzdiNWYwMDNjMjAxZjkyMDMyYmYxNTU5NTQ2MTI4NzU3MmZkZi4uYzQwZGFmNTEy
N2YwMzVkNTM3NTc3MmQ4OTQ3NDgyZWNmNmZjODA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxtYWlsQGNoYXJsZXMucGx1cz4KKworICAgICAgICBG
aXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTG9n
Z2VySGVscGVyLmg6IFdpdGhvdXQgcmVsZWFzZSBsb2dnaW5nLCBwcmV2ZW50IHVudXNlZAorICAg
ICAgICB2YXJpYWJsZSB3YXJuaW5ncyBhYm91dCB0aGUgSUQuIE1hbnkgY2FsbC1zaXRlcyBoYXZl
IGxvY2FscworICAgICAgICBpbml0aWFsaXppbmcgYW4gSUQsIHdoaWNoIGNyZWF0ZSBhIGxvdCBv
ZiB3YXJuaW5nIHNwYW0gb24KKyAgICAgICAgcGxhdGZvcm1zIHdpdGhvdXQgb3NfbG9nLgorCiAy
MDIwLTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAg
U2hvdWxkIG5vdCB1c2UgdmFyaWFibGUtbGVuZ3RoLWFycmF5IChWTEEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGQxMmNmNDQ3YjgwZTM3MjlkNDY0NDc1YWIyNjJlZTVjYzA1YzE1My4uNGUzZjM4MzBmZTIyY2E2
Y2M2MDgzOGI0OWM2MmE4OWE4M2VlMmZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisy
MDIwLTAzLTE2ICBDaGFybGllIFR1cm5lciAgPG1haWxAY2hhcmxlcy5wbHVzPgorCisgICAgICAg
IEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkxNDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3N0bHkg
Ym9yaW5nIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMsIGJ1dCBhIGNvdXBsZSBvZiBwb3RlbnRpYWwK
KyAgICAgICAgYnVncyB3ZXJlIGJlaW5nIGhpZ2hsaWdodGVkLCBub3RlZCBiZWxvdy4KKworICAg
ICAgICBXYXJuaW5nIGZpeGVzLCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleXM6
Ok1lZGlhS2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleXM6OnNldFNlcnZlckNlcnRp
ZmljYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuaDoKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckdMRGF0YTo6Z2V0U3RhdGljVkJPKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmg6IG1fY2xvbmVDb3VudGVyIG9ubHkKKyAgICAgICAgdXNlZCBp
biBSRUxFQVNFX0xPRyBtYWNyb3MsIGxldHMgZ2V0IHJpZCBvZiB0aGlzIHBsYXRmb3JtCisgICAg
ICAgIGRpZmZlcmVuY2UhCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaDoKKyAgICAgICAgTm9uLWZpbmFsIGNsYXNzIHdpdGgg
dmlydHVhbCBtZW1iZXJzIGFuZCBubyB2aXJ0dWFsIGR0b3IncyBhcmUKKyAgICAgICAgZGFuZ2Vy
b3VzLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVyLmg6IE5vCisgICAgICAgIHZpcnR1YWwgZHRv
ciwgbWFrZSBmaW5hbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHA6IFVzZQorICAgICAg
ICB0aGUgQysrLXNwZWNpZmljIHN0cnVjdCBpbml0aWFsaXplciB0cmljaywgc2FkbHkgeyAwIH0g
ZnJvbSB0aGUgQworICAgICAgICBkYXlzIG5vIGxvbmdlciB3b3Jrcy4uLgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6QWRkQ29kZWNJ
ZlN1cHBvcnRlZCk6IFdlIHdlcmUKKyAgICAgICAgY29uZmlndXJpbmcgc3VwcG9ydCBmb3IgYW4g
dW5pbml0aWFsaXplZCBlbmNvZGVyLCB0aGlzIHdhcyBnZW51aW5lCisgICAgICAgIGJ1ZyB0aGF0
IG1heSBmaXggc29tZSB0aGluZ3MhCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVBZHdhaXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZWFkUHJlZmVyZW5jZUludGVnZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMtMTYgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1ZSBvcmlnaW5zIHNob3VsZCBub3Qg
YmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggNDNjZGJkMGYxN2E5
ZmE4MzNkZTA4YjlkMWIzNTdiNTFhY2ZmYTAxNi4uOWFjMjljZmYyMTkyNjViMWFlYTcyODNmMzg3
NTc3YzlhNDhlMTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0x
NiAgQ2hhcmxpZSBUdXJuZXIgIDxtYWlsQGNoYXJsZXMucGx1cz4KKworICAgICAgICBGaXggbWFu
eSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6bmV3V2luZG93KToKKyAgICAgICAgKFdlYkRy
aXZlcjo6U2Vzc2lvbjo6ZWxlbWVudElzRmlsZVVwbG9hZCk6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OmVsZW1lbnRJc0VkaXRhYmxlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lv
bjo6c2V0SW5wdXRGaWxlVXBsb2FkRmlsZXMpOgorCiAyMDIwLTAyLTEyICBDYXJsb3MgQWxiZXJ0
byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYkRyaXZlcjog
cmV0dXJuIGludmFsaWRTZXNzaW9uSUQgZXhjZXB0aW9uIGlmIHRoZSBXZWJQcm9jZXNzIGRvZXNu
J3QgcmVzcG9uZCAoY3Jhc2hlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjhmNzAyNDUwZDU4M2YzN2E5NmVhOWEy
YTBiN2Q1MDE0NGYxNGU2NC4uNjlhZDZjZjg5YWU5ZDMzNGZmYjdiNjU4OGU4OGJhNzNlZGQ1Yjgz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIg
IDxtYWlsQGNoYXJsZXMucGx1cz4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENs
YW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdy
YWRlQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyOjpxdWVyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmNwcDogVGhlIEhUVFBTIHVwZ3JhZGUgbG9va2VkCisgICAgICAgIHNwZWNpZmljIHRvIENvY29h
IHBsYXRmb3Jtcy4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3Jr
TG9hZENoZWNrZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENNb25pdG9yOjpvbk5ldHdvcmtzQ2hhbmdlZCk6CisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVTY2VuZVN0
YXRlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRD
b21wb3NpdG9yOjpmb3JjZVJlcGFpbnQpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjpS
ZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlJUQ01vbml0b3I6OlN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
VENNb25pdG9yOjpTdG9wVXBkYXRpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgor
CiAyMDIwLTAzLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbmlxdWUgb3JpZ2lucyBzaG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRydXN0d29ydGh5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKaW5kZXggMmRh
ZjdiYzBkZGIzN2U0MGY3MzA5Y2ExZDYyNzAzNmM3OGIxOGFmOS4uMWM5ZDEzMjQ4YTkzMjRmYWY1
MmEyYzhmYTAxMDcwNjI2MTEwNDMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbElubGluZXMuaApAQCAtMTQyLDcgKzE0Miw2IEBAIEFMV0FZU19JTkxJTkUgVk0m
IENhbGxGcmFtZTo6ZGVwcmVjYXRlZFZNKCkgY29uc3QKIHsKICAgICBKU0NlbGwqIGNhbGxlZSA9
IHRoaXMtPmNhbGxlZSgpLmFzQ2VsbCgpOwogICAgIEFTU0VSVChjYWxsZWUpOwotICAgIEFTU0VS
VCgmY2FsbGVlLT52bSgpKTsKICAgICByZXR1cm4gY2FsbGVlLT52bSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dl
ckhlbHBlci5oCmluZGV4IDBhZDY1ZWUyNDcwYjcwZmM5YTBlZWY4MmViYTcxZTBmYzNkNWY4Yzcu
LjY2ZmI1MDY3ZmU5MmYwYmRlNTE2NjQyZWRkODBkMzU5NTYzYjQ5MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhl
bHBlci5oCkBAIC04MCwxNCArODAsMTMgQEAgcHVibGljOgogCiAjZGVmaW5lIExPR0lERU5USUZJ
RVIgKFdURjo6bnVsbG9wdCkKIAotI2RlZmluZSBBTFdBWVNfTE9HKC4uLikgICAgICgodm9pZCkw
KQotI2RlZmluZSBFUlJPUl9MT0coLi4uKSAgICAgICgodm9pZCkwKQotI2RlZmluZSBFUlJPUl9M
T0coLi4uKSAgICAgICgodm9pZCkwKQotI2RlZmluZSBXQVJOSU5HX0xPRyguLi4pICAgICgodm9p
ZCkwKQotI2RlZmluZSBOT1RJQ0VfTE9HKC4uLikgICAgICgodm9pZCkwKQotI2RlZmluZSBJTkZP
X0xPRyguLi4pICAgICAgICgodm9pZCkwKQotI2RlZmluZSBERUJVR19MT0coLi4uKSAgICAgICgo
dm9pZCkwKQotI2RlZmluZSBXSUxMX0xPRyhfbGV2ZWxfKSAgIGZhbHNlCisjZGVmaW5lIEFMV0FZ
U19MT0coaWQsIC4uLikgIChVTlVTRURfUEFSQU0oaWQpKQorI2RlZmluZSBFUlJPUl9MT0coaWQs
IC4uLikgICAoVU5VU0VEX1BBUkFNKGlkKSkKKyNkZWZpbmUgV0FSTklOR19MT0coaWQsIC4uLikg
KFVOVVNFRF9QQVJBTShpZCkpIAorI2RlZmluZSBOT1RJQ0VfTE9HKGlkLCAuLi4pICAoVU5VU0VE
X1BBUkFNKGlkKSkgCisjZGVmaW5lIElORk9fTE9HKGlkLCAuLi4pICAgIChVTlVTRURfUEFSQU0o
aWQpKQorI2RlZmluZSBERUJVR19MT0coaWQsIC4uLikgICAoVU5VU0VEX1BBUkFNKGlkKSkKKyNk
ZWZpbmUgV0lMTF9MT0coX2xldmVsXykgICAgZmFsc2UKIAogI2RlZmluZSBBTFdBWVNfTE9HX0lG
KGNvbmRpdGlvbiwgLi4uKSAgICAgKCh2b2lkKTApCiAjZGVmaW5lIEVSUk9SX0xPR19JRihjb25k
aXRpb24sIC4uLikgICAgICAoKHZvaWQpMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAppbmRleCBhODljZDQwMDNkNzFlZWFmOTEw
N2E0NTdiNDQzZmI3ZTMwYzU1MzI3Li5kYTdjZGZjNjRhMTlhOWYwNTExNDQ0NWMyNDhkZTU2ZjFj
ZTIzNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleXMuY3BwCkBAIC02Myw2ICs2Myw4IEBAIE1lZGlhS2V5czo6TWVkaWFLZXlzKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVy
CiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9pbnN0YW5jZS0+c2V0TG9nZ2Vy
KGRvY3VtZW50LmxvZ2dlcigpLCBtX2xvZ0lkZW50aWZpZXIpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgbV9pbnN0YW5jZS0+c2V0Q2xpZW50KG1ha2VX
ZWFrUHRyKHRoaXMpKTsKIH0KQEAgLTEzMyw3ICsxMzUsNyBAQCB2b2lkIE1lZGlhS2V5czo6c2V0
U2VydmVyQ2VydGlmaWNhdGUoY29uc3QgQnVmZmVyU291cmNlJiBzZXJ2ZXJDZXJ0aWZpY2F0ZSwg
UmVmPAogICAgIC8vIDUuIFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgogCiAg
ICAgLy8gNS4xLiBVc2UgdGhpcyBvYmplY3QncyBjZG0gaW5zdGFuY2UgdG8gcHJvY2VzcyBjZXJ0
aWZpY2F0ZS4KLSAgICBtX2luc3RhbmNlLT5zZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShXVEZNb3ZlKGNl
cnRpZmljYXRlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAo
YXV0byBzdWNjZXNzKSB7CisgICAgbV9pbnN0YW5jZS0+c2V0U2VydmVyQ2VydGlmaWNhdGUoV1RG
TW92ZShjZXJ0aWZpY2F0ZSksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0g
KGF1dG8gc3VjY2VzcykgewogICAgICAgICAvLyA1LjIuIElmIHRoZSBwcmVjZWRpbmcgc3RlcCBm
YWlsZWQsIHJlc29sdmUgcHJvbWlzZSB3aXRoIGEgbmV3IERPTUV4Y2VwdGlvbiB3aG9zZSBuYW1l
IGlzIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBuYW1lLgogICAgICAgICAvLyA1LjEuIFtFbHNlLF0g
UmVzb2x2ZSBwcm9taXNlIHdpdGggdHJ1ZS4KICAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gQ0RNSW5z
dGFuY2U6OkZhaWxlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAppbmRleCBmYzZkZGI4ZTZkMmI4NzAzNmQy
NjIxMzhkZWQ0YzZjNzc3OTZiZTllLi4xNjcyNjgxN2RiMzczNTRiODEzOTVjNDM1NjMwMzZjODRj
ODcxMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsOSBAQCBwcml2YXRlOgogCiAg
ICAgU3RyaW5nIG1fZGV2aWNlSWQ7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1f
Y3VycmVudFNldHRpbmdzOworI2lmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgc2l6ZV90IG1fbnVt
YmVyT2ZGcmFtZXMgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhMmI4
OTU3YjIzZWVkMTkzOTA3ZThmMTIwZjEzY2EyNGE4NTZlMTYuLjliM2Q4MWIzZjY0ODgxMGIxNWQ3
NTJkOTQzZTIyZmZkZTQzMTRiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGNv
CiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShuZXdSZXF1ZXN0
KSk7CiAgICAgICAgIH0KICAgICAgICAgbV9sb2FkVGltaW5nLmFkZFJlZGlyZWN0KHJlZGlyZWN0
UmVzcG9uc2UudXJsKCksIG5ld1JlcXVlc3QudXJsKCkpOwotICAgICAgICBtX3Jlc291cmNlLT5y
ZWRpcmVjdFJlY2VpdmVkKFdURk1vdmUobmV3UmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY29udGludWVXaWxsU2VuZFJlcXVl
c3QgPSBXVEZNb3ZlKGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KV0gKFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QpIG11dGFibGUgeworICAgICAgICBtX3Jlc291cmNlLT5yZWRpcmVjdFJlY2VpdmVk
KFdURk1vdmUobmV3UmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFtwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgY29udGludWVXaWxsU2VuZFJlcXVlc3QgPSBXVEZNb3ZlKGNvbnRpbnVl
V2lsbFNlbmRSZXF1ZXN0KV0gKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpIG11dGFibGUgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0SW50ZXJu
YWw6IHJlc291cmNlIGRvbmUgbm90aWZ5aW5nIGNsaWVudHMiKTsKICAgICAgICAgICAgIGNvbnRp
bnVlV2lsbFNlbmRSZXF1ZXN0KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEZNb3ZlKHJl
cXVlc3QpKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcAppbmRleCA1ZDg2YWY2ZTRkYjFhMzViYWMxNTg4YTA5ZmU4ZWVhNDRk
NjM1NDg4Li42OWMwMDAyMjk2YTdkMDFjNGE1NjgwYjkxNzAzY2QxZjhmMDI4OTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTMzMCw4
ICszMzAsMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRl
clN0cmF0ZWd5KCktPmxvYWRSZXNvdXJjZShmcmFtZSwgKnRoaXMsIFdURk1vdmUocmVxdWVzdCks
IG1fb3B0aW9ucywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4odGhpcyksIGZyYW1lUmVmID0gbWFrZVJlZihmcmFtZSksIGxvZ2dpbmdB
bGxvd2VkID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCld
IChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKSB7CiAgICAgICAgIG1fbG9hZGVy
ID0gV1RGTW92ZShsb2FkZXIpOwogICAgICAgICBpZiAoIW1fbG9hZGVyKSB7CisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgICAgICAgICBhdXRvJiBmcmFtZSA9IGZyYW1lUmVmLmdldCgp
OwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYobG9nZ2luZ0FsbG93ZWQsIE5ldHdvcmssICIl
cCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICJdIENhY2hlZFJlc291
cmNlOjpsb2FkOiBVbmFibGUgdG8gY3JlYXRlIFN1YnJlc291cmNlTG9hZGVyIiwgdGhpcywgUEFH
RV9JRChmcmFtZSksIEZSQU1FX0lEKGZyYW1lKSk7CisjZW5kaWYKICAgICAgICAgICAgIGZhaWxC
ZWZvcmVTdGFydGluZygpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwCmluZGV4IDk2ZTMwNDMxMjY5ZTRkODJiMWMxMDc3MTllNzA1YjgxMzJhNjI3
YTQuLmZiYTExMjA3OGQ2NDhlYzNhMmE3ZDI5MWQwNGM4MDRmOTcxZTQ0NTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0xEYXRh
Ojppbml0aWFsaXplU3RlbmNpbCgpCiBHTHVpbnQgVGV4dHVyZU1hcHBlckdMRGF0YTo6Z2V0U3Rh
dGljVkJPKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkK
IHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmJvcy5lbnN1cmUoZGF0YSwKLSAgICAgICAgW3Ro
aXMsIHRhcmdldCwgc2l6ZSwgZGF0YV0geworICAgICAgICBbdGFyZ2V0LCBzaXplLCBkYXRhXSB7
CiAgICAgICAgICAgICBHTHVpbnQgdmJvID0gMDsKICAgICAgICAgICAgIGdsR2VuQnVmZmVycygx
LCAmdmJvKTsKICAgICAgICAgICAgIGdsQmluZEJ1ZmZlcih0YXJnZXQsIHZibyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmgKaW5kZXggM2I2MWJjOTFlYjNhYWZjMWIzMzJhOThjZTUwNGFkOTdmM2E2YmYwMS4u
YjA3YmU2MDljNjMyMzg5ZDgyZjJkZjgxMGE5NTAwOTNkMWE2ZjRkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaApAQCAtNzAsNyArNzAsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmPFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlPiBtX3NvdXJjZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9jdXJyZW50U2V0dGluZ3M7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0
X3QgbV9jbG9uZUNvdW50ZXIgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oCmluZGV4IDlh
YWY3NjFkNmM0YjQzYzQ0ZWY0NDcxMWU4MzdiMGYxMjUyZDFmNWEuLmRjN2YyOGZkMTdiOGI5NmM4
YjM2Yzk3Y2RkMzk5ZTBiOGM4ZDQ1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1
ZGlvQ2FwdHVyZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXIgOiBwdWJsaWMgR1N0cmVhbWVyQ2FwdHVyZXIg
eworY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlciBmaW5hbCA6IHB1YmxpYyBHU3RyZWFtZXJD
YXB0dXJlciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlcihHU3RyZWFtZXJD
YXB0dXJlRGV2aWNlKTsKICAgICBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGFjOTg4
ZTRjMGNhYzQwNjMwNjAwNmJmNGZiMmU3NmU5MmMwMmI0YjYuLjg3YTA4ZjI5MTdiZDVlNzdkZTQy
OThmMjRlNjI2MmIwN2JmMDlhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zOCw5ICszOCw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY29uc3Qgc3RhdGljIGludCBkZWZhdWx0V2lkdGggPSA2NDA7Ci1jb25zdCBz
dGF0aWMgaW50IGRlZmF1bHRIZWlnaHQgPSA0ODA7Ci0KIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJr
aXRfdmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcpOwogI2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQg
d2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlci5oCmluZGV4IDU3YjBiNDY4NmQzNGFlMGMxMTU0YTczZmQ0YTRi
OWVkNWM0MGU2OTUuLjZjYmRhNzdlMzhhZTlmZWFlOTI4OTRmNGFkZGZlYzVlNmE2M2JlMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJWaWRlb0NhcHR1cmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaApAQCAtMjksMTMgKzI5
LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0
dXJlciA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVyIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1YmxpYzoKICAgICBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwogICAgIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZXIoY29uc3QgY2hhciogc291cmNlX2ZhY3RvcnkpOwogCiAgICAgR3N0
RWxlbWVudCogY3JlYXRlQ29udmVydGVyKCkgZmluYWw7Ci0gICAgY29uc3QgY2hhciogbmFtZSgp
IGZpbmFsIHsgcmV0dXJuICJWaWRlbyI7IH0KKyAgICBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1
cm4gIlZpZGVvIjsgfQogCiAgICAgYm9vbCBzZXRTaXplKGludCB3aWR0aCwgaW50IGhlaWdodCk7
CiAgICAgYm9vbCBzZXRGcmFtZVJhdGUoZG91YmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJG
YWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAppbmRleCBhM2JkZDZiNzIyN2NiYjRh
Y2VjMzMyNzgwYTU1ZDBiYTc3ZGU4MzJhLi41MzQ2ZTJlYmQwZmE4N2UzZThiNzEzMWI3YmQ5MmEx
MzZmNjdjMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVj
b2RlckZhY3RvcnkuY3BwCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwogICAgIH0KIAotICAgIGludDMyX3QgUmVnaXN0ZXJE
ZWNvZGVDb21wbGV0ZUNhbGxiYWNrKHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxi
YWNrKQorICAgIGludDMyX3QgUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKHdlYnJ0Yzo6
RGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
bV9pbWFnZVJlYWR5Q2IgPSBjYWxsYmFjazsKIApAQCAtMzIwLDcgKzMyMCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgY29uc3QgZ2NoYXIqIENhcHMoKSA9IDA7CiAgICAgdmlydHVhbCB3ZWJy
dGM6OlZpZGVvQ29kZWNUeXBlIENvZGVjVHlwZSgpID0gMDsKLSAgICBjb25zdCBjaGFyKiBJbXBs
ZW1lbnRhdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiAiR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0
IGNoYXIqIEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJHU3Ry
ZWFtZXIiOyB9CiAgICAgdmlydHVhbCBjb25zdCBnY2hhciogTmFtZSgpID0gMDsKIAogcHJvdGVj
dGVkOgpAQCAtMzM2LDcgKzMzNiw2IEBAIHByaXZhdGU6CiAgICAgR3N0RWxlbWVudCogbV9zaW5r
OwogICAgIEdzdEVsZW1lbnQqIG1fc3JjOwogCi0gICAgR3N0VmlkZW9JbmZvIG1faW5mbzsKICAg
ICB3ZWJydGM6OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBtX2ltYWdlUmVhZHlDYjsKIAogICAgIFN0
ZE1hcDxHc3RDbG9ja1RpbWUsIElucHV0VGltZXN0YW1wcz4gbV9kdHNQdHNNYXA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVh
bWVyVmlkZW9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCmluZGV4IDQyZjBjZjg1NzExYTc0
ZDg4ZWEzZGEyNzNiNzlmOTJmYTM5ZWUyYmEuLjZhMWQ0YTdhNDEwMjVkN2U1NWJlMmE2NDhjMGVl
NjgwYWY3NWRlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIu
Y3BwCkBAIC02NywxNyArNjcsNyBAQCB0eXBlZGVmIGVudW0KICAgRU5DT0RFUl9MQVNULAogfSBF
bmNvZGVySWQ7CiAKLUVuY29kZXJEZWZpbml0aW9uIGVuY29kZXJzW0VOQ09ERVJfTEFTVF0gPSB7
Ci0gIEZBTFNFLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAot
ICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotfTsKK0VuY29kZXJEZWZpbml0aW9uIGVuY29kZXJz
W0VOQ09ERVJfTEFTVF0gPSB7IHsgfSB9OwogCiB0eXBlZGVmIHN0cnVjdAogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1l
clZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCmluZGV4IGEy
ZmRkYTVmZmE1MDkzY2NiNzVkY2Q2YzhlYzQ3ZWZmMWJiOGM5ZWIuLjJjOWMyOTBlYmJjOTgyYzY3
Y2ViYTU4ZDE2OWE5NTkxNzE5NWY3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0
cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBlbGVtOwogICAgIH0KIAotICAgIGludDMyX3QgSW5pdEVuY29kZShj
b25zdCB3ZWJydGM6OlZpZGVvQ29kZWMqIGNvZGVjU2V0dGluZ3MsIGludDMyX3QsIHNpemVfdCkK
KyAgICBpbnQzMl90IEluaXRFbmNvZGUoY29uc3Qgd2VicnRjOjpWaWRlb0NvZGVjKiBjb2RlY1Nl
dHRpbmdzLCBpbnQzMl90LCBzaXplX3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb2RlY1NldHRpbmdzLCBXRUJSVENfVklERU9fQ09ERUNfRVJSX1BBUkFN
RVRFUik7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGVjU2V0dGluZ3MtPmNvZGVj
VHlwZSA9PSBDb2RlY1R5cGUoKSwgV0VCUlRDX1ZJREVPX0NPREVDX0VSUl9QQVJBTUVURVIpOwpA
QCAtMTg4LDcgKzE4OCw4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIFZpZGVv
RW5jb2Rlcjo6RW5jb2RlckluZm8gR2V0RW5jb2RlckluZm8oKSBjb25zdCB7CisgICAgVmlkZW9F
bmNvZGVyOjpFbmNvZGVySW5mbyBHZXRFbmNvZGVySW5mbygpIGNvbnN0IG92ZXJyaWRlCisgICAg
ewogICAgICAgICBFbmNvZGVySW5mbyBpbmZvOwogICAgICAgICBpbmZvLnN1cHBvcnRzX25hdGl2
ZV9oYW5kbGUgPSBmYWxzZTsKICAgICAgICAgaW5mby5pbXBsZW1lbnRhdGlvbl9uYW1lID0gIkdT
dHJlYW1lciI7CkBAIC0yOTgsMTAgKzI5OSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgQWRkQ29k
ZWNJZlN1cHBvcnRlZChzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9ybWF0Piogc3VwcG9y
dGVkRm9ybWF0cykKICAgICB7Ci0gICAgICAgIEdzdEVsZW1lbnQqIGVuY29kZXI7Ci0KLSAgICAg
ICAgaWYgKGNyZWF0ZUVuY29kZXIoKS5nZXQoKSAhPSBudWxscHRyKSB7Ci0gICAgICAgICAgICB3
ZWJydGM6OlNkcFZpZGVvRm9ybWF0IGZvcm1hdCA9IENvbmZpZ3VyZVN1cHBvcnRlZENvZGVjKGVu
Y29kZXIpOworICAgICAgICBhdXRvIGVuY29kZXIgPSBjcmVhdGVFbmNvZGVyKCk7CisgICAgICAg
IGlmIChlbmNvZGVyKSB7CisgICAgICAgICAgICB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0IGZvcm1h
dCA9IENvbmZpZ3VyZVN1cHBvcnRlZENvZGVjKGVuY29kZXIuZ2V0KCkpOwogCiAgICAgICAgICAg
ICBzdXBwb3J0ZWRGb3JtYXRzLT5wdXNoX2JhY2soZm9ybWF0KTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmgKaW5kZXggMTQ4
M2EyYjIwYjM1MTVjNzFiN2EwYzdhNTIyNjI2ZTlmZjUzOTIwNC4uMWVhYzE5NzBjMTMyYzM1MWI4
M2M4OTY0N2UyMjBhYmI5MGVlY2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVh
bWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5oCkBAIC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgc3RkOjp2ZWN0b3I8d2VicnRjOjpTZHBWaWRlb0Zvcm1hdD4gR2V0U3VwcG9ydGVk
Rm9ybWF0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZp
ZGVvRW5jb2Rlcj4gQ3JlYXRlVmlkZW9FbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3Jt
YXQmKSBmaW5hbDsKLSAgICBDb2RlY0luZm8gUXVlcnlWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRj
OjpTZHBWaWRlb0Zvcm1hdCYpIGNvbnN0CisgICAgQ29kZWNJbmZvIFF1ZXJ5VmlkZW9FbmNvZGVy
KGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgR1NUX0ZJWE1FKCJEZXRlY3Qgd2V0aGVyIHRoZSBkZWNvZGVyIGlzIEhXIGFjY2VsZXJh
dGVkIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCA5MTRlMTBl
N2ViNzdhZDFiNmZkZThhNGE0NGNhM2ExOWRjNWY4ZDNhLi5kOTE5ZjJjNDlmNDZjZTAzNzA2OTM2
YWVkMjRmNzVmOWFjZjI3ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
CkBAIC0zMTcsNiArMzE3LDggQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tp
ZXMoY29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYKIAogICAgICAgICBz
b3VwX2Nvb2tpZV9qYXJfYWRkX2Nvb2tpZV9mdWxsKGNvb2tpZVN0b3JhZ2UoKSwgY29va2llLnRv
U291cENvb2tpZSgpLCBvcmlnaW4uZ2V0KCksIGZpcnN0UGFydHlVUkkuZ2V0KCkpOwogI2Vsc2UK
KyAgICAgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgICAgIFVOVVNFRF9QQVJBTShmaXJzdFBh
cnR5KTsKICAgICAgICAgc291cF9jb29raWVfamFyX2FkZF9jb29raWUoY29va2llU3RvcmFnZSgp
LCBjb29raWUudG9Tb3VwQ29va2llKCkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDhmYzY1MDQ4YjlmZTI2OGFm
OGJmNTQ3YjNlNzM4ZGEyZjA4ZTg1ZjYuLjk1NzVlMzM3YWE4YmYzY2Y3MDc4ZTJmZjdmZWRlMjBm
OTE4ZTJjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgVGlsZWRCYWNraW5nOwogY2xhc3MgVHJhbnNm
b3JtYXRpb25NYXRyaXg7CiAKIAotI2lmIF9fV09SRFNJWkUgPT0gNjQKKyNpZiBfX1dPUkRTSVpF
ID09IDY0ICYmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBVU0VfT1dOSU5HX0xBWUVSX0JFQVJf
VFJBUCAxCiAjZGVmaW5lIEJFQVJfVFJBUF9WQUxVRSAweEVFRUVFRUVFRUVFRUVFRUUKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKaW5kZXgg
ZWM2ODQwZGQxODA2ZTYyNjQ4MTAzYTVhY2Q2MzIxNjMwZTlhMjk2My4uM2ZiNmQ4ZGIwNGExNmU1
NzBjZTg4OGFiMjA0NjhjZjJmMmQ2MmRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUFkd2FpdGEuaApAQCAtNjIsOCArNjIsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgcGFpbnRTZWFyY2hGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAKICAgICBib29sIHBvcHNNZW51QnlTcGFjZU9yUmV0
dXJuKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgYWRqdXN0TWVudUxp
c3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKLSAgICB2b2lkIGFk
anVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29u
c3Q7CisgICAgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxl
bWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25TdHls
ZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBMZW5n
dGhCb3ggcG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBm
aW5hbDsKICAgICBib29sIHBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAgICAgYm9vbCBwYWludE1lbnVM
aXN0QnV0dG9uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyQm94JiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgRmxvYXRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggOTIzZWU5NWUwNTBjZjViMWViYzM3NzNjNGJlMmM0OWU0NWQxNTNjYy4uYWFhNDk0ZWVm
MDkyMjAxMjcwNDgwZTNlOTc2MmEwMTBmOWExZTYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtNTQ4OCw2ICs1NDg4LDggQEAgaW50IEludGVybmFsczo6cmVhZFByZWZl
cmVuY2VJbnRlZ2VyKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKICAg
ICBCb29sZWFuIGtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7CiAgICAgcmV0dXJu
IENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUoa2V5LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIGRvbWFpbi5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAma2V5RXhpc3RzQW5kSGFzVmFsaWRG
b3JtYXQpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9tYWluKTsKKyAgICBVTlVTRURfUEFS
QU0oa2V5KTsKICAgICByZXR1cm4gLTE7CiAjZW5kaWYKIH0KQEAgLTU0OTUsMTYgKzU0OTcsMjIg
QEAgaW50IEludGVybmFsczo6cmVhZFByZWZlcmVuY2VJbnRlZ2VyKGNvbnN0IFN0cmluZyYgZG9t
YWluLCBjb25zdCBTdHJpbmcmIGtleSkKICNpZiAhUExBVEZPUk0oQ09DT0EpCiBTdHJpbmcgSW50
ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25z
dCBTdHJpbmcmIGtleSkKIHsKKyAgICBVTlVTRURfUEFSQU0oZG9tYWluKTsKKyAgICBVTlVTRURf
UEFSQU0oa2V5KTsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAogU3RyaW5nIEludGVy
bmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CisgICAg
VU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAog
U3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBj
b25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCiB7CisgICAg
VU5VU0VEX1BBUkFNKHRhZ0NsYXNzKTsKKyAgICBVTlVTRURfUEFSQU0odGFnKTsKKyAgICBVTlVT
RURfUEFSQU0oY29uZm9ybWluZ1RvVVRJKTsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggOWZiNDAyNzAyYmRiNDg5OGNlOWY3MDc1ZjIyOTIxMDJh
MzIzNTgwMS4uNDc4NWEyNjk2ODUzYjNiOTM0ZjlkNTViMmFhYzFjZWQ4MmYyNTEwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVy
L1Nlc3Npb24uY3BwCkBAIC02MDgsNyArNjA4LDcgQEAgdm9pZCBTZXNzaW9uOjpuZXdXaW5kb3co
T3B0aW9uYWw8U3RyaW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYK
ICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAg
ICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJwcmVzZW50YXRpb25IaW50Il9zLCB0eXBlSGlu
dC52YWx1ZSgpID09ICJ3aW5kb3ciID8gIldpbmRvdyJfcyA6ICJUYWIiX3MpOwogICAgICAgICB9
Ci0gICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJyb3dzaW5nQ29u
dGV4dCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBwcm90
ZWN0ZWRUaGlzLmNvcHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7Cisg
ICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJyb3dzaW5nQ29udGV4
dCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlz
LmNvcHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAg
ICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1v
dmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTU1MCw3ICsxNTUwLDcgQEAgdm9pZCBTZXNzaW9uOjplbGVtZW50SXNGaWxlVXBsb2FkKGNv
bnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW4KICAgICAgICAgcGFy
YW1ldGVycy0+c2V0U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50QnJvd3NpbmdDb250
ZXh0LnZhbHVlKCkpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsIGlz
RmlsZVVwbG9hZFNjcmlwdCk7CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImFyZ3VtZW50cyJf
cywgV1RGTW92ZShhcmd1bWVudHMpKTsKLSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5k
KCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYm
IHJlc3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAg
ICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92
ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE2
OTIsNyArMTY5Miw3IEBAIHZvaWQgU2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFibGUoY29uc3QgU3Ry
aW5nJiBlbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSCiAgICAgICAgIHBhcmFtZXRl
cnMtPnNldFN0cmluZygiZnJhbWVIYW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52
YWx1ZSgpKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBpc0VkaXRh
YmxlU2NyaXB0KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZN
b3ZlKGFyZ3VtZW50cykpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9u
c2UpIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlm
IChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3Bv
bnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc5NCw3ICsx
Nzk0LDcgQEAgdm9pZCBTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxlcyhjb25zdCBTdHJp
bmcmIGVsZW1lbnRJRCwgY29uc3QgU3RyaW5nJiB0ZXgKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJp
bmcoImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWVPcihlbXB0
eVN0cmluZygpKSk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJub2RlSGFuZGxlIl9zLCBl
bGVtZW50SUQpOwogICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJmaWxlbmFtZXMiX3MsIFdURk1v
dmUoZmlsZW5hbWVzKSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgic2V0Rmls
ZXNGb3JJbnB1dEZpbGVVcGxvYWQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVsZW1lbnRJRCwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25z
ZSYmIHJlc3BvbnNlKSBtdXRhYmxlIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5k
KCJzZXRGaWxlc0ZvcklucHV0RmlsZVVwbG9hZCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZWxlbWVudElELCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3Bv
bnNlJiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikg
ewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZN
b3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRl
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyLmNwcAppbmRleCBkNjI5NjYwNTE2Nzc0YzQ5ZjNjYmE1ZjA4NGQ2YzBlNGZh
N2Y4ZTA5Li5hNDJlYjdjOTE2N2YwZTdkOGJjZjM1NjU5YWQ5YWE0YmZhZmRmMDRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyLmNwcApAQCAtMTEyLDYgKzExMiw4IEBAIHZvaWQgTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXI6OnF1ZXJ5KFN0cmluZyYmIGhvc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwKICAgICAgICAgaWYgKHN0ZXBSZXN1bHQgIT0gU1FMSVRFX1JPVyAmJiBzdGVwUmVzdWx0ICE9
IFNRTElURV9ET05FKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgInN0ZXAgZmFpbGVkIHdpdGggZXJyb3Ig
Y29kZSAlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJs
aWN9cyIsIHN0ZXBSZXN1bHQsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpLCBuZXR3b3JrSFRU
UFNVcGdyYWRlQ2hlY2tlckRhdGFiYXNlUGF0aCgpLnV0ZjgoKS5kYXRhKCkpOworI2Vsc2UKKyAg
ICAgICAgICAgIFVOVVNFRF9WQVJJQUJMRShzZXNzaW9uSUQpOwogI2VuZGlmCiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5k
ZXggNmVkYzI1MTkzZjRjZTg1OWI3NjRiM2VjMGE1YmM1ZmNhNzg5ZDBhOC4uYzQ2MmM4ZGQ2M2Ux
NDU2ZWFhYmJiODZhM2I4MzQ1MzI2ZWY4NDAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNjIsNyArNjIsOSBAQCBO
ZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIE5ldHdvcmtSZQogICAgICwgbV9wcmVmbGlnaHRQb2xpY3kocHJlZmxpZ2h0
UG9saWN5KQogICAgICwgbV9yZWZlcnJlcihXVEZNb3ZlKHJlZmVycmVyKSkKICAgICAsIG1fc2hv
dWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1cmVFeHRyYU5ldHdv
cmtMb2FkTWV0cmljcykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICAsIG1faXNIVFRQU1VwZ3Jh
ZGVFbmFibGVkKGlzSFRUUFNVcGdyYWRlRW5hYmxlZCkKKyNlbmRpZgogICAgICwgbV9yZXF1ZXN0
TG9hZFR5cGUocmVxdWVzdExvYWRUeXBlKQogICAgICwgbV9zY2hlbWVSZWdpc3RyeShzY2hlbWVS
ZWdpc3RyeSkKICAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG1ha2VXZWFrUHRyKG5ldHdv
cmtSZXNvdXJjZUxvYWRlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCA5ZTRkY2IwNDU1YTVlYWVjYmM0N2FmMjE2NzRkY2Qw
YjcwY2RkOWM2Li40ZDljYTk2YTg3NTEwYzA3OGI2YzkyYjdjNDNkMjQ1OTgxOGZhZWMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgK
QEAgLTE1Myw3ICsxNTMsMTEgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9yZWZlcnJlcjsKICAg
ICBib29sIG1fY2hlY2tDb250ZW50RXh0ZW5zaW9ucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3No
b3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyB7IGZhbHNlIH07CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBib29sIG1faXNIVFRQU1VwZ3JhZGVFbmFibGVkIHsgZmFsc2UgfTsK
KyNlbmRpZgorCiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRJbmZvcm1hdGlvbiBtX2xvYWRJbmZv
cm1hdGlvbjsKIAogICAgIExvYWRUeXBlIG1fcmVxdWVzdExvYWRUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyZGIyZjE0OWE2
MTc3ZWY5NDY0NThhZTBhNjRjMGQ3YzM3MTllN2FlLi4zYmJhZmJlMDNiODdjYTVmM2RiYTdjN2Y2
Zjg3MTM3MjZjNDdlZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcApAQCAtMjE3NSw3ICsyMTc1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9u
SGFuZGwKIAogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAKLSAgICBSZWZQ
dHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKCkgUHJvY2VzcyBpcyByZWFkeSB0byBzdXNwZW5kIiwgdGhpcyk7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHAKaW5k
ZXggMjMxMmQxODk4MDZjOGQwYzlkYzMyYjk4NTVhOGMzN2JkY2E2ZWI0ZS4uZTBjMDY5MTZiOWUx
NTllMzU1MzVmNzI1MWE5MzNkYjI5NDA1MzJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcApAQCAtOTQs
NyArOTQsNyBAQCB2b2lkIE5ldHdvcmtSVENNb25pdG9yOjpvbk5ldHdvcmtzQ2hhbmdlZCgpCiAg
ICAgICAgIG5ldHdvcmtMaXN0LnVuY2hlY2tlZEFwcGVuZChSVENOZXR3b3JrIHsgKm5ldHdvcmsg
fSk7CiAgICAgfQogCi0gICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW3RoaXMs
IG5ldHdvcmtMaXN0ID0gV1RGTW92ZShuZXR3b3JrTGlzdCksIGlwdjQgPSBXVEZNb3ZlKGlwdjQp
LCBpcHY2ID0gV1RGTW92ZShpcHY2KV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7Cisg
ICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW25ldHdvcmtMaXN0ID0gV1RGTW92
ZShuZXR3b3JrTGlzdCksIGlwdjQgPSBXVEZNb3ZlKGlwdjQpLCBpcHY2ID0gV1RGTW92ZShpcHY2
KV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoIm9uTmV0d29ya3NDaGFuZ2VkIHNlbnQiKTsKICAgICAgICAgY29ubmVjdGlvbi5z
ZW5kKE1lc3NhZ2VzOjpXZWJSVENNb25pdG9yOjpOZXR3b3Jrc0NoYW5nZWQobmV0d29ya0xpc3Qs
IGlwdjQsIGlwdjYpLCAwKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcAppbmRleCBlOGRiYmUyNzNiM2JkNDI0MTc0YmRjOTAzZDc2NGIxYTJiMDU3NWQ0
Li5hNzNkZDQzMzUzZmYwNjg4MmM4OTkwYjNkZmVkNzgyMmMzZGQyMjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0yNzEsNyArMjcxLDcgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVNjZW5lU3RhdGUoKQogICAgICAgICAgICAg
Zm9yIChhdXRvJiBjb21wb3NpdGlvbkxheWVyIDogbV9uaWNvc2lhLnN0YXRlLmxheWVycykgewog
ICAgICAgICAgICAgICAgIGF1dG8mIGxheWVyID0gdGV4bWFwTGF5ZXIoKmNvbXBvc2l0aW9uTGF5
ZXIpOwogICAgICAgICAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPmNvbW1pdFN0YXRlKAotICAg
ICAgICAgICAgICAgICAgICBbdGhpcywgJmxheWVyLCAmY29tcG9zaXRpb25MYXllciwgJmxheWVy
c0J5QmFja2luZ10KKyAgICAgICAgICAgICAgICAgICAgWyZsYXllciwgJmxheWVyc0J5QmFja2lu
Z10KICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6
OkxheWVyU3RhdGUmIGxheWVyU3RhdGUpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChsYXllclN0YXRlLmRlbHRhLnBvc2l0aW9uQ2hhbmdlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuY3BwCmluZGV4IGJjYjIzNTk3NWIxMzNkMmUyNzY3NmQyODNmZTg5MTM4MWEwZDVkMWMuLmI4
YzczMDNlNzU5YzAwNGQzYzk3Yzc4Y2IyN2M5ZTdkMGMzZTVmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAt
MTY3LDcgKzE2Nyw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFpbnQoKQog
ICAgIC8vIGluIGEgd2F5IHRoYXQgZG9lc24ndCBzdGFydmUgb3V0IHRoZSB1bmRlcmx5aW5nIGdy
YXBoaWNzIGJ1ZmZlcnMuCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKFdQRV9SRU5ERVJFUikK
ICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hh
bmdlKG1faW5Gb3JjZVJlcGFpbnQsIHRydWUpOwogICAgICAgICByZW5kZXJMYXllclRyZWUoKTsK
ICAgICB9KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA0OTA2NDBkNTQzYjMxMWM0YWY3MTAxNTNhNTAx
ZDE4ZDg0M2Y0ZjUwLi5mY2QyZTQ4ODg5OTlkMDUyZTAyNGE1ZDMyYTU5MzQ5N2Q2ZGViYzAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuaApAQCAtMTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX25h
dGl2ZVN1cmZhY2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFn
cyBtX3BhaW50RmxhZ3MgeyAwIH07Ci0gICAgYm9vbCBtX2luRm9yY2VSZXBhaW50IHsgZmFsc2Ug
fTsKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRlZENvdW50IHsgMCB9OwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV9jb21wb3NpdGluZ1J1bkxvb3A7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRp
b25DbGllbnQuY3BwCmluZGV4IDU0ZWYwYjRlNWE5MWU0ZDg1NDc4MmIwZjIzNWRmMmRlMTE5YzVh
MWEuLjc4NzY0NDM5YTQ3NWIyMzlkMDcyZDczOTQwMWE4Mjg1MDg3MTM5NGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRp
b25DbGllbnQuY3BwCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVk
ZWRDUFVMaW1pdDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVl
c3RlZEJ5Q2xpZW50OgorICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVx
dWVzdGVkQnlOZXR3b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25S
ZWFzb246Ok5hdmlnYXRpb25Td2FwOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCBlM2Y0Zjg1
NDY5YzlkMTU5ZTI1YmQ1ODI2YTczZmQwY2EzMzVlZTQwLi5iNjU1MWVhYmY1YzJiYmQ4Y2M0ZDQ4
MmY0Y2YwNTJlYmVlOTRjMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXIuY3BwCkBAIC02MCw3ICs2MCw2IEBAIHByaXZhdGU6CiB9OwogCiBSZW1vdGVJbnNw
ZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcihXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7CiAgICAg
d2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoY29udGV4dCwgImluc3BlY3Rv
ciIsIFtdKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRh
KSB7CiAgICAgICAgIHN0YXRpY19jYXN0PFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcio+
KHVzZXJEYXRhKS0+aGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3Bl
Y3RvclByb3RvY29sSGFuZGxlci5oCmluZGV4IGM0ODczZTc1NjZkNTU1YmJiNGE3NzM5MmRmNzIy
NWEzMTRjMjZkYzIuLmY2YTBkMDExMjMzODMwOGUxODExMDA4ODFiOGJkZTRmNWJlYzc4YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaApAQCAtNDksNyArNDks
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9y
Q2xpZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKFJlbW90ZUluc3Bl
Y3RvckNsaWVudCYpIG92ZXJyaWRlOwogCi0gICAgV2ViS2l0V2ViQ29udGV4dCogbV9jb250ZXh0
IHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
SW5zcGVjdG9yQ2xpZW50Pj4gbV9pbnNwZWN0b3JDbGllbnRzOwogICAgIEhhc2hTZXQ8V2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyKj4gbV91c2VyQ29udGVudE1hbmFnZXJzOwogICAgIEhhc2hTZXQ8
V2ViS2l0V2ViVmlldyo+IG1fd2ViVmlld3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRvci5jcHAKaW5kZXggY2E5N2Fm
MzAzZTdiZTJiMDM0MDgwZmNlNGZlOWE1ZmIxYzNhNGJjMy4uYTQ3NWVlMjc4M2VmODdjMmE1OTRi
OGUzNDJlNzE0MGQ4OWY5MDQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yLmNwcApAQCAtNTcsNyArNTcsNyBA
QCB2b2lkIFdlYlJUQ01vbml0b3I6OlN0YXJ0VXBkYXRpbmcoKQogICAgICAgICB9KTsKICAgICB9
CiAKLSAgICBzZW5kT25NYWluVGhyZWFkKFt0aGlzXShhdXRvJiBjb25uZWN0aW9uKSB7CisgICAg
c2VuZE9uTWFpblRocmVhZChbXShhdXRvJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoIlN0YXJ0VXBkYXRpbmcgLSBBc2tpbmcgbmV0d29yayBwcm9jZXNzIHRv
IHN0YXJ0IHVwZGF0aW5nIik7CiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0
d29ya1JUQ01vbml0b3I6OlN0YXJ0VXBkYXRpbmdJZk5lZWRlZCgpLCAwKTsKICAgICB9KTsKQEAg
LTcxLDcgKzcxLDcgQEAgdm9pZCBXZWJSVENNb25pdG9yOjpTdG9wVXBkYXRpbmcoKQogICAgIGlm
ICgtLW1fY2xpZW50Q291bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlbmRPbk1haW5UaHJl
YWQoW3RoaXNdKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICBzZW5kT25NYWluVGhyZWFkKFtdKGF1
dG8mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiU3RvcFVw
ZGF0aW5nIC0gQXNraW5nIG5ldHdvcmsgcHJvY2VzcyB0byBzdG9wIHVwZGF0aW5nIik7CiAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ01vbml0b3I6OlN0b3BVcGRh
dGluZygpLCAwKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCBjMDQyN2ExOWJhYmU3MDk2NzhiNWE0MTg4ZDIyMzcwOTA0ZmQ2MGUyLi40YWQ3ZjJh
ODU2Yjg0YmY0MzFhY2IzMmMyNTZhMWYyOWMwMTU5ZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhh
bmRsZXI8dgogICAgIHVwZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKICNlbmRpZgogCi0gICAgbWFya0Fs
bExheWVyc1ZvbGF0aWxlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShib29sIHN1Y2Nlc3MpIG11dGFibGUgeworICAgIG1hcmtBbGxMYXllcnNW
b2xhdGlsZShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Ym9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHN1Y2Nlc3MpCiAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTdXNwZW5zaW9uLCAibWFya0FsbExheWVy
c1ZvbGF0aWxlOiBTdWNjZXNzZnVseSBtYXJrZWQgYWxsIGxheWVycyBhcyB2b2xhdGlsZSIpOwog
ICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNjBmNWE0NTEzNWI0OGM5NzQwZjZkMDRjZjVkYjAwNWY2ODFkZGQ4ZS4uYzRjYjQw
MmMxNjBjMzZiZTVlNDQ3YTQyOWVkZmZlNWVhYzU1MjFkNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAzLTE2
ICBDaGFybGllIFR1cm5lciAgPG1haWxAY2hhcmxlcy5wbHVzPgorCisgICAgICAgIEZpeCBtYW55
IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkxNDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdERvd25sb2Fkcy5jcHA6CisgICAgICAgICh0ZXN0RG93bmxvYWRNSU1F
VHlwZSk6CisgICAgICAgICh0ZXN0Q29udGV4dE1lbnVEb3dubG9hZEFjdGlvbnMpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHA6CisKIDIw
MjAtMDMtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVu
aXF1ZSBvcmlnaW5zIHNob3VsZCBub3QgYmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwCmluZGV4IDE5N2QyMTNlZTdhMjdjMTM1YTE0NjNiNGU5NThmYmUwMmI1MmEw
NzkuLmFmYWRiYzUzOTIyM2U0YjJjNjVmZjYwMDY3M2Q1YWNhOGFkZTY2YzEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmNwcApAQCAtMTIzOSw2ICsxMjM5LDggQEAgVEVTVChUcmFuc2Zvcm1hdGlvbk1hdHJp
eCwgQ2FzdGluZykKICAgICBFWFBFQ1RfRE9VQkxFX0VRKDMuMCwgY2FGcm9tV0subTQyKTsKICAg
ICBFWFBFQ1RfRE9VQkxFX0VRKDIuMCwgY2FGcm9tV0subTQzKTsKICAgICBFWFBFQ1RfRE9VQkxF
X0VRKDEuMCwgY2FGcm9tV0subTQ0KTsKKyNlbHNlCisgICAgVU5VU0VEX1ZBUklBQkxFKHRlc3Qp
OwogI2VuZGlmCiAKICNpZiBVU0UoQ0cpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4
IGNkYWI0YWVlZGVmNTVmZjNmYWIzZTMzNmU0MjMwMGNiYWJkOGVhNGQuLjVhZTQ0ZDQ2NzdlNjky
NWE1YTk0Zjc5ZDYyYjk5OWRmODI1NDJlMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3Bw
CkBAIC02Miw3ICs2Miw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q29ubmVjdGlvbihSZWY8
U29ja2V0Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIHsKLSAgICAgICAgZ19hc3NlcnRf
dHJ1ZShjb25uZWN0aW9uLnB0cigpKTsKICAgICAgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShj
b25uZWN0aW9uKTsKICAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29wLmdldCgpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdERvd25sb2Fkcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdERvd25sb2Fkcy5jcHAKaW5kZXggZTAzOTE5OWMxNzJlYzdkMjNkOTI0ZTA5ZTkzZGMwZjg4
ZGYxMTE0Yy4uZjczM2U4MTgzYWNmMDIzZTdkZWJkYjFkNmE0Zjk4NWRjMjAxYzRmZCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93bmxv
YWRzLmNwcApAQCAtNjcyLDE0ICs2NzIsMTQgQEAgc3RhdGljIHZvaWQgdGVzdERvd25sb2FkTUlN
RVR5cGUoRG93bmxvYWRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGV2ZW50cy5jbGVh
cigpOwogCiAgICAgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCA9IHdlYmtpdF9kb3dubG9hZF9n
ZXRfcmVxdWVzdChkb3dubG9hZC5nZXQoKSk7Ci0gICAgV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJl
cXVlc3QpOworICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3Qp
KTsKICAgICBBU1NFUlRfQ01QX0NTVFJJTkcod2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVx
dWVzdCksID09LCBrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvdW5rbm93biIpKTsKIAogICAgIGF1
dG8gaGVhZGVycyA9IHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfaHR0cF9oZWFkZXJzKHJlcXVlc3Qp
OwogICAgIGdfYXNzZXJ0X25vbm51bGwoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFk
ZXJzLCAiVXNlci1BZ2VudCIpKTsKIAogICAgIFdlYktpdFVSSVJlc3BvbnNlKiByZXNwb25zZSA9
IHdlYmtpdF9kb3dubG9hZF9nZXRfcmVzcG9uc2UoZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJ
VF9JU19VUklfUkVTUE9OU0UocmVzcG9uc2UpOworICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0lT
X1VSSV9SRVNQT05TRShyZXNwb25zZSkpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfdXJp
X3Jlc3BvbnNlX2dldF9taW1lX3R5cGUocmVzcG9uc2UpLCA9PSwgImFwcGxpY2F0aW9uL3BkZiIp
OwogCiAgICAgZ19hc3NlcnRfbm9ubnVsbCh3ZWJraXRfZG93bmxvYWRfZ2V0X2Rlc3RpbmF0aW9u
KGRvd25sb2FkLmdldCgpKSk7CkBAIC03MzksNyArNzM5LDcgQEAgc3RhdGljIHZvaWQgdGVzdENv
bnRleHRNZW51RG93bmxvYWRBY3Rpb25zKFdlYlZpZXdEb3dubG9hZFRlc3QqIHRlc3QsIGdjb25z
dHBvaW4KICAgICBnX2Fzc2VydF90cnVlKHRlc3QtPm1fd2ViVmlldyA9PSB3ZWJraXRfZG93bmxv
YWRfZ2V0X3dlYl92aWV3KHRlc3QtPm1fZG93bmxvYWQuZ2V0KCkpKTsKIAogICAgIFdlYktpdFVS
SVJlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3JlcXVlc3QodGVzdC0+bV9k
b3dubG9hZC5nZXQoKSk7Ci0gICAgV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpOworICAg
IGdfYXNzZXJ0X3RydWUoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBBU1NF
UlRfQ01QX0NTVFJJTkcod2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCksID09LCBr
U2VydmVyLT5nZXRVUklGb3JQYXRoKCIvdGVzdC5wZGYiKSk7CiAKICAgICBhdXRvIGhlYWRlcnMg
PSB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X2h0dHBfaGVhZGVycyhyZXF1ZXN0KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwCmlu
ZGV4IDU0OGE5ODFjMWI0MjIzODJjNmJkZmUyMGEwMTc3OTdlYTY3NzcyMDAuLjcwZjcwOWRjMTky
ZmVkYzE1OGQ3OWIzZjUwNWJlNjNmNjQ1ODFjNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFByaW50aW5nLmNwcApAQCAtMTE4LDcgKzExOCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBHUmVmUHRyPFdlYktpdFByaW50T3BlcmF0aW9uPiBt
X3ByaW50T3BlcmF0aW9uOwotICAgIHVuc2lnbmVkIG1fZXhwZWN0ZWRFcnJvcjsKKyAgICBpbnQg
bV9leHBlY3RlZEVycm9yOwogfTsKIAogc3RhdGljIHZvaWQgdGVzdFByaW50T3BlcmF0aW9uUHJp
bnQoUHJpbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393683</attachid>
            <date>2020-03-16 14:32:33 -0700</date>
            <delta_ts>2020-03-16 15:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200316213231.patch</filename>
            <type>text/plain</type>
            <size>38598</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTFhMjkzOTM3ZmJiMTgyNDBiZjAzMmVkNjE4NTRkYzYxZGQwNTJjLi42YTgzZDMwYmJlZWQxZjRk
Zjg0ZTQyMmVmZmQ5YzMwZjQ4NmNjYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxtYWlsQGNoYXJsZXMucGx1
cz4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2
LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
OjpkZXByZWNhdGVkVk0gY29uc3QpOgorCiAyMDIwLTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgcmVwb3J0WmFwcGVkQ2VsbEFuZENyYXNoIHNob3Vs
ZCBoYW5kbGUgUHJlY2lzZUFsbG9jYXRpb24gaW4gSXNvU3Vic3BhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMjAxMzdiNWYw
MDNjMjAxZjkyMDMyYmYxNTU5NTQ2MTI4NzU3MmZkZi4uNWU2MTM4MTA0NTYyZDIyMGYwMmQ2NTZl
MjdhZGY5YjdiNzVjNDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xNiAgQ2hhcmxp
ZSBUdXJuZXIgIDxtYWlsQGNoYXJsZXMucGx1cz4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5n
cyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTG9nZ2VySGVscGVyLmg6CisK
IDIwMjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAwZDEyY2Y0NDdiODBlMzcyOWQ0NjQ0NzVhYjI2MmVlNWNjMDVjMTUzLi4wMzM3YzAzMDYwOTAz
ZDZiYTY5MDEzZWJhYjNjYzhmODQ5YmNiMWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVyICA8bWFpbEBjaGFybGVzLnBsdXM+CisKKyAgICAg
ICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1
Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE0
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpNZWRpYUtleXMpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xE
YXRhOjpnZXRTdGF0aWNWQk8pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVv
RGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNv
ZGVyOjpSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpJbXBsZW1lbnRhdGlvbk5hbWUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6QWRkQ29kZWNJZlN1cHBvcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29kZXI6OkluaXRFbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyOjpHZXRFbmNvZGVySW5mbyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVB
ZHdhaXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpyZWFkUHJlZmVyZW5jZUludGVnZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1ZSBvcmlnaW5zIHNob3VsZCBub3QgYmUgUG90
ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggNDNjZGJkMGYxN2E5ZmE4MzNk
ZTA4YjlkMWIzNTdiNTFhY2ZmYTAxNi4uOWFjMjljZmYyMTkyNjViMWFlYTcyODNmMzg3NTc3Yzlh
NDhlMTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0xNiAgQ2hh
cmxpZSBUdXJuZXIgIDxtYWlsQGNoYXJsZXMucGx1cz4KKworICAgICAgICBGaXggbWFueSB3YXJu
aW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTZXNzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6bmV3V2luZG93KToKKyAgICAgICAgKFdlYkRyaXZlcjo6
U2Vzc2lvbjo6ZWxlbWVudElzRmlsZVVwbG9hZCk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OmVsZW1lbnRJc0VkaXRhYmxlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6c2V0
SW5wdXRGaWxlVXBsb2FkRmlsZXMpOgorCiAyMDIwLTAyLTEyICBDYXJsb3MgQWxiZXJ0byBMb3Bl
eiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYkRyaXZlcjogcmV0dXJu
IGludmFsaWRTZXNzaW9uSUQgZXhjZXB0aW9uIGlmIHRoZSBXZWJQcm9jZXNzIGRvZXNuJ3QgcmVz
cG9uZCAoY3Jhc2hlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjhmNzAyNDUwZDU4M2YzN2E5NmVhOWEyYTBiN2Q1
MDE0NGYxNGU2NC4uYzJmMDJkMDkzNGNmMzc1NDRjNjQyZWE5ZjI3NTE4OGRkNWFhYjNmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxtYWls
QGNoYXJsZXMucGx1cz4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcu
MCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpx
dWVyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oOgorICAgICAg
ICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6dXBkYXRlU2Nl
bmVTdGF0ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkQ29tcG9zaXRvcjo6Zm9yY2VSZXBhaW50KToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaDoKKwogMjAyMC0w
My0xNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5pcXVl
IG9yaWdpbnMgc2hvdWxkIG5vdCBiZSBQb3RlbnRpYWxseSBUcnVzdHdvcnRoeQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IDJkYWY3YmMwZGRi
MzdlNDBmNzMwOWNhMWQ2MjcwMzZjNzhiMThhZjkuLjFjOWQxMzI0OGE5MzI0ZmFmNTJhMmM4ZmEw
MTA3MDYyNjExMDQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGxJbmxpbmVzLmgKQEAgLTE0Miw3ICsxNDIsNiBAQCBBTFdBWVNfSU5MSU5FIFZNJiBDYWxsRnJh
bWU6OmRlcHJlY2F0ZWRWTSgpIGNvbnN0CiB7CiAgICAgSlNDZWxsKiBjYWxsZWUgPSB0aGlzLT5j
YWxsZWUoKS5hc0NlbGwoKTsKICAgICBBU1NFUlQoY2FsbGVlKTsKLSAgICBBU1NFUlQoJmNhbGxl
ZS0+dm0oKSk7CiAgICAgcmV0dXJuIGNhbGxlZS0+dm0oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIu
aAppbmRleCAwYWQ2NWVlMjQ3MGI3MGZjOWEwZWVmODJlYmE3MWUwZmMzZDVmOGM3Li42NmZiNTA2
N2ZlOTJmMGJkZTUxNjY0MmVkZDgwZDM1OTU2M2I0OTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXJIZWxwZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaApA
QCAtODAsMTQgKzgwLDEzIEBAIHB1YmxpYzoKIAogI2RlZmluZSBMT0dJREVOVElGSUVSIChXVEY6
Om51bGxvcHQpCiAKLSNkZWZpbmUgQUxXQVlTX0xPRyguLi4pICAgICAoKHZvaWQpMCkKLSNkZWZp
bmUgRVJST1JfTE9HKC4uLikgICAgICAoKHZvaWQpMCkKLSNkZWZpbmUgRVJST1JfTE9HKC4uLikg
ICAgICAoKHZvaWQpMCkKLSNkZWZpbmUgV0FSTklOR19MT0coLi4uKSAgICAoKHZvaWQpMCkKLSNk
ZWZpbmUgTk9USUNFX0xPRyguLi4pICAgICAoKHZvaWQpMCkKLSNkZWZpbmUgSU5GT19MT0coLi4u
KSAgICAgICAoKHZvaWQpMCkKLSNkZWZpbmUgREVCVUdfTE9HKC4uLikgICAgICAoKHZvaWQpMCkK
LSNkZWZpbmUgV0lMTF9MT0coX2xldmVsXykgICBmYWxzZQorI2RlZmluZSBBTFdBWVNfTE9HKGlk
LCAuLi4pICAoVU5VU0VEX1BBUkFNKGlkKSkKKyNkZWZpbmUgRVJST1JfTE9HKGlkLCAuLi4pICAg
KFVOVVNFRF9QQVJBTShpZCkpCisjZGVmaW5lIFdBUk5JTkdfTE9HKGlkLCAuLi4pIChVTlVTRURf
UEFSQU0oaWQpKSAKKyNkZWZpbmUgTk9USUNFX0xPRyhpZCwgLi4uKSAgKFVOVVNFRF9QQVJBTShp
ZCkpIAorI2RlZmluZSBJTkZPX0xPRyhpZCwgLi4uKSAgICAoVU5VU0VEX1BBUkFNKGlkKSkKKyNk
ZWZpbmUgREVCVUdfTE9HKGlkLCAuLi4pICAgKFVOVVNFRF9QQVJBTShpZCkpCisjZGVmaW5lIFdJ
TExfTE9HKF9sZXZlbF8pICAgIGZhbHNlCiAKICNkZWZpbmUgQUxXQVlTX0xPR19JRihjb25kaXRp
b24sIC4uLikgICAgICgodm9pZCkwKQogI2RlZmluZSBFUlJPUl9MT0dfSUYoY29uZGl0aW9uLCAu
Li4pICAgICAgKCh2b2lkKTApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKaW5kZXggYTg5Y2Q0MDAzZDcxZWVhZjkxMDdhNDU3YjQ0
M2ZiN2UzMGM1NTMyNy4uYzRiNjk4NDJmNTE1MjViOTg0YmJkMDk3Zjc5MmRmMjAxNzJiNjRhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlzLmNwcApAQCAtNjMsNiArNjMsOCBAQCBNZWRpYUtleXM6Ok1lZGlhS2V5cyhEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBib29sIHBlcgogewogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1faW5zdGFuY2UtPnNldExvZ2dlcihkb2N1bWVu
dC5sb2dnZXIoKSwgbV9sb2dJZGVudGlmaWVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRv
Y3VtZW50KTsKICNlbmRpZgogICAgIG1faW5zdGFuY2UtPnNldENsaWVudChtYWtlV2Vha1B0cih0
aGlzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4IGZjNmRkYjhlNmQyYjg3MDM2ZDI2MjEzOGRl
ZDRjNmM3Nzc5NmJlOWUuLjE2NzI2ODE3ZGIzNzM1NGI4MTM5NWM0MzU2MzAzNmM4NGM4NzEwOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZS5oCkBAIC01OCw3ICs1OCw5IEBAIHByaXZhdGU6CiAKICAgICBTdHJp
bmcgbV9kZXZpY2VJZDsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50
U2V0dGluZ3M7CisjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICBzaXplX3QgbV9udW1iZXJPZkZy
YW1lcyB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggNWQ4NmFm
NmU0ZGIxYTM1YmFjMTU4OGEwOWZlOGVlYTQ0ZDYzNTQ4OC4uNjljMDAwMjI5NmE3ZDAxYzRhNTY4
MGI5MTcwM2NkMWY4ZjAyODk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0zMzAsOCArMzMwLDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3Vy
Y2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQogICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5sb2FkUmVzb3VyY2UoZnJh
bWUsICp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBtX29wdGlvbnMsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+KHRoaXMpLCBmcmFtZVJl
ZiA9IG1ha2VSZWYoZnJhbWUpLCBsb2dnaW5nQWxsb3dlZCA9IGNhY2hlZFJlc291cmNlTG9hZGVy
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpXSAoUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiYm
IGxvYWRlcikgewogICAgICAgICBtX2xvYWRlciA9IFdURk1vdmUobG9hZGVyKTsKICAgICAgICAg
aWYgKCFtX2xvYWRlcikgeworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICAgICAg
YXV0byYgZnJhbWUgPSBmcmFtZVJlZi5nZXQoKTsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
KGxvZ2dpbmdBbGxvd2VkLCBOZXR3b3JrLCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFt
ZUlEPSUiIFBSSXU2NCAiXSBDYWNoZWRSZXNvdXJjZTo6bG9hZDogVW5hYmxlIHRvIGNyZWF0ZSBT
dWJyZXNvdXJjZUxvYWRlciIsIHRoaXMsIFBBR0VfSUQoZnJhbWUpLCBGUkFNRV9JRChmcmFtZSkp
OworI2VuZGlmCiAgICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCA5NmUzMDQzMTI2
OWU0ZDgyYjFjMTA3NzE5ZTcwNWI4MTMyYTYyN2E0Li5mYmExMTIwNzhkNjQ4ZWMzYTJhN2QyOTFk
MDRjODA0Zjk3MWU0NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMTUwLDcgKzE1MCw3
IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMRGF0YTo6aW5pdGlhbGl6ZVN0ZW5jaWwoKQogR0x1aW50
IFRleHR1cmVNYXBwZXJHTERhdGE6OmdldFN0YXRpY1ZCTyhHTGVudW0gdGFyZ2V0LCBHTHNpemVp
cHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3Zi
b3MuZW5zdXJlKGRhdGEsCi0gICAgICAgIFt0aGlzLCB0YXJnZXQsIHNpemUsIGRhdGFdIHsKKyAg
ICAgICAgW3RhcmdldCwgc2l6ZSwgZGF0YV0gewogICAgICAgICAgICAgR0x1aW50IHZibyA9IDA7
CiAgICAgICAgICAgICBnbEdlbkJ1ZmZlcnMoMSwgJnZibyk7CiAgICAgICAgICAgICBnbEJpbmRC
dWZmZXIodGFyZ2V0LCB2Ym8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDNiNjFiYzkxZWIzYWFm
YzFiMzMyYTk4Y2U1MDRhZDk3ZjNhNmJmMDEuLmIwN2JlNjA5YzYzMjM4OWQ4MmYyZGY4MTBhOTUw
MDkzZDFhNmY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTcwLDcgKzcwLDkgQEAgcHJpdmF0
ZToKIAogICAgIFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOworI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIHVpbnQ2NF90IG1fY2xvbmVDb3VudGVyIHsgMCB9OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZXIuaAppbmRleCA5YWFmNzYxZDZjNGI0M2M0NGVmNDQ3MTFlODM3YjBm
MTI1MmQxZjVhLi5kYzdmMjhmZDE3YjhiOTZjOGIzNmM5N2NkZDM5OWUwYjhjOGQ0NWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyQXVkaW9DYXB0dXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVy
IDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKK2NsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVy
ZXIgZmluYWwgOiBwdWJsaWMgR1N0cmVhbWVyQ2FwdHVyZXIgewogcHVibGljOgogICAgIEdTdHJl
YW1lckF1ZGlvQ2FwdHVyZXIoR1N0cmVhbWVyQ2FwdHVyZURldmljZSk7CiAgICAgR1N0cmVhbWVy
QXVkaW9DYXB0dXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlLmNwcAppbmRleCBhYzk4OGU0YzBjYWM0MDYzMDYwMDZiZjRmYjJlNzZlOTJj
MDJiNGI2Li44N2EwOGYyOTE3YmQ1ZTc3ZGU0Mjk4ZjI0ZTYyNjJiMDdiZjA5YTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAt
MzgsOSArMzgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IHN0YXRpYyBpbnQg
ZGVmYXVsdFdpZHRoID0gNjQwOwotY29uc3Qgc3RhdGljIGludCBkZWZhdWx0SGVpZ2h0ID0gNDgw
OwotCiBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVn
KTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9k
ZWJ1ZwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaAppbmRleCA1
N2IwYjQ2ODZkMzRhZTBjMTE1NGE3M2ZkNGE0YjllZDVjNDBlNjk1Li42Y2JkYTc3ZTM4YWU5ZmVh
ZTkyODk0ZjRhZGRmZWM1ZTZhNjNiZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0NhcHR1cmVyLmgKQEAgLTI5LDEzICsyOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZXIgOiBwdWJsaWMgR1N0cmVhbWVyQ2FwdHVy
ZXIgeworY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlciBmaW5hbCA6IHB1YmxpYyBHU3RyZWFt
ZXJDYXB0dXJlciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlcihHU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlKTsKICAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVyKGNvbnN0IGNoYXIq
IHNvdXJjZV9mYWN0b3J5KTsKIAogICAgIEdzdEVsZW1lbnQqIGNyZWF0ZUNvbnZlcnRlcigpIGZp
bmFsOwotICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBmaW5hbCB7IHJldHVybiAiVmlkZW8iOyB9Cisg
ICAgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJWaWRlbyI7IH0KIAogICAgIGJvb2wgc2V0
U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIGJvb2wgc2V0RnJhbWVSYXRlKGRvdWJs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9y
eS5jcHAKaW5kZXggYTNiZGQ2YjcyMjdjYmI0YWNlYzMzMjc4MGE1NWQwYmE3N2RlODMyYS4uNTM0
NmUyZWJkMGZhODdlM2U4YjcxMzFiN2JkOTJhMTM2ZjY3YzM1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVj
b2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcApAQCAtMTY1LDcgKzE2
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKICAg
ICB9CiAKLSAgICBpbnQzMl90IFJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayh3ZWJydGM6
OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBjYWxsYmFjaykKKyAgICBpbnQzMl90IFJlZ2lzdGVyRGVj
b2RlQ29tcGxldGVDYWxsYmFjayh3ZWJydGM6OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBjYWxsYmFj
aykgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIG1faW1hZ2VSZWFkeUNiID0gY2FsbGJhY2s7CiAK
QEAgLTMyMCw3ICszMjAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IGdjaGFyKiBD
YXBzKCkgPSAwOwogICAgIHZpcnR1YWwgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBDb2RlY1R5cGUo
KSA9IDA7Ci0gICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25OYW1lKCkgY29uc3QgeyByZXR1
cm4gIkdTdHJlYW1lciI7IH0KKyAgICBjb25zdCBjaGFyKiBJbXBsZW1lbnRhdGlvbk5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiR1N0cmVhbWVyIjsgfQogICAgIHZpcnR1YWwgY29uc3Qg
Z2NoYXIqIE5hbWUoKSA9IDA7CiAKIHByb3RlY3RlZDoKQEAgLTMzNiw3ICszMzYsNiBAQCBwcml2
YXRlOgogICAgIEdzdEVsZW1lbnQqIG1fc2luazsKICAgICBHc3RFbGVtZW50KiBtX3NyYzsKIAot
ICAgIEdzdFZpZGVvSW5mbyBtX2luZm87CiAgICAgd2VicnRjOjpEZWNvZGVkSW1hZ2VDYWxsYmFj
ayogbV9pbWFnZVJlYWR5Q2I7CiAKICAgICBTdGRNYXA8R3N0Q2xvY2tUaW1lLCBJbnB1dFRpbWVz
dGFtcHM+IG1fZHRzUHRzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNv
ZGVyLmNwcAppbmRleCA0MmYwY2Y4NTcxMWE3NGQ4OGVhM2RhMjczYjc5ZjkyZmEzOWVlMmJhLi42
YTFkNGE3YTQxMDI1ZDdlNTViZTJhNjQ4YzBlZTY4MGFmNzVkZWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcApAQCAtNjcsMTcgKzY3LDcgQEAgdHlwZWRl
ZiBlbnVtCiAgIEVOQ09ERVJfTEFTVCwKIH0gRW5jb2RlcklkOwogCi1FbmNvZGVyRGVmaW5pdGlv
biBlbmNvZGVyc1tFTkNPREVSX0xBU1RdID0gewotICBGQUxTRSwKLSAgTlVMTCwKLSAgTlVMTCwK
LSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLX07
CitFbmNvZGVyRGVmaW5pdGlvbiBlbmNvZGVyc1tFTkNPREVSX0xBU1RdID0geyB7IH0gfTsKIAog
dHlwZWRlZiBzdHJ1Y3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0VuY29kZXJGYWN0b3J5LmNwcAppbmRleCBhMmZkZGE1ZmZhNTA5M2NjYjc1ZGNkNmM4ZWM0N2Vm
ZjFiYjhjOWViLi4yYzljMjkwZWJiYzk4MmM2N2NlYmE1OGQxNjlhOTU5MTcxOTVmNzg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0
cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3Bw
CkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZWxlbTsKICAgICB9
CiAKLSAgICBpbnQzMl90IEluaXRFbmNvZGUoY29uc3Qgd2VicnRjOjpWaWRlb0NvZGVjKiBjb2Rl
Y1NldHRpbmdzLCBpbnQzMl90LCBzaXplX3QpCisgICAgaW50MzJfdCBJbml0RW5jb2RlKGNvbnN0
IHdlYnJ0Yzo6VmlkZW9Db2RlYyogY29kZWNTZXR0aW5ncywgaW50MzJfdCwgc2l6ZV90KSBvdmVy
cmlkZQogICAgIHsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29kZWNTZXR0aW5ncywg
V0VCUlRDX1ZJREVPX0NPREVDX0VSUl9QQVJBTUVURVIpOwogICAgICAgICBnX3JldHVybl92YWxf
aWZfZmFpbChjb2RlY1NldHRpbmdzLT5jb2RlY1R5cGUgPT0gQ29kZWNUeXBlKCksIFdFQlJUQ19W
SURFT19DT0RFQ19FUlJfUEFSQU1FVEVSKTsKQEAgLTE4OCw3ICsxODgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBWaWRlb0VuY29kZXI6OkVuY29kZXJJbmZvIEdldEVuY29k
ZXJJbmZvKCkgY29uc3QgeworICAgIFZpZGVvRW5jb2Rlcjo6RW5jb2RlckluZm8gR2V0RW5jb2Rl
ckluZm8oKSBjb25zdCBvdmVycmlkZQorICAgIHsKICAgICAgICAgRW5jb2RlckluZm8gaW5mbzsK
ICAgICAgICAgaW5mby5zdXBwb3J0c19uYXRpdmVfaGFuZGxlID0gZmFsc2U7CiAgICAgICAgIGlu
Zm8uaW1wbGVtZW50YXRpb25fbmFtZSA9ICJHU3RyZWFtZXIiOwpAQCAtMjk4LDEwICsyOTksOSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIEFkZENvZGVjSWZTdXBwb3J0ZWQoc3RkOjp2ZWN0b3I8d2Vi
cnRjOjpTZHBWaWRlb0Zvcm1hdD4qIHN1cHBvcnRlZEZvcm1hdHMpCiAgICAgewotICAgICAgICBH
c3RFbGVtZW50KiBlbmNvZGVyOwotCi0gICAgICAgIGlmIChjcmVhdGVFbmNvZGVyKCkuZ2V0KCkg
IT0gbnVsbHB0cikgewotICAgICAgICAgICAgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCBmb3JtYXQg
PSBDb25maWd1cmVTdXBwb3J0ZWRDb2RlYyhlbmNvZGVyKTsKKyAgICAgICAgYXV0byBlbmNvZGVy
ID0gY3JlYXRlRW5jb2RlcigpOworICAgICAgICBpZiAoZW5jb2RlcikgeworICAgICAgICAgICAg
d2VicnRjOjpTZHBWaWRlb0Zvcm1hdCBmb3JtYXQgPSBDb25maWd1cmVTdXBwb3J0ZWRDb2RlYyhl
bmNvZGVyLmdldCgpKTsKIAogICAgICAgICAgICAgc3VwcG9ydGVkRm9ybWF0cy0+cHVzaF9iYWNr
KGZvcm1hdCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlk
ZW9FbmNvZGVyRmFjdG9yeS5oCmluZGV4IDE0ODNhMmIyMGIzNTE1YzcxYjdhMGM3YTUyMjYyNmU5
ZmY1MzkyMDQuLjFlYWMxOTcwYzEzMmMzNTFiODNjODk2NDdlMjIwYWJiOTBlZWNhNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaApAQCAt
MzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0ZDo6dmVjdG9yPHdlYnJ0Yzo6
U2RwVmlkZW9Gb3JtYXQ+IEdldFN1cHBvcnRlZEZvcm1hdHMoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+IENyZWF0ZVZpZGVvRW5jb2Rl
cihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JikgZmluYWw7Ci0gICAgQ29kZWNJbmZvIFF1
ZXJ5VmlkZW9FbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSBjb25zdAorICAg
IENvZGVjSW5mbyBRdWVyeVZpZGVvRW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0
JikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEdTVF9GSVhNRSgiRGV0ZWN0IHdldGhl
ciB0aGUgZGVjb2RlciBpcyBIVyBhY2NlbGVyYXRlZCIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHAKaW5kZXggOTE0ZTEwZTdlYjc3YWQxYjZmZGU4YTRhNDRjYTNhMTlkYzVm
OGQzYS4uZDkxOWYyYzQ5ZjQ2Y2UwMzcwNjkzNmFlZDI0Zjc1ZjlhY2YyN2QxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzE3LDYgKzMxNyw4IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29r
aWVzLCBjb25zdCBVUkwmCiAKICAgICAgICAgc291cF9jb29raWVfamFyX2FkZF9jb29raWVfZnVs
bChjb29raWVTdG9yYWdlKCksIGNvb2tpZS50b1NvdXBDb29raWUoKSwgb3JpZ2luLmdldCgpLCBm
aXJzdFBhcnR5VVJJLmdldCgpKTsKICNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTSh1cmwpOwor
ICAgICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgICAgIHNvdXBfY29va2llX2ph
cl9hZGRfY29va2llKGNvb2tpZVN0b3JhZ2UoKSwgY29va2llLnRvU291cENvb2tpZSgpKTsKICNl
bmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaAppbmRleCA4ZmM2NTA0OGI5ZmUyNjhhZjhiZjU0N2IzZTczOGRhMmYwOGU4NWY2Li45NTc1
ZTMzN2FhOGJmM2NmNzA3OGUyZmY3ZmVkZTIwZjkxOGUyY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNz
IFRpbGVkQmFja2luZzsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogCiAKLSNpZiBfX1dP
UkRTSVpFID09IDY0CisjaWYgX19XT1JEU0laRSA9PSA2NCAmJiBQTEFURk9STShDT0NPQSkKICNk
ZWZpbmUgVVNFX09XTklOR19MQVlFUl9CRUFSX1RSQVAgMQogI2RlZmluZSBCRUFSX1RSQVBfVkFM
VUUgMHhFRUVFRUVFRUVFRUVFRUVFCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQWR3YWl0YS5oCmluZGV4IGVjNjg0MGRkMTgwNmU2MjY0ODEwM2E1YWNkNjMy
MTYzMGU5YTI5NjMuLjNmYjZkOGRiMDRhMTZlNTcwY2U4ODhhYjIwNDY4Y2YyZjJkNjJkYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKQEAgLTYy
LDggKzYyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50U2VhcmNoRmllbGQoY29uc3QgUmVu
ZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwogCiAg
ICAgYm9vbCBwb3BzTWVudUJ5U3BhY2VPclJldHVybigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBF
bGVtZW50KikgY29uc3Q7Ci0gICAgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFJlbmRl
clN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OworICAgIHZvaWQgYWRqdXN0TWVudUxpc3RT
dHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50
KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94
KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBwYWludE1lbnVMaXN0
KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYp
IGZpbmFsOwogICAgIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0IFJl
bmRlckJveCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDkyM2VlOTVlMDUwY2Y1YjFlYmMzNzcz
YzRiZTJjNDllNDVkMTUzY2MuLmFhYTQ5NGVlZjA5MjIwMTI3MDQ4MGUzZTk3NjJhMDEwZjlhMWU2
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU0ODgsNiArNTQ4OCw4
IEBAIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBTdHJpbmcmIGRv
bWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiAgICAgQm9vbGVhbiBrZXlFeGlzdHNBbmRIYXNWYWxp
ZEZvcm1hdCA9IGZhbHNlOwogICAgIHJldHVybiBDRlByZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZh
bHVlKGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSwgJmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0KTsKICNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGRvbWFpbik7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CiAgICAgcmV0dXJuIC0xOwogI2Vu
ZGlmCiB9CkBAIC01NDk1LDE2ICs1NDk3LDIyIEBAIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJl
bmNlSW50ZWdlcihjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogU3RyaW5nIEludGVybmFsczo6ZW5jb2RlZFByZWZlcmVuY2VWYWx1
ZShjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CisgICAgVU5VU0VE
X1BBUkFNKGRvbWFpbik7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CiAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiB9CiAKIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKQogeworICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21U
YWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgY29uZm9ybWluZ1RvVVRJKQogeworICAgIFVOVVNFRF9QQVJBTSh0YWdDbGFzcyk7CisgICAg
VU5VU0VEX1BBUkFNKHRhZyk7CisgICAgVU5VU0VEX1BBUkFNKGNvbmZvcm1pbmdUb1VUSSk7CiAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IDlmYjQw
MjcwMmJkYjQ4OThjZTlmNzA3NWYyMjkyMTAyYTMyMzU4MDEuLjQ3ODVhMjY5Njg1M2IzYjkzNGY5
ZDU1YjJhYWMxY2VkODJmMjUxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtNjA4LDcgKzYwOCw3
IEBAIHZvaWQgU2Vzc2lvbjo6bmV3V2luZG93KE9wdGlvbmFsPFN0cmluZz4gdHlwZUhpbnQsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmCiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygi
cHJlc2VudGF0aW9uSGludCJfcywgdHlwZUhpbnQudmFsdWUoKSA9PSAid2luZG93IiA/ICJXaW5k
b3ciX3MgOiAiVGFiIl9zKTsKICAgICAgICAgfQotICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5k
VG9CYWNrZW5kKCJjcmVhdGVCcm93c2luZ0NvbnRleHQiX3MsIFdURk1vdmUocGFyYW1ldGVycyks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gcHJvdGVjdGVkVGhpcy5jb3B5UmVmKCksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21t
YW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9C
YWNrZW5kKCJjcmVhdGVCcm93c2luZ0NvbnRleHQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtw
cm90ZWN0ZWRUaGlzID0gcHJvdGVjdGVkVGhpcy5jb3B5UmVmKCksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9u
c2UmJiByZXNwb25zZSkgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJl
c3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1NTAsNyArMTU1MCw3IEBAIHZvaWQgU2Vz
c2lvbjo6ZWxlbWVudElzRmlsZVVwbG9hZChjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuCiAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVIYW5k
bGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBwYXJhbWV0ZXJz
LT5zZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBpc0ZpbGVVcGxvYWRTY3JpcHQpOwogICAgIHBhcmFt
ZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1vdmUoYXJndW1lbnRzKSk7Ci0gICAg
bV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24i
X3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNl
c3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9zdC0+c2Vu
ZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3Zl
KHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFu
ZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwg
IXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjkyLDcgKzE2OTIsNyBAQCB2b2lkIFNlc3Npb246
OmVsZW1lbnRJc0VkaXRhYmxlKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUgogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFuZGxlIl9z
LCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAgcGFyYW1ldGVycy0+c2V0
U3RyaW5nKCJmdW5jdGlvbiJfcywgaXNFZGl0YWJsZVNjcmlwdCk7CiAgICAgcGFyYW1ldGVycy0+
c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShhcmd1bWVudHMpKTsKLSAgICBtX2hvc3Qt
PnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RG
TW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhv
c3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29tbWFu
ZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1l
dGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9u
c2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9u
c2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTE3OTQsNyArMTc5NCw3IEBAIHZvaWQgU2Vzc2lvbjo6c2V0SW5w
dXRGaWxlVXBsb2FkRmlsZXMoY29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIGNvbnN0IFN0cmluZyYg
dGV4CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50
QnJvd3NpbmdDb250ZXh0LnZhbHVlT3IoZW1wdHlTdHJpbmcoKSkpOwogICAgIHBhcmFtZXRlcnMt
PnNldFN0cmluZygibm9kZUhhbmRsZSJfcywgZWxlbWVudElEKTsKICAgICBwYXJhbWV0ZXJzLT5z
ZXRBcnJheSgiZmlsZW5hbWVzIl9zLCBXVEZNb3ZlKGZpbGVuYW1lcykpOwotICAgIG1faG9zdC0+
c2VuZENvbW1hbmRUb0JhY2tlbmQoInNldEZpbGVzRm9ySW5wdXRGaWxlVXBsb2FkIl9zLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBl
bGVtZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgbXV0YWJsZSB7CisgICAg
bV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgic2V0RmlsZXNGb3JJbnB1dEZpbGVVcGxvYWQi
X3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGVsZW1lbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkp
KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKaW5kZXggZDYyOTY2
MDUxNjc3NGM0OWYzY2JhNWYwODRkNmMwZTRmYTdmOGUwOS4uYTQyZWI3YzkxNjdmMGU3ZDhiY2Yz
NTY1OWFkOWFhNGJmYWZkZjA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKQEAgLTExMiw2ICsx
MTIsOCBAQCB2b2lkIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpxdWVyeShTdHJpbmcmJiBo
b3N0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIGlmIChzdGVwUmVzdWx0ICE9
IFNRTElURV9ST1cgJiYgc3RlcFJlc3VsdCAhPSBTUUxJVEVfRE9ORSkgewogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9u
SUQsICJzdGVwIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCBzdGVwUmVzdWx0LCBtX2RhdGFiYXNl
LT5sYXN0RXJyb3JNc2coKSwgbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXJEYXRhYmFzZVBhdGgo
KS51dGY4KCkuZGF0YSgpKTsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfVkFSSUFCTEUoc2Vz
c2lvbklEKTsKICNlbmRpZgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDZlZGMyNTE5M2Y0Y2U4NTliNzY0YjNlYzBh
NWJjNWZjYTc4OWQwYTguLmM0NjJjOGRkNjNlMTQ1NmVhYWJiYjg2YTNiODM0NTMyNmVmODQwMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAKQEAgLTYyLDcgKzYyLDkgQEAgTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9h
ZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmUKICAgICAs
IG1fcHJlZmxpZ2h0UG9saWN5KHByZWZsaWdodFBvbGljeSkKICAgICAsIG1fcmVmZXJyZXIoV1RG
TW92ZShyZWZlcnJlcikpCiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljcyhzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgLCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZChpc0hUVFBTVXBncmFkZUVuYWJs
ZWQpCisjZW5kaWYKICAgICAsIG1fcmVxdWVzdExvYWRUeXBlKHJlcXVlc3RMb2FkVHlwZSkKICAg
ICAsIG1fc2NoZW1lUmVnaXN0cnkoc2NoZW1lUmVnaXN0cnkpCiAgICAgLCBtX25ldHdvcmtSZXNv
dXJjZUxvYWRlcihtYWtlV2Vha1B0cihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggOWU0
ZGNiMDQ1NWE1ZWFlY2JjNDdhZjIxNjc0ZGNkMGI3MGNkZDljNi4uNGQ5Y2E5NmE4NzUxMGMwNzhi
NmM5MmI3YzQzZDI0NTk4MThmYWVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0xNTMsNyArMTUzLDExIEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgYm9vbCBtX2NoZWNrQ29udGVudEV4dGVuc2lv
bnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1l
dHJpY3MgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBtX2lzSFRU
UFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFdlYkNvcmU6Ok5ldHdv
cmtMb2FkSW5mb3JtYXRpb24gbV9sb2FkSW5mb3JtYXRpb247CiAKICAgICBMb2FkVHlwZSBtX3Jl
cXVlc3RMb2FkVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApp
bmRleCBlOGRiYmUyNzNiM2JkNDI0MTc0YmRjOTAzZDc2NGIxYTJiMDU3NWQ0Li5hNzNkZDQzMzUz
ZmYwNjg4MmM4OTkwYjNkZmVkNzgyMmMzZGQyMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0yNzEsNyArMjcxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6OnVwZGF0ZVNjZW5lU3RhdGUoKQogICAgICAgICAgICAgZm9yIChhdXRvJiBj
b21wb3NpdGlvbkxheWVyIDogbV9uaWNvc2lhLnN0YXRlLmxheWVycykgewogICAgICAgICAgICAg
ICAgIGF1dG8mIGxheWVyID0gdGV4bWFwTGF5ZXIoKmNvbXBvc2l0aW9uTGF5ZXIpOwogICAgICAg
ICAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPmNvbW1pdFN0YXRlKAotICAgICAgICAgICAgICAg
ICAgICBbdGhpcywgJmxheWVyLCAmY29tcG9zaXRpb25MYXllciwgJmxheWVyc0J5QmFja2luZ10K
KyAgICAgICAgICAgICAgICAgICAgWyZsYXllciwgJmxheWVyc0J5QmFja2luZ10KICAgICAgICAg
ICAgICAgICAgICAgKGNvbnN0IE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUm
IGxheWVyU3RhdGUpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChsYXllclN0YXRlLmRlbHRhLnBvc2l0aW9uQ2hhbmdlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCmluZGV4
IGJjYjIzNTk3NWIxMzNkMmUyNzY3NmQyODNmZTg5MTM4MWEwZDVkMWMuLmI4YzczMDNlNzU5YzAw
NGQzYzk3Yzc4Y2IyN2M5ZTdkMGMzZTVmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtMTY3LDcgKzE2Nyw2
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFpbnQoKQogICAgIC8vIGluIGEg
d2F5IHRoYXQgZG9lc24ndCBzdGFydmUgb3V0IHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzIGJ1ZmZl
cnMuCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKFdQRV9SRU5ERVJFUikKICAgICBtX2NvbXBv
c2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faW5Gb3Jj
ZVJlcGFpbnQsIHRydWUpOwogICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKICAgICB9KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENv
bXBvc2l0b3IuaAppbmRleCA0OTA2NDBkNTQzYjMxMWM0YWY3MTAxNTNhNTAxZDE4ZDg0M2Y0ZjUw
Li5mY2QyZTQ4ODg5OTlkMDUyZTAyNGE1ZDMyYTU5MzQ5N2Q2ZGViYzAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApAQCAt
MTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX25hdGl2ZVN1cmZhY2VI
YW5kbGU7CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBtX3BhaW50Rmxh
Z3MgeyAwIH07Ci0gICAgYm9vbCBtX2luRm9yY2VSZXBhaW50IHsgZmFsc2UgfTsKICAgICB1bnNp
Z25lZCBtX3N1c3BlbmRlZENvdW50IHsgMCB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbXBv
c2l0aW5nUnVuTG9vcD4gbV9jb21wb3NpdGluZ1J1bkxvb3A7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3Bw
CmluZGV4IDU0ZWYwYjRlNWE5MWU0ZDg1NDc4MmIwZjIzNWRmMmRlMTE5YzVhMWEuLjc4NzY0NDM5
YTQ3NWIyMzlkMDcyZDczOTQwMWE4Mjg1MDg3MTM5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3Bw
CkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdDoK
ICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50
OgorICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlOZXR3
b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246Ok5hdmln
YXRpb25Td2FwOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCBlM2Y0Zjg1NDY5YzlkMTU5ZTI1
YmQ1ODI2YTczZmQwY2EzMzVlZTQwLi5iNjU1MWVhYmY1YzJiYmQ4Y2M0ZDQ4MmY0Y2YwNTJlYmVl
OTRjMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3Bw
CkBAIC02MCw3ICs2MCw2IEBAIHByaXZhdGU6CiB9OwogCiBSZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcihXZWJLaXRXZWJDb250ZXh0
KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7CiAgICAgd2Via2l0X3dlYl9j
b250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoY29udGV4dCwgImluc3BlY3RvciIsIFtdKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRhKSB7CiAgICAgICAg
IHN0YXRpY19jYXN0PFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcio+KHVzZXJEYXRhKS0+
aGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29s
SGFuZGxlci5oCmluZGV4IGM0ODczZTc1NjZkNTU1YmJiNGE3NzM5MmRmNzIyNWEzMTRjMjZkYzIu
LmY2YTBkMDExMjMzODMwOGUxODExMDA4ODFiOGJkZTRmNWJlYzc4YzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRS
ZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaApAQCAtNDksNyArNDksNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgdGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9yQ2xpZW50Jikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKFJlbW90ZUluc3BlY3RvckNsaWVudCYp
IG92ZXJyaWRlOwogCi0gICAgV2ViS2l0V2ViQ29udGV4dCogbV9jb250ZXh0IHsgbnVsbHB0ciB9
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW5zcGVjdG9yQ2xp
ZW50Pj4gbV9pbnNwZWN0b3JDbGllbnRzOwogICAgIEhhc2hTZXQ8V2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyKj4gbV91c2VyQ29udGVudE1hbmFnZXJzOwogICAgIEhhc2hTZXQ8V2ViS2l0V2ViVmll
dyo+IG1fd2ViVmlld3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0Q29tcGlsZXJG
bGFncy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlCmluZGV4
IDQ5NDQ2NjQ0ZTQ3M2UxOWQ0ZGVjYTE0YzlkOGNkNGMxYTAxOTYyMmEuLmRlMGNkNzRiNmFjOThi
NjgwNzY3ZTYxNTMwZmUzMjg1MzRkZDZlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJL
aXRDb21waWxlckZsYWdzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZs
YWdzLmNtYWtlCkBAIC0xMTIsNyArMTEyLDcgQEAgaWYgKENPTVBJTEVSX0lTX0dDQ19PUl9DTEFO
RykKICAgICBlbmRpZiAoKQogCiAgICAgIyBXYXJuaW5ncyB0byBiZSBlbmFibGVkCi0gICAgV0VC
S0lUX1BSRVBFTkRfR0xPQkFMX0NPTVBJTEVSX0ZMQUdTKC1XY2FzdC1hbGlnbgorICAgIFdFQktJ
VF9QUkVQRU5EX0dMT0JBTF9DT01QSUxFUl9GTEFHUygKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLVdmb3JtYXQtc2VjdXJpdHkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVdwb2ludGVyLWFyaXRoCkBAIC0xNTIs
NyArMTUyLDcgQEAgZW5kaWYgKCkKIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcgQU5EIE5P
VCBNU1ZDKQogICAgICMgRG9uJ3QgZ2l2ZSAtV2FsbCB0byBjbGFuZy1jbCBiZWNhdXNlIGNsYW5n
LWNsIHRyZWF0cyAvV2FsbCBhbmQgLVdhbGwgYXMgLVdldmVyeXRoaW5nLgogICAgICMgLVdhbGwg
YW5kIC1XZXh0cmEgc2hvdWxkIGJlIHNwZWNpZmllZCBiZWZvcmUgLVduby0qIGZvciBDbGFuZy4K
LSAgICBXRUJLSVRfUFJFUEVORF9HTE9CQUxfQ09NUElMRVJfRkxBR1MoLVdhbGwgLVdleHRyYSkK
KyAgICBXRUJLSVRfUFJFUEVORF9HTE9CQUxfQ09NUElMRVJfRkxBR1MoLVdhbGwgLVdleHRyYSAt
V25vLXRhdXRvbG9naWNhbC1jb21wYXJlIC1Xbm8tY2FzdC1hbGlnbl0pCiBlbmRpZiAoKQogCiAj
IE5pbmphIHRyaWNrcyBjb21waWxlcnMgaW50byB0dXJuaW5nIG9mZiBjb2xvciBzdXBwb3J0Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwZjVh
NDUxMzViNDhjOTc0MGY2ZDA0Y2Y1ZGIwMDVmNjgxZGRkOGUuLmM0Y2I0MDJjMTYwYzM2YmU1ZTQ0
N2E0MjllZGZmZTVlYWM1NTIxZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJu
ZXIgIDxtYWlsQGNoYXJsZXMucGx1cz4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRo
IENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
VHJhbnNmb3JtYXRpb25NYXRyaXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9u
U2Vzc2lvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3REb3dubG9hZHMuY3BwOgorICAgICAgICAodGVzdERvd25sb2FkTUlNRVR5cGUpOgorICAgICAg
ICAodGVzdENvbnRleHRNZW51RG93bmxvYWRBY3Rpb25zKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwOgorCiAyMDIwLTAzLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmlxdWUgb3JpZ2lucyBz
aG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRydXN0d29ydGh5CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcApp
bmRleCAxOTdkMjEzZWU3YTI3YzEzNWExNDYzYjRlOTU4ZmJlMDJiNTJhMDc5Li5hZmFkYmM1Mzky
MjNlNGIyYzY1ZmY2MDA2NzNkNWFjYThhZGU2NmMxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKQEAg
LTEyMzksNiArMTIzOSw4IEBAIFRFU1QoVHJhbnNmb3JtYXRpb25NYXRyaXgsIENhc3RpbmcpCiAg
ICAgRVhQRUNUX0RPVUJMRV9FUSgzLjAsIGNhRnJvbVdLLm00Mik7CiAgICAgRVhQRUNUX0RPVUJM
RV9FUSgyLjAsIGNhRnJvbVdLLm00Myk7CiAgICAgRVhQRUNUX0RPVUJMRV9FUSgxLjAsIGNhRnJv
bVdLLm00NCk7CisjZWxzZQorICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXN0KTsKICNlbmRpZgogCiAj
aWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBjZGFiNGFlZWRlZjU1
ZmYzZmFiM2UzMzZlNDIzMDBjYmFiZDhlYTRkLi41YWU0NGQ0Njc3ZTY5MjVhNWE5NGY3OWQ2MmI5
OTlkZjgyNTQyZTJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtNjIsNyArNjIs
NiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbm5lY3Rpb24oUmVmPFNvY2tldENvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikKICAgICB7Ci0gICAgICAgIGdfYXNzZXJ0X3RydWUoY29ubmVjdGlv
bi5wdHIoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbiA9IFdURk1vdmUoY29ubmVjdGlvbik7CiAg
ICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWluTG9vcC5nZXQoKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMu
Y3BwCmluZGV4IGUwMzkxOTljMTcyZWM3ZDIzZDkyNGUwOWU5M2RjMGY4OGRmMTExNGMuLmY3MzNl
ODE4M2FjZjAyM2U3ZGViZGIxZDZhNGY5ODVkYzIwMWM0ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93bmxvYWRzLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdERvd25sb2Fkcy5jcHAKQEAgLTY3
MiwxNCArNjcyLDE0IEBAIHN0YXRpYyB2b2lkIHRlc3REb3dubG9hZE1JTUVUeXBlKERvd25sb2Fk
VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBldmVudHMuY2xlYXIoKTsKIAogICAgIFdl
YktpdFVSSVJlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3JlcXVlc3QoZG93
bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KTsKKyAgICBn
X2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7CiAgICAgQVNTRVJU
X0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwga1Nl
cnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Vua25vd24iKSk7CiAKICAgICBhdXRvIGhlYWRlcnMgPSB3
ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X2h0dHBfaGVhZGVycyhyZXF1ZXN0KTsKICAgICBnX2Fzc2Vy
dF9ub25udWxsKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIlVzZXItQWdl
bnQiKSk7CiAKICAgICBXZWJLaXRVUklSZXNwb25zZSogcmVzcG9uc2UgPSB3ZWJraXRfZG93bmxv
YWRfZ2V0X3Jlc3BvbnNlKGRvd25sb2FkLmdldCgpKTsKLSAgICBXRUJLSVRfSVNfVVJJX1JFU1BP
TlNFKHJlc3BvbnNlKTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVTUE9OU0Uo
cmVzcG9uc2UpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3VyaV9yZXNwb25zZV9nZXRf
bWltZV90eXBlKHJlc3BvbnNlKSwgPT0sICJhcHBsaWNhdGlvbi9wZGYiKTsKIAogICAgIGdfYXNz
ZXJ0X25vbm51bGwod2Via2l0X2Rvd25sb2FkX2dldF9kZXN0aW5hdGlvbihkb3dubG9hZC5nZXQo
KSkpOwpAQCAtNzM5LDcgKzczOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RDb250ZXh0TWVudURvd25s
b2FkQWN0aW9ucyhXZWJWaWV3RG93bmxvYWRUZXN0KiB0ZXN0LCBnY29uc3Rwb2luCiAgICAgZ19h
c3NlcnRfdHJ1ZSh0ZXN0LT5tX3dlYlZpZXcgPT0gd2Via2l0X2Rvd25sb2FkX2dldF93ZWJfdmll
dyh0ZXN0LT5tX2Rvd25sb2FkLmdldCgpKSk7CiAKICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1
ZXN0ID0gd2Via2l0X2Rvd25sb2FkX2dldF9yZXF1ZXN0KHRlc3QtPm1fZG93bmxvYWQuZ2V0KCkp
OwotICAgIFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVl
KFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5H
KHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJ
Rm9yUGF0aCgiL3Rlc3QucGRmIikpOwogCiAgICAgYXV0byBoZWFkZXJzID0gd2Via2l0X3VyaV9y
ZXF1ZXN0X2dldF9odHRwX2hlYWRlcnMocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFByaW50aW5nLmNwcAppbmRleCA1NDhhOTgxYzFi
NDIyMzgyYzZiZGZlMjBhMDE3Nzk3ZWE2Nzc3MjAwLi43MGY3MDlkYzE5MmZlZGMxNThkNzliM2Y1
MDViZTYzZjY0NTgxYzc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgR1JlZlB0cjxXZWJLaXRQcmludE9wZXJhdGlvbj4gbV9wcmludE9wZXJhdGlv
bjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkRXJyb3I7CisgICAgaW50IG1fZXhwZWN0ZWRFcnJv
cjsKIH07CiAKIHN0YXRpYyB2b2lkIHRlc3RQcmludE9wZXJhdGlvblByaW50KFByaW50VGVzdCog
dGVzdCwgZ2NvbnN0cG9pbnRlcikKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCBmYTBhMTJkZmUyOGIxMmEwZGI1OWMyOTkwNDIyODQxOGI0OGIyOTc4Li40MjRlNjkwZjBj
MjkwMjVjN2RiNTMwYzZkYzk0ZDZkYWNkMDIwM2E5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVy
ICA8bWFpbEBjaGFybGVzLnBsdXM+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBD
bGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVyRmxh
Z3MuY21ha2U6CisKIDIwMjAtMDMtMTQgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bn
bm9tZS5vcmc+CiAKICAgICAgICAgW0NNYWtlXSBXYXJuaW5nIHdoZW4gY2NhY2hlIGlzIG5vdCBp
bnN0YWxsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393690</attachid>
            <date>2020-03-16 15:08:23 -0700</date>
            <delta_ts>2020-03-17 04:10:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200316220822.patch</filename>
            <type>text/plain</type>
            <size>36921</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTFhMjkzOTM3ZmJiMTgyNDBiZjAzMmVkNjE4NTRkYzYxZGQwNTJjLi4wZjk0MDIxZmYzMTFlMjlm
YzY2NmJmZDZkNTlhZWU0Y2ZkOTkzYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4
Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhbGxGcmFt
ZTo6ZGVwcmVjYXRlZFZNIGNvbnN0KToKKwogMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIHJlcG9ydFphcHBlZENlbGxBbmRDcmFzaCBzaG91
bGQgaGFuZGxlIFByZWNpc2VBbGxvY2F0aW9uIGluIElzb1N1YnNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwMTM3YjVm
MDAzYzIwMWY5MjAzMmJmMTU1OTU0NjEyODc1NzJmZGYuLmRiNTY0YTJiODVjZWU4ZTcwNmQ3Y2Rm
NjQzMzhiNjg3NjQ1NDljM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTYgIENoYXJs
aWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgorCisgICAgICAgIEZpeCBtYW55IHdhcm5p
bmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkxNDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Mb2dnZXJIZWxwZXIuaDoK
KwogMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAg
ICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDBkMTJjZjQ0N2I4MGUzNzI5ZDQ2NDQ3NWFiMjYyZWU1Y2MwNWMxNTMuLjQ1YTYyMjJlODk0
ZDM1NjNjZWJlNjAzZDIwMjdlZGY5NmJlNTJkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBA
QAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBE
ZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpNZWRpYUtleXMpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
R0xEYXRhOjpnZXRTdGF0aWNWQk8pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZp
ZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9E
ZWNvZGVyOjpSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpJbXBsZW1lbnRhdGlvbk5hbWUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6QWRkQ29kZWNJZlN1cHBvcnRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29kZXI6OkluaXRFbmNvZGUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyOjpHZXRFbmNvZGVySW5m
byBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXMpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVBZHdhaXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpyZWFkUHJlZmVyZW5jZUludGVnZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMtMTYgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1ZSBvcmlnaW5zIHNob3VsZCBub3QgYmUg
UG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggNDNjZGJkMGYxN2E5ZmE4
MzNkZTA4YjlkMWIzNTdiNTFhY2ZmYTAxNi4uNmYyOTk1ZmUxNjA4ZTc5ZDIxYjJkMGEyNTBmZTEx
YmFkZjBlZjIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0xNiAg
Q2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgRml4IG1hbnkg
d2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246Om5ld1dpbmRvdyk6CisgICAgICAgIChXZWJEcml2
ZXI6OlNlc3Npb246OmVsZW1lbnRJc0ZpbGVVcGxvYWQpOgorICAgICAgICAoV2ViRHJpdmVyOjpT
ZXNzaW9uOjplbGVtZW50SXNFZGl0YWJsZSk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246
OnNldElucHV0RmlsZVVwbG9hZEZpbGVzKToKKwogMjAyMC0wMi0xMiAgQ2FybG9zIEFsYmVydG8g
TG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6IHJl
dHVybiBpbnZhbGlkU2Vzc2lvbklEIGV4Y2VwdGlvbiBpZiB0aGUgV2ViUHJvY2VzcyBkb2Vzbid0
IHJlc3BvbmQgKGNyYXNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY4ZjcwMjQ1MGQ1ODNmMzdhOTZlYTlhMmEw
YjdkNTAxNDRmMTRlNjQuLmY0ZThiZThmNDgxNmNmZGRmMTUyZDlkNDQyMmZiOWE5ZGVjNDdhNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVyICA8
Y3R1cm5lckBpZ2FsaWEuY29tPgorCisgICAgICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xh
bmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3Jh
ZGVDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXI6OnF1ZXJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hl
Y2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6Cisg
ICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRh
dGVTY2VuZVN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFpbnQpOgorICAgICAgICAqIFNoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xI
YW5kbGVyOjpSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oOgorCiAy
MDIwLTAzLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bmlxdWUgb3JpZ2lucyBzaG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRydXN0d29ydGh5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKaW5kZXggMmRhZjdi
YzBkZGIzN2U0MGY3MzA5Y2ExZDYyNzAzNmM3OGIxOGFmOS4uMWM5ZDEzMjQ4YTkzMjRmYWY1MmEy
YzhmYTAxMDcwNjI2MTEwNDMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaApAQCAtMTQyLDcgKzE0Miw2IEBAIEFMV0FZU19JTkxJTkUgVk0mIENh
bGxGcmFtZTo6ZGVwcmVjYXRlZFZNKCkgY29uc3QKIHsKICAgICBKU0NlbGwqIGNhbGxlZSA9IHRo
aXMtPmNhbGxlZSgpLmFzQ2VsbCgpOwogICAgIEFTU0VSVChjYWxsZWUpOwotICAgIEFTU0VSVCgm
Y2FsbGVlLT52bSgpKTsKICAgICByZXR1cm4gY2FsbGVlLT52bSgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhl
bHBlci5oCmluZGV4IDBhZDY1ZWUyNDcwYjcwZmM5YTBlZWY4MmViYTcxZTBmYzNkNWY4YzcuLmFj
MGYxNzk1NDVkZTdlNTZiYjM2M2IwMGRiNzkzMDFhNzkxZTNkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBl
ci5oCkBAIC04MCwxNCArODAsMTMgQEAgcHVibGljOgogCiAjZGVmaW5lIExPR0lERU5USUZJRVIg
KFdURjo6bnVsbG9wdCkKIAotI2RlZmluZSBBTFdBWVNfTE9HKC4uLikgICAgICgodm9pZCkwKQot
I2RlZmluZSBFUlJPUl9MT0coLi4uKSAgICAgICgodm9pZCkwKQotI2RlZmluZSBFUlJPUl9MT0co
Li4uKSAgICAgICgodm9pZCkwKQotI2RlZmluZSBXQVJOSU5HX0xPRyguLi4pICAgICgodm9pZCkw
KQotI2RlZmluZSBOT1RJQ0VfTE9HKC4uLikgICAgICgodm9pZCkwKQotI2RlZmluZSBJTkZPX0xP
RyguLi4pICAgICAgICgodm9pZCkwKQotI2RlZmluZSBERUJVR19MT0coLi4uKSAgICAgICgodm9p
ZCkwKQotI2RlZmluZSBXSUxMX0xPRyhfbGV2ZWxfKSAgIGZhbHNlCisjZGVmaW5lIEFMV0FZU19M
T0coaWQsIC4uLikgIChVTlVTRURfUEFSQU0oaWQpKQorI2RlZmluZSBFUlJPUl9MT0coaWQsIC4u
LikgICAoVU5VU0VEX1BBUkFNKGlkKSkKKyNkZWZpbmUgV0FSTklOR19MT0coaWQsIC4uLikgKFVO
VVNFRF9QQVJBTShpZCkpCisjZGVmaW5lIE5PVElDRV9MT0coaWQsIC4uLikgIChVTlVTRURfUEFS
QU0oaWQpKQorI2RlZmluZSBJTkZPX0xPRyhpZCwgLi4uKSAgICAoVU5VU0VEX1BBUkFNKGlkKSkK
KyNkZWZpbmUgREVCVUdfTE9HKGlkLCAuLi4pICAgKFVOVVNFRF9QQVJBTShpZCkpCisjZGVmaW5l
IFdJTExfTE9HKF9sZXZlbF8pICAgIGZhbHNlCiAKICNkZWZpbmUgQUxXQVlTX0xPR19JRihjb25k
aXRpb24sIC4uLikgICAgICgodm9pZCkwKQogI2RlZmluZSBFUlJPUl9MT0dfSUYoY29uZGl0aW9u
LCAuLi4pICAgICAgKCh2b2lkKTApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKaW5kZXggYTg5Y2Q0MDAzZDcxZWVhZjkxMDdhNDU3
YjQ0M2ZiN2UzMGM1NTMyNy4uYzRiNjk4NDJmNTE1MjViOTg0YmJkMDk3Zjc5MmRmMjAxNzJiNjRh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlzLmNwcApAQCAtNjMsNiArNjMsOCBAQCBNZWRpYUtleXM6Ok1lZGlhS2V5cyhEb2N1bWVu
dCYgZG9jdW1lbnQsIGJvb2wgdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBib29sIHBlcgogewog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1faW5zdGFuY2UtPnNldExvZ2dlcihkb2N1
bWVudC5sb2dnZXIoKSwgbV9sb2dJZGVudGlmaWVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGRvY3VtZW50KTsKICNlbmRpZgogICAgIG1faW5zdGFuY2UtPnNldENsaWVudChtYWtlV2Vha1B0
cih0aGlzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4IGZjNmRkYjhlNmQyYjg3MDM2ZDI2MjEz
OGRlZDRjNmM3Nzc5NmJlOWUuLjE2NzI2ODE3ZGIzNzM1NGI4MTM5NWM0MzU2MzAzNmM4NGM4NzEw
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC01OCw3ICs1OCw5IEBAIHByaXZhdGU6CiAKICAgICBT
dHJpbmcgbV9kZXZpY2VJZDsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJy
ZW50U2V0dGluZ3M7CisjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICBzaXplX3QgbV9udW1iZXJP
ZkZyYW1lcyB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggNWQ4
NmFmNmU0ZGIxYTM1YmFjMTU4OGEwOWZlOGVlYTQ0ZDYzNTQ4OC4uNjljMDAwMjI5NmE3ZDAxYzRh
NTY4MGI5MTcwM2NkMWY4ZjAyODk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0zMzAsOCArMzMwLDEwIEBAIHZvaWQgQ2FjaGVkUmVz
b3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQog
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5sb2FkUmVzb3VyY2Uo
ZnJhbWUsICp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBtX29wdGlvbnMsIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+KHRoaXMpLCBmcmFt
ZVJlZiA9IG1ha2VSZWYoZnJhbWUpLCBsb2dnaW5nQWxsb3dlZCA9IGNhY2hlZFJlc291cmNlTG9h
ZGVyLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpXSAoUmVmUHRyPFN1YnJlc291cmNlTG9hZGVy
PiYmIGxvYWRlcikgewogICAgICAgICBtX2xvYWRlciA9IFdURk1vdmUobG9hZGVyKTsKICAgICAg
ICAgaWYgKCFtX2xvYWRlcikgeworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICAg
ICAgYXV0byYgZnJhbWUgPSBmcmFtZVJlZi5nZXQoKTsKICAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGKGxvZ2dpbmdBbGxvd2VkLCBOZXR3b3JrLCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAiLCBm
cmFtZUlEPSUiIFBSSXU2NCAiXSBDYWNoZWRSZXNvdXJjZTo6bG9hZDogVW5hYmxlIHRvIGNyZWF0
ZSBTdWJyZXNvdXJjZUxvYWRlciIsIHRoaXMsIFBBR0VfSUQoZnJhbWUpLCBGUkFNRV9JRChmcmFt
ZSkpOworI2VuZGlmCiAgICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCA5NmUzMDQz
MTI2OWU0ZDgyYjFjMTA3NzE5ZTcwNWI4MTMyYTYyN2E0Li5mYmExMTIwNzhkNjQ4ZWMzYTJhN2Qy
OTFkMDRjODA0Zjk3MWU0NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMTUwLDcgKzE1
MCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMRGF0YTo6aW5pdGlhbGl6ZVN0ZW5jaWwoKQogR0x1
aW50IFRleHR1cmVNYXBwZXJHTERhdGE6OmdldFN0YXRpY1ZCTyhHTGVudW0gdGFyZ2V0LCBHTHNp
emVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBt
X3Zib3MuZW5zdXJlKGRhdGEsCi0gICAgICAgIFt0aGlzLCB0YXJnZXQsIHNpemUsIGRhdGFdIHsK
KyAgICAgICAgW3RhcmdldCwgc2l6ZSwgZGF0YV0gewogICAgICAgICAgICAgR0x1aW50IHZibyA9
IDA7CiAgICAgICAgICAgICBnbEdlbkJ1ZmZlcnMoMSwgJnZibyk7CiAgICAgICAgICAgICBnbEJp
bmRCdWZmZXIodGFyZ2V0LCB2Ym8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDNiNjFiYzkxZWIz
YWFmYzFiMzMyYTk4Y2U1MDRhZDk3ZjNhNmJmMDEuLmIwN2JlNjA5YzYzMjM4OWQ4MmYyZGY4MTBh
OTUwMDkzZDFhNmY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTcwLDcgKzcwLDkgQEAgcHJp
dmF0ZToKIAogICAgIFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOworI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHVpbnQ2NF90IG1fY2xvbmVDb3VudGVyIHsgMCB9Owor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0
dXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZXIuaAppbmRleCA5YWFmNzYxZDZjNGI0M2M0NGVmNDQ3MTFlODM3
YjBmMTI1MmQxZjVhLi5kYzdmMjhmZDE3YjhiOTZjOGIzNmM5N2NkZDM5OWUwYjhjOGQ0NWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmgKQEAgLTI3LDcgKzI3
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHU3RyZWFtZXJBdWRpb0NhcHR1
cmVyIDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKK2NsYXNzIEdTdHJlYW1lckF1ZGlvQ2Fw
dHVyZXIgZmluYWwgOiBwdWJsaWMgR1N0cmVhbWVyQ2FwdHVyZXIgewogcHVibGljOgogICAgIEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZXIoR1N0cmVhbWVyQ2FwdHVyZURldmljZSk7CiAgICAgR1N0cmVh
bWVyQXVkaW9DYXB0dXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBhYzk4OGU0YzBjYWM0MDYzMDYwMDZiZjRmYjJlNzZl
OTJjMDJiNGI2Li44N2EwOGYyOTE3YmQ1ZTc3ZGU0Mjk4ZjI0ZTYyNjJiMDdiZjA5YTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApA
QCAtMzgsOSArMzgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IHN0YXRpYyBp
bnQgZGVmYXVsdFdpZHRoID0gNjQwOwotY29uc3Qgc3RhdGljIGludCBkZWZhdWx0SGVpZ2h0ID0g
NDgwOwotCiBHU1RfREVCVUdfQ0FURUdPUlkod2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2Rl
YnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJj
ZV9kZWJ1ZwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaAppbmRl
eCA1N2IwYjQ2ODZkMzRhZTBjMTE1NGE3M2ZkNGE0YjllZDVjNDBlNjk1Li42Y2JkYTc3ZTM4YWU5
ZmVhZTkyODk0ZjRhZGRmZWM1ZTZhNjNiZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVyLmgKQEAgLTI5LDEzICsyOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZXIgOiBwdWJsaWMgR1N0cmVhbWVyQ2Fw
dHVyZXIgeworY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlciBmaW5hbCA6IHB1YmxpYyBHU3Ry
ZWFtZXJDYXB0dXJlciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlcihHU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlKTsKICAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVyKGNvbnN0IGNo
YXIqIHNvdXJjZV9mYWN0b3J5KTsKIAogICAgIEdzdEVsZW1lbnQqIGNyZWF0ZUNvbnZlcnRlcigp
IGZpbmFsOwotICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBmaW5hbCB7IHJldHVybiAiVmlkZW8iOyB9
CisgICAgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJWaWRlbyI7IH0KIAogICAgIGJvb2wg
c2V0U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIGJvb2wgc2V0RnJhbWVSYXRlKGRv
dWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFj
dG9yeS5jcHAKaW5kZXggYTNiZGQ2YjcyMjdjYmI0YWNlYzMzMjc4MGE1NWQwYmE3N2RlODMyYS4u
NTM0NmUyZWJkMGZhODdlM2U4YjcxMzFiN2JkOTJhMTM2ZjY3YzM1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVv
RGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcApAQCAtMTY1LDcg
KzE2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsK
ICAgICB9CiAKLSAgICBpbnQzMl90IFJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayh3ZWJy
dGM6OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBjYWxsYmFjaykKKyAgICBpbnQzMl90IFJlZ2lzdGVy
RGVjb2RlQ29tcGxldGVDYWxsYmFjayh3ZWJydGM6OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBjYWxs
YmFjaykgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIG1faW1hZ2VSZWFkeUNiID0gY2FsbGJhY2s7
CiAKQEAgLTMyMCw3ICszMjAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IGdjaGFy
KiBDYXBzKCkgPSAwOwogICAgIHZpcnR1YWwgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBDb2RlY1R5
cGUoKSA9IDA7Ci0gICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25OYW1lKCkgY29uc3QgeyBy
ZXR1cm4gIkdTdHJlYW1lciI7IH0KKyAgICBjb25zdCBjaGFyKiBJbXBsZW1lbnRhdGlvbk5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiR1N0cmVhbWVyIjsgfQogICAgIHZpcnR1YWwgY29u
c3QgZ2NoYXIqIE5hbWUoKSA9IDA7CiAKIHByb3RlY3RlZDoKQEAgLTMzNiw3ICszMzYsNiBAQCBw
cml2YXRlOgogICAgIEdzdEVsZW1lbnQqIG1fc2luazsKICAgICBHc3RFbGVtZW50KiBtX3NyYzsK
IAotICAgIEdzdFZpZGVvSW5mbyBtX2luZm87CiAgICAgd2VicnRjOjpEZWNvZGVkSW1hZ2VDYWxs
YmFjayogbV9pbWFnZVJlYWR5Q2I7CiAKICAgICBTdGRNYXA8R3N0Q2xvY2tUaW1lLCBJbnB1dFRp
bWVzdGFtcHM+IG1fZHRzUHRzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyLmNwcAppbmRleCA0MmYwY2Y4NTcxMWE3NGQ4OGVhM2RhMjczYjc5ZjkyZmEzOWVlMmJh
Li42YTFkNGE3YTQxMDI1ZDdlNTViZTJhNjQ4YzBlZTY4MGFmNzVkZWQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlk
ZW9FbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcApAQCAtNjcsMTcgKzY3LDcgQEAgdHlw
ZWRlZiBlbnVtCiAgIEVOQ09ERVJfTEFTVCwKIH0gRW5jb2RlcklkOwogCi1FbmNvZGVyRGVmaW5p
dGlvbiBlbmNvZGVyc1tFTkNPREVSX0xBU1RdID0gewotICBGQUxTRSwKLSAgTlVMTCwKLSAgTlVM
TCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwKLSAgTlVMTCwK
LX07CitFbmNvZGVyRGVmaW5pdGlvbiBlbmNvZGVyc1tFTkNPREVSX0xBU1RdID0geyB7IH0gfTsK
IAogdHlwZWRlZiBzdHJ1Y3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5LmNwcAppbmRleCBhMmZkZGE1ZmZhNTA5M2NjYjc1ZGNkNmM4ZWM0
N2VmZjFiYjhjOWViLi4yYzljMjkwZWJiYzk4MmM2N2NlYmE1OGQxNjlhOTU5MTcxOTVmNzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZWxlbTsKICAg
ICB9CiAKLSAgICBpbnQzMl90IEluaXRFbmNvZGUoY29uc3Qgd2VicnRjOjpWaWRlb0NvZGVjKiBj
b2RlY1NldHRpbmdzLCBpbnQzMl90LCBzaXplX3QpCisgICAgaW50MzJfdCBJbml0RW5jb2RlKGNv
bnN0IHdlYnJ0Yzo6VmlkZW9Db2RlYyogY29kZWNTZXR0aW5ncywgaW50MzJfdCwgc2l6ZV90KSBv
dmVycmlkZQogICAgIHsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29kZWNTZXR0aW5n
cywgV0VCUlRDX1ZJREVPX0NPREVDX0VSUl9QQVJBTUVURVIpOwogICAgICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChjb2RlY1NldHRpbmdzLT5jb2RlY1R5cGUgPT0gQ29kZWNUeXBlKCksIFdFQlJU
Q19WSURFT19DT0RFQ19FUlJfUEFSQU1FVEVSKTsKQEAgLTE4OCw3ICsxODgsOCBAQCBwdWJsaWM6
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBWaWRlb0VuY29kZXI6OkVuY29kZXJJbmZvIEdldEVu
Y29kZXJJbmZvKCkgY29uc3QgeworICAgIFZpZGVvRW5jb2Rlcjo6RW5jb2RlckluZm8gR2V0RW5j
b2RlckluZm8oKSBjb25zdCBvdmVycmlkZQorICAgIHsKICAgICAgICAgRW5jb2RlckluZm8gaW5m
bzsKICAgICAgICAgaW5mby5zdXBwb3J0c19uYXRpdmVfaGFuZGxlID0gZmFsc2U7CiAgICAgICAg
IGluZm8uaW1wbGVtZW50YXRpb25fbmFtZSA9ICJHU3RyZWFtZXIiOwpAQCAtMjk4LDEwICsyOTks
OSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIEFkZENvZGVjSWZTdXBwb3J0ZWQoc3RkOjp2ZWN0b3I8
d2VicnRjOjpTZHBWaWRlb0Zvcm1hdD4qIHN1cHBvcnRlZEZvcm1hdHMpCiAgICAgewotICAgICAg
ICBHc3RFbGVtZW50KiBlbmNvZGVyOwotCi0gICAgICAgIGlmIChjcmVhdGVFbmNvZGVyKCkuZ2V0
KCkgIT0gbnVsbHB0cikgewotICAgICAgICAgICAgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCBmb3Jt
YXQgPSBDb25maWd1cmVTdXBwb3J0ZWRDb2RlYyhlbmNvZGVyKTsKKyAgICAgICAgYXV0byBlbmNv
ZGVyID0gY3JlYXRlRW5jb2RlcigpOworICAgICAgICBpZiAoZW5jb2RlcikgeworICAgICAgICAg
ICAgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCBmb3JtYXQgPSBDb25maWd1cmVTdXBwb3J0ZWRDb2Rl
YyhlbmNvZGVyLmdldCgpKTsKIAogICAgICAgICAgICAgc3VwcG9ydGVkRm9ybWF0cy0+cHVzaF9i
YWNrKGZvcm1hdCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVy
VmlkZW9FbmNvZGVyRmFjdG9yeS5oCmluZGV4IDE0ODNhMmIyMGIzNTE1YzcxYjdhMGM3YTUyMjYy
NmU5ZmY1MzkyMDQuLjFlYWMxOTcwYzEzMmMzNTFiODNjODk2NDdlMjIwYWJiOTBlZWNhNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaApA
QCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0ZDo6dmVjdG9yPHdlYnJ0
Yzo6U2RwVmlkZW9Gb3JtYXQ+IEdldFN1cHBvcnRlZEZvcm1hdHMoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+IENyZWF0ZVZpZGVvRW5j
b2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JikgZmluYWw7Ci0gICAgQ29kZWNJbmZv
IFF1ZXJ5VmlkZW9FbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSBjb25zdAor
ICAgIENvZGVjSW5mbyBRdWVyeVZpZGVvRW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9y
bWF0JikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEdTVF9GSVhNRSgiRGV0ZWN0IHdl
dGhlciB0aGUgZGVjb2RlciBpcyBIVyBhY2NlbGVyYXRlZCIpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uU291cC5jcHAKaW5kZXggOTE0ZTEwZTdlYjc3YWQxYjZmZGU4YTRhNDRjYTNhMTlk
YzVmOGQzYS4uZDkxOWYyYzQ5ZjQ2Y2UwMzcwNjkzNmFlZDI0Zjc1ZjlhY2YyN2QxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzE3LDYgKzMxNyw4IEBAIHZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiBj
b29raWVzLCBjb25zdCBVUkwmCiAKICAgICAgICAgc291cF9jb29raWVfamFyX2FkZF9jb29raWVf
ZnVsbChjb29raWVTdG9yYWdlKCksIGNvb2tpZS50b1NvdXBDb29raWUoKSwgb3JpZ2luLmdldCgp
LCBmaXJzdFBhcnR5VVJJLmdldCgpKTsKICNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTSh1cmwp
OworICAgICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgICAgIHNvdXBfY29va2ll
X2phcl9hZGRfY29va2llKGNvb2tpZVN0b3JhZ2UoKSwgY29va2llLnRvU291cENvb2tpZSgpKTsK
ICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAppbmRleCA4ZmM2NTA0OGI5ZmUyNjhhZjhiZjU0N2IzZTczOGRhMmYwOGU4NWY2Li45
NTc1ZTMzN2FhOGJmM2NmNzA3OGUyZmY3ZmVkZTIwZjkxOGUyY2YwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC00Myw3ICs0Myw3IEBAIGNs
YXNzIFRpbGVkQmFja2luZzsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogCiAKLSNpZiBf
X1dPUkRTSVpFID09IDY0CisjaWYgX19XT1JEU0laRSA9PSA2NCAmJiBQTEFURk9STShDT0NPQSkK
ICNkZWZpbmUgVVNFX09XTklOR19MQVlFUl9CRUFSX1RSQVAgMQogI2RlZmluZSBCRUFSX1RSQVBf
VkFMVUUgMHhFRUVFRUVFRUVFRUVFRUVFCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCmluZGV4IGVjNjg0MGRkMTgwNmU2MjY0ODEwM2E1YWNk
NjMyMTYzMGU5YTI5NjMuLjNmYjZkOGRiMDRhMTZlNTcwY2U4ODhhYjIwNDY4Y2YyZjJkNjJkYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKQEAg
LTYyLDggKzYyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50U2VhcmNoRmllbGQoY29uc3Qg
UmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwog
CiAgICAgYm9vbCBwb3BzTWVudUJ5U3BhY2VPclJldHVybigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25z
dCBFbGVtZW50KikgY29uc3Q7Ci0gICAgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFJl
bmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OworICAgIHZvaWQgYWRqdXN0TWVudUxp
c3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVt
ZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBwYWludE1lbnVM
aXN0KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOwogICAgIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0
IFJlbmRlckJveCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDkyM2VlOTVlMDUwY2Y1YjFlYmMz
NzczYzRiZTJjNDllNDVkMTUzY2MuLmFhYTQ5NGVlZjA5MjIwMTI3MDQ4MGUzZTk3NjJhMDEwZjlh
MWU2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU0ODgsNiArNTQ4
OCw4IEBAIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBTdHJpbmcm
IGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiAgICAgQm9vbGVhbiBrZXlFeGlzdHNBbmRIYXNW
YWxpZEZvcm1hdCA9IGZhbHNlOwogICAgIHJldHVybiBDRlByZWZlcmVuY2VzR2V0QXBwSW50ZWdl
clZhbHVlKGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgJmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0KTsKICNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGRvbWFpbik7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CiAgICAgcmV0dXJuIC0xOwog
I2VuZGlmCiB9CkBAIC01NDk1LDE2ICs1NDk3LDIyIEBAIGludCBJbnRlcm5hbHM6OnJlYWRQcmVm
ZXJlbmNlSW50ZWdlcihjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiAj
aWYgIVBMQVRGT1JNKENPQ09BKQogU3RyaW5nIEludGVybmFsczo6ZW5jb2RlZFByZWZlcmVuY2VW
YWx1ZShjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CisgICAgVU5V
U0VEX1BBUkFNKGRvbWFpbik7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CiAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CiB9CiAKIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQogeworICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZy
b21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0
cmluZyYgY29uZm9ybWluZ1RvVVRJKQogeworICAgIFVOVVNFRF9QQVJBTSh0YWdDbGFzcyk7Cisg
ICAgVU5VU0VEX1BBUkFNKHRhZyk7CisgICAgVU5VU0VEX1BBUkFNKGNvbmZvcm1pbmdUb1VUSSk7
CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IDlm
YjQwMjcwMmJkYjQ4OThjZTlmNzA3NWYyMjkyMTAyYTMyMzU4MDEuLjQ3ODVhMjY5Njg1M2IzYjkz
NGY5ZDU1YjJhYWMxY2VkODJmMjUxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtNjA4LDcgKzYw
OCw3IEBAIHZvaWQgU2Vzc2lvbjo6bmV3V2luZG93KE9wdGlvbmFsPFN0cmluZz4gdHlwZUhpbnQs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmCiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0g
SlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmlu
ZygicHJlc2VudGF0aW9uSGludCJfcywgdHlwZUhpbnQudmFsdWUoKSA9PSAid2luZG93IiA/ICJX
aW5kb3ciX3MgOiAiVGFiIl9zKTsKICAgICAgICAgfQotICAgICAgICBtX2hvc3QtPnNlbmRDb21t
YW5kVG9CYWNrZW5kKCJjcmVhdGVCcm93c2luZ0NvbnRleHQiX3MsIFdURk1vdmUocGFyYW1ldGVy
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gcHJvdGVjdGVkVGhpcy5jb3B5UmVmKCksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpD
b21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5k
VG9CYWNrZW5kKCJjcmVhdGVCcm93c2luZ0NvbnRleHQiX3MsIFdURk1vdmUocGFyYW1ldGVycyks
IFtwcm90ZWN0ZWRUaGlzID0gcHJvdGVjdGVkVGhpcy5jb3B5UmVmKCksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVz
cG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwg
IXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0
KSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1NTAsNyArMTU1MCw3IEBAIHZvaWQg
U2Vzc2lvbjo6ZWxlbWVudElzRmlsZVVwbG9hZChjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgRnVu
Y3Rpb248dm9pZCAoQ29tbWFuCiAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVI
YW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBpc0ZpbGVVcGxvYWRTY3JpcHQpOwogICAgIHBh
cmFtZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1vdmUoYXJndW1lbnRzKSk7Ci0g
ICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9zdC0+
c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29t
bWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3Ig
fHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3Qp
KSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjkyLDcgKzE2OTIsNyBAQCB2b2lkIFNlc3Np
b246OmVsZW1lbnRJc0VkaXRhYmxlKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2
b2lkIChDb21tYW5kUgogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFuZGxl
Il9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAgcGFyYW1ldGVycy0+
c2V0U3RyaW5nKCJmdW5jdGlvbiJfcywgaXNFZGl0YWJsZVNjcmlwdCk7CiAgICAgcGFyYW1ldGVy
cy0+c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShhcmd1bWVudHMpKTsKLSAgICBtX2hv
c3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywg
V1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lv
bkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29t
bWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFy
YW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVz
cG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVz
cG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTE3OTQsNyArMTc5NCw3IEBAIHZvaWQgU2Vzc2lvbjo6c2V0
SW5wdXRGaWxlVXBsb2FkRmlsZXMoY29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIGNvbnN0IFN0cmlu
ZyYgdGV4CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJy
ZW50QnJvd3NpbmdDb250ZXh0LnZhbHVlT3IoZW1wdHlTdHJpbmcoKSkpOwogICAgIHBhcmFtZXRl
cnMtPnNldFN0cmluZygibm9kZUhhbmRsZSJfcywgZWxlbWVudElEKTsKICAgICBwYXJhbWV0ZXJz
LT5zZXRBcnJheSgiZmlsZW5hbWVzIl9zLCBXVEZNb3ZlKGZpbGVuYW1lcykpOwotICAgIG1faG9z
dC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoInNldEZpbGVzRm9ySW5wdXRGaWxlVXBsb2FkIl9zLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBlbGVtZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgbXV0YWJsZSB7Cisg
ICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgic2V0RmlsZXNGb3JJbnB1dEZpbGVVcGxv
YWQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGVsZW1lbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVj
dCkpKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKaW5kZXggZDYy
OTY2MDUxNjc3NGM0OWYzY2JhNWYwODRkNmMwZTRmYTdmOGUwOS4uYTQyZWI3YzkxNjdmMGU3ZDhi
Y2YzNTY1OWFkOWFhNGJmYWZkZjA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKQEAgLTExMiw2
ICsxMTIsOCBAQCB2b2lkIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpxdWVyeShTdHJpbmcm
JiBob3N0LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIGlmIChzdGVwUmVzdWx0
ICE9IFNRTElURV9ST1cgJiYgc3RlcFJlc3VsdCAhPSBTUUxJVEVfRE9ORSkgewogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNz
aW9uSUQsICJzdGVwIGZhaWxlZCB3aXRoIGVycm9yIGNvZGUgJWQsIGVycm9yIG1lc3NhZ2U6ICV7
cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCBzdGVwUmVzdWx0LCBtX2RhdGFi
YXNlLT5sYXN0RXJyb3JNc2coKSwgbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXJEYXRhYmFzZVBh
dGgoKS51dGY4KCkuZGF0YSgpKTsKKyNlbHNlCisgICAgICAgICAgICBVTlVTRURfVkFSSUFCTEUo
c2Vzc2lvbklEKTsKICNlbmRpZgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDZlZGMyNTE5M2Y0Y2U4NTliNzY0YjNl
YzBhNWJjNWZjYTc4OWQwYTguLmM0NjJjOGRkNjNlMTQ1NmVhYWJiYjg2YTNiODM0NTMyNmVmODQw
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5jcHAKQEAgLTYyLDcgKzYyLDkgQEAgTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3Jr
TG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmUKICAg
ICAsIG1fcHJlZmxpZ2h0UG9saWN5KHByZWZsaWdodFBvbGljeSkKICAgICAsIG1fcmVmZXJyZXIo
V1RGTW92ZShyZWZlcnJlcikpCiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpCisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgLCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZChpc0hUVFBTVXBncmFkZUVu
YWJsZWQpCisjZW5kaWYKICAgICAsIG1fcmVxdWVzdExvYWRUeXBlKHJlcXVlc3RMb2FkVHlwZSkK
ICAgICAsIG1fc2NoZW1lUmVnaXN0cnkoc2NoZW1lUmVnaXN0cnkpCiAgICAgLCBtX25ldHdvcmtS
ZXNvdXJjZUxvYWRlcihtYWtlV2Vha1B0cihuZXR3b3JrUmVzb3VyY2VMb2FkZXIpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXgg
OWU0ZGNiMDQ1NWE1ZWFlY2JjNDdhZjIxNjc0ZGNkMGI3MGNkZDljNi4uNGQ5Y2E5NmE4NzUxMGMw
NzhiNmM5MmI3YzQzZDI0NTk4MThmYWVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0xNTMsNyArMTUzLDExIEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgYm9vbCBtX2NoZWNrQ29udGVudEV4dGVu
c2lvbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9h
ZE1ldHJpY3MgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBtX2lz
SFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFdlYkNvcmU6Ok5l
dHdvcmtMb2FkSW5mb3JtYXRpb24gbV9sb2FkSW5mb3JtYXRpb247CiAKICAgICBMb2FkVHlwZSBt
X3JlcXVlc3RMb2FkVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNw
cAppbmRleCBlOGRiYmUyNzNiM2JkNDI0MTc0YmRjOTAzZDc2NGIxYTJiMDU3NWQ0Li5hNzNkZDQz
MzUzZmYwNjg4MmM4OTkwYjNkZmVkNzgyMmMzZGQyMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0yNzEsNyArMjcxLDcgQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVNjZW5lU3RhdGUoKQogICAgICAgICAgICAgZm9yIChhdXRv
JiBjb21wb3NpdGlvbkxheWVyIDogbV9uaWNvc2lhLnN0YXRlLmxheWVycykgewogICAgICAgICAg
ICAgICAgIGF1dG8mIGxheWVyID0gdGV4bWFwTGF5ZXIoKmNvbXBvc2l0aW9uTGF5ZXIpOwogICAg
ICAgICAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPmNvbW1pdFN0YXRlKAotICAgICAgICAgICAg
ICAgICAgICBbdGhpcywgJmxheWVyLCAmY29tcG9zaXRpb25MYXllciwgJmxheWVyc0J5QmFja2lu
Z10KKyAgICAgICAgICAgICAgICAgICAgWyZsYXllciwgJmxheWVyc0J5QmFja2luZ10KICAgICAg
ICAgICAgICAgICAgICAgKGNvbnN0IE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3Rh
dGUmIGxheWVyU3RhdGUpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChsYXllclN0YXRlLmRlbHRhLnBvc2l0aW9uQ2hhbmdlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCmlu
ZGV4IGJjYjIzNTk3NWIxMzNkMmUyNzY3NmQyODNmZTg5MTM4MWEwZDVkMWMuLmI4YzczMDNlNzU5
YzAwNGQzYzk3Yzc4Y2IyN2M5ZTdkMGMzZTVmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtMTY3LDcgKzE2
Nyw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFpbnQoKQogICAgIC8vIGlu
IGEgd2F5IHRoYXQgZG9lc24ndCBzdGFydmUgb3V0IHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzIGJ1
ZmZlcnMuCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKFdQRV9SRU5ERVJFUikKICAgICBtX2Nv
bXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faW5G
b3JjZVJlcGFpbnQsIHRydWUpOwogICAgICAgICByZW5kZXJMYXllclRyZWUoKTsKICAgICB9KTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaAppbmRleCA0OTA2NDBkNTQzYjMxMWM0YWY3MTAxNTNhNTAxZDE4ZDg0M2Y0
ZjUwLi5mY2QyZTQ4ODg5OTlkMDUyZTAyNGE1ZDMyYTU5MzQ5N2Q2ZGViYzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApA
QCAtMTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX25hdGl2ZVN1cmZh
Y2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBtX3BhaW50
RmxhZ3MgeyAwIH07Ci0gICAgYm9vbCBtX2luRm9yY2VSZXBhaW50IHsgZmFsc2UgfTsKICAgICB1
bnNpZ25lZCBtX3N1c3BlbmRlZENvdW50IHsgMCB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENv
bXBvc2l0aW5nUnVuTG9vcD4gbV9jb21wb3NpdGluZ1J1bkxvb3A7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQu
Y3BwCmluZGV4IDU0ZWYwYjRlNWE5MWU0ZDg1NDc4MmIwZjIzNWRmMmRlMTE5YzVhMWEuLjc4NzY0
NDM5YTQ3NWIyMzlkMDcyZDczOTQwMWE4Mjg1MDg3MTM5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQu
Y3BwCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1p
dDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xp
ZW50OgorICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlO
ZXR3b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246Ok5h
dmlnYXRpb25Td2FwOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJv
dG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCBlM2Y0Zjg1NDY5YzlkMTU5
ZTI1YmQ1ODI2YTczZmQwY2EzMzVlZTQwLi5iNjU1MWVhYmY1YzJiYmQ4Y2M0ZDQ4MmY0Y2YwNTJl
YmVlOTRjMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIu
Y3BwCkBAIC02MCw3ICs2MCw2IEBAIHByaXZhdGU6CiB9OwogCiBSZW1vdGVJbnNwZWN0b3JQcm90
b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcihXZWJLaXRXZWJDb250
ZXh0KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7CiAgICAgd2Via2l0X3dl
Yl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoY29udGV4dCwgImluc3BlY3RvciIsIFtdKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRhKSB7CiAgICAg
ICAgIHN0YXRpY19jYXN0PFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcio+KHVzZXJEYXRh
KS0+aGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3Rv
Y29sSGFuZGxlci5oCmluZGV4IGM0ODczZTc1NjZkNTU1YmJiNGE3NzM5MmRmNzIyNWEzMTRjMjZk
YzIuLmY2YTBkMDExMjMzODMwOGUxODExMDA4ODFiOGJkZTRmNWJlYzc4YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJv
dG9jb2xIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaApAQCAtNDksNyArNDksNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgdGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9yQ2xpZW50Jikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKFJlbW90ZUluc3BlY3RvckNsaWVu
dCYpIG92ZXJyaWRlOwogCi0gICAgV2ViS2l0V2ViQ29udGV4dCogbV9jb250ZXh0IHsgbnVsbHB0
ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW5zcGVjdG9y
Q2xpZW50Pj4gbV9pbnNwZWN0b3JDbGllbnRzOwogICAgIEhhc2hTZXQ8V2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyKj4gbV91c2VyQ29udGVudE1hbmFnZXJzOwogICAgIEhhc2hTZXQ8V2ViS2l0V2Vi
Vmlldyo+IG1fd2ViVmlld3M7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNjBmNWE0NTEzNWI0OGM5NzQwZjZkMDRjZjVkYjAwNWY2ODFkZGQ4ZS4u
ZGM2ZWYxYzUwNmE3YWJkOTQ5MDhiNTgxNjZmZWNhZDRlM2JhZDI1YSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIw
LTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBG
aXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwOgorICAgICAgICAodGVzdERvd25s
b2FkTUlNRVR5cGUpOgorICAgICAgICAodGVzdENvbnRleHRNZW51RG93bmxvYWRBY3Rpb25zKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3Bw
OgorCiAyMDIwLTAzLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbmlxdWUgb3JpZ2lucyBzaG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRydXN0d29ydGh5
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3Jt
YXRpb25NYXRyaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RyYW5z
Zm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCAxOTdkMjEzZWU3YTI3YzEzNWExNDYzYjRlOTU4ZmJl
MDJiNTJhMDc5Li5hZmFkYmM1MzkyMjNlNGIyYzY1ZmY2MDA2NzNkNWFjYThhZGU2NmMxIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25N
YXRyaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFuc2Zv
cm1hdGlvbk1hdHJpeC5jcHAKQEAgLTEyMzksNiArMTIzOSw4IEBAIFRFU1QoVHJhbnNmb3JtYXRp
b25NYXRyaXgsIENhc3RpbmcpCiAgICAgRVhQRUNUX0RPVUJMRV9FUSgzLjAsIGNhRnJvbVdLLm00
Mik7CiAgICAgRVhQRUNUX0RPVUJMRV9FUSgyLjAsIGNhRnJvbVdLLm00Myk7CiAgICAgRVhQRUNU
X0RPVUJMRV9FUSgxLjAsIGNhRnJvbVdLLm00NCk7CisjZWxzZQorICAgIFVOVVNFRF9WQVJJQUJM
RSh0ZXN0KTsKICNlbmRpZgogCiAjaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNw
cAppbmRleCBjZGFiNGFlZWRlZjU1ZmYzZmFiM2UzMzZlNDIzMDBjYmFiZDhlYTRkLi41YWU0NGQ0
Njc3ZTY5MjVhNWE5NGY3OWQ2MmI5OTlkZjgyNTQyZTJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNz
aW9uLmNwcApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbm5lY3Rp
b24oUmVmPFNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICB7Ci0gICAgICAgIGdf
YXNzZXJ0X3RydWUoY29ubmVjdGlvbi5wdHIoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbiA9IFdU
Rk1vdmUoY29ubmVjdGlvbik7CiAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWluTG9vcC5n
ZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3REb3dubG9hZHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3REb3dubG9hZHMuY3BwCmluZGV4IGUwMzkxOTljMTcyZWM3ZDIzZDkyNGUwOWU5
M2RjMGY4OGRmMTExNGMuLmY3MzNlODE4M2FjZjAyM2U3ZGViZGIxZDZhNGY5ODVkYzIwMWM0ZmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93
bmxvYWRzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dERvd25sb2Fkcy5jcHAKQEAgLTY3MiwxNCArNjcyLDE0IEBAIHN0YXRpYyB2b2lkIHRlc3REb3du
bG9hZE1JTUVUeXBlKERvd25sb2FkVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBldmVu
dHMuY2xlYXIoKTsKIAogICAgIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRfZG93
bmxvYWRfZ2V0X3JlcXVlc3QoZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklfUkVR
VUVTVChyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVRVUVTVChy
ZXF1ZXN0KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRf
dXJpKHJlcXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Vua25vd24iKSk7CiAK
ICAgICBhdXRvIGhlYWRlcnMgPSB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X2h0dHBfaGVhZGVycyhy
ZXF1ZXN0KTsKICAgICBnX2Fzc2VydF9ub25udWxsKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9v
bmUoaGVhZGVycywgIlVzZXItQWdlbnQiKSk7CiAKICAgICBXZWJLaXRVUklSZXNwb25zZSogcmVz
cG9uc2UgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3Jlc3BvbnNlKGRvd25sb2FkLmdldCgpKTsKLSAg
ICBXRUJLSVRfSVNfVVJJX1JFU1BPTlNFKHJlc3BvbnNlKTsKKyAgICBnX2Fzc2VydF90cnVlKFdF
QktJVF9JU19VUklfUkVTUE9OU0UocmVzcG9uc2UpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIod2Vi
a2l0X3VyaV9yZXNwb25zZV9nZXRfbWltZV90eXBlKHJlc3BvbnNlKSwgPT0sICJhcHBsaWNhdGlv
bi9wZGYiKTsKIAogICAgIGdfYXNzZXJ0X25vbm51bGwod2Via2l0X2Rvd25sb2FkX2dldF9kZXN0
aW5hdGlvbihkb3dubG9hZC5nZXQoKSkpOwpAQCAtNzM5LDcgKzczOSw3IEBAIHN0YXRpYyB2b2lk
IHRlc3RDb250ZXh0TWVudURvd25sb2FkQWN0aW9ucyhXZWJWaWV3RG93bmxvYWRUZXN0KiB0ZXN0
LCBnY29uc3Rwb2luCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX3dlYlZpZXcgPT0gd2Via2l0
X2Rvd25sb2FkX2dldF93ZWJfdmlldyh0ZXN0LT5tX2Rvd25sb2FkLmdldCgpKSk7CiAKICAgICBX
ZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0ID0gd2Via2l0X2Rvd25sb2FkX2dldF9yZXF1ZXN0KHRl
c3QtPm1fZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0
KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7CiAg
ICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3Qp
LCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Rlc3QucGRmIikpOwogCiAgICAgYXV0byBo
ZWFkZXJzID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF9odHRwX2hlYWRlcnMocmVxdWVzdCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRp
bmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFByaW50aW5n
LmNwcAppbmRleCA1NDhhOTgxYzFiNDIyMzgyYzZiZGZlMjBhMDE3Nzk3ZWE2Nzc3MjAwLi43MGY3
MDlkYzE5MmZlZGMxNThkNzliM2Y1MDViZTYzZjY0NTgxYzc3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAKQEAgLTExOCw3
ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgR1JlZlB0cjxXZWJLaXRQcmludE9wZXJh
dGlvbj4gbV9wcmludE9wZXJhdGlvbjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkRXJyb3I7Cisg
ICAgaW50IG1fZXhwZWN0ZWRFcnJvcjsKIH07CiAKIHN0YXRpYyB2b2lkIHRlc3RQcmludE9wZXJh
dGlvblByaW50KFByaW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393742</attachid>
            <date>2020-03-17 04:10:49 -0700</date>
            <delta_ts>2020-03-18 07:31:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200317111048.patch</filename>
            <type>text/plain</type>
            <size>38099</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTFhMjkzOTM3ZmJiMTgyNDBiZjAzMmVkNjE4NTRkYzYxZGQwNTJjLi41N2Q0M2Y1MzcxMzNiODJm
MTg2M2UyN2NiOTNjODllOWFlMTJjZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4
Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhbGxGcmFt
ZTo6ZGVwcmVjYXRlZFZNIGNvbnN0KTogQSByZWZlcmVuY2UgbWF5IG5vdCBiZSBOVUxMLCBzbwor
ICAgICAgICB0aGlzIEFTU0VSVCgpIGNhbiBuZXZlciB0cmlwLgorCiAyMDIwLTAzLTE1ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgcmVwb3J0WmFwcGVkQ2Vs
bEFuZENyYXNoIHNob3VsZCBoYW5kbGUgUHJlY2lzZUFsbG9jYXRpb24gaW4gSXNvU3Vic3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjAxMzdiNWYwMDNjMjAxZjkyMDMyYmYxNTU5NTQ2MTI4NzU3MmZkZi4uZjg1MjU2YmEz
ODRkZWNmODY1Y2RjMTgxY2RiNzllOWRlMTNiNzVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+CisKKyAgICAgICAg
Rml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE0Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0xv
Z2dlckhlbHBlci5oOiBXaGVuIHRoZSBSRUxFQVNFX0xPRyBpcyBkaXNhYmxlZCwgYXZvaWQgd2Fy
bmluZworICAgICAgICBzcGFtIGFib3V0IHVudXNlZCBjaGFubmVsIG5hbWVzLiBDYWxsIHNpdGVz
IG9mdGVuIGNyZWF0ZSBsb2NhbHMgZm9yCisgICAgICAgIHRoZSBjaGFubmVsIG5hbWUgb3V0c2lk
ZSBvZiBSRUxFQVNFX0xPRyBpZmRlZidzLCB3aGljaCBjYXVzZSBtYW55CisgICAgICAgIHVudXNl
ZCB2YXJpYWJsZSB3YXJuaW5ncy4KKwogMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1h
cnJheSAoVkxBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBkMTJjZjQ0N2I4MGUzNzI5ZDQ2NDQ3NWFiMjYyZWU1
Y2MwNWMxNTMuLjQwMWE2ZWY4N2MwZjE0OTQzMGNiMDQyY2RjZmNjNmRlMTQxNjUyZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVy
bmVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3
LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdhcm5pbmcgZml4ZXMsIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5czo6TWVkaWFLZXlzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDogVGhlIG1fbnVtYmVyT2ZGcmFtZXMgaXZhcgorICAgICAg
ICBpcyBwbGF0Zm9ybS1zcGVjaWZpYy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMRGF0YTo6Z2V0U3RhdGljVkJPKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIu
aDogVGhlcmUgYXJlCisgICAgICAgIHN0aWxsIHZpcnR1YWwgbWV0aG9kcyBpbiB0aGlzIGNsYXNz
LCBidXQgbm8gdmlydHVhbCBkZXN0cnVjdG9yLiBTaW5jZQorICAgICAgICB0aGlzIHdvbid0IGJl
IHN1YmNsYXNzZWQgZnVydGhlciAoSSBkb3VidCwgYW55d2F5ISkgbGV0cyBtYWtlIGl0IGZpbmFs
CisgICAgICAgIGFuZCBwbHVnIHRoZSBidWcuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaDog
U2VlCisgICAgICAgIEF1ZGlvQ2FwdHVyZXIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2Fs
bGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVy
OjpJbXBsZW1lbnRhdGlvbk5hbWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJG
YWN0b3J5LmNwcDogVGhlCisgICAgICAgIGVuY29kZXIgd2FzIGJlaW5nIHVzZWQgdW5pbml0aWFs
aXplZCwgYW5kIGhlbmNlIGNvZGVjIHN1cHBvcnQgY2FuIG5vdAorICAgICAgICBiZSB3b3JraW5n
IGFzIGludGVuZGVkLiBGaXggdGhhdCBidWcuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJW
aWRlb0VuY29kZXI6OkFkZENvZGVjSWZTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyVmlkZW9FbmNvZGVyOjpJbml0RW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6R2V0RW5jb2RlckluZm8gY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0VuY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzZXRDb29raWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmg6IENvbmRpdGlvbiB0aGUgYmVhciB0cmFwIG9uIENvY29hCisgICAgICAgIHBsYXRm
b3JtIHdoZXJlIHRoZSBjcmFzaCBpcyBiZWluZyBzZWVuLiBPbiBHVEsgdGhlc2UgdHJhcHMgZ2Vu
ZXJhdGUKKyAgICAgICAgd2FybmluZyBzcGFtIGFuZCB3ZSBkb24ndCBzZWUgdGhlIGNyYXNoIGhl
cmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVh
ZFByZWZlcmVuY2VJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5jb2Rl
ZFByZWZlcmVuY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZy
b21NSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcp
OgorCiAyMDIwLTAzLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbmlxdWUgb3JpZ2lucyBzaG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRydXN0d29ydGh5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2
ZXIvQ2hhbmdlTG9nCmluZGV4IDQzY2RiZDBmMTdhOWZhODMzZGUwOGI5ZDFiMzU3YjUxYWNmZmEw
MTYuLjZmMjk5NWZlMTYwOGU3OWQyMWIyZDBhMjUwZmUxMWJhZGYwZWYyMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVyICA8Y3R1cm5l
ckBpZ2FsaWEuY29tPgorCisgICAgICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4w
IG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNz
aW9uOjpuZXdXaW5kb3cpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjplbGVtZW50SXNG
aWxlVXBsb2FkKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFi
bGUpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxl
cyk6CisKIDIwMjAtMDItMTIgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiByZXR1cm4gaW52YWxpZFNlc3Npb25JRCBl
eGNlcHRpb24gaWYgdGhlIFdlYlByb2Nlc3MgZG9lc24ndCByZXNwb25kIChjcmFzaGVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA2OGY3MDI0NTBkNTgzZjM3YTk2ZWE5YTJhMGI3ZDUwMTQ0ZjE0ZTY0Li4yZGZjNTk0
OGQxNDAwM2NjYTI5YjM1MWJiY2I4YWQ2OGZkOGJmZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIwLTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGlu
IERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpxdWVyeSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDogVGhlIG1faXNIVFRQU1VwZ3Jh
ZGVFbmFibGVkCisgICAgICAgIGl2YXIgaXMgb25seSB1c2VkIG9uIENvY29hIHBsYXRmb3Jtcywg
b24gR1RLIGl0IGlzIGNhdXNpbmcgd2FybmluZworICAgICAgICBzcGFtLgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVTY2VuZVN0YXRlKToKKyAg
ICAgICAgKgorICAgICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgbV9pbkZvcmNlUmVwYWludCBp
cyBub3QgYmVpbmcgdXNlZCBhbnltb3JlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBv
c2l0b3I6OmZvcmNlUmVwYWludCk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90
ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmg6CisKIDIwMjAtMDMtMTYgIHlv
dWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1ZSBvcmlnaW5z
IHNob3VsZCBub3QgYmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAppbmRleCAyZGFmN2JjMGRkYjM3ZTQwZjcz
MDljYTFkNjI3MDM2Yzc4YjE4YWY5Li4xYzlkMTMyNDhhOTMyNGZhZjUyYTJjOGZhMDEwNzA2MjYx
MTA0MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5l
cy5oCkBAIC0xNDIsNyArMTQyLDYgQEAgQUxXQVlTX0lOTElORSBWTSYgQ2FsbEZyYW1lOjpkZXBy
ZWNhdGVkVk0oKSBjb25zdAogewogICAgIEpTQ2VsbCogY2FsbGVlID0gdGhpcy0+Y2FsbGVlKCku
YXNDZWxsKCk7CiAgICAgQVNTRVJUKGNhbGxlZSk7Ci0gICAgQVNTRVJUKCZjYWxsZWUtPnZtKCkp
OwogICAgIHJldHVybiBjYWxsZWUtPnZtKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0xvZ2dlckhlbHBlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKaW5kZXgg
MGFkNjVlZTI0NzBiNzBmYzlhMGVlZjgyZWJhNzFlMGZjM2Q1ZjhjNy4uZDY3ZTIxY2UzNTAxMTFi
NGUwMzIzNDI4MThjYzI4ZGZlNTliMmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9n
Z2VySGVscGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKQEAgLTgwLDE0
ICs4MCwxMyBAQCBwdWJsaWM6CiAKICNkZWZpbmUgTE9HSURFTlRJRklFUiAoV1RGOjpudWxsb3B0
KQogCi0jZGVmaW5lIEFMV0FZU19MT0coLi4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9S
X0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgKCh2
b2lkKTApCi0jZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgKCh2b2lkKTApCi0jZGVmaW5lIE5P
VElDRV9MT0coLi4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIElORk9fTE9HKC4uLikgICAgICAg
KCh2b2lkKTApCi0jZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5l
IFdJTExfTE9HKF9sZXZlbF8pICAgZmFsc2UKKyNkZWZpbmUgQUxXQVlTX0xPRyhjaGFubmVsTmFt
ZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkpCisjZGVmaW5lIEVSUk9SX0xPRyhj
aGFubmVsTmFtZSwgLi4uKSAgIChVTlVTRURfUEFSQU0oY2hhbm5lbE5hbWUpKQorI2RlZmluZSBX
QVJOSU5HX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAoVU5VU0VEX1BBUkFNKGNoYW5uZWxOYW1lKSkK
KyNkZWZpbmUgTk9USUNFX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShjaGFu
bmVsTmFtZSkpCisjZGVmaW5lIElORk9fTE9HKGNoYW5uZWxOYW1lLCAuLi4pICAgIChVTlVTRURf
UEFSQU0oY2hhbm5lbE5hbWUpKQorI2RlZmluZSBERUJVR19MT0coY2hhbm5lbE5hbWUsIC4uLikg
ICAoVU5VU0VEX1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUgV0lMTF9MT0coX2xldmVsXykg
ICAgZmFsc2UKIAogI2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgKCh2
b2lkKTApCiAjZGVmaW5lIEVSUk9SX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICAoKHZvaWQp
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlzLmNwcAppbmRleCBhODljZDQwMDNkNzFlZWFmOTEwN2E0NTdiNDQzZmI3ZTMwYzU1MzI3Li5j
NGI2OTg0MmY1MTUyNWI5ODRiYmQwOTdmNzkyZGYyMDE3MmI2NGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC02Myw2
ICs2Myw4IEBAIE1lZGlhS2V5czo6TWVkaWFLZXlzKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1
c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgbV9pbnN0YW5jZS0+c2V0TG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpLCBtX2xv
Z0lkZW50aWZpZXIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogI2VuZGlm
CiAgICAgbV9pbnN0YW5jZS0+c2V0Q2xpZW50KG1ha2VXZWFrUHRyKHRoaXMpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmgKaW5kZXggZmM2ZGRiOGU2ZDJiODcwMzZkMjYyMTM4ZGVkNGM2Yzc3Nzk2YmU5ZS4u
MTY3MjY4MTdkYjM3MzU0YjgxMzk1YzQzNTYzMDM2Yzg0Yzg3MTA5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
LmgKQEAgLTU4LDcgKzU4LDkgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX2RldmljZUlkOwog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyNpZiBV
U0UoQVZGT1VOREFUSU9OKQogICAgIHNpemVfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA1ZDg2YWY2ZTRkYjFhMzViYWMxNTg4
YTA5ZmU4ZWVhNDRkNjM1NDg4Li42OWMwMDAyMjk2YTdkMDFjNGE1NjgwYjkxNzAzY2QxZjhmMDI4
OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAKQEAgLTMzMCw4ICszMzAsMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRS
ZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmxvYWRSZXNvdXJjZShmcmFtZSwgKnRoaXMsIFdURk1v
dmUocmVxdWVzdCksIG1fb3B0aW9ucywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4odGhpcyksIGZyYW1lUmVmID0gbWFrZVJlZihmcmFt
ZSksIGxvZ2dpbmdBbGxvd2VkID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIuaXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCldIChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKSB7CiAgICAg
ICAgIG1fbG9hZGVyID0gV1RGTW92ZShsb2FkZXIpOwogICAgICAgICBpZiAoIW1fbG9hZGVyKSB7
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgICAgICBhdXRvJiBmcmFtZSA9IGZy
YW1lUmVmLmdldCgpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYobG9nZ2luZ0FsbG93ZWQs
IE5ldHdvcmssICIlcCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICJd
IENhY2hlZFJlc291cmNlOjpsb2FkOiBVbmFibGUgdG8gY3JlYXRlIFN1YnJlc291cmNlTG9hZGVy
IiwgdGhpcywgUEFHRV9JRChmcmFtZSksIEZSQU1FX0lEKGZyYW1lKSk7CisjZW5kaWYKICAgICAg
ICAgICAgIGZhaWxCZWZvcmVTdGFydGluZygpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDk2ZTMwNDMxMjY5ZTRkODJiMWMxMDc3MTll
NzA1YjgxMzJhNjI3YTQuLmZiYTExMjA3OGQ2NDhlYzNhMmE3ZDI5MWQwNGM4MDRmOTcxZTQ0NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBUZXh0dXJl
TWFwcGVyR0xEYXRhOjppbml0aWFsaXplU3RlbmNpbCgpCiBHTHVpbnQgVGV4dHVyZU1hcHBlckdM
RGF0YTo6Z2V0U3RhdGljVkJPKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWlwdHIgc2l6ZSwgY29uc3Qg
dm9pZCogZGF0YSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmJvcy5lbnN1cmUoZGF0YSwK
LSAgICAgICAgW3RoaXMsIHRhcmdldCwgc2l6ZSwgZGF0YV0geworICAgICAgICBbdGFyZ2V0LCBz
aXplLCBkYXRhXSB7CiAgICAgICAgICAgICBHTHVpbnQgdmJvID0gMDsKICAgICAgICAgICAgIGds
R2VuQnVmZmVycygxLCAmdmJvKTsKICAgICAgICAgICAgIGdsQmluZEJ1ZmZlcih0YXJnZXQsIHZi
byk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggM2I2MWJjOTFlYjNhYWZjMWIzMzJhOThjZTUwNGFk
OTdmM2E2YmYwMS4uYjA3YmU2MDljNjMyMzg5ZDgyZjJkZjgxMGE5NTAwOTNkMWE2ZjRkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuaApAQCAtNzAsNyArNzAsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmPFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgdWludDY0X3QgbV9jbG9uZUNvdW50ZXIgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJl
ci5oCmluZGV4IDlhYWY3NjFkNmM0YjQzYzQ0ZWY0NDcxMWU4MzdiMGYxMjUyZDFmNWEuLmRjN2Yy
OGZkMTdiOGI5NmM4YjM2Yzk3Y2RkMzk5ZTBiOGM4ZDQ1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXIgOiBwdWJsaWMgR1N0cmVh
bWVyQ2FwdHVyZXIgeworY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlciBmaW5hbCA6IHB1Ymxp
YyBHU3RyZWFtZXJDYXB0dXJlciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJl
cihHU3RyZWFtZXJDYXB0dXJlRGV2aWNlKTsKICAgICBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
CmluZGV4IGFjOTg4ZTRjMGNhYzQwNjMwNjAwNmJmNGZiMmU3NmU5MmMwMmI0YjYuLjg3YTA4ZjI5
MTdiZDVlNzdkZTQyOThmMjRlNjI2MmIwN2JmMDlhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zOCw5ICszOCw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3Qgc3RhdGljIGludCBkZWZhdWx0V2lkdGggPSA2
NDA7Ci1jb25zdCBzdGF0aWMgaW50IGRlZmF1bHRIZWlnaHQgPSA0ODA7Ci0KIEdTVF9ERUJVR19D
QVRFR09SWSh3ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcpOwogI2RlZmluZSBHU1Rf
Q0FUX0RFRkFVTFQgd2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oCmluZGV4IDU3YjBiNDY4NmQzNGFlMGMx
MTU0YTczZmQ0YTRiOWVkNWM0MGU2OTUuLjZjYmRhNzdlMzhhZTlmZWFlOTI4OTRmNGFkZGZlYzVl
NmE2M2JlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaApA
QCAtMjksMTMgKzI5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVh
bWVyVmlkZW9DYXB0dXJlciA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVyIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1
YmxpYzoKICAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2Up
OwogICAgIEdTdHJlYW1lclZpZGVvQ2FwdHVyZXIoY29uc3QgY2hhciogc291cmNlX2ZhY3Rvcnkp
OwogCiAgICAgR3N0RWxlbWVudCogY3JlYXRlQ29udmVydGVyKCkgZmluYWw7Ci0gICAgY29uc3Qg
Y2hhciogbmFtZSgpIGZpbmFsIHsgcmV0dXJuICJWaWRlbyI7IH0KKyAgICBjb25zdCBjaGFyKiBu
YW1lKCkgeyByZXR1cm4gIlZpZGVvIjsgfQogCiAgICAgYm9vbCBzZXRTaXplKGludCB3aWR0aCwg
aW50IGhlaWdodCk7CiAgICAgYm9vbCBzZXRGcmFtZVJhdGUoZG91YmxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0RlY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAppbmRleCBhM2Jk
ZDZiNzIyN2NiYjRhY2VjMzMyNzgwYTU1ZDBiYTc3ZGU4MzJhLi41MzQ2ZTJlYmQwZmE4N2UzZThi
NzEzMWI3YmQ5MmExMzZmNjdjMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwogICAgIH0KIAotICAgIGludDMy
X3QgUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2Fs
bGJhY2sqIGNhbGxiYWNrKQorICAgIGludDMyX3QgUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxi
YWNrKHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZQogICAg
IHsKICAgICAgICAgbV9pbWFnZVJlYWR5Q2IgPSBjYWxsYmFjazsKIApAQCAtMzIwLDcgKzMyMCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgZ2NoYXIqIENhcHMoKSA9IDA7CiAgICAg
dmlydHVhbCB3ZWJydGM6OlZpZGVvQ29kZWNUeXBlIENvZGVjVHlwZSgpID0gMDsKLSAgICBjb25z
dCBjaGFyKiBJbXBsZW1lbnRhdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiAiR1N0cmVhbWVyIjsg
fQorICAgIGNvbnN0IGNoYXIqIEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVhbCBjb25zdCBnY2hhciogTmFtZSgpID0g
MDsKIAogcHJvdGVjdGVkOgpAQCAtMzM2LDcgKzMzNiw2IEBAIHByaXZhdGU6CiAgICAgR3N0RWxl
bWVudCogbV9zaW5rOwogICAgIEdzdEVsZW1lbnQqIG1fc3JjOwogCi0gICAgR3N0VmlkZW9JbmZv
IG1faW5mbzsKICAgICB3ZWJydGM6OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBtX2ltYWdlUmVhZHlD
YjsKIAogICAgIFN0ZE1hcDxHc3RDbG9ja1RpbWUsIElucHV0VGltZXN0YW1wcz4gbV9kdHNQdHNN
YXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCmluZGV4IDQy
ZjBjZjg1NzExYTc0ZDg4ZWEzZGEyNzNiNzlmOTJmYTM5ZWUyYmEuLjZhMWQ0YTdhNDEwMjVkN2U1
NWJlMmE2NDhjMGVlNjgwYWY3NWRlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXIuY3BwCkBAIC02NywxNyArNjcsNyBAQCB0eXBlZGVmIGVudW0KICAgRU5DT0RF
Ul9MQVNULAogfSBFbmNvZGVySWQ7CiAKLUVuY29kZXJEZWZpbml0aW9uIGVuY29kZXJzW0VOQ09E
RVJfTEFTVF0gPSB7Ci0gIEZBTFNFLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotICBOVUxM
LAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotfTsKK0VuY29kZXJEZWZpbml0
aW9uIGVuY29kZXJzW0VOQ09ERVJfTEFTVF0gPSB7IHsgfSB9OwogCiB0eXBlZGVmIHN0cnVjdAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCmluZGV4IGEyZmRkYTVmZmE1MDkzY2NiNzVkY2Q2YzhlYzQ3ZWZmMWJiOGM5ZWIuLjJjOWMy
OTBlYmJjOTgyYzY3Y2ViYTU4ZDE2OWE5NTkxNzE5NWY3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29k
ZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTEwMCw3ICsxMDAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBlbGVtOwogICAgIH0KIAotICAgIGludDMyX3Qg
SW5pdEVuY29kZShjb25zdCB3ZWJydGM6OlZpZGVvQ29kZWMqIGNvZGVjU2V0dGluZ3MsIGludDMy
X3QsIHNpemVfdCkKKyAgICBpbnQzMl90IEluaXRFbmNvZGUoY29uc3Qgd2VicnRjOjpWaWRlb0Nv
ZGVjKiBjb2RlY1NldHRpbmdzLCBpbnQzMl90LCBzaXplX3QpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2RlY1NldHRpbmdzLCBXRUJSVENfVklERU9fQ09E
RUNfRVJSX1BBUkFNRVRFUik7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGVjU2V0
dGluZ3MtPmNvZGVjVHlwZSA9PSBDb2RlY1R5cGUoKSwgV0VCUlRDX1ZJREVPX0NPREVDX0VSUl9Q
QVJBTUVURVIpOwpAQCAtMTg4LDcgKzE4OCw4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0K
IAotICAgIFZpZGVvRW5jb2Rlcjo6RW5jb2RlckluZm8gR2V0RW5jb2RlckluZm8oKSBjb25zdCB7
CisgICAgVmlkZW9FbmNvZGVyOjpFbmNvZGVySW5mbyBHZXRFbmNvZGVySW5mbygpIGNvbnN0IG92
ZXJyaWRlCisgICAgewogICAgICAgICBFbmNvZGVySW5mbyBpbmZvOwogICAgICAgICBpbmZvLnN1
cHBvcnRzX25hdGl2ZV9oYW5kbGUgPSBmYWxzZTsKICAgICAgICAgaW5mby5pbXBsZW1lbnRhdGlv
bl9uYW1lID0gIkdTdHJlYW1lciI7CkBAIC0yOTgsMTAgKzI5OSw5IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgQWRkQ29kZWNJZlN1cHBvcnRlZChzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9y
bWF0Piogc3VwcG9ydGVkRm9ybWF0cykKICAgICB7Ci0gICAgICAgIEdzdEVsZW1lbnQqIGVuY29k
ZXI7Ci0KLSAgICAgICAgaWYgKGNyZWF0ZUVuY29kZXIoKS5nZXQoKSAhPSBudWxscHRyKSB7Ci0g
ICAgICAgICAgICB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0IGZvcm1hdCA9IENvbmZpZ3VyZVN1cHBv
cnRlZENvZGVjKGVuY29kZXIpOworICAgICAgICBhdXRvIGVuY29kZXIgPSBjcmVhdGVFbmNvZGVy
KCk7CisgICAgICAgIGlmIChlbmNvZGVyKSB7CisgICAgICAgICAgICB3ZWJydGM6OlNkcFZpZGVv
Rm9ybWF0IGZvcm1hdCA9IENvbmZpZ3VyZVN1cHBvcnRlZENvZGVjKGVuY29kZXIuZ2V0KCkpOwog
CiAgICAgICAgICAgICBzdXBwb3J0ZWRGb3JtYXRzLT5wdXNoX2JhY2soZm9ybWF0KTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5
LmgKaW5kZXggMTQ4M2EyYjIwYjM1MTVjNzFiN2EwYzdhNTIyNjI2ZTlmZjUzOTIwNC4uMWVhYzE5
NzBjMTMyYzM1MWI4M2M4OTY0N2UyMjBhYmI5MGVlY2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rl
ckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5oCkBAIC0zNSw3ICszNSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgc3RkOjp2ZWN0b3I8d2VicnRjOjpTZHBWaWRlb0Zvcm1hdD4g
R2V0U3VwcG9ydGVkRm9ybWF0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjx3ZWJydGM6OlZpZGVvRW5jb2Rlcj4gQ3JlYXRlVmlkZW9FbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6
U2RwVmlkZW9Gb3JtYXQmKSBmaW5hbDsKLSAgICBDb2RlY0luZm8gUXVlcnlWaWRlb0VuY29kZXIo
Y29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpIGNvbnN0CisgICAgQ29kZWNJbmZvIFF1ZXJ5
VmlkZW9FbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSBjb25zdCBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgR1NUX0ZJWE1FKCJEZXRlY3Qgd2V0aGVyIHRoZSBkZWNvZGVyIGlz
IEhXIGFjY2VsZXJhdGVkIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApp
bmRleCA5MTRlMTBlN2ViNzdhZDFiNmZkZThhNGE0NGNhM2ExOWRjNWY4ZDNhLi5kOTE5ZjJjNDlm
NDZjZTAzNzA2OTM2YWVkMjRmNzVmOWFjZjI3ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCkBAIC0zMTcsNiArMzE3LDggQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnNldENvb2tpZXMoY29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYK
IAogICAgICAgICBzb3VwX2Nvb2tpZV9qYXJfYWRkX2Nvb2tpZV9mdWxsKGNvb2tpZVN0b3JhZ2Uo
KSwgY29va2llLnRvU291cENvb2tpZSgpLCBvcmlnaW4uZ2V0KCksIGZpcnN0UGFydHlVUkkuZ2V0
KCkpOwogI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgICAgIFVOVVNFRF9Q
QVJBTShmaXJzdFBhcnR5KTsKICAgICAgICAgc291cF9jb29raWVfamFyX2FkZF9jb29raWUoY29v
a2llU3RvcmFnZSgpLCBjb29raWUudG9Tb3VwQ29va2llKCkpOwogI2VuZGlmCiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDhmYzY1
MDQ4YjlmZTI2OGFmOGJmNTQ3YjNlNzM4ZGEyZjA4ZTg1ZjYuLjk1NzVlMzM3YWE4YmYzY2Y3MDc4
ZTJmZjdmZWRlMjBmOTE4ZTJjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgVGlsZWRCYWNraW5nOwog
Y2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CiAKIAotI2lmIF9fV09SRFNJWkUgPT0gNjQKKyNp
ZiBfX1dPUkRTSVpFID09IDY0ICYmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBVU0VfT1dOSU5H
X0xBWUVSX0JFQVJfVFJBUCAxCiAjZGVmaW5lIEJFQVJfVFJBUF9WQUxVRSAweEVFRUVFRUVFRUVF
RUVFRUUKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVBZHdhaXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdh
aXRhLmgKaW5kZXggZWM2ODQwZGQxODA2ZTYyNjQ4MTAzYTVhY2Q2MzIxNjMwZTlhMjk2My4uM2Zi
NmQ4ZGIwNGExNmU1NzBjZTg4OGFiMjA0NjhjZjJmMmQ2MmRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaApAQCAtNjIsOCArNjIsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgcGFpbnRTZWFyY2hGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAKICAgICBib29sIHBvcHNNZW51
QnlTcGFjZU9yUmV0dXJuKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQg
YWRqdXN0TWVudUxpc3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsK
LSAgICB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBF
bGVtZW50KikgY29uc3Q7CisgICAgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgYWRqdXN0TWVudUxp
c3RCdXR0b25TdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlk
ZTsKICAgICBMZW5ndGhCb3ggcG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdCBmaW5hbDsKICAgICBib29sIHBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVyT2Jq
ZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAgICAgYm9v
bCBwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyQm94JiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggOTIzZWU5NWUwNTBjZjViMWViYzM3NzNjNGJlMmM0OWU0NWQxNTNj
Yy4uYWFhNDk0ZWVmMDkyMjAxMjcwNDgwZTNlOTc2MmEwMTBmOWExZTYxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTQ4OCw2ICs1NDg4LDggQEAgaW50IEludGVybmFs
czo6cmVhZFByZWZlcmVuY2VJbnRlZ2VyKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJp
bmcmIGtleSkKICAgICBCb29sZWFuIGtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7
CiAgICAgcmV0dXJuIENGUHJlZmVyZW5jZXNHZXRBcHBJbnRlZ2VyVmFsdWUoa2V5LmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCksIGRvbWFpbi5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAma2V5RXhpc3Rz
QW5kSGFzVmFsaWRGb3JtYXQpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9tYWluKTsKKyAg
ICBVTlVTRURfUEFSQU0oa2V5KTsKICAgICByZXR1cm4gLTE7CiAjZW5kaWYKIH0KQEAgLTU0OTUs
MTYgKzU0OTcsMjIgQEAgaW50IEludGVybmFsczo6cmVhZFByZWZlcmVuY2VJbnRlZ2VyKGNvbnN0
IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiBTdHJpbmcgSW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKGNvbnN0IFN0cmluZyYg
ZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKIHsKKyAgICBVTlVTRURfUEFSQU0oZG9tYWluKTsK
KyAgICBVTlVTRURfUEFSQU0oa2V5KTsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAog
U3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpCiB7CisgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKIH0KIAogU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcm
IHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9V
VEkpCiB7CisgICAgVU5VU0VEX1BBUkFNKHRhZ0NsYXNzKTsKKyAgICBVTlVTRURfUEFSQU0odGFn
KTsKKyAgICBVTlVTRURfUEFSQU0oY29uZm9ybWluZ1RvVVRJKTsKICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggOWZiNDAyNzAyYmRiNDg5OGNlOWY3
MDc1ZjIyOTIxMDJhMzIzNTgwMS4uNDc4NWEyNjk2ODUzYjNiOTM0ZjlkNTViMmFhYzFjZWQ4MmYy
NTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC02MDgsNyArNjA4LDcgQEAgdm9pZCBTZXNzaW9u
OjpuZXdXaW5kb3coT3B0aW9uYWw8U3RyaW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29t
bWFuZFJlc3VsdCYKICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpOwogICAgICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJwcmVzZW50YXRpb25IaW50
Il9zLCB0eXBlSGludC52YWx1ZSgpID09ICJ3aW5kb3ciID8gIldpbmRvdyJfcyA6ICJUYWIiX3Mp
OwogICAgICAgICB9Ci0gICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0
ZUJyb3dzaW5nQ29udGV4dCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBwcm90ZWN0ZWRUaGlzLmNvcHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJl
c3BvbnNlKSB7CisgICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJy
b3dzaW5nQ29udGV4dCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBw
cm90ZWN0ZWRUaGlzLmNvcHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7
CiAgICAgICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VP
YmplY3QpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTU1MCw3ICsxNTUwLDcgQEAgdm9pZCBTZXNzaW9uOjplbGVtZW50SXNG
aWxlVXBsb2FkKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW4K
ICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50
QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVu
Y3Rpb24iX3MsIGlzRmlsZVVwbG9hZFNjcmlwdCk7CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXko
ImFyZ3VtZW50cyJfcywgV1RGTW92ZShhcmd1bWVudHMpKTsKLSAgICBtX2hvc3QtPnNlbmRDb21t
YW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1h
bmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2Vu
ZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNw
b25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9u
c2VPYmplY3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTE2OTIsNyArMTY5Miw3IEBAIHZvaWQgU2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFi
bGUoY29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSCiAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVIYW5kbGUiX3MsIG1fY3VycmVudEJyb3dz
aW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9u
Il9zLCBpc0VkaXRhYmxlU2NyaXB0KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1l
bnRzIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0Jh
Y2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3Bv
bnNlJiYgcmVzcG9uc2UpIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFs
dWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7
CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVj
dCkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChX
VEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTc5NCw3ICsxNzk0LDcgQEAgdm9pZCBTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxl
cyhjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgY29uc3QgU3RyaW5nJiB0ZXgKICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQu
dmFsdWVPcihlbXB0eVN0cmluZygpKSk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJub2Rl
SGFuZGxlIl9zLCBlbGVtZW50SUQpOwogICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJmaWxlbmFt
ZXMiX3MsIFdURk1vdmUoZmlsZW5hbWVzKSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFj
a2VuZCgic2V0RmlsZXNGb3JJbnB1dEZpbGVVcGxvYWQiX3MsIFdURk1vdmUocGFyYW1ldGVycyks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVsZW1lbnRJRCwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNv
bW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSBtdXRhYmxlIHsKKyAgICBtX2hvc3QtPnNlbmRDb21t
YW5kVG9CYWNrZW5kKCJzZXRGaWxlc0ZvcklucHV0RmlsZVVwbG9hZCJfcywgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZWxlbWVudElELCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6
Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBpZiAocmVzcG9u
c2UuaXNFcnJvcikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
SFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcAppbmRleCBkNjI5NjYwNTE2Nzc0YzQ5ZjNjYmE1
ZjA4NGQ2YzBlNGZhN2Y4ZTA5Li5hNDJlYjdjOTE2N2YwZTdkOGJjZjM1NjU5YWQ5YWE0YmZhZmRm
MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQ
U1VwZ3JhZGVDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcApAQCAtMTEyLDYgKzExMiw4IEBAIHZvaWQgTmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXI6OnF1ZXJ5KFN0cmluZyYmIGhvc3QsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwKICAgICAgICAgaWYgKHN0ZXBSZXN1bHQgIT0gU1FMSVRFX1JPVyAmJiBz
dGVwUmVzdWx0ICE9IFNRTElURV9ET05FKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgInN0ZXAgZmFpbGVk
IHdpdGggZXJyb3IgY29kZSAlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2Ug
cGF0aDogJXtwdWJsaWN9cyIsIHN0ZXBSZXN1bHQsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygp
LCBuZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlckRhdGFiYXNlUGF0aCgpLnV0ZjgoKS5kYXRhKCkp
OworI2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9WQVJJQUJMRShzZXNzaW9uSUQpOwogI2VuZGlm
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJs
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAKaW5kZXggNmVkYzI1MTkzZjRjZTg1OWI3NjRiM2VjMGE1YmM1ZmNhNzg5ZDBhOC4u
YzQ2MmM4ZGQ2M2UxNDU2ZWFhYmJiODZhM2I4MzQ1MzI2ZWY4NDAzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNjIs
NyArNjIsOSBAQCBOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtSZQogICAgICwgbV9wcmVmbGlnaHRQb2xp
Y3kocHJlZmxpZ2h0UG9saWN5KQogICAgICwgbV9yZWZlcnJlcihXVEZNb3ZlKHJlZmVycmVyKSkK
ICAgICAsIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1
cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICAsIG1f
aXNIVFRQU1VwZ3JhZGVFbmFibGVkKGlzSFRUUFNVcGdyYWRlRW5hYmxlZCkKKyNlbmRpZgogICAg
ICwgbV9yZXF1ZXN0TG9hZFR5cGUocmVxdWVzdExvYWRUeXBlKQogICAgICwgbV9zY2hlbWVSZWdp
c3RyeShzY2hlbWVSZWdpc3RyeSkKICAgICAsIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyKG1ha2VX
ZWFrUHRyKG5ldHdvcmtSZXNvdXJjZUxvYWRlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCA5ZTRkY2IwNDU1YTVlYWVjYmM0
N2FmMjE2NzRkY2QwYjcwY2RkOWM2Li40ZDljYTk2YTg3NTEwYzA3OGI2YzkyYjdjNDNkMjQ1OTgx
OGZhZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmgKQEAgLTE1Myw3ICsxNTMsMTEgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9y
ZWZlcnJlcjsKICAgICBib29sIG1fY2hlY2tDb250ZW50RXh0ZW5zaW9ucyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyB7IGZhbHNlIH07
CisKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIG1faXNIVFRQU1VwZ3JhZGVFbmFibGVk
IHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRJbmZvcm1hdGlv
biBtX2xvYWRJbmZvcm1hdGlvbjsKIAogICAgIExvYWRUeXBlIG1fcmVxdWVzdExvYWRUeXBlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCmluZGV4IGU4ZGJiZTI3M2Iz
YmQ0MjQxNzRiZGM5MDNkNzY0YjFhMmIwNTc1ZDQuLmE3M2RkNDMzNTNmZjA2ODgyYzg5OTBiM2Rm
ZWQ3ODIyYzNkZDIyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5j
cHAKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6dXBk
YXRlU2NlbmVTdGF0ZSgpCiAgICAgICAgICAgICBmb3IgKGF1dG8mIGNvbXBvc2l0aW9uTGF5ZXIg
OiBtX25pY29zaWEuc3RhdGUubGF5ZXJzKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgbGF5ZXIg
PSB0ZXhtYXBMYXllcigqY29tcG9zaXRpb25MYXllcik7CiAgICAgICAgICAgICAgICAgY29tcG9z
aXRpb25MYXllci0+Y29tbWl0U3RhdGUoCi0gICAgICAgICAgICAgICAgICAgIFt0aGlzLCAmbGF5
ZXIsICZjb21wb3NpdGlvbkxheWVyLCAmbGF5ZXJzQnlCYWNraW5nXQorICAgICAgICAgICAgICAg
ICAgICBbJmxheWVyLCAmbGF5ZXJzQnlCYWNraW5nXQogICAgICAgICAgICAgICAgICAgICAoY29u
c3QgTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgbGF5ZXJTdGF0ZSkKICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheWVyU3Rh
dGUuZGVsdGEucG9zaXRpb25DaGFuZ2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggYmNiMjM1OTc1YjEzM2Qy
ZTI3Njc2ZDI4M2ZlODkxMzgxYTBkNWQxYy4uYjhjNzMwM2U3NTljMDA0ZDNjOTdjNzhjYjI3Yzll
N2QwYzNlNWYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCkBAIC0xNjcsNyArMTY3LDYgQEAgdm9pZCBUaHJlYWRl
ZENvbXBvc2l0b3I6OmZvcmNlUmVwYWludCgpCiAgICAgLy8gaW4gYSB3YXkgdGhhdCBkb2Vzbid0
IHN0YXJ2ZSBvdXQgdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3MgYnVmZmVycy4KICNpZiBQTEFURk9S
TShHVEspICYmICFVU0UoV1BFX1JFTkRFUkVSKQogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5w
ZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewot
ICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbkZvcmNlUmVwYWludCwgdHJ1ZSk7
CiAgICAgICAgIHJlbmRlckxheWVyVHJlZSgpOwogICAgIH0pOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCmluZGV4
IDQ5MDY0MGQ1NDNiMzExYzRhZjcxMDE1M2E1MDFkMThkODQzZjRmNTAuLmZjZDJlNDg4ODk5OWQw
NTJlMDI0YTVkMzJhNTkzNDk3ZDZkZWJjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9z
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCkBAIC0xMDEsNyArMTAxLDYgQEAg
cHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1fbmF0aXZlU3VyZmFjZUhhbmRsZTsKICAgICBXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIG1fcGFpbnRGbGFncyB7IDAgfTsKLSAgICBi
b29sIG1faW5Gb3JjZVJlcGFpbnQgeyBmYWxzZSB9OwogICAgIHVuc2lnbmVkIG1fc3VzcGVuZGVk
Q291bnQgeyAwIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zaXRpbmdSdW5Mb29wPiBt
X2NvbXBvc2l0aW5nUnVuTG9vcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAKaW5kZXggNTRlZjBiNGU1
YTkxZTRkODU0NzgyYjBmMjM1ZGYyZGUxMTljNWExYS4uNzg3NjQ0MzlhNDc1YjIzOWQwNzJkNzM5
NDAxYTgyODUwODcxMzk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAKQEAgLTEyMyw2ICsxMjMs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0OgogICAgICAgICBjYXNlIFBy
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgICAgIGNhc2Ug
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeU5ldHdvcmtQcm9jZXNzOgogICAg
ICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3YXA6CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90
b2NvbEhhbmRsZXIuY3BwCmluZGV4IGUzZjRmODU0NjljOWQxNTllMjViZDU4MjZhNzNmZDBjYTMz
NWVlNDAuLmI2NTUxZWFiZjVjMmJiZDhjYzRkNDgyZjRjZjA1MmViZWU5NGMwZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9y
UHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTYwLDcgKzYwLDYg
QEAgcHJpdmF0ZToKIH07CiAKIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6UmVtb3Rl
SW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCi0gICAg
OiBtX2NvbnRleHQoY29udGV4dCkKIHsKICAgICB3ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJf
dXJpX3NjaGVtZShjb250ZXh0LCAiaW5zcGVjdG9yIiwgW10oV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCogcmVxdWVzdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKICAgICAgICAgc3RhdGljX2Nhc3Q8UmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyKj4odXNlckRhdGEpLT5oYW5kbGVSZXF1ZXN0KHJl
cXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgKaW5kZXgg
YzQ4NzNlNzU2NmQ1NTViYmI0YTc3MzkyZGY3MjI1YTMxNGMyNmRjMi4uZjZhMGQwMTEyMzM4MzA4
ZTE4MTEwMDg4MWI4YmRlNGY1YmVjNzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclBy
b3RvY29sSGFuZGxlci5oCkBAIC00OSw3ICs0OSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0YXJn
ZXRMaXN0Q2hhbmdlZChSZW1vdGVJbnNwZWN0b3JDbGllbnQmKSBvdmVycmlkZTsKICAgICB2b2lk
IGNvbm5lY3Rpb25DbG9zZWQoUmVtb3RlSW5zcGVjdG9yQ2xpZW50Jikgb3ZlcnJpZGU7CiAKLSAg
ICBXZWJLaXRXZWJDb250ZXh0KiBtX2NvbnRleHQgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJbnNwZWN0b3JDbGllbnQ+PiBtX2luc3BlY3Rv
ckNsaWVudHM7CiAgICAgSGFzaFNldDxXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqPiBtX3VzZXJD
b250ZW50TWFuYWdlcnM7CiAgICAgSGFzaFNldDxXZWJLaXRXZWJWaWV3Kj4gbV93ZWJWaWV3czsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MGY1
YTQ1MTM1YjQ4Yzk3NDBmNmQwNGNmNWRiMDA1ZjY4MWRkZDhlLi5kYzZlZjFjNTA2YTdhYmQ5NDkw
OGI1ODE2NmZlY2FkNGUzYmFkMjVhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDMtMTYgIENoYXJsaWUgVHVy
bmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgorCisgICAgICAgIEZpeCBtYW55IHdhcm5pbmdzIHdp
dGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkxNDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRp
b25TZXNzaW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdERvd25sb2Fkcy5jcHA6CisgICAgICAgICh0ZXN0RG93bmxvYWRNSU1FVHlwZSk6CisgICAg
ICAgICh0ZXN0Q29udGV4dE1lbnVEb3dubG9hZEFjdGlvbnMpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHA6CisKIDIwMjAtMDMtMTYgIHlv
dWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1ZSBvcmlnaW5z
IHNob3VsZCBub3QgYmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3Bw
CmluZGV4IDE5N2QyMTNlZTdhMjdjMTM1YTE0NjNiNGU5NThmYmUwMmI1MmEwNzkuLmFmYWRiYzUz
OTIyM2U0YjJjNjVmZjYwMDY3M2Q1YWNhOGFkZTY2YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcApA
QCAtMTIzOSw2ICsxMjM5LDggQEAgVEVTVChUcmFuc2Zvcm1hdGlvbk1hdHJpeCwgQ2FzdGluZykK
ICAgICBFWFBFQ1RfRE9VQkxFX0VRKDMuMCwgY2FGcm9tV0subTQyKTsKICAgICBFWFBFQ1RfRE9V
QkxFX0VRKDIuMCwgY2FGcm9tV0subTQzKTsKICAgICBFWFBFQ1RfRE9VQkxFX0VRKDEuMCwgY2FG
cm9tV0subTQ0KTsKKyNlbHNlCisgICAgVU5VU0VEX1ZBUklBQkxFKHRlc3QpOwogI2VuZGlmCiAK
ICNpZiBVU0UoQ0cpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGNkYWI0YWVlZGVm
NTVmZjNmYWIzZTMzNmU0MjMwMGNiYWJkOGVhNGQuLjVhZTQ0ZDQ2NzdlNjkyNWE1YTk0Zjc5ZDYy
Yjk5OWRmODI1NDJlMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC02Miw3ICs2
Miw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q29ubmVjdGlvbihSZWY8U29ja2V0Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uKQogICAgIHsKLSAgICAgICAgZ19hc3NlcnRfdHJ1ZShjb25uZWN0
aW9uLnB0cigpKTsKICAgICAgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsK
ICAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29wLmdldCgpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdERvd25sb2Fk
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdERvd25sb2Fk
cy5jcHAKaW5kZXggZTAzOTE5OWMxNzJlYzdkMjNkOTI0ZTA5ZTkzZGMwZjg4ZGYxMTE0Yy4uZjcz
M2U4MTgzYWNmMDIzZTdkZWJkYjFkNmE0Zjk4NWRjMjAxYzRmZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93bmxvYWRzLmNwcApAQCAt
NjcyLDE0ICs2NzIsMTQgQEAgc3RhdGljIHZvaWQgdGVzdERvd25sb2FkTUlNRVR5cGUoRG93bmxv
YWRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGV2ZW50cy5jbGVhcigpOwogCiAgICAg
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCA9IHdlYmtpdF9kb3dubG9hZF9nZXRfcmVxdWVzdChk
b3dubG9hZC5nZXQoKSk7Ci0gICAgV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpOworICAg
IGdfYXNzZXJ0X3RydWUoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBBU1NF
UlRfQ01QX0NTVFJJTkcod2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCksID09LCBr
U2VydmVyLT5nZXRVUklGb3JQYXRoKCIvdW5rbm93biIpKTsKIAogICAgIGF1dG8gaGVhZGVycyA9
IHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfaHR0cF9oZWFkZXJzKHJlcXVlc3QpOwogICAgIGdfYXNz
ZXJ0X25vbm51bGwoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiVXNlci1B
Z2VudCIpKTsKIAogICAgIFdlYktpdFVSSVJlc3BvbnNlKiByZXNwb25zZSA9IHdlYmtpdF9kb3du
bG9hZF9nZXRfcmVzcG9uc2UoZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklfUkVT
UE9OU0UocmVzcG9uc2UpOworICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0lTX1VSSV9SRVNQT05T
RShyZXNwb25zZSkpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfdXJpX3Jlc3BvbnNlX2dl
dF9taW1lX3R5cGUocmVzcG9uc2UpLCA9PSwgImFwcGxpY2F0aW9uL3BkZiIpOwogCiAgICAgZ19h
c3NlcnRfbm9ubnVsbCh3ZWJraXRfZG93bmxvYWRfZ2V0X2Rlc3RpbmF0aW9uKGRvd25sb2FkLmdl
dCgpKSk7CkBAIC03MzksNyArNzM5LDcgQEAgc3RhdGljIHZvaWQgdGVzdENvbnRleHRNZW51RG93
bmxvYWRBY3Rpb25zKFdlYlZpZXdEb3dubG9hZFRlc3QqIHRlc3QsIGdjb25zdHBvaW4KICAgICBn
X2Fzc2VydF90cnVlKHRlc3QtPm1fd2ViVmlldyA9PSB3ZWJraXRfZG93bmxvYWRfZ2V0X3dlYl92
aWV3KHRlc3QtPm1fZG93bmxvYWQuZ2V0KCkpKTsKIAogICAgIFdlYktpdFVSSVJlcXVlc3QqIHJl
cXVlc3QgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3JlcXVlc3QodGVzdC0+bV9kb3dubG9hZC5nZXQo
KSk7Ci0gICAgV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpOworICAgIGdfYXNzZXJ0X3Ry
dWUoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBBU1NFUlRfQ01QX0NTVFJJ
Tkcod2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCksID09LCBrU2VydmVyLT5nZXRV
UklGb3JQYXRoKCIvdGVzdC5wZGYiKSk7CiAKICAgICBhdXRvIGhlYWRlcnMgPSB3ZWJraXRfdXJp
X3JlcXVlc3RfZ2V0X2h0dHBfaGVhZGVycyhyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwCmluZGV4IDU0OGE5ODFj
MWI0MjIzODJjNmJkZmUyMGEwMTc3OTdlYTY3NzcyMDAuLjcwZjcwOWRjMTkyZmVkYzE1OGQ3OWIz
ZjUwNWJlNjNmNjQ1ODFjNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHdGsvVGVzdFByaW50aW5nLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBHUmVmUHRyPFdlYktpdFByaW50T3BlcmF0aW9uPiBtX3ByaW50T3BlcmF0
aW9uOwotICAgIHVuc2lnbmVkIG1fZXhwZWN0ZWRFcnJvcjsKKyAgICBpbnQgbV9leHBlY3RlZEVy
cm9yOwogfTsKIAogc3RhdGljIHZvaWQgdGVzdFByaW50T3BlcmF0aW9uUHJpbnQoUHJpbnRUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393851</attachid>
            <date>2020-03-18 07:31:54 -0700</date>
            <delta_ts>2020-03-19 04:21:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200318143152.patch</filename>
            <type>text/plain</type>
            <size>38128</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
YTI3MTQyYjk4OWU2MTUxODk0MzlhZDg2MmEwMjViZTIzN2Q0Yjk3Li5lY2FmMDBiNDE5ZDVmNGZm
MWQ2YTA1NjA5YmFiYmI2MWY1ZjQ2MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4
Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhbGxGcmFt
ZTo6ZGVwcmVjYXRlZFZNIGNvbnN0KTogQSByZWZlcmVuY2UgbWF5IG5vdCBiZSBOVUxMLCBzbwor
ICAgICAgICB0aGlzIEFTU0VSVCgpIGNhbiBuZXZlciB0cmlwLgorCiAyMDIwLTAzLTE3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRGVsZXRlSUMg
cGF0Y2hwb2ludCBpbiBGVEwgc2hvdWxkIHJlcXVpcmUgdGFnIGFuZCBtYXNrIHJlZ2lzdGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCBmN2YzNDQ3NTM5OGM0OWI1YzQ2YzJjZjk3ZTY1ODI1YzJjNDZkMGNmLi4wZGQ5MDQyYzll
MzIzMGViYTc0Mjk5MTI2NTEwMjMwYzRjYzhkYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIw
LTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBG
aXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTG9n
Z2VySGVscGVyLmg6IFdoZW4gdGhlIFJFTEVBU0VfTE9HIGlzIGRpc2FibGVkLCBhdm9pZCB3YXJu
aW5nCisgICAgICAgIHNwYW0gYWJvdXQgdW51c2VkIGNoYW5uZWwgbmFtZXMuIENhbGwgc2l0ZXMg
b2Z0ZW4gY3JlYXRlIGxvY2FscyBmb3IKKyAgICAgICAgdGhlIGNoYW5uZWwgbmFtZSBvdXRzaWRl
IG9mIFJFTEVBU0VfTE9HIGlmZGVmJ3MsIHdoaWNoIGNhdXNlIG1hbnkKKyAgICAgICAgdW51c2Vk
IHZhcmlhYmxlIHdhcm5pbmdzLgorCiAyMDIwLTAzLTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjU0ODU2KSBBZGQg
ZXhjZXB0aW9uIGZvciB3aW5kb3cub3BlbkRhdGFiYXNlIHRvIG5vdCBtYXNxdWVyYWRlIGFzIHVu
ZGVmaW5lZCBpbiBjdXJyZW50bHkgc2hpcHBpbmcgSmVzdXMgQ2FsbGluZyBEZXZvdGlvbmFsIGFw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGJmMGM0ZmI0MDkwMzczNTk2OWY0ZDAwOGNjMjA2ZDA4Y2RhMzA0NGUu
LjQxOTFlYjYxMTkzZTg3NDQ2YTNhNjEyM2Q2MGZiMzgwNmYzMDNhZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1MSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RL
IHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdhcm5pbmcgZml4ZXMsIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
S2V5czo6TWVkaWFLZXlzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuaDogVGhlIG1fbnVtYmVyT2ZGcmFtZXMgaXZhcgorICAgICAgICBpcyBwbGF0
Zm9ybS1zcGVjaWZpYy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckdMRGF0YTo6Z2V0U3RhdGljVkJPKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaDogVGhlcmUg
YXJlCisgICAgICAgIHN0aWxsIHZpcnR1YWwgbWV0aG9kcyBpbiB0aGlzIGNsYXNzLCBidXQgbm8g
dmlydHVhbCBkZXN0cnVjdG9yLiBTaW5jZQorICAgICAgICB0aGlzIHdvbid0IGJlIHN1YmNsYXNz
ZWQgZnVydGhlciAoSSBkb3VidCwgYW55d2F5ISkgbGV0cyBtYWtlIGl0IGZpbmFsCisgICAgICAg
IGFuZCBwbHVnIHRoZSBidWcuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaDogU2VlCisgICAg
ICAgIEF1ZGlvQ2FwdHVyZXIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpJbXBsZW1l
bnRhdGlvbk5hbWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNw
cDogVGhlCisgICAgICAgIGVuY29kZXIgd2FzIGJlaW5nIHVzZWQgdW5pbml0aWFsaXplZCwgYW5k
IGhlbmNlIGNvZGVjIHN1cHBvcnQgY2FuIG5vdAorICAgICAgICBiZSB3b3JraW5nIGFzIGludGVu
ZGVkLiBGaXggdGhhdCBidWcuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29k
ZXI6OkFkZENvZGVjSWZTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlk
ZW9FbmNvZGVyOjpJbml0RW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclZpZGVvRW5jb2Rlcjo6R2V0RW5jb2RlckluZm8gY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJG
YWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6
IENvbmRpdGlvbiB0aGUgYmVhciB0cmFwIG9uIENvY29hCisgICAgICAgIHBsYXRmb3JtIHdoZXJl
IHRoZSBjcmFzaCBpcyBiZWluZyBzZWVuLiBPbiBHVEsgdGhlc2UgdHJhcHMgZ2VuZXJhdGUKKyAg
ICAgICAgd2FybmluZyBzcGFtIGFuZCB3ZSBkb24ndCBzZWUgdGhlIGNyYXNoIGhlcmUuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVhZFByZWZlcmVu
Y2VJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5jb2RlZFByZWZlcmVu
Y2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcpOgorCiAyMDIw
LTAzLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXVtXUEVdIE1pZ3JhdGUgdG8gRmxhdHBhay1iYXNlZCBkZXYgU0RLCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9n
CmluZGV4IDQzY2RiZDBmMTdhOWZhODMzZGUwOGI5ZDFiMzU3YjUxYWNmZmEwMTYuLjZmMjk5NWZl
MTYwOGU3OWQyMWIyZDBhMjUwZmUxMWJhZGYwZWYyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29t
PgorCisgICAgICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYt
NjQgaW4gRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpuZXdXaW5k
b3cpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjplbGVtZW50SXNGaWxlVXBsb2FkKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFibGUpOgorICAgICAg
ICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxlcyk6CisKIDIwMjAt
MDItMTIgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgV2ViRHJpdmVyOiByZXR1cm4gaW52YWxpZFNlc3Npb25JRCBleGNlcHRpb24gaWYg
dGhlIFdlYlByb2Nlc3MgZG9lc24ndCByZXNwb25kIChjcmFzaGVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3Yzg5
NDkwOWJkNzk2YmEwNzY5ZjBiNWM2MzA2ODg5NTAwNGYwYTkzLi5mNTVhN2I2N2YxZDM1MmY0ZTNl
N2YwYzViYjhiZTFkODE5NjUxODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAz
LTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBGaXgg
bWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpxdWVyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDogVGhlIG1faXNIVFRQU1VwZ3JhZGVFbmFibGVkCisg
ICAgICAgIGl2YXIgaXMgb25seSB1c2VkIG9uIENvY29hIHBsYXRmb3Jtcywgb24gR1RLIGl0IGlz
IGNhdXNpbmcgd2FybmluZworICAgICAgICBzcGFtLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
TG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVTY2VuZVN0YXRlKToKKyAgICAgICAgKgorICAg
ICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgbV9pbkZvcmNlUmVwYWludCBpcyBub3QgYmVpbmcg
dXNlZCBhbnltb3JlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmZvcmNl
UmVwYWludCk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclBy
b3RvY29sSGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3Rl
SW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmg6CisKIDIwMjAtMDMtMTcgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6bV9z
aXplIHNob3VsZCBiZSBtb3JlIGNvbnNpc3RlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbElubGluZXMuaAppbmRleCAyZGFmN2JjMGRkYjM3ZTQwZjczMDljYTFkNjI3
MDM2Yzc4YjE4YWY5Li4xYzlkMTMyNDhhOTMyNGZhZjUyYTJjOGZhMDEwNzA2MjYxMTA0MzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0x
NDIsNyArMTQyLDYgQEAgQUxXQVlTX0lOTElORSBWTSYgQ2FsbEZyYW1lOjpkZXByZWNhdGVkVk0o
KSBjb25zdAogewogICAgIEpTQ2VsbCogY2FsbGVlID0gdGhpcy0+Y2FsbGVlKCkuYXNDZWxsKCk7
CiAgICAgQVNTRVJUKGNhbGxlZSk7Ci0gICAgQVNTRVJUKCZjYWxsZWUtPnZtKCkpOwogICAgIHJl
dHVybiBjYWxsZWUtPnZtKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dl
ckhlbHBlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKaW5kZXggOWViNzNiYTZl
MGZkOTRjMDQ4ZGQ1OTNiNWZmNTI5MTY4MGI2ZGYzMC4uNTQyYzIzNGZhZmZmNTE4ZmRmYjViZGNh
ODhkMzkzZmRmN2JiNDEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVy
LmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKQEAgLTg5LDE0ICs4OSwxMyBA
QCBwdWJsaWM6CiAKICNkZWZpbmUgTE9HSURFTlRJRklFUiAoV1RGOjpudWxsb3B0KQogCi0jZGVm
aW5lIEFMV0FZU19MT0coLi4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4p
ICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0j
ZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgKCh2b2lkKTApCi0jZGVmaW5lIE5PVElDRV9MT0co
Li4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIElORk9fTE9HKC4uLikgICAgICAgKCh2b2lkKTAp
Ci0jZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIFdJTExfTE9H
KF9sZXZlbF8pICAgZmFsc2UKKyNkZWZpbmUgQUxXQVlTX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAg
KFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkpCisjZGVmaW5lIEVSUk9SX0xPRyhjaGFubmVsTmFt
ZSwgLi4uKSAgIChVTlVTRURfUEFSQU0oY2hhbm5lbE5hbWUpKQorI2RlZmluZSBXQVJOSU5HX0xP
RyhjaGFubmVsTmFtZSwgLi4uKSAoVU5VU0VEX1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUg
Tk9USUNFX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkp
CisjZGVmaW5lIElORk9fTE9HKGNoYW5uZWxOYW1lLCAuLi4pICAgIChVTlVTRURfUEFSQU0oY2hh
bm5lbE5hbWUpKQorI2RlZmluZSBERUJVR19MT0coY2hhbm5lbE5hbWUsIC4uLikgICAoVU5VU0VE
X1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUgV0lMTF9MT0coX2xldmVsXykgICAgZmFsc2UK
IAogI2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgKCh2b2lkKTApCiAj
ZGVmaW5lIEVSUk9SX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICAoKHZvaWQpMCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcApp
bmRleCBhODljZDQwMDNkNzFlZWFmOTEwN2E0NTdiNDQzZmI3ZTMwYzU1MzI3Li5jNGI2OTg0MmY1
MTUyNWI5ODRiYmQwOTdmNzkyZGYyMDE3MmI2NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC02Myw2ICs2Myw4IEBA
IE1lZGlhS2V5czo6TWVkaWFLZXlzKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEaXN0aW5j
dGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgbV9pbnN0YW5jZS0+c2V0TG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpLCBtX2xvZ0lkZW50aWZp
ZXIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgbV9p
bnN0YW5jZS0+c2V0Q2xpZW50KG1ha2VXZWFrUHRyKHRoaXMpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgK
aW5kZXggZmM2ZGRiOGU2ZDJiODcwMzZkMjYyMTM4ZGVkNGM2Yzc3Nzk2YmU5ZS4uMTY3MjY4MTdk
YjM3MzU0YjgxMzk1YzQzNTYzMDM2Yzg0Yzg3MTA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKQEAgLTU4
LDcgKzU4LDkgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX2RldmljZUlkOwogICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyNpZiBVU0UoQVZGT1VO
REFUSU9OKQogICAgIHNpemVfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA1ZDg2YWY2ZTRkYjFhMzViYWMxNTg4YTA5ZmU4ZWVh
NDRkNjM1NDg4Li42OWMwMDAyMjk2YTdkMDFjNGE1NjgwYjkxNzAzY2QxZjhmMDI4OTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTMz
MCw4ICszMzAsMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxv
YWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPmxvYWRSZXNvdXJjZShmcmFtZSwgKnRoaXMsIFdURk1vdmUocmVxdWVz
dCksIG1fb3B0aW9ucywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4odGhpcyksIGZyYW1lUmVmID0gbWFrZVJlZihmcmFtZSksIGxvZ2dp
bmdBbGxvd2VkID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCldIChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKSB7CiAgICAgICAgIG1fbG9h
ZGVyID0gV1RGTW92ZShsb2FkZXIpOwogICAgICAgICBpZiAoIW1fbG9hZGVyKSB7CisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgICAgICBhdXRvJiBmcmFtZSA9IGZyYW1lUmVmLmdl
dCgpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYobG9nZ2luZ0FsbG93ZWQsIE5ldHdvcmss
ICIlcCAtIFtwYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICJdIENhY2hlZFJl
c291cmNlOjpsb2FkOiBVbmFibGUgdG8gY3JlYXRlIFN1YnJlc291cmNlTG9hZGVyIiwgdGhpcywg
UEFHRV9JRChmcmFtZSksIEZSQU1FX0lEKGZyYW1lKSk7CisjZW5kaWYKICAgICAgICAgICAgIGZh
aWxCZWZvcmVTdGFydGluZygpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwCmluZGV4IDk2ZTMwNDMxMjY5ZTRkODJiMWMxMDc3MTllNzA1YjgxMzJh
NjI3YTQuLmZiYTExMjA3OGQ2NDhlYzNhMmE3ZDI5MWQwNGM4MDRmOTcxZTQ0NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0xE
YXRhOjppbml0aWFsaXplU3RlbmNpbCgpCiBHTHVpbnQgVGV4dHVyZU1hcHBlckdMRGF0YTo6Z2V0
U3RhdGljVkJPKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0
YSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmJvcy5lbnN1cmUoZGF0YSwKLSAgICAgICAg
W3RoaXMsIHRhcmdldCwgc2l6ZSwgZGF0YV0geworICAgICAgICBbdGFyZ2V0LCBzaXplLCBkYXRh
XSB7CiAgICAgICAgICAgICBHTHVpbnQgdmJvID0gMDsKICAgICAgICAgICAgIGdsR2VuQnVmZmVy
cygxLCAmdmJvKTsKICAgICAgICAgICAgIGdsQmluZEJ1ZmZlcih0YXJnZXQsIHZibyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvU291cmNlLmgKaW5kZXggM2I2MWJjOTFlYjNhYWZjMWIzMzJhOThjZTUwNGFkOTdmM2E2YmYw
MS4uYjA3YmU2MDljNjMyMzg5ZDgyZjJkZjgxMGE5NTAwOTNkMWE2ZjRkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuaApAQCAtNzAsNyArNzAsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmPFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MgbV9jdXJyZW50U2V0dGluZ3M7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWlu
dDY0X3QgbV9jbG9uZUNvdW50ZXIgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oCmluZGV4
IDlhYWY3NjFkNmM0YjQzYzQ0ZWY0NDcxMWU4MzdiMGYxMjUyZDFmNWEuLmRjN2YyOGZkMTdiOGI5
NmM4YjM2Yzk3Y2RkMzk5ZTBiOGM4ZDQ1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXIgOiBwdWJsaWMgR1N0cmVhbWVyQ2FwdHVy
ZXIgeworY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlciBmaW5hbCA6IHB1YmxpYyBHU3RyZWFt
ZXJDYXB0dXJlciB7CiBwdWJsaWM6CiAgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlcihHU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlKTsKICAgICBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGFj
OTg4ZTRjMGNhYzQwNjMwNjAwNmJmNGZiMmU3NmU5MmMwMmI0YjYuLjg3YTA4ZjI5MTdiZDVlNzdk
ZTQyOThmMjRlNjI2MmIwN2JmMDlhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zOCw5ICszOCw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY29uc3Qgc3RhdGljIGludCBkZWZhdWx0V2lkdGggPSA2NDA7Ci1jb25z
dCBzdGF0aWMgaW50IGRlZmF1bHRIZWlnaHQgPSA0ODA7Ci0KIEdTVF9ERUJVR19DQVRFR09SWSh3
ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcpOwogI2RlZmluZSBHU1RfQ0FUX0RFRkFV
TFQgd2Via2l0X3ZpZGVvX2NhcHR1cmVfc291cmNlX2RlYnVnCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Nh
cHR1cmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oCmluZGV4IDU3YjBiNDY4NmQzNGFlMGMxMTU0YTczZmQ0
YTRiOWVkNWM0MGU2OTUuLjQ0NjAyOGQwYjhlNDA0MGZlYmY1MTQ5NzYyYjM0NzZiNWFmNmQ1ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaApAQCAtMjksNyAr
MjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZXIgOiBwdWJsaWMgR1N0cmVhbWVyQ2FwdHVyZXIgeworY2xhc3MgR1N0cmVhbWVyVmlkZW9D
YXB0dXJlciBmaW5hbCA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7CiBwdWJsaWM6CiAgICAg
R1N0cmVhbWVyVmlkZW9DYXB0dXJlcihHU3RyZWFtZXJDYXB0dXJlRGV2aWNlKTsKICAgICBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVyKGNvbnN0IGNoYXIqIHNvdXJjZV9mYWN0b3J5KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFt
ZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAppbmRleCBh
M2JkZDZiNzIyN2NiYjRhY2VjMzMyNzgwYTU1ZDBiYTc3ZGU4MzJhLi41MzQ2ZTJlYmQwZmE4N2Uz
ZThiNzEzMWI3YmQ5MmExMzZmNjdjMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwogICAgIH0KIAotICAgIGlu
dDMyX3QgUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKHdlYnJ0Yzo6RGVjb2RlZEltYWdl
Q2FsbGJhY2sqIGNhbGxiYWNrKQorICAgIGludDMyX3QgUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNh
bGxiYWNrKHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgbV9pbWFnZVJlYWR5Q2IgPSBjYWxsYmFjazsKIApAQCAtMzIwLDcgKzMy
MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgZ2NoYXIqIENhcHMoKSA9IDA7CiAg
ICAgdmlydHVhbCB3ZWJydGM6OlZpZGVvQ29kZWNUeXBlIENvZGVjVHlwZSgpID0gMDsKLSAgICBj
b25zdCBjaGFyKiBJbXBsZW1lbnRhdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiAiR1N0cmVhbWVy
IjsgfQorICAgIGNvbnN0IGNoYXIqIEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVhbCBjb25zdCBnY2hhciogTmFtZSgp
ID0gMDsKIAogcHJvdGVjdGVkOgpAQCAtMzM2LDcgKzMzNiw2IEBAIHByaXZhdGU6CiAgICAgR3N0
RWxlbWVudCogbV9zaW5rOwogICAgIEdzdEVsZW1lbnQqIG1fc3JjOwogCi0gICAgR3N0VmlkZW9J
bmZvIG1faW5mbzsKICAgICB3ZWJydGM6OkRlY29kZWRJbWFnZUNhbGxiYWNrKiBtX2ltYWdlUmVh
ZHlDYjsKIAogICAgIFN0ZE1hcDxHc3RDbG9ja1RpbWUsIElucHV0VGltZXN0YW1wcz4gbV9kdHNQ
dHNNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCmluZGV4
IDQyZjBjZjg1NzExYTc0ZDg4ZWEzZGEyNzNiNzlmOTJmYTM5ZWUyYmEuLjZhMWQ0YTdhNDEwMjVk
N2U1NWJlMmE2NDhjMGVlNjgwYWY3NWRlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFt
ZXJWaWRlb0VuY29kZXIuY3BwCkBAIC02NywxNyArNjcsNyBAQCB0eXBlZGVmIGVudW0KICAgRU5D
T0RFUl9MQVNULAogfSBFbmNvZGVySWQ7CiAKLUVuY29kZXJEZWZpbml0aW9uIGVuY29kZXJzW0VO
Q09ERVJfTEFTVF0gPSB7Ci0gIEZBTFNFLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotICBO
VUxMLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotICBOVUxMLAotfTsKK0VuY29kZXJEZWZp
bml0aW9uIGVuY29kZXJzW0VOQ09ERVJfTEFTVF0gPSB7IHsgfSB9OwogCiB0eXBlZGVmIHN0cnVj
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnkuY3BwCmluZGV4IGEyZmRkYTVmZmE1MDkzY2NiNzVkY2Q2YzhlYzQ3ZWZmMWJiOGM5ZWIuLjBh
NWRkOWMxM2Y3ZGZmNTVmODA4MzU1ZGJmNzlhM2FmMjYxODI1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0Vu
Y29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBlbGVtOwogICAgIH0KIAotICAgIGludDMy
X3QgSW5pdEVuY29kZShjb25zdCB3ZWJydGM6OlZpZGVvQ29kZWMqIGNvZGVjU2V0dGluZ3MsIGlu
dDMyX3QsIHNpemVfdCkKKyAgICBpbnQzMl90IEluaXRFbmNvZGUoY29uc3Qgd2VicnRjOjpWaWRl
b0NvZGVjKiBjb2RlY1NldHRpbmdzLCBpbnQzMl90LCBzaXplX3QpIG92ZXJyaWRlCiAgICAgewog
ICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2RlY1NldHRpbmdzLCBXRUJSVENfVklERU9f
Q09ERUNfRVJSX1BBUkFNRVRFUik7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGVj
U2V0dGluZ3MtPmNvZGVjVHlwZSA9PSBDb2RlY1R5cGUoKSwgV0VCUlRDX1ZJREVPX0NPREVDX0VS
Ul9QQVJBTUVURVIpOwpAQCAtMTg4LDcgKzE4OCw4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAotICAgIFZpZGVvRW5jb2Rlcjo6RW5jb2RlckluZm8gR2V0RW5jb2RlckluZm8oKSBjb25z
dCB7CisgICAgVmlkZW9FbmNvZGVyOjpFbmNvZGVySW5mbyBHZXRFbmNvZGVySW5mbygpIGNvbnN0
IG92ZXJyaWRlCisgICAgewogICAgICAgICBFbmNvZGVySW5mbyBpbmZvOwogICAgICAgICBpbmZv
LnN1cHBvcnRzX25hdGl2ZV9oYW5kbGUgPSBmYWxzZTsKICAgICAgICAgaW5mby5pbXBsZW1lbnRh
dGlvbl9uYW1lID0gIkdTdHJlYW1lciI7CkBAIC0yOTgsMTAgKzI5OSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgQWRkQ29kZWNJZlN1cHBvcnRlZChzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVv
Rm9ybWF0Piogc3VwcG9ydGVkRm9ybWF0cykKICAgICB7Ci0gICAgICAgIEdzdEVsZW1lbnQqIGVu
Y29kZXI7Ci0KLSAgICAgICAgaWYgKGNyZWF0ZUVuY29kZXIoKS5nZXQoKSAhPSBudWxscHRyKSB7
Ci0gICAgICAgICAgICB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0IGZvcm1hdCA9IENvbmZpZ3VyZVN1
cHBvcnRlZENvZGVjKGVuY29kZXIpOworICAgICAgICBpZiAoYXV0byBlbmNvZGVyID0gY3JlYXRl
RW5jb2RlcigpKSB7CisgICAgICAgICAgICB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0IGZvcm1hdCA9
IENvbmZpZ3VyZVN1cHBvcnRlZENvZGVjKGVuY29kZXIuZ2V0KCkpOwogCiAgICAgICAgICAgICBz
dXBwb3J0ZWRGb3JtYXRzLT5wdXNoX2JhY2soZm9ybWF0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1l
clZpZGVvRW5jb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmgKaW5kZXggMTQ4M2Ey
YjIwYjM1MTVjNzFiN2EwYzdhNTIyNjI2ZTlmZjUzOTIwNC4uMWVhYzE5NzBjMTMyYzM1MWI4M2M4
OTY0N2UyMjBhYmI5MGVlY2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVy
VmlkZW9FbmNvZGVyRmFjdG9yeS5oCkBAIC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgc3RkOjp2ZWN0b3I8d2VicnRjOjpTZHBWaWRlb0Zvcm1hdD4gR2V0U3VwcG9ydGVkRm9y
bWF0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RW5jb2Rlcj4gQ3JlYXRlVmlkZW9FbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQm
KSBmaW5hbDsKLSAgICBDb2RlY0luZm8gUXVlcnlWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpT
ZHBWaWRlb0Zvcm1hdCYpIGNvbnN0CisgICAgQ29kZWNJbmZvIFF1ZXJ5VmlkZW9FbmNvZGVyKGNv
bnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgR1NUX0ZJWE1FKCJEZXRlY3Qgd2V0aGVyIHRoZSBkZWNvZGVyIGlzIEhXIGFjY2VsZXJhdGVk
Iik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCA0ZmRiYmFiODg5
Y2UxOWMzMzc3ZDE3MzMxYzM5M2JkMGRiMDJlMjVkLi4wMDAxNWEyOTA0YzY0YzVjODFlMzJlNTMy
ZTdlMTQ4ODdiN2UxYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBA
IC0zMTcsNiArMzE3LDggQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXMo
Y29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYKIAogICAgICAgICBzb3Vw
X2Nvb2tpZV9qYXJfYWRkX2Nvb2tpZV9mdWxsKGNvb2tpZVN0b3JhZ2UoKSwgY29va2llLnRvU291
cENvb2tpZSgpLCBvcmlnaW4uZ2V0KCksIGZpcnN0UGFydHlVUkkuZ2V0KCkpOwogI2Vsc2UKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5
KTsKICAgICAgICAgc291cF9jb29raWVfamFyX2FkZF9jb29raWUoY29va2llU3RvcmFnZSgpLCBj
b29raWUudG9Tb3VwQ29va2llKCkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDhmYzY1MDQ4YjlmZTI2OGFmOGJm
NTQ3YjNlNzM4ZGEyZjA4ZTg1ZjYuLjk1NzVlMzM3YWE4YmYzY2Y3MDc4ZTJmZjdmZWRlMjBmOTE4
ZTJjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgVGlsZWRCYWNraW5nOwogY2xhc3MgVHJhbnNmb3Jt
YXRpb25NYXRyaXg7CiAKIAotI2lmIF9fV09SRFNJWkUgPT0gNjQKKyNpZiBfX1dPUkRTSVpFID09
IDY0ICYmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBVU0VfT1dOSU5HX0xBWUVSX0JFQVJfVFJB
UCAxCiAjZGVmaW5lIEJFQVJfVFJBUF9WQUxVRSAweEVFRUVFRUVFRUVFRUVFRUUKICNlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKaW5kZXggZWM2
ODQwZGQxODA2ZTYyNjQ4MTAzYTVhY2Q2MzIxNjMwZTlhMjk2My4uM2ZiNmQ4ZGIwNGExNmU1NzBj
ZTg4OGFiMjA0NjhjZjJmMmQ2MmRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUFkd2FpdGEuaApAQCAtNjIsOCArNjIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
cGFpbnRTZWFyY2hGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0JikgZmluYWw7CiAKICAgICBib29sIHBvcHNNZW51QnlTcGFjZU9yUmV0dXJu
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgYWRqdXN0TWVudUxpc3RT
dHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKLSAgICB2b2lkIGFkanVz
dE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Q7
CisgICAgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVu
dCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25TdHlsZShS
ZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBMZW5ndGhC
b3ggcG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBmaW5h
bDsKICAgICBib29sIHBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAgICAgYm9vbCBwYWludE1lbnVMaXN0
QnV0dG9uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyQm94JiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgRmxvYXRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggNzI2M2ZhNjNlNjgyOWIzZTdmYjIzZDg5NTg3NDZlMmI4NjhiM2Y3NS4uZjQ3OTQyYjhmYjMz
OTNlZGI4ZTViZWEzYTJiMDYzYTcwYmIzZDlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtNTQ5MywyMiArNTQ5MywyNCBAQCBpbnQgSW50ZXJuYWxzOjpyZWFkUHJlZmVy
ZW5jZUludGVnZXIoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5KQogICAg
IEJvb2xlYW4ga2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQgPSBmYWxzZTsKICAgICByZXR1cm4g
Q0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZShrZXkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSwgZG9tYWluLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksICZrZXlFeGlzdHNBbmRIYXNWYWxpZEZv
cm1hdCk7CiAjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb21haW4pOworICAgIFVOVVNFRF9QQVJB
TShrZXkpOwogICAgIHJldHVybiAtMTsKICNlbmRpZgogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09B
KQotU3RyaW5nIEludGVybmFsczo6ZW5jb2RlZFByZWZlcmVuY2VWYWx1ZShjb25zdCBTdHJpbmcm
IGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCitTdHJpbmcgSW50ZXJuYWxzOjplbmNvZGVkUHJl
ZmVyZW5jZVZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CiB9CiAKLVN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlw
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQorU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1J
TUVUeXBlKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAK
LVN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywg
Y29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQorU3RyaW5n
IEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lv
bi5jcHAKaW5kZXggOWZiNDAyNzAyYmRiNDg5OGNlOWY3MDc1ZjIyOTIxMDJhMzIzNTgwMS4uNDc4
NWEyNjk2ODUzYjNiOTM0ZjlkNTViMmFhYzFjZWQ4MmYyNTEwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3Bw
CkBAIC02MDgsNyArNjA4LDcgQEAgdm9pZCBTZXNzaW9uOjpuZXdXaW5kb3coT3B0aW9uYWw8U3Ry
aW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYKICAgICAgICAgICAg
IHBhcmFtZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICAgICAgcGFyYW1l
dGVycy0+c2V0U3RyaW5nKCJwcmVzZW50YXRpb25IaW50Il9zLCB0eXBlSGludC52YWx1ZSgpID09
ICJ3aW5kb3ciID8gIldpbmRvdyJfcyA6ICJUYWIiX3MpOwogICAgICAgICB9Ci0gICAgICAgIG1f
aG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJyb3dzaW5nQ29udGV4dCJfcywgV1RG
TW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlzLmNv
cHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
U2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgICAgIG1faG9z
dC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJyb3dzaW5nQ29udGV4dCJfcywgV1RGTW92
ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlzLmNvcHlSZWYoKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhv
c3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBpZiAocmVzcG9u
c2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2Uu
cmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTU1MCw3ICsx
NTUwLDcgQEAgdm9pZCBTZXNzaW9uOjplbGVtZW50SXNGaWxlVXBsb2FkKGNvbnN0IFN0cmluZyYg
ZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW4KICAgICAgICAgcGFyYW1ldGVycy0+c2V0
U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkp
OwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsIGlzRmlsZVVwbG9hZFNj
cmlwdCk7CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShh
cmd1bWVudHMpKTsKLSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7
CisgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNl
c3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVz
cG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5y
ZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE2OTIsNyArMTY5Miw3
IEBAIHZvaWQgU2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFibGUoY29uc3QgU3RyaW5nJiBlbGVtZW50
SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSCiAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmlu
ZygiZnJhbWVIYW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAg
ICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBpc0VkaXRhYmxlU2NyaXB0KTsK
ICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZNb3ZlKGFyZ3VtZW50
cykpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICBt
X2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJf
cywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhv
c3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5p
c0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNl
T2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc5NCw3ICsxNzk0LDcgQEAgdm9p
ZCBTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxlcyhjb25zdCBTdHJpbmcmIGVsZW1lbnRJ
RCwgY29uc3QgU3RyaW5nJiB0ZXgKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFu
ZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWVPcihlbXB0eVN0cmluZygpKSk7
CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJub2RlSGFuZGxlIl9zLCBlbGVtZW50SUQpOwog
ICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJmaWxlbmFtZXMiX3MsIFdURk1vdmUoZmlsZW5hbWVz
KSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgic2V0RmlsZXNGb3JJbnB1dEZp
bGVVcGxvYWQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGVsZW1lbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNl
KSBtdXRhYmxlIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJzZXRGaWxlc0Zv
cklucHV0RmlsZVVwbG9hZCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZWxlbWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9u
c2UpIG11dGFibGUgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNl
LnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2Vy
LmNwcAppbmRleCBkNjI5NjYwNTE2Nzc0YzQ5ZjNjYmE1ZjA4NGQ2YzBlNGZhN2Y4ZTA5Li5hNDJl
YjdjOTE2N2YwZTdkOGJjZjM1NjU5YWQ5YWE0YmZhZmRmMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2Vy
LmNwcApAQCAtMTEyLDYgKzExMiw4IEBAIHZvaWQgTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI6
OnF1ZXJ5KFN0cmluZyYmIGhvc3QsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICAgICAg
aWYgKHN0ZXBSZXN1bHQgIT0gU1FMSVRFX1JPVyAmJiBzdGVwUmVzdWx0ICE9IFNRTElURV9ET05F
KSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKHNlc3Npb25JRCwgInN0ZXAgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHN0ZXBS
ZXN1bHQsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpLCBuZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlckRhdGFiYXNlUGF0aCgpLnV0ZjgoKS5kYXRhKCkpOworI2Vsc2UKKyAgICAgICAgICAgIFVO
VVNFRF9WQVJJQUJMRShzZXNzaW9uSUQpOwogI2VuZGlmCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggNmVkYzI1MTkz
ZjRjZTg1OWI3NjRiM2VjMGE1YmM1ZmNhNzg5ZDBhOC4uOWUwYjY4MmNkZWQyYWZiYmY1N2EwMjg0
OWRjM2I3OWQ3OWE3NjcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNjIsMTEgKzYyLDE3IEBAIE5ldHdvcmtMb2Fk
Q2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vz
cywgTmV0d29ya1JlCiAgICAgLCBtX3ByZWZsaWdodFBvbGljeShwcmVmbGlnaHRQb2xpY3kpCiAg
ICAgLCBtX3JlZmVycmVyKFdURk1vdmUocmVmZXJyZXIpKQogICAgICwgbV9zaG91bGRDYXB0dXJl
RXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Moc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9pc0hUVFBTVXBncmFkZUVuYWJsZWQo
aXNIVFRQU1VwZ3JhZGVFbmFibGVkKQorI2VuZGlmCiAgICAgLCBtX3JlcXVlc3RMb2FkVHlwZShy
ZXF1ZXN0TG9hZFR5cGUpCiAgICAgLCBtX3NjaGVtZVJlZ2lzdHJ5KHNjaGVtZVJlZ2lzdHJ5KQog
ICAgICwgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIobWFrZVdlYWtQdHIobmV0d29ya1Jlc291cmNl
TG9hZGVyKSkKIHsKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisgICAgVU5VU0VEX1BBUkFNKGlzSFRU
UFNVcGdyYWRlRW5hYmxlZCk7CisjZW5kaWYKKwogICAgIG1faXNTYW1lT3JpZ2luUmVxdWVzdCA9
IGlzU2FtZU9yaWdpbihtX3VybCwgbV9vcmlnaW4uZ2V0KCkpOwogICAgIHN3aXRjaCAob3B0aW9u
cy5jcmVkZW50aWFscykgewogICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5j
bHVkZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5oCmluZGV4IDllNGRjYjA0NTVhNWVhZWNiYzQ3YWYyMTY3NGRjZDBiNzBjZGQ5YzYuLjRk
OWNhOTZhODc1MTBjMDc4YjZjOTJiN2M0M2QyNDU5ODE4ZmFlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtMTUzLDcgKzE1
MywxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3JlZmVycmVyOwogICAgIGJvb2wgbV9jaGVj
a0NvbnRlbnRFeHRlbnNpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzIHsgZmFsc2UgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGJvb2wgbV9pc0hUVFBTVXBncmFkZUVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAg
ICBXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9ybWF0aW9uIG1fbG9hZEluZm9ybWF0aW9uOwogCiAg
ICAgTG9hZFR5cGUgbV9yZXF1ZXN0TG9hZFR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5jcHAKaW5kZXggZThkYmJlMjczYjNiZDQyNDE3NGJkYzkwM2Q3NjRiMWEyYjA1
NzVkNC4uYTczZGQ0MzM1M2ZmMDY4ODJjODk5MGIzZGZlZDc4MjJjM2RkMjI1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtMjcxLDcgKzI3MSw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVTY2VuZVN0YXRlKCkKICAgICAgICAg
ICAgIGZvciAoYXV0byYgY29tcG9zaXRpb25MYXllciA6IG1fbmljb3NpYS5zdGF0ZS5sYXllcnMp
IHsKICAgICAgICAgICAgICAgICBhdXRvJiBsYXllciA9IHRleG1hcExheWVyKCpjb21wb3NpdGlv
bkxheWVyKTsKICAgICAgICAgICAgICAgICBjb21wb3NpdGlvbkxheWVyLT5jb21taXRTdGF0ZSgK
LSAgICAgICAgICAgICAgICAgICAgW3RoaXMsICZsYXllciwgJmNvbXBvc2l0aW9uTGF5ZXIsICZs
YXllcnNCeUJhY2tpbmddCisgICAgICAgICAgICAgICAgICAgIFsmbGF5ZXIsICZsYXllcnNCeUJh
Y2tpbmddCiAgICAgICAgICAgICAgICAgICAgIChjb25zdCBOaWNvc2lhOjpDb21wb3NpdGlvbkxh
eWVyOjpMYXllclN0YXRlJiBsYXllclN0YXRlKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJTdGF0ZS5kZWx0YS5wb3NpdGlvbkNoYW5nZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmNwcAppbmRleCBiY2IyMzU5NzViMTMzZDJlMjc2NzZkMjgzZmU4OTEzODFhMGQ1ZDFj
Li5iOGM3MzAzZTc1OWMwMDRkM2M5N2M3OGNiMjdjOWU3ZDBjM2U1ZjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAK
QEAgLTE2Nyw3ICsxNjcsNiBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Zm9yY2VSZXBhaW50
KCkKICAgICAvLyBpbiBhIHdheSB0aGF0IGRvZXNuJ3Qgc3RhcnZlIG91dCB0aGUgdW5kZXJseWlu
ZyBncmFwaGljcyBidWZmZXJzLgogI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShXUEVfUkVOREVS
RVIpCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIFNldEZvclNjb3BlPGJvb2w+
IGNoYW5nZShtX2luRm9yY2VSZXBhaW50LCB0cnVlKTsKICAgICAgICAgcmVuZGVyTGF5ZXJUcmVl
KCk7CiAgICAgfSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXggNDkwNjQwZDU0M2IzMTFjNGFmNzEwMTUz
YTUwMWQxOGQ4NDNmNGY1MC4uZmNkMmU0ODg4OTk5ZDA1MmUwMjRhNWQzMmE1OTM0OTdkNmRlYmMw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRD
b21wb3NpdG9yLmgKQEAgLTEwMSw3ICsxMDEsNiBAQCBwcml2YXRlOgogCiAgICAgdWludDY0X3Qg
bV9uYXRpdmVTdXJmYWNlSGFuZGxlOwogICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50
RmxhZ3MgbV9wYWludEZsYWdzIHsgMCB9OwotICAgIGJvb2wgbV9pbkZvcmNlUmVwYWludCB7IGZh
bHNlIH07CiAgICAgdW5zaWduZWQgbV9zdXNwZW5kZWRDb3VudCB7IDAgfTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDb21wb3NpdGluZ1J1bkxvb3A+IG1fY29tcG9zaXRpbmdSdW5Mb29wOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlv
bkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZp
Z2F0aW9uQ2xpZW50LmNwcAppbmRleCA1NGVmMGI0ZTVhOTFlNGQ4NTQ3ODJiMGYyMzVkZjJkZTEx
OWM1YTFhLi43ODc2NDQzOWE0NzViMjM5ZDA3MmQ3Mzk0MDFhODI4NTA4NzEzOTRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZp
Z2F0aW9uQ2xpZW50LmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4
Y2VlZGVkQ1BVTGltaXQ6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpS
ZXF1ZXN0ZWRCeUNsaWVudDoKKyAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246
OlJlcXVlc3RlZEJ5TmV0d29ya1Byb2Nlc3M6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uOjpOYXZpZ2F0aW9uU3dhcDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90
ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggZTNm
NGY4NTQ2OWM5ZDE1OWUyNWJkNTgyNmE3M2ZkMGNhMzM1ZWU0MC4uYjY1NTFlYWJmNWMyYmJkOGNj
NGQ0ODJmNGNmMDUyZWJlZTk0YzBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJv
dG9jb2xIYW5kbGVyLmNwcApAQCAtNjAsNyArNjAsNiBAQCBwcml2YXRlOgogfTsKIAogUmVtb3Rl
SW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjpSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIo
V2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQogewog
ICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKGNvbnRleHQsICJpbnNw
ZWN0b3IiLCBbXShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9pbnRlciB1c2Vy
RGF0YSkgewogICAgICAgICBzdGF0aWNfY2FzdDxSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIqPih1c2VyRGF0YSktPmhhbmRsZVJlcXVlc3QocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29s
SGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJ
bnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaAppbmRleCBjNDg3M2U3NTY2ZDU1NWJiYjRhNzczOTJk
ZjcyMjVhMzE0YzI2ZGMyLi5mNmEwZDAxMTIzMzgzMDhlMTgxMTAwODgxYjhiZGU0ZjViZWM3OGM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90
ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgKQEAgLTQ5LDcg
KzQ5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRhcmdldExpc3RDaGFuZ2VkKFJlbW90ZUluc3Bl
Y3RvckNsaWVudCYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZChSZW1vdGVJ
bnNwZWN0b3JDbGllbnQmKSBvdmVycmlkZTsKIAotICAgIFdlYktpdFdlYkNvbnRleHQqIG1fY29u
dGV4dCB7IG51bGxwdHIgfTsKICAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZUluc3BlY3RvckNsaWVudD4+IG1faW5zcGVjdG9yQ2xpZW50czsKICAgICBIYXNoU2V0PFdl
YktpdFVzZXJDb250ZW50TWFuYWdlcio+IG1fdXNlckNvbnRlbnRNYW5hZ2VyczsKICAgICBIYXNo
U2V0PFdlYktpdFdlYlZpZXcqPiBtX3dlYlZpZXdzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDkwYTA4NjExZjk5MzdlMmRkNTQ2Mzg4NjZiOWJh
ODQzODQ1ZjllYzcuLjE5MTQ0ZDg1ZmRiNDgwYmE2NTJiNzZhZjI5NGIwNTcyMmZjMDBhMDYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+
CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02
NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93bmxvYWRzLmNwcDoKKyAgICAg
ICAgKHRlc3REb3dubG9hZE1JTUVUeXBlKToKKyAgICAgICAgKHRlc3RDb250ZXh0TWVudURvd25s
b2FkQWN0aW9ucyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVz
dFByaW50aW5nLmNwcDoKKwogMjAyMC0wMy0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBNaWdyYXRlIHRvIEZsYXRwYWstYmFz
ZWQgZGV2IFNESwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKaW5kZXggMTk3ZDIxM2VlN2EyN2MxMzVhMTQ2
M2I0ZTk1OGZiZTAyYjUyYTA3OS4uYWZhZGJjNTM5MjIzZTRiMmM2NWZmNjAwNjczZDVhY2E4YWRl
NjZjMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1RyYW5z
Zm9ybWF0aW9uTWF0cml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCkBAIC0xMjM5LDYgKzEyMzksOCBAQCBURVNUKFRy
YW5zZm9ybWF0aW9uTWF0cml4LCBDYXN0aW5nKQogICAgIEVYUEVDVF9ET1VCTEVfRVEoMy4wLCBj
YUZyb21XSy5tNDIpOwogICAgIEVYUEVDVF9ET1VCTEVfRVEoMi4wLCBjYUZyb21XSy5tNDMpOwog
ICAgIEVYUEVDVF9ET1VCTEVfRVEoMS4wLCBjYUZyb21XSy5tNDQpOworI2Vsc2UKKyAgICBVTlVT
RURfVkFSSUFCTEUodGVzdCk7CiAjZW5kaWYKIAogI2lmIFVTRShDRykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24u
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAKaW5kZXggY2RhYjRhZWVkZWY1NWZmM2ZhYjNlMzM2ZTQyMzAwY2JhYmQ4ZWE0
ZC4uNWFlNDRkNDY3N2U2OTI1YTVhOTRmNzlkNjJiOTk5ZGY4MjU0MmUyYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRDb25uZWN0aW9uKFJlZjxTb2NrZXRDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgewot
ICAgICAgICBnX2Fzc2VydF90cnVlKGNvbm5lY3Rpb24ucHRyKCkpOwogICAgICAgICBtX2Nvbm5l
Y3Rpb24gPSBXVEZNb3ZlKGNvbm5lY3Rpb24pOwogICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1f
bWFpbkxvb3AuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93bmxvYWRzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0RG93bmxvYWRzLmNwcAppbmRleCBlMDM5MTk5YzE3MmVjN2Qy
M2Q5MjRlMDllOTNkYzBmODhkZjExMTRjLi5mNzMzZTgxODNhY2YwMjNlN2RlYmRiMWQ2YTRmOTg1
ZGMyMDFjNGZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdERvd25sb2Fkcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3REb3dubG9hZHMuY3BwCkBAIC02NzIsMTQgKzY3MiwxNCBAQCBzdGF0aWMgdm9p
ZCB0ZXN0RG93bmxvYWRNSU1FVHlwZShEb3dubG9hZFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CiAgICAgZXZlbnRzLmNsZWFyKCk7CiAKICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0ID0g
d2Via2l0X2Rvd25sb2FkX2dldF9yZXF1ZXN0KGRvd25sb2FkLmdldCgpKTsKLSAgICBXRUJLSVRf
SVNfVVJJX1JFUVVFU1QocmVxdWVzdCk7CisgICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfSVNfVVJJ
X1JFUVVFU1QocmVxdWVzdCkpOwogICAgIEFTU0VSVF9DTVBfQ1NUUklORyh3ZWJraXRfdXJpX3Jl
cXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSwgPT0sIGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi91bmtu
b3duIikpOwogCiAgICAgYXV0byBoZWFkZXJzID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF9odHRw
X2hlYWRlcnMocmVxdWVzdCk7CiAgICAgZ19hc3NlcnRfbm9ubnVsbChzb3VwX21lc3NhZ2VfaGVh
ZGVyc19nZXRfb25lKGhlYWRlcnMsICJVc2VyLUFnZW50IikpOwogCiAgICAgV2ViS2l0VVJJUmVz
cG9uc2UqIHJlc3BvbnNlID0gd2Via2l0X2Rvd25sb2FkX2dldF9yZXNwb25zZShkb3dubG9hZC5n
ZXQoKSk7Ci0gICAgV0VCS0lUX0lTX1VSSV9SRVNQT05TRShyZXNwb25zZSk7CisgICAgZ19hc3Nl
cnRfdHJ1ZShXRUJLSVRfSVNfVVJJX1JFU1BPTlNFKHJlc3BvbnNlKSk7CiAgICAgZ19hc3NlcnRf
Y21wc3RyKHdlYmtpdF91cmlfcmVzcG9uc2VfZ2V0X21pbWVfdHlwZShyZXNwb25zZSksID09LCAi
YXBwbGljYXRpb24vcGRmIik7CiAKICAgICBnX2Fzc2VydF9ub25udWxsKHdlYmtpdF9kb3dubG9h
ZF9nZXRfZGVzdGluYXRpb24oZG93bmxvYWQuZ2V0KCkpKTsKQEAgLTczOSw3ICs3MzksNyBAQCBz
dGF0aWMgdm9pZCB0ZXN0Q29udGV4dE1lbnVEb3dubG9hZEFjdGlvbnMoV2ViVmlld0Rvd25sb2Fk
VGVzdCogdGVzdCwgZ2NvbnN0cG9pbgogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV93ZWJWaWV3
ID09IHdlYmtpdF9kb3dubG9hZF9nZXRfd2ViX3ZpZXcodGVzdC0+bV9kb3dubG9hZC5nZXQoKSkp
OwogCiAgICAgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCA9IHdlYmtpdF9kb3dubG9hZF9nZXRf
cmVxdWVzdCh0ZXN0LT5tX2Rvd25sb2FkLmdldCgpKTsKLSAgICBXRUJLSVRfSVNfVVJJX1JFUVVF
U1QocmVxdWVzdCk7CisgICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVx
dWVzdCkpOwogICAgIEFTU0VSVF9DTVBfQ1NUUklORyh3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3Vy
aShyZXF1ZXN0KSwgPT0sIGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi90ZXN0LnBkZiIpKTsKIAog
ICAgIGF1dG8gaGVhZGVycyA9IHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfaHR0cF9oZWFkZXJzKHJl
cXVlc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsv
VGVzdFByaW50aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rl
c3RQcmludGluZy5jcHAKaW5kZXggNTQ4YTk4MWMxYjQyMjM4MmM2YmRmZTIwYTAxNzc5N2VhNjc3
NzIwMC4uNzBmNzA5ZGMxOTJmZWRjMTU4ZDc5YjNmNTA1YmU2M2Y2NDU4MWM3NyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFByaW50aW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3Bw
CkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIEdSZWZQdHI8V2ViS2l0
UHJpbnRPcGVyYXRpb24+IG1fcHJpbnRPcGVyYXRpb247Ci0gICAgdW5zaWduZWQgbV9leHBlY3Rl
ZEVycm9yOworICAgIGludCBtX2V4cGVjdGVkRXJyb3I7CiB9OwogCiBzdGF0aWMgdm9pZCB0ZXN0
UHJpbnRPcGVyYXRpb25QcmludChQcmludFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393964</attachid>
            <date>2020-03-19 04:21:49 -0700</date>
            <delta_ts>2020-03-19 04:41:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200319112148.patch</filename>
            <type>text/plain</type>
            <size>38310</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
YTI3MTQyYjk4OWU2MTUxODk0MzlhZDg2MmEwMjViZTIzN2Q0Yjk3Li5lY2FmMDBiNDE5ZDVmNGZm
MWQ2YTA1NjA5YmFiYmI2MWY1ZjQ2MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4
Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhbGxGcmFt
ZTo6ZGVwcmVjYXRlZFZNIGNvbnN0KTogQSByZWZlcmVuY2UgbWF5IG5vdCBiZSBOVUxMLCBzbwor
ICAgICAgICB0aGlzIEFTU0VSVCgpIGNhbiBuZXZlciB0cmlwLgorCiAyMDIwLTAzLTE3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRGVsZXRlSUMg
cGF0Y2hwb2ludCBpbiBGVEwgc2hvdWxkIHJlcXVpcmUgdGFnIGFuZCBtYXNrIHJlZ2lzdGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCBmN2YzNDQ3NTM5OGM0OWI1YzQ2YzJjZjk3ZTY1ODI1YzJjNDZkMGNmLi4wZGQ5MDQyYzll
MzIzMGViYTc0Mjk5MTI2NTEwMjMwYzRjYzhkYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIw
LTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBG
aXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTG9n
Z2VySGVscGVyLmg6IFdoZW4gdGhlIFJFTEVBU0VfTE9HIGlzIGRpc2FibGVkLCBhdm9pZCB3YXJu
aW5nCisgICAgICAgIHNwYW0gYWJvdXQgdW51c2VkIGNoYW5uZWwgbmFtZXMuIENhbGwgc2l0ZXMg
b2Z0ZW4gY3JlYXRlIGxvY2FscyBmb3IKKyAgICAgICAgdGhlIGNoYW5uZWwgbmFtZSBvdXRzaWRl
IG9mIFJFTEVBU0VfTE9HIGlmZGVmJ3MsIHdoaWNoIGNhdXNlIG1hbnkKKyAgICAgICAgdW51c2Vk
IHZhcmlhYmxlIHdhcm5pbmdzLgorCiAyMDIwLTAzLTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjU0ODU2KSBBZGQg
ZXhjZXB0aW9uIGZvciB3aW5kb3cub3BlbkRhdGFiYXNlIHRvIG5vdCBtYXNxdWVyYWRlIGFzIHVu
ZGVmaW5lZCBpbiBjdXJyZW50bHkgc2hpcHBpbmcgSmVzdXMgQ2FsbGluZyBEZXZvdGlvbmFsIGFw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGJmMGM0ZmI0MDkwMzczNTk2OWY0ZDAwOGNjMjA2ZDA4Y2RhMzA0NGUu
LjQxOTFlYjYxMTkzZTg3NDQ2YTNhNjEyM2Q2MGZiMzgwNmYzMDNhZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1MSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RL
IHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdhcm5pbmcgZml4ZXMsIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
S2V5czo6TWVkaWFLZXlzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuaDogVGhlIG1fbnVtYmVyT2ZGcmFtZXMgaXZhcgorICAgICAgICBpcyBwbGF0
Zm9ybS1zcGVjaWZpYy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckdMRGF0YTo6Z2V0U3RhdGljVkJPKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaDogVGhlcmUg
YXJlCisgICAgICAgIHN0aWxsIHZpcnR1YWwgbWV0aG9kcyBpbiB0aGlzIGNsYXNzLCBidXQgbm8g
dmlydHVhbCBkZXN0cnVjdG9yLiBTaW5jZQorICAgICAgICB0aGlzIHdvbid0IGJlIHN1YmNsYXNz
ZWQgZnVydGhlciAoSSBkb3VidCwgYW55d2F5ISkgbGV0cyBtYWtlIGl0IGZpbmFsCisgICAgICAg
IGFuZCBwbHVnIHRoZSBidWcuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaDogU2VlCisgICAg
ICAgIEF1ZGlvQ2FwdHVyZXIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpJbXBsZW1l
bnRhdGlvbk5hbWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNw
cDogVGhlCisgICAgICAgIGVuY29kZXIgd2FzIGJlaW5nIHVzZWQgdW5pbml0aWFsaXplZCwgYW5k
IGhlbmNlIGNvZGVjIHN1cHBvcnQgY2FuIG5vdAorICAgICAgICBiZSB3b3JraW5nIGFzIGludGVu
ZGVkLiBGaXggdGhhdCBidWcuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29k
ZXI6OkFkZENvZGVjSWZTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlk
ZW9FbmNvZGVyOjpJbml0RW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclZpZGVvRW5jb2Rlcjo6R2V0RW5jb2RlckluZm8gY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJG
YWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6
IENvbmRpdGlvbiB0aGUgYmVhciB0cmFwIG9uIENvY29hCisgICAgICAgIHBsYXRmb3JtIHdoZXJl
IHRoZSBjcmFzaCBpcyBiZWluZyBzZWVuLiBPbiBHVEsgdGhlc2UgdHJhcHMgZ2VuZXJhdGUKKyAg
ICAgICAgd2FybmluZyBzcGFtIGFuZCB3ZSBkb24ndCBzZWUgdGhlIGNyYXNoIGhlcmUuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVhZFByZWZlcmVu
Y2VJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5jb2RlZFByZWZlcmVu
Y2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcpOgorCiAyMDIw
LTAzLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXVtXUEVdIE1pZ3JhdGUgdG8gRmxhdHBhay1iYXNlZCBkZXYgU0RLCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9n
CmluZGV4IDQzY2RiZDBmMTdhOWZhODMzZGUwOGI5ZDFiMzU3YjUxYWNmZmEwMTYuLjZmMjk5NWZl
MTYwOGU3OWQyMWIyZDBhMjUwZmUxMWJhZGYwZWYyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29t
PgorCisgICAgICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYt
NjQgaW4gRGVidWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpuZXdXaW5k
b3cpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjplbGVtZW50SXNGaWxlVXBsb2FkKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFibGUpOgorICAgICAg
ICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxlcyk6CisKIDIwMjAt
MDItMTIgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgV2ViRHJpdmVyOiByZXR1cm4gaW52YWxpZFNlc3Npb25JRCBleGNlcHRpb24gaWYg
dGhlIFdlYlByb2Nlc3MgZG9lc24ndCByZXNwb25kIChjcmFzaGVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3Yzg5
NDkwOWJkNzk2YmEwNzY5ZjBiNWM2MzA2ODg5NTAwNGYwYTkzLi5mNTVhN2I2N2YxZDM1MmY0ZTNl
N2YwYzViYjhiZTFkODE5NjUxODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAz
LTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBGaXgg
bWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyOjpxdWVyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDogVGhlIG1faXNIVFRQU1VwZ3JhZGVFbmFibGVkCisg
ICAgICAgIGl2YXIgaXMgb25seSB1c2VkIG9uIENvY29hIHBsYXRmb3Jtcywgb24gR1RLIGl0IGlz
IGNhdXNpbmcgd2FybmluZworICAgICAgICBzcGFtLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
TG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVTY2VuZVN0YXRlKToKKyAgICAgICAgKgorICAg
ICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgbV9pbkZvcmNlUmVwYWludCBpcyBub3QgYmVpbmcg
dXNlZCBhbnltb3JlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmZvcmNl
UmVwYWludCk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclBy
b3RvY29sSGFuZGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3Rl
SW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmg6CisKIDIwMjAtMDMtMTcgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6bV9z
aXplIHNob3VsZCBiZSBtb3JlIGNvbnNpc3RlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbElubGluZXMuaAppbmRleCAyZGFmN2JjMGRkYjM3ZTQwZjczMDljYTFkNjI3
MDM2Yzc4YjE4YWY5Li4xYzlkMTMyNDhhOTMyNGZhZjUyYTJjOGZhMDEwNzA2MjYxMTA0MzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0x
NDIsNyArMTQyLDYgQEAgQUxXQVlTX0lOTElORSBWTSYgQ2FsbEZyYW1lOjpkZXByZWNhdGVkVk0o
KSBjb25zdAogewogICAgIEpTQ2VsbCogY2FsbGVlID0gdGhpcy0+Y2FsbGVlKCkuYXNDZWxsKCk7
CiAgICAgQVNTRVJUKGNhbGxlZSk7Ci0gICAgQVNTRVJUKCZjYWxsZWUtPnZtKCkpOwogICAgIHJl
dHVybiBjYWxsZWUtPnZtKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dl
ckhlbHBlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKaW5kZXggOWViNzNiYTZl
MGZkOTRjMDQ4ZGQ1OTNiNWZmNTI5MTY4MGI2ZGYzMC4uNTQyYzIzNGZhZmZmNTE4ZmRmYjViZGNh
ODhkMzkzZmRmN2JiNDEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVy
LmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKQEAgLTg5LDE0ICs4OSwxMyBA
QCBwdWJsaWM6CiAKICNkZWZpbmUgTE9HSURFTlRJRklFUiAoV1RGOjpudWxsb3B0KQogCi0jZGVm
aW5lIEFMV0FZU19MT0coLi4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4p
ICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0j
ZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgKCh2b2lkKTApCi0jZGVmaW5lIE5PVElDRV9MT0co
Li4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIElORk9fTE9HKC4uLikgICAgICAgKCh2b2lkKTAp
Ci0jZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIFdJTExfTE9H
KF9sZXZlbF8pICAgZmFsc2UKKyNkZWZpbmUgQUxXQVlTX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAg
KFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkpCisjZGVmaW5lIEVSUk9SX0xPRyhjaGFubmVsTmFt
ZSwgLi4uKSAgIChVTlVTRURfUEFSQU0oY2hhbm5lbE5hbWUpKQorI2RlZmluZSBXQVJOSU5HX0xP
RyhjaGFubmVsTmFtZSwgLi4uKSAoVU5VU0VEX1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUg
Tk9USUNFX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkp
CisjZGVmaW5lIElORk9fTE9HKGNoYW5uZWxOYW1lLCAuLi4pICAgIChVTlVTRURfUEFSQU0oY2hh
bm5lbE5hbWUpKQorI2RlZmluZSBERUJVR19MT0coY2hhbm5lbE5hbWUsIC4uLikgICAoVU5VU0VE
X1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUgV0lMTF9MT0coX2xldmVsXykgICAgZmFsc2UK
IAogI2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgKCh2b2lkKTApCiAj
ZGVmaW5lIEVSUk9SX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICAoKHZvaWQpMCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcApp
bmRleCBhODljZDQwMDNkNzFlZWFmOTEwN2E0NTdiNDQzZmI3ZTMwYzU1MzI3Li5jNGI2OTg0MmY1
MTUyNWI5ODRiYmQwOTdmNzkyZGYyMDE3MmI2NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC02Myw2ICs2Myw4IEBA
IE1lZGlhS2V5czo6TWVkaWFLZXlzKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEaXN0aW5j
dGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgbV9pbnN0YW5jZS0+c2V0TG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpLCBtX2xvZ0lkZW50aWZp
ZXIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgbV9p
bnN0YW5jZS0+c2V0Q2xpZW50KG1ha2VXZWFrUHRyKHRoaXMpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgK
aW5kZXggZmM2ZGRiOGU2ZDJiODcwMzZkMjYyMTM4ZGVkNGM2Yzc3Nzk2YmU5ZS4uMTY3MjY4MTdk
YjM3MzU0YjgxMzk1YzQzNTYzMDM2Yzg0Yzg3MTA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKQEAgLTU4
LDcgKzU4LDkgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX2RldmljZUlkOwogICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyNpZiBVU0UoQVZGT1VO
REFUSU9OKQogICAgIHNpemVfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA1ZDg2YWY2ZTRkYjFhMzViYWMxNTg4YTA5ZmU4ZWVh
NDRkNjM1NDg4Li4yM2U2ZmYzZTUzY2NhZmM3NWI2ZDViMmRiY2RmMmQwZmYxY2NkM2U0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTMz
MCw4ICszMzAsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9h
ZGVyU3RyYXRlZ3koKS0+bG9hZFJlc291cmNlKGZyYW1lLCAqdGhpcywgV1RGTW92ZShyZXF1ZXN0
KSwgbV9vcHRpb25zLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPih0aGlzKSwgZnJhbWVSZWYgPSBtYWtlUmVmKGZyYW1lKSwgbG9nZ2lu
Z0FsbG93ZWQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KV0gKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpIHsKICAgICAgICAgbV9sb2Fk
ZXIgPSBXVEZNb3ZlKGxvYWRlcik7CiAgICAgICAgIGlmICghbV9sb2FkZXIpIHsKLSAgICAgICAg
ICAgIGF1dG8mIGZyYW1lID0gZnJhbWVSZWYuZ2V0KCk7Ci0gICAgICAgICAgICBSRUxFQVNFX0xP
R19JRihsb2dnaW5nQWxsb3dlZCwgTmV0d29yaywgIiVwIC0gW3BhZ2VJRD0lIiBQUkl1NjQgIiwg
ZnJhbWVJRD0lIiBQUkl1NjQgIl0gQ2FjaGVkUmVzb3VyY2U6OmxvYWQ6IFVuYWJsZSB0byBjcmVh
dGUgU3VicmVzb3VyY2VMb2FkZXIiLCB0aGlzLCBQQUdFX0lEKGZyYW1lKSwgRlJBTUVfSUQoZnJh
bWUpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGxvZ2dpbmdBbGxvd2VkLCBOZXR3b3Jr
LCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiXSBDYWNoZWRS
ZXNvdXJjZTo6bG9hZDogVW5hYmxlIHRvIGNyZWF0ZSBTdWJyZXNvdXJjZUxvYWRlciIsIHRoaXMs
IFBBR0VfSUQoZnJhbWVSZWYuZ2V0KCkpLCBGUkFNRV9JRChmcmFtZVJlZi5nZXQoKSkpOwogICAg
ICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggOTZlMzA0MzEyNjllNGQ4MmIxYzEwNzcx
OWU3MDViODEzMmE2MjdhNC4uZmJhMTEyMDc4ZDY0OGVjM2EyYTdkMjkxZDA0YzgwNGY5NzFlNDQ1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFRleHR1
cmVNYXBwZXJHTERhdGE6OmluaXRpYWxpemVTdGVuY2lsKCkKIEdMdWludCBUZXh0dXJlTWFwcGVy
R0xEYXRhOjpnZXRTdGF0aWNWQk8oR0xlbnVtIHRhcmdldCwgR0xzaXplaXB0ciBzaXplLCBjb25z
dCB2b2lkKiBkYXRhKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92Ym9zLmVuc3VyZShkYXRh
LAotICAgICAgICBbdGhpcywgdGFyZ2V0LCBzaXplLCBkYXRhXSB7CisgICAgICAgIFt0YXJnZXQs
IHNpemUsIGRhdGFdIHsKICAgICAgICAgICAgIEdMdWludCB2Ym8gPSAwOwogICAgICAgICAgICAg
Z2xHZW5CdWZmZXJzKDEsICZ2Ym8pOwogICAgICAgICAgICAgZ2xCaW5kQnVmZmVyKHRhcmdldCwg
dmJvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAzYjYxYmM5MWViM2FhZmMxYjMzMmE5OGNlNTA0
YWQ5N2YzYTZiZjAxLi5iMDdiZTYwOWM2MzIzODlkODJmMmRmODEwYTk1MDA5M2QxYTZmNGQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb1NvdXJjZS5oCkBAIC03MCw3ICs3MCw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IG1fc291cmNlOwogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICB1aW50NjRfdCBtX2Nsb25lQ291bnRlciB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVyLmgKaW5kZXggOWFhZjc2MWQ2YzRiNDNjNDRlZjQ0NzExZTgzN2IwZjEyNTJkMWY1YS4uZGM3
ZjI4ZmQxN2I4Yjk2YzhiMzZjOTdjZGQzOTllMGI4YzhkNDVjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2Fw
dHVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlciA6IHB1YmxpYyBHU3Ry
ZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyIGZpbmFsIDogcHVi
bGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1YmxpYzoKICAgICBHU3RyZWFtZXJBdWRpb0NhcHR1
cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwogICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAKaW5kZXggYWM5ODhlNGMwY2FjNDA2MzA2MDA2YmY0ZmIyZTc2ZTkyYzAyYjRiNi4uODdhMDhm
MjkxN2JkNWU3N2RlNDI5OGYyNGU2MjYyYjA3YmYwOWE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM4LDkgKzM4LDYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBzdGF0aWMgaW50IGRlZmF1bHRXaWR0aCA9
IDY0MDsKLWNvbnN0IHN0YXRpYyBpbnQgZGVmYXVsdEhlaWdodCA9IDQ4MDsKLQogR1NUX0RFQlVH
X0NBVEVHT1JZKHdlYmtpdF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1Zyk7CiAjZGVmaW5lIEdT
VF9DQVRfREVGQVVMVCB3ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lclZpZGVvQ2FwdHVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVyLmgKaW5kZXggNTdiMGI0Njg2ZDM0YWUw
YzExNTRhNzNmZDRhNGI5ZWQ1YzQwZTY5NS4uNDQ2MDI4ZDBiOGU0MDQwZmViZjUxNDk3NjJiMzQ3
NmI1YWY2ZDVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5o
CkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVh
bWVyVmlkZW9DYXB0dXJlciA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVyIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1
YmxpYzoKICAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2Up
OwogICAgIEdTdHJlYW1lclZpZGVvQ2FwdHVyZXIoY29uc3QgY2hhciogc291cmNlX2ZhY3Rvcnkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnku
Y3BwCmluZGV4IGEzYmRkNmI3MjI3Y2JiNGFjZWMzMzI3ODBhNTVkMGJhNzdkZTgzMmEuLjUzNDZl
MmViZDBmYTg3ZTNlOGI3MTMxYjdiZDkyYTEzNmY2N2MzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29k
ZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTE2NSw3ICsxNjUs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7CiAgICAg
fQogCi0gICAgaW50MzJfdCBSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sod2VicnRjOjpE
ZWNvZGVkSW1hZ2VDYWxsYmFjayogY2FsbGJhY2spCisgICAgaW50MzJfdCBSZWdpc3RlckRlY29k
ZUNvbXBsZXRlQ2FsbGJhY2sod2VicnRjOjpEZWNvZGVkSW1hZ2VDYWxsYmFjayogY2FsbGJhY2sp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBtX2ltYWdlUmVhZHlDYiA9IGNhbGxiYWNrOwogCkBA
IC0zMjAsNyArMzIwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBjb25zdCBnY2hhciogQ2Fw
cygpID0gMDsKICAgICB2aXJ0dWFsIHdlYnJ0Yzo6VmlkZW9Db2RlY1R5cGUgQ29kZWNUeXBlKCkg
PSAwOwotICAgIGNvbnN0IGNoYXIqIEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJu
ICJHU3RyZWFtZXIiOyB9CisgICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25OYW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkdTdHJlYW1lciI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGdj
aGFyKiBOYW1lKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CkBAIC0zMzYsNyArMzM2LDYgQEAgcHJpdmF0
ZToKICAgICBHc3RFbGVtZW50KiBtX3Npbms7CiAgICAgR3N0RWxlbWVudCogbV9zcmM7CiAKLSAg
ICBHc3RWaWRlb0luZm8gbV9pbmZvOwogICAgIHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sq
IG1faW1hZ2VSZWFkeUNiOwogCiAgICAgU3RkTWFwPEdzdENsb2NrVGltZSwgSW5wdXRUaW1lc3Rh
bXBzPiBtX2R0c1B0c01hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rl
ci5jcHAKaW5kZXggNDJmMGNmODU3MTFhNzRkODhlYTNkYTI3M2I3OWY5MmZhMzllZTJiYS4uNmEx
ZDRhN2E0MTAyNWQ3ZTU1YmUyYTY0OGMwZWU2ODBhZjc1ZGVkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5j
b2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKQEAgLTY3LDE3ICs2Nyw3IEBAIHR5cGVkZWYg
ZW51bQogICBFTkNPREVSX0xBU1QsCiB9IEVuY29kZXJJZDsKIAotRW5jb2RlckRlZmluaXRpb24g
ZW5jb2RlcnNbRU5DT0RFUl9MQVNUXSA9IHsKLSAgRkFMU0UsCi0gIE5VTEwsCi0gIE5VTEwsCi0g
IE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi19Owor
RW5jb2RlckRlZmluaXRpb24gZW5jb2RlcnNbRU5DT0RFUl9MQVNUXSA9IHsgeyB9IH07CiAKIHR5
cGVkZWYgc3RydWN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggYTJmZGRhNWZmYTUwOTNjY2I3NWRjZDZjOGVjNDdlZmYx
YmI4YzllYi4uMGE1ZGQ5YzEzZjdkZmY1NWY4MDgzNTVkYmY3OWEzYWYyNjE4MjViMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApA
QCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGVsZW07CiAgICAgfQog
Ci0gICAgaW50MzJfdCBJbml0RW5jb2RlKGNvbnN0IHdlYnJ0Yzo6VmlkZW9Db2RlYyogY29kZWNT
ZXR0aW5ncywgaW50MzJfdCwgc2l6ZV90KQorICAgIGludDMyX3QgSW5pdEVuY29kZShjb25zdCB3
ZWJydGM6OlZpZGVvQ29kZWMqIGNvZGVjU2V0dGluZ3MsIGludDMyX3QsIHNpemVfdCkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGVjU2V0dGluZ3MsIFdF
QlJUQ19WSURFT19DT0RFQ19FUlJfUEFSQU1FVEVSKTsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoY29kZWNTZXR0aW5ncy0+Y29kZWNUeXBlID09IENvZGVjVHlwZSgpLCBXRUJSVENfVklE
RU9fQ09ERUNfRVJSX1BBUkFNRVRFUik7CkBAIC0xODgsNyArMTg4LDggQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgVmlkZW9FbmNvZGVyOjpFbmNvZGVySW5mbyBHZXRFbmNvZGVy
SW5mbygpIGNvbnN0IHsKKyAgICBWaWRlb0VuY29kZXI6OkVuY29kZXJJbmZvIEdldEVuY29kZXJJ
bmZvKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CiAgICAgICAgIEVuY29kZXJJbmZvIGluZm87CiAg
ICAgICAgIGluZm8uc3VwcG9ydHNfbmF0aXZlX2hhbmRsZSA9IGZhbHNlOwogICAgICAgICBpbmZv
LmltcGxlbWVudGF0aW9uX25hbWUgPSAiR1N0cmVhbWVyIjsKQEAgLTI5OCwxMCArMjk5LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBBZGRDb2RlY0lmU3VwcG9ydGVkKHN0ZDo6dmVjdG9yPHdlYnJ0
Yzo6U2RwVmlkZW9Gb3JtYXQ+KiBzdXBwb3J0ZWRGb3JtYXRzKQogICAgIHsKLSAgICAgICAgR3N0
RWxlbWVudCogZW5jb2RlcjsKLQotICAgICAgICBpZiAoY3JlYXRlRW5jb2RlcigpLmdldCgpICE9
IG51bGxwdHIpIHsKLSAgICAgICAgICAgIHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQgZm9ybWF0ID0g
Q29uZmlndXJlU3VwcG9ydGVkQ29kZWMoZW5jb2Rlcik7CisgICAgICAgIGlmIChhdXRvIGVuY29k
ZXIgPSBjcmVhdGVFbmNvZGVyKCkpIHsKKyAgICAgICAgICAgIHdlYnJ0Yzo6U2RwVmlkZW9Gb3Jt
YXQgZm9ybWF0ID0gQ29uZmlndXJlU3VwcG9ydGVkQ29kZWMoZW5jb2Rlci5nZXQoKSk7CiAKICAg
ICAgICAgICAgIHN1cHBvcnRlZEZvcm1hdHMtPnB1c2hfYmFjayhmb3JtYXQpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaApp
bmRleCAxNDgzYTJiMjBiMzUxNWM3MWI3YTBjN2E1MjI2MjZlOWZmNTM5MjA0Li4xZWFjMTk3MGMx
MzJjMzUxYjgzYzg5NjQ3ZTIyMGFiYjkwZWVjYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFj
dG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9ybWF0PiBHZXRT
dXBwb3J0ZWRGb3JtYXRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHdl
YnJ0Yzo6VmlkZW9FbmNvZGVyPiBDcmVhdGVWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBW
aWRlb0Zvcm1hdCYpIGZpbmFsOwotICAgIENvZGVjSW5mbyBRdWVyeVZpZGVvRW5jb2Rlcihjb25z
dCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JikgY29uc3QKKyAgICBDb2RlY0luZm8gUXVlcnlWaWRl
b0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpIGNvbnN0IG92ZXJyaWRlCiAg
ICAgewogICAgICAgICBHU1RfRklYTUUoIkRldGVjdCB3ZXRoZXIgdGhlIGRlY29kZXIgaXMgSFcg
YWNjZWxlcmF0ZWQiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4
IDRmZGJiYWI4ODljZTE5YzMzNzdkMTczMzFjMzkzYmQwZGIwMmUyNWQuLjAwMDE1YTI5MDRjNjRj
NWM4MWUzMmU1MzJlN2UxNDg4N2I3ZTFiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
U291cC5jcHAKQEAgLTMxNyw2ICszMTcsOCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywgY29uc3QgVVJMJgogCiAg
ICAgICAgIHNvdXBfY29va2llX2phcl9hZGRfY29va2llX2Z1bGwoY29va2llU3RvcmFnZSgpLCBj
b29raWUudG9Tb3VwQ29va2llKCksIG9yaWdpbi5nZXQoKSwgZmlyc3RQYXJ0eVVSSS5nZXQoKSk7
CiAjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0odXJsKTsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGZpcnN0UGFydHkpOwogICAgICAgICBzb3VwX2Nvb2tpZV9qYXJfYWRkX2Nvb2tpZShjb29raWVT
dG9yYWdlKCksIGNvb2tpZS50b1NvdXBDb29raWUoKSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggOGZjNjUwNDhi
OWZlMjY4YWY4YmY1NDdiM2U3MzhkYTJmMDhlODVmNi4uOTU3NWUzMzdhYThiZjNjZjcwNzhlMmZm
N2ZlZGUyMGY5MThlMmNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBUaWxlZEJhY2tpbmc7CiBjbGFz
cyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAogCi0jaWYgX19XT1JEU0laRSA9PSA2NAorI2lmIF9f
V09SRFNJWkUgPT0gNjQgJiYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIFVTRV9PV05JTkdfTEFZ
RVJfQkVBUl9UUkFQIDEKICNkZWZpbmUgQkVBUl9UUkFQX1ZBTFVFIDB4RUVFRUVFRUVFRUVFRUVF
RQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEu
aAppbmRleCBlYzY4NDBkZDE4MDZlNjI2NDgxMDNhNWFjZDYzMjE2MzBlOWEyOTYzLi4zZmI2ZDhk
YjA0YTE2ZTU3MGNlODg4YWIyMDQ2OGNmMmYyZDYyZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCkBAIC02Miw4ICs2Miw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBwYWludFNlYXJjaEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKIAogICAgIGJvb2wgcG9wc01lbnVCeVNw
YWNlT3JSZXR1cm4oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBhZGp1
c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwotICAg
IHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25TdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1l
bnQqKSBjb25zdDsKKyAgICB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUoUmVuZGVyU3R5bGUmLCBj
b25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhZGp1c3RNZW51TGlzdEJ1
dHRvblN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExlbmd0aEJveCBwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IGZpbmFsOwogICAgIGJvb2wgcGFpbnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3Qm
LCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKICAgICBib29sIHBh
aW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJCb3gmLCBjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA3MjYzZmE2M2U2ODI5YjNlN2ZiMjNkODk1ODc0NmUyYjg2OGIzZjc1Li5m
NDc5NDJiOGZiMzM5M2VkYjhlNWJlYTNhMmIwNjNhNzBiYjNkOWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NDkzLDIyICs1NDkzLDI0IEBAIGludCBJbnRlcm5hbHM6
OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5n
JiBrZXkpCiAgICAgQm9vbGVhbiBrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCA9IGZhbHNlOwog
ICAgIHJldHVybiBDRlByZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKGtleS5jcmVhdGVDRlN0
cmluZygpLmdldCgpLCBkb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmtleUV4aXN0c0Fu
ZEhhc1ZhbGlkRm9ybWF0KTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvbWFpbik7CisgICAg
VU5VU0VEX1BBUkFNKGtleSk7CiAgICAgcmV0dXJuIC0xOwogI2VuZGlmCiB9CiAKICNpZiAhUExB
VEZPUk0oQ09DT0EpCi1TdHJpbmcgSW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKGNv
bnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKK1N0cmluZyBJbnRlcm5hbHM6
OmVuY29kZWRQcmVmZXJlbmNlVmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsK
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAotU3RyaW5nIEludGVybmFsczo6Z2V0VVRJ
RnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCitTdHJpbmcgSW50ZXJuYWxzOjpn
ZXRVVElGcm9tTUlNRVR5cGUoY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKIH0KIAotU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcm
IHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9V
VEkpCitTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRy
aXZlci9TZXNzaW9uLmNwcAppbmRleCA5ZmI0MDI3MDJiZGI0ODk4Y2U5ZjcwNzVmMjI5MjEwMmEz
MjM1ODAxLi40Nzg1YTI2OTY4NTNiM2I5MzRmOWQ1NWIyYWFjMWNlZDgyZjI1MTA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIFNlc3Npb246Om5ld1dpbmRvdyhP
cHRpb25hbDxTdHJpbmc+IHR5cGVIaW50LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0Jgog
ICAgICAgICAgICAgcGFyYW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAg
ICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoInByZXNlbnRhdGlvbkhpbnQiX3MsIHR5cGVIaW50
LnZhbHVlKCkgPT0gIndpbmRvdyIgPyAiV2luZG93Il9zIDogIlRhYiJfcyk7CiAgICAgICAgIH0K
LSAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250
ZXh0Il9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IHByb3Rl
Y3RlZFRoaXMuY29weVJlZigpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAg
ICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250ZXh0
Il9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMu
Y29weVJlZigpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgICAg
IGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAg
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92
ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBA
IC0xNTUwLDcgKzE1NTAsNyBAQCB2b2lkIFNlc3Npb246OmVsZW1lbnRJc0ZpbGVVcGxvYWQoY29u
c3QgU3RyaW5nJiBlbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbgogICAgICAgICBwYXJh
bWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRl
eHQudmFsdWUoKSk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmdW5jdGlvbiJfcywgaXNG
aWxlVXBsb2FkU2NyaXB0KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9z
LCBXVEZNb3ZlKGFyZ3VtZW50cykpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
ImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYg
cmVzcG9uc2UpIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAg
ICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3Zl
KHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY5
Miw3ICsxNjkyLDcgQEAgdm9pZCBTZXNzaW9uOjplbGVtZW50SXNFZGl0YWJsZShjb25zdCBTdHJp
bmcmIGVsZW1lbnRJRCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFIKICAgICAgICAgcGFyYW1ldGVy
cy0+c2V0U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50QnJvd3NpbmdDb250ZXh0LnZh
bHVlKCkpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsIGlzRWRpdGFi
bGVTY3JpcHQpOwogICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1v
dmUoYXJndW1lbnRzKSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25z
ZSkgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYg
KHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9u
c2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzk0LDcgKzE3
OTQsNyBAQCB2b2lkIFNlc3Npb246OnNldElucHV0RmlsZVVwbG9hZEZpbGVzKGNvbnN0IFN0cmlu
ZyYgZWxlbWVudElELCBjb25zdCBTdHJpbmcmIHRleAogICAgIHBhcmFtZXRlcnMtPnNldFN0cmlu
ZygiZnJhbWVIYW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZU9yKGVtcHR5
U3RyaW5nKCkpKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoIm5vZGVIYW5kbGUiX3MsIGVs
ZW1lbnRJRCk7CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImZpbGVuYW1lcyJfcywgV1RGTW92
ZShmaWxlbmFtZXMpKTsKLSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJzZXRGaWxl
c0ZvcklucHV0RmlsZVVwbG9hZCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZWxlbWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNl
JiYgcmVzcG9uc2UpIG11dGFibGUgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
InNldEZpbGVzRm9ySW5wdXRGaWxlVXBsb2FkIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlbGVtZW50SUQsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9u
c2UmJiByZXNwb25zZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7
CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1v
dmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXIuY3BwCmluZGV4IGQ2Mjk2NjA1MTY3NzRjNDlmM2NiYTVmMDg0ZDZjMGU0ZmE3
ZjhlMDkuLmE0MmViN2M5MTY3ZjBlN2Q4YmNmMzU2NTlhZDlhYTRiZmFmZGYwNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXIuY3BwCkBAIC0xMTIsNiArMTEyLDggQEAgdm9pZCBOZXR3b3JrSFRUUFNVcGdy
YWRlQ2hlY2tlcjo6cXVlcnkoU3RyaW5nJiYgaG9zdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LAogICAgICAgICBpZiAoc3RlcFJlc3VsdCAhPSBTUUxJVEVfUk9XICYmIHN0ZXBSZXN1bHQgIT0g
U1FMSVRFX0RPTkUpIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAic3RlcCBmYWlsZWQgd2l0aCBlcnJvciBj
b2RlICVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1Ymxp
Y31zIiwgc3RlcFJlc3VsdCwgbV9kYXRhYmFzZS0+bGFzdEVycm9yTXNnKCksIG5ldHdvcmtIVFRQ
U1VwZ3JhZGVDaGVja2VyRGF0YWJhc2VQYXRoKCkudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAg
ICAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHNlc3Npb25JRCk7CiAjZW5kaWYKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRl
eCA2ZWRjMjUxOTNmNGNlODU5Yjc2NGIzZWMwYTViYzVmY2E3ODlkMGE4Li45ZTBiNjgyY2RlZDJh
ZmJiZjU3YTAyODQ5ZGMzYjc5ZDc5YTc2NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC02MiwxMSArNjIsMTcgQEAg
TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBOZXR3b3JrUmUKICAgICAsIG1fcHJlZmxpZ2h0UG9saWN5KHByZWZsaWdo
dFBvbGljeSkKICAgICAsIG1fcmVmZXJyZXIoV1RGTW92ZShyZWZlcnJlcikpCiAgICAgLCBtX3No
b3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFOZXR3
b3JrTG9hZE1ldHJpY3MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBtX2lzSFRUUFNVcGdy
YWRlRW5hYmxlZChpc0hUVFBTVXBncmFkZUVuYWJsZWQpCisjZW5kaWYKICAgICAsIG1fcmVxdWVz
dExvYWRUeXBlKHJlcXVlc3RMb2FkVHlwZSkKICAgICAsIG1fc2NoZW1lUmVnaXN0cnkoc2NoZW1l
UmVnaXN0cnkpCiAgICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcihtYWtlV2Vha1B0cihuZXR3
b3JrUmVzb3VyY2VMb2FkZXIpKQogeworI2lmICFQTEFURk9STShDT0NPQSkKKyAgICBVTlVTRURf
UEFSQU0oaXNIVFRQU1VwZ3JhZGVFbmFibGVkKTsKKyNlbmRpZgorCiAgICAgbV9pc1NhbWVPcmln
aW5SZXF1ZXN0ID0gaXNTYW1lT3JpZ2luKG1fdXJsLCBtX29yaWdpbi5nZXQoKSk7CiAgICAgc3dp
dGNoIChvcHRpb25zLmNyZWRlbnRpYWxzKSB7CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRl
bnRpYWxzOjpJbmNsdWRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmgKaW5kZXggOWU0ZGNiMDQ1NWE1ZWFlY2JjNDdhZjIxNjc0ZGNkMGI3
MGNkZDljNi4uNGQ5Y2E5NmE4NzUxMGMwNzhiNmM5MmI3YzQzZDI0NTk4MThmYWVjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBA
IC0xNTMsNyArMTUzLDExIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAg
Ym9vbCBtX2NoZWNrQ29udGVudEV4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91
bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgeyBmYWxzZSB9OworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgYm9vbCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07Cisj
ZW5kaWYKKwogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3JtYXRpb24gbV9sb2FkSW5mb3Jt
YXRpb247CiAKICAgICBMb2FkVHlwZSBtX3JlcXVlc3RMb2FkVHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCBlOGRiYmUyNzNiM2JkNDI0MTc0YmRjOTAz
ZDc2NGIxYTJiMDU3NWQ0Li5hNzNkZDQzMzUzZmYwNjg4MmM4OTkwYjNkZmVkNzgyMmMzZGQyMjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0yNzEsNyAr
MjcxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVNjZW5lU3RhdGUo
KQogICAgICAgICAgICAgZm9yIChhdXRvJiBjb21wb3NpdGlvbkxheWVyIDogbV9uaWNvc2lhLnN0
YXRlLmxheWVycykgewogICAgICAgICAgICAgICAgIGF1dG8mIGxheWVyID0gdGV4bWFwTGF5ZXIo
KmNvbXBvc2l0aW9uTGF5ZXIpOwogICAgICAgICAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPmNv
bW1pdFN0YXRlKAotICAgICAgICAgICAgICAgICAgICBbdGhpcywgJmxheWVyLCAmY29tcG9zaXRp
b25MYXllciwgJmxheWVyc0J5QmFja2luZ10KKyAgICAgICAgICAgICAgICAgICAgWyZsYXllciwg
JmxheWVyc0J5QmFja2luZ10KICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IE5pY29zaWE6OkNv
bXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIGxheWVyU3RhdGUpCiAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXllclN0YXRlLmRlbHRhLnBvc2l0
aW9uQ2hhbmdlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwCmluZGV4IGJjYjIzNTk3NWIxMzNkMmUyNzY3NmQyODNmZTg5
MTM4MWEwZDVkMWMuLmI4YzczMDNlNzU5YzAwNGQzYzk3Yzc4Y2IyN2M5ZTdkMGMzZTVmMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmNwcApAQCAtMTY3LDcgKzE2Nyw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpm
b3JjZVJlcGFpbnQoKQogICAgIC8vIGluIGEgd2F5IHRoYXQgZG9lc24ndCBzdGFydmUgb3V0IHRo
ZSB1bmRlcmx5aW5nIGdyYXBoaWNzIGJ1ZmZlcnMuCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNF
KFdQRV9SRU5ERVJFUikKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5j
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gY2hhbmdlKG1faW5Gb3JjZVJlcGFpbnQsIHRydWUpOwogICAgICAgICByZW5k
ZXJMYXllclRyZWUoKTsKICAgICB9KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRD
b21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA0OTA2NDBkNTQzYjMx
MWM0YWY3MTAxNTNhNTAxZDE4ZDg0M2Y0ZjUwLi5mY2QyZTQ4ODg5OTlkMDUyZTAyNGE1ZDMyYTU5
MzQ5N2Q2ZGViYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuaApAQCAtMTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAKICAg
ICB1aW50NjRfdCBtX25hdGl2ZVN1cmZhY2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlcjo6UGFpbnRGbGFncyBtX3BhaW50RmxhZ3MgeyAwIH07Ci0gICAgYm9vbCBtX2luRm9yY2VS
ZXBhaW50IHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRlZENvdW50IHsgMCB9Owog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV9jb21wb3NpdGluZ1J1
bkxvb3A7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXROYXZpZ2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwCmluZGV4IDU0ZWYwYjRlNWE5MWU0ZDg1NDc4MmIw
ZjIzNWRmMmRlMTE5YzVhMWEuLjc4NzY0NDM5YTQ3NWIyMzlkMDcyZDczOTQwMWE4Mjg1MDg3MTM5
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5h
dmlnYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRp
b25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50OgorICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjo6UmVxdWVzdGVkQnlOZXR3b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9j
ZXNzVGVybWluYXRpb25SZWFzb246Ok5hdmlnYXRpb25Td2FwOgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNw
cAppbmRleCBlM2Y0Zjg1NDY5YzlkMTU5ZTI1YmQ1ODI2YTczZmQwY2EzMzVlZTQwLi5iNjU1MWVh
YmY1YzJiYmQ4Y2M0ZDQ4MmY0Y2YwNTJlYmVlOTRjMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJ
bnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC02MCw3ICs2MCw2IEBAIHByaXZhdGU6CiB9
OwogCiBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3Rv
Y29sSGFuZGxlcihXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiB7CiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoY29u
dGV4dCwgImluc3BlY3RvciIsIFtdKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdw
b2ludGVyIHVzZXJEYXRhKSB7CiAgICAgICAgIHN0YXRpY19jYXN0PFJlbW90ZUluc3BlY3RvclBy
b3RvY29sSGFuZGxlcio+KHVzZXJEYXRhKS0+aGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVj
dG9yUHJvdG9jb2xIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCmluZGV4IGM0ODczZTc1NjZkNTU1
YmJiNGE3NzM5MmRmNzIyNWEzMTRjMjZkYzIuLmY2YTBkMDExMjMzODMwOGUxODExMDA4ODFiOGJk
ZTRmNWJlYzc4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIu
aApAQCAtNDksNyArNDksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFyZ2V0TGlzdENoYW5nZWQo
UmVtb3RlSW5zcGVjdG9yQ2xpZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xv
c2VkKFJlbW90ZUluc3BlY3RvckNsaWVudCYpIG92ZXJyaWRlOwogCi0gICAgV2ViS2l0V2ViQ29u
dGV4dCogbV9jb250ZXh0IHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlSW5zcGVjdG9yQ2xpZW50Pj4gbV9pbnNwZWN0b3JDbGllbnRzOwogICAg
IEhhc2hTZXQ8V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyKj4gbV91c2VyQ29udGVudE1hbmFnZXJz
OwogICAgIEhhc2hTZXQ8V2ViS2l0V2ViVmlldyo+IG1fd2ViVmlld3M7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTBhMDg2MTFmOTkzN2UyZGQ1
NDYzODg2NmI5YmE4NDM4NDVmOWVjNy4uMTkxNDRkODVmZGI0ODBiYTY1MmI3NmFmMjk0YjA1NzIy
ZmMwMGEwNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBv
biBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMu
Y3BwOgorICAgICAgICAodGVzdERvd25sb2FkTUlNRVR5cGUpOgorICAgICAgICAodGVzdENvbnRl
eHRNZW51RG93bmxvYWRBY3Rpb25zKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwOgorCiAyMDIwLTAzLTE4ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIE1pZ3JhdGUgdG8g
RmxhdHBhay1iYXNlZCBkZXYgU0RLCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCAxOTdkMjEzZWU3
YTI3YzEzNWExNDYzYjRlOTU4ZmJlMDJiNTJhMDc5Li5hZmFkYmM1MzkyMjNlNGIyYzY1ZmY2MDA2
NzNkNWFjYThhZGU2NmMxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKQEAgLTEyMzksNiArMTIzOSw4
IEBAIFRFU1QoVHJhbnNmb3JtYXRpb25NYXRyaXgsIENhc3RpbmcpCiAgICAgRVhQRUNUX0RPVUJM
RV9FUSgzLjAsIGNhRnJvbVdLLm00Mik7CiAgICAgRVhQRUNUX0RPVUJMRV9FUSgyLjAsIGNhRnJv
bVdLLm00Myk7CiAgICAgRVhQRUNUX0RPVUJMRV9FUSgxLjAsIGNhRnJvbVdLLm00NCk7CisjZWxz
ZQorICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXN0KTsKICNlbmRpZgogCiAjaWYgVVNFKENHKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dEF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBjZGFiNGFlZWRlZjU1ZmYzZmFiM2UzMzZlNDIz
MDBjYmFiZDhlYTRkLi41YWU0NGQ0Njc3ZTY5MjVhNWE5NGY3OWQ2MmI5OTlkZjgyNTQyZTJiIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9t
YXRpb25TZXNzaW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldENvbm5lY3Rpb24oUmVmPFNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlv
bikKICAgICB7Ci0gICAgICAgIGdfYXNzZXJ0X3RydWUoY29ubmVjdGlvbi5wdHIoKSk7CiAgICAg
ICAgIG1fY29ubmVjdGlvbiA9IFdURk1vdmUoY29ubmVjdGlvbik7CiAgICAgICAgIGdfbWFpbl9s
b29wX3F1aXQobV9tYWluTG9vcC5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwCmluZGV4IGUwMzkx
OTljMTcyZWM3ZDIzZDkyNGUwOWU5M2RjMGY4OGRmMTExNGMuLmY3MzNlODE4M2FjZjAyM2U3ZGVi
ZGIxZDZhNGY5ODVkYzIwMWM0ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0RG93bmxvYWRzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdERvd25sb2Fkcy5jcHAKQEAgLTY3MiwxNCArNjcyLDE0IEBA
IHN0YXRpYyB2b2lkIHRlc3REb3dubG9hZE1JTUVUeXBlKERvd25sb2FkVGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKICAgICBldmVudHMuY2xlYXIoKTsKIAogICAgIFdlYktpdFVSSVJlcXVlc3Qq
IHJlcXVlc3QgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3JlcXVlc3QoZG93bmxvYWQuZ2V0KCkpOwot
ICAgIFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdF
QktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdl
YmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9y
UGF0aCgiL3Vua25vd24iKSk7CiAKICAgICBhdXRvIGhlYWRlcnMgPSB3ZWJraXRfdXJpX3JlcXVl
c3RfZ2V0X2h0dHBfaGVhZGVycyhyZXF1ZXN0KTsKICAgICBnX2Fzc2VydF9ub25udWxsKHNvdXBf
bWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIlVzZXItQWdlbnQiKSk7CiAKICAgICBX
ZWJLaXRVUklSZXNwb25zZSogcmVzcG9uc2UgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3Jlc3BvbnNl
KGRvd25sb2FkLmdldCgpKTsKLSAgICBXRUJLSVRfSVNfVVJJX1JFU1BPTlNFKHJlc3BvbnNlKTsK
KyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVTUE9OU0UocmVzcG9uc2UpKTsKICAg
ICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3VyaV9yZXNwb25zZV9nZXRfbWltZV90eXBlKHJlc3Bv
bnNlKSwgPT0sICJhcHBsaWNhdGlvbi9wZGYiKTsKIAogICAgIGdfYXNzZXJ0X25vbm51bGwod2Vi
a2l0X2Rvd25sb2FkX2dldF9kZXN0aW5hdGlvbihkb3dubG9hZC5nZXQoKSkpOwpAQCAtNzM5LDcg
KzczOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RDb250ZXh0TWVudURvd25sb2FkQWN0aW9ucyhXZWJW
aWV3RG93bmxvYWRUZXN0KiB0ZXN0LCBnY29uc3Rwb2luCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0
LT5tX3dlYlZpZXcgPT0gd2Via2l0X2Rvd25sb2FkX2dldF93ZWJfdmlldyh0ZXN0LT5tX2Rvd25s
b2FkLmdldCgpKSk7CiAKICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0ID0gd2Via2l0X2Rv
d25sb2FkX2dldF9yZXF1ZXN0KHRlc3QtPm1fZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9J
U19VUklfUkVRVUVTVChyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklf
UkVRVUVTVChyZXF1ZXN0KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVx
dWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Rlc3Qu
cGRmIikpOwogCiAgICAgYXV0byBoZWFkZXJzID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF9odHRw
X2hlYWRlcnMocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHdGsvVGVzdFByaW50aW5nLmNwcAppbmRleCA1NDhhOTgxYzFiNDIyMzgyYzZiZGZlMjBh
MDE3Nzk3ZWE2Nzc3MjAwLi43MGY3MDlkYzE5MmZlZGMxNThkNzliM2Y1MDViZTYzZjY0NTgxYzc3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJp
bnRpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQ
cmludGluZy5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgR1Jl
ZlB0cjxXZWJLaXRQcmludE9wZXJhdGlvbj4gbV9wcmludE9wZXJhdGlvbjsKLSAgICB1bnNpZ25l
ZCBtX2V4cGVjdGVkRXJyb3I7CisgICAgaW50IG1fZXhwZWN0ZWRFcnJvcjsKIH07CiAKIHN0YXRp
YyB2b2lkIHRlc3RQcmludE9wZXJhdGlvblByaW50KFByaW50VGVzdCogdGVzdCwgZ2NvbnN0cG9p
bnRlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393966</attachid>
            <date>2020-03-19 04:42:03 -0700</date>
            <delta_ts>2020-03-19 06:08:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200319114202.patch</filename>
            <type>text/plain</type>
            <size>38292</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
YTI3MTQyYjk4OWU2MTUxODk0MzlhZDg2MmEwMjViZTIzN2Q0Yjk3Li5kMTY5OTI3YTc1ODJmN2Nm
OGE1YWY5NGRjOGQ1OThmNTE4YWI4NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4
Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6
ZGVwcmVjYXRlZFZNIGNvbnN0KTogQSByZWZlcmVuY2UgbWF5IG5vdCBiZSBOVUxMLCBzbworICAg
ICAgICB0aGlzIEFTU0VSVCgpIGNhbiBuZXZlciB0cmlwLgorCiAyMDIwLTAzLTE3ICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRGVsZXRlSUMgcGF0
Y2hwb2ludCBpbiBGVEwgc2hvdWxkIHJlcXVpcmUgdGFnIGFuZCBtYXNrIHJlZ2lzdGVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRl
eCBmN2YzNDQ3NTM5OGM0OWI1YzQ2YzJjZjk3ZTY1ODI1YzJjNDZkMGNmLi42OTk4MDY1YTA5ZGY4
NjNhNTk1MTBiYTc0ZGQzMjBhOWM3NDc5NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAz
LTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBGaXgg
bWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiB3dGYvTG9nZ2VySGVs
cGVyLmg6IFdoZW4gdGhlIFJFTEVBU0VfTE9HIGlzIGRpc2FibGVkLCBhdm9pZCB3YXJuaW5nCisg
ICAgICAgIHNwYW0gYWJvdXQgdW51c2VkIGNoYW5uZWwgbmFtZXMuIENhbGwgc2l0ZXMgb2Z0ZW4g
Y3JlYXRlIGxvY2FscyBmb3IKKyAgICAgICAgdGhlIGNoYW5uZWwgbmFtZSBvdXRzaWRlIG9mIFJF
TEVBU0VfTE9HIGlmZGVmJ3MsIHdoaWNoIGNhdXNlIG1hbnkKKyAgICAgICAgdW51c2VkIHZhcmlh
YmxlIHdhcm5pbmdzLgorCiAyMDIwLTAzLTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjU0ODU2KSBBZGQgZXhjZXB0
aW9uIGZvciB3aW5kb3cub3BlbkRhdGFiYXNlIHRvIG5vdCBtYXNxdWVyYWRlIGFzIHVuZGVmaW5l
ZCBpbiBjdXJyZW50bHkgc2hpcHBpbmcgSmVzdXMgQ2FsbGluZyBEZXZvdGlvbmFsIGFwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGJmMGM0ZmI0MDkwMzczNTk2OWY0ZDAwOGNjMjA2ZDA4Y2RhMzA0NGUuLjNhMGFh
MDc1MzFkYzFiOGE4MzEwMjJjOTdlMzg5NjFkZWRkNzI1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+
CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02
NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
IFdhcm5pbmcgZml4ZXMsIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5czo6TWVk
aWFLZXlzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuaDogVGhlIG1fbnVtYmVyT2ZGcmFtZXMgaXZhcgorICAgICAgICBpcyBwbGF0Zm9ybS1zcGVj
aWZpYy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckdMRGF0YTo6Z2V0U3RhdGljVkJPKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaDogVGhlcmUgYXJlCisgICAg
ICAgIHN0aWxsIHZpcnR1YWwgbWV0aG9kcyBpbiB0aGlzIGNsYXNzLCBidXQgbm8gdmlydHVhbCBk
ZXN0cnVjdG9yLiBTaW5jZQorICAgICAgICB0aGlzIHdvbid0IGJlIHN1YmNsYXNzZWQgZnVydGhl
ciAoSSBkb3VidCwgYW55d2F5ISkgbGV0cyBtYWtlIGl0IGZpbmFsCisgICAgICAgIGFuZCBwbHVn
IHRoZSBidWcuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaDogU2VlCisgICAgICAgIEF1ZGlv
Q2FwdHVyZXIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVy
VmlkZW9EZWNvZGVyOjpSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpJbXBsZW1lbnRhdGlvbk5h
bWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDogVGhlCisg
ICAgICAgIGVuY29kZXIgd2FzIGJlaW5nIHVzZWQgdW5pbml0aWFsaXplZCwgYW5kIGhlbmNlIGNv
ZGVjIHN1cHBvcnQgY2FuIG5vdAorICAgICAgICBiZSB3b3JraW5nIGFzIGludGVuZGVkLiBGaXgg
dGhhdCBidWcuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29kZXI6OkFkZENv
ZGVjSWZTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVy
OjpJbml0RW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVv
RW5jb2Rlcjo6R2V0RW5jb2RlckluZm8gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29r
aWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6IENvbmRpdGlv
biB0aGUgYmVhciB0cmFwIG9uIENvY29hCisgICAgICAgIHBsYXRmb3JtIHdoZXJlIHRoZSBjcmFz
aCBpcyBiZWluZyBzZWVuLiBPbiBHVEsgdGhlc2UgdHJhcHMgZ2VuZXJhdGUKKyAgICAgICAgd2Fy
bmluZyBzcGFtIGFuZCB3ZSBkb24ndCBzZWUgdGhlIGNyYXNoIGhlcmUuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVhZFByZWZlcmVuY2VJbnRlZ2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5jb2RlZFByZWZlcmVuY2VWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcpOgorCiAyMDIwLTAzLTE4ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIE1pZ3JhdGUgdG8gRmxhdHBhay1iYXNlZCBkZXYgU0RLCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCmluZGV4IDQz
Y2RiZDBmMTdhOWZhODMzZGUwOGI5ZDFiMzU3YjUxYWNmZmEwMTYuLjdjYmZiZjc5MzU1NWI4MWM4
NzhlODAyMzkyM2MwZmMyNjIxNTIzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDMtMTYgIENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVi
dWcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkx
NDYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpuZXdXaW5kb3cpOgorICAgICAg
ICAoV2ViRHJpdmVyOjpTZXNzaW9uOjplbGVtZW50SXNGaWxlVXBsb2FkKToKKyAgICAgICAgKFdl
YkRyaXZlcjo6U2Vzc2lvbjo6ZWxlbWVudElzRWRpdGFibGUpOgorICAgICAgICAoV2ViRHJpdmVy
OjpTZXNzaW9uOjpzZXRJbnB1dEZpbGVVcGxvYWRGaWxlcyk6CisKIDIwMjAtMDItMTIgIENhcmxv
cyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgV2Vi
RHJpdmVyOiByZXR1cm4gaW52YWxpZFNlc3Npb25JRCBleGNlcHRpb24gaWYgdGhlIFdlYlByb2Nl
c3MgZG9lc24ndCByZXNwb25kIChjcmFzaGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3Yzg5NDkwOWJkNzk2YmEw
NzY5ZjBiNWM2MzA2ODg5NTAwNGYwYTkzLi4xOTRlNThlOTE0MWQ1YjAxNWI0NjZhZjE2Y2VmYjg4
NzhkMjk1NjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTE2ICBDaGFybGll
IFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5n
cyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRU
UFNVcGdyYWRlQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtIVFRQU1VwZ3Jh
ZGVDaGVja2VyOjpxdWVyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmNwcDogVGhlIG1faXNIVFRQU1VwZ3JhZGVFbmFibGVkCisgICAgICAgIGl2YXIgaXMg
b25seSB1c2VkIG9uIENvY29hIHBsYXRmb3Jtcywgb24gR1RLIGl0IGlzIGNhdXNpbmcgd2Fybmlu
ZworICAgICAgICBzcGFtLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6Ok5l
dHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjp1cGRhdGVTY2VuZVN0YXRlKToKKyAgICAgICAgKgorICAgICAgICBTaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgbV9pbkZvcmNlUmVwYWludCBpcyBub3QgYmVpbmcgdXNlZCBhbnltb3JlLgor
ICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmZvcmNlUmVwYWludCk6CisgICAg
ICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVh
ZGVkQ29tcG9zaXRvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZp
Z2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1v
dGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmg6CisKIDIwMjAtMDMtMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6bV9zaXplIHNob3VsZCBiZSBt
b3JlIGNvbnNpc3RlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElu
bGluZXMuaAppbmRleCAyZGFmN2JjMGRkYjM3ZTQwZjczMDljYTFkNjI3MDM2Yzc4YjE4YWY5Li4x
YzlkMTMyNDhhOTMyNGZhZjUyYTJjOGZhMDEwNzA2MjYxMTA0MzNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0xNDIsNyArMTQyLDYgQEAg
QUxXQVlTX0lOTElORSBWTSYgQ2FsbEZyYW1lOjpkZXByZWNhdGVkVk0oKSBjb25zdAogewogICAg
IEpTQ2VsbCogY2FsbGVlID0gdGhpcy0+Y2FsbGVlKCkuYXNDZWxsKCk7CiAgICAgQVNTRVJUKGNh
bGxlZSk7Ci0gICAgQVNTRVJUKCZjYWxsZWUtPnZtKCkpOwogICAgIHJldHVybiBjYWxsZWUtPnZt
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oIGIvU291
cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKaW5kZXggOWViNzNiYTZlMGZkOTRjMDQ4ZGQ1OTNi
NWZmNTI5MTY4MGI2ZGYzMC4uNTQyYzIzNGZhZmZmNTE4ZmRmYjViZGNhODhkMzkzZmRmN2JiNDEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKKysrIGIvU291cmNl
L1dURi93dGYvTG9nZ2VySGVscGVyLmgKQEAgLTg5LDE0ICs4OSwxMyBAQCBwdWJsaWM6CiAKICNk
ZWZpbmUgTE9HSURFTlRJRklFUiAoV1RGOjpudWxsb3B0KQogCi0jZGVmaW5lIEFMV0FZU19MT0co
Li4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgKCh2b2lkKTAp
Ci0jZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIFdBUk5JTkdf
TE9HKC4uLikgICAgKCh2b2lkKTApCi0jZGVmaW5lIE5PVElDRV9MT0coLi4uKSAgICAgKCh2b2lk
KTApCi0jZGVmaW5lIElORk9fTE9HKC4uLikgICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIERFQlVH
X0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIFdJTExfTE9HKF9sZXZlbF8pICAgZmFs
c2UKKyNkZWZpbmUgQUxXQVlTX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShj
aGFubmVsTmFtZSkpCisjZGVmaW5lIEVSUk9SX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgIChVTlVT
RURfUEFSQU0oY2hhbm5lbE5hbWUpKQorI2RlZmluZSBXQVJOSU5HX0xPRyhjaGFubmVsTmFtZSwg
Li4uKSAoVU5VU0VEX1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUgTk9USUNFX0xPRyhjaGFu
bmVsTmFtZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkpCisjZGVmaW5lIElORk9f
TE9HKGNoYW5uZWxOYW1lLCAuLi4pICAgIChVTlVTRURfUEFSQU0oY2hhbm5lbE5hbWUpKQorI2Rl
ZmluZSBERUJVR19MT0coY2hhbm5lbE5hbWUsIC4uLikgICAoVU5VU0VEX1BBUkFNKGNoYW5uZWxO
YW1lKSkKKyNkZWZpbmUgV0lMTF9MT0coX2xldmVsXykgICAgZmFsc2UKIAogI2RlZmluZSBBTFdB
WVNfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgKCh2b2lkKTApCiAjZGVmaW5lIEVSUk9SX0xP
R19JRihjb25kaXRpb24sIC4uLikgICAgICAoKHZvaWQpMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAppbmRleCBhODljZDQwMDNk
NzFlZWFmOTEwN2E0NTdiNDQzZmI3ZTMwYzU1MzI3Li5jNGI2OTg0MmY1MTUyNWI5ODRiYmQwOTdm
NzkyZGYyMDE3MmI2NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC02Myw2ICs2Myw4IEBAIE1lZGlhS2V5czo6TWVk
aWFLZXlzKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIs
IGJvb2wgcGVyCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9pbnN0YW5jZS0+
c2V0TG9nZ2VyKGRvY3VtZW50LmxvZ2dlcigpLCBtX2xvZ0lkZW50aWZpZXIpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgbV9pbnN0YW5jZS0+c2V0Q2xp
ZW50KG1ha2VXZWFrUHRyKHRoaXMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggZmM2ZGRiOGU2
ZDJiODcwMzZkMjYyMTM4ZGVkNGM2Yzc3Nzk2YmU5ZS4uMTY3MjY4MTdkYjM3MzU0YjgxMzk1YzQz
NTYzMDM2Yzg0Yzg3MTA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKQEAgLTU4LDcgKzU4LDkgQEAgcHJp
dmF0ZToKIAogICAgIFN0cmluZyBtX2RldmljZUlkOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIHNp
emVfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcAppbmRleCA1ZDg2YWY2ZTRkYjFhMzViYWMxNTg4YTA5ZmU4ZWVhNDRkNjM1NDg4Li4yM2U2
ZmYzZTUzY2NhZmM3NWI2ZDViMmRiY2RmMmQwZmYxY2NkM2U0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTMzMCw4ICszMzAsNyBAQCB2
b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNv
dXJjZUxvYWRlcikKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+
bG9hZFJlc291cmNlKGZyYW1lLCAqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgbV9vcHRpb25zLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
Pih0aGlzKSwgZnJhbWVSZWYgPSBtYWtlUmVmKGZyYW1lKSwgbG9nZ2luZ0FsbG93ZWQgPSBjYWNo
ZWRSZXNvdXJjZUxvYWRlci5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKV0gKFJlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpIHsKICAgICAgICAgbV9sb2FkZXIgPSBXVEZNb3ZlKGxv
YWRlcik7CiAgICAgICAgIGlmICghbV9sb2FkZXIpIHsKLSAgICAgICAgICAgIGF1dG8mIGZyYW1l
ID0gZnJhbWVSZWYuZ2V0KCk7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihsb2dnaW5nQWxs
b3dlZCwgTmV0d29yaywgIiVwIC0gW3BhZ2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1
NjQgIl0gQ2FjaGVkUmVzb3VyY2U6OmxvYWQ6IFVuYWJsZSB0byBjcmVhdGUgU3VicmVzb3VyY2VM
b2FkZXIiLCB0aGlzLCBQQUdFX0lEKGZyYW1lKSwgRlJBTUVfSUQoZnJhbWUpKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGKGxvZ2dpbmdBbGxvd2VkLCBOZXR3b3JrLCAiJXAgLSBbcGFnZUlE
PSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiXSBDYWNoZWRSZXNvdXJjZTo6bG9hZDog
VW5hYmxlIHRvIGNyZWF0ZSBTdWJyZXNvdXJjZUxvYWRlciIsIHRoaXMsIFBBR0VfSUQoZnJhbWVS
ZWYuZ2V0KCkpLCBGUkFNRV9JRChmcmFtZVJlZi5nZXQoKSkpOwogICAgICAgICAgICAgZmFpbEJl
Zm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKaW5kZXggOTZlMzA0MzEyNjllNGQ4MmIxYzEwNzcxOWU3MDViODEzMmE2Mjdh
NC4uZmJhMTEyMDc4ZDY0OGVjM2EyYTdkMjkxZDA0YzgwNGY5NzFlNDQ1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTERhdGE6
OmluaXRpYWxpemVTdGVuY2lsKCkKIEdMdWludCBUZXh0dXJlTWFwcGVyR0xEYXRhOjpnZXRTdGF0
aWNWQk8oR0xlbnVtIHRhcmdldCwgR0xzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92Ym9zLmVuc3VyZShkYXRhLAotICAgICAgICBbdGhp
cywgdGFyZ2V0LCBzaXplLCBkYXRhXSB7CisgICAgICAgIFt0YXJnZXQsIHNpemUsIGRhdGFdIHsK
ICAgICAgICAgICAgIEdMdWludCB2Ym8gPSAwOwogICAgICAgICAgICAgZ2xHZW5CdWZmZXJzKDEs
ICZ2Ym8pOwogICAgICAgICAgICAgZ2xCaW5kQnVmZmVyKHRhcmdldCwgdmJvKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuaAppbmRleCAzYjYxYmM5MWViM2FhZmMxYjMzMmE5OGNlNTA0YWQ5N2YzYTZiZjAxLi5i
MDdiZTYwOWM2MzIzODlkODJmMmRmODEwYTk1MDA5M2QxYTZmNGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oCkBAIC03MCw3ICs3MCw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8UmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U+IG1fc291cmNlOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBt
X2N1cnJlbnRTZXR0aW5nczsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB1aW50NjRf
dCBtX2Nsb25lQ291bnRlciB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmgKaW5kZXggOWFh
Zjc2MWQ2YzRiNDNjNDRlZjQ0NzExZTgzN2IwZjEyNTJkMWY1YS4uZGM3ZjI4ZmQxN2I4Yjk2Yzhi
MzZjOTdjZGQzOTllMGI4YzhkNDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVk
aW9DYXB0dXJlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlciA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7
CitjbGFzcyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckNh
cHR1cmVyIHsKIHB1YmxpYzoKICAgICBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyKEdTdHJlYW1lckNh
cHR1cmVEZXZpY2UpOwogICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYWM5ODhl
NGMwY2FjNDA2MzA2MDA2YmY0ZmIyZTc2ZTkyYzAyYjRiNi4uODdhMDhmMjkxN2JkNWU3N2RlNDI5
OGYyNGU2MjYyYjA3YmYwOWE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM4LDkgKzM4LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jb25zdCBzdGF0aWMgaW50IGRlZmF1bHRXaWR0aCA9IDY0MDsKLWNvbnN0IHN0
YXRpYyBpbnQgZGVmYXVsdEhlaWdodCA9IDQ4MDsKLQogR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtp
dF92aWRlb19jYXB0dXJlX3NvdXJjZV9kZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCB3
ZWJraXRfdmlkZW9fY2FwdHVyZV9zb3VyY2VfZGVidWcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVyLmgKaW5kZXggNTdiMGI0Njg2ZDM0YWUwYzExNTRhNzNmZDRhNGI5
ZWQ1YzQwZTY5NS4uNDQ2MDI4ZDBiOGU0MDQwZmViZjUxNDk3NjJiMzQ3NmI1YWY2ZDVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclZpZGVvQ2FwdHVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oCkBAIC0yOSw3ICsyOSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJl
ciA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1
cmVyIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1YmxpYzoKICAgICBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwogICAgIEdTdHJlYW1l
clZpZGVvQ2FwdHVyZXIoY29uc3QgY2hhciogc291cmNlX2ZhY3RvcnkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZp
ZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCmluZGV4IGEzYmRk
NmI3MjI3Y2JiNGFjZWMzMzI3ODBhNTVkMGJhNzdkZTgzMmEuLjUzNDZlMmViZDBmYTg3ZTNlOGI3
MTMxYjdiZDkyYTEzNmY2N2MzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVh
bWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7CiAgICAgfQogCi0gICAgaW50MzJf
dCBSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sod2VicnRjOjpEZWNvZGVkSW1hZ2VDYWxs
YmFjayogY2FsbGJhY2spCisgICAgaW50MzJfdCBSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJh
Y2sod2VicnRjOjpEZWNvZGVkSW1hZ2VDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBtX2ltYWdlUmVhZHlDYiA9IGNhbGxiYWNrOwogCkBAIC0zMjAsNyArMzIwLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBjb25zdCBnY2hhciogQ2FwcygpID0gMDsKICAgICB2
aXJ0dWFsIHdlYnJ0Yzo6VmlkZW9Db2RlY1R5cGUgQ29kZWNUeXBlKCkgPSAwOwotICAgIGNvbnN0
IGNoYXIqIEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9
CisgICAgY29uc3QgY2hhciogSW1wbGVtZW50YXRpb25OYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIkdTdHJlYW1lciI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGdjaGFyKiBOYW1lKCkgPSAw
OwogCiBwcm90ZWN0ZWQ6CkBAIC0zMzYsNyArMzM2LDYgQEAgcHJpdmF0ZToKICAgICBHc3RFbGVt
ZW50KiBtX3Npbms7CiAgICAgR3N0RWxlbWVudCogbV9zcmM7CiAKLSAgICBHc3RWaWRlb0luZm8g
bV9pbmZvOwogICAgIHdlYnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIG1faW1hZ2VSZWFkeUNi
OwogCiAgICAgU3RkTWFwPEdzdENsb2NrVGltZSwgSW5wdXRUaW1lc3RhbXBzPiBtX2R0c1B0c01h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKaW5kZXggNDJm
MGNmODU3MTFhNzRkODhlYTNkYTI3M2I3OWY5MmZhMzllZTJiYS4uNmExZDRhN2E0MTAyNWQ3ZTU1
YmUyYTY0OGMwZWU2ODBhZjc1ZGVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZp
ZGVvRW5jb2Rlci5jcHAKQEAgLTY3LDE3ICs2Nyw3IEBAIHR5cGVkZWYgZW51bQogICBFTkNPREVS
X0xBU1QsCiB9IEVuY29kZXJJZDsKIAotRW5jb2RlckRlZmluaXRpb24gZW5jb2RlcnNbRU5DT0RF
Ul9MQVNUXSA9IHsKLSAgRkFMU0UsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEws
Ci0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi19OworRW5jb2RlckRlZmluaXRp
b24gZW5jb2RlcnNbRU5DT0RFUl9MQVNUXSA9IHsgeyB9IH07CiAKIHR5cGVkZWYgc3RydWN0CiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5j
cHAKaW5kZXggYTJmZGRhNWZmYTUwOTNjY2I3NWRjZDZjOGVjNDdlZmYxYmI4YzllYi4uMGE1ZGQ5
YzEzZjdkZmY1NWY4MDgzNTVkYmY3OWEzYWYyNjE4MjViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rl
ckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApAQCAtMTAwLDcgKzEwMCw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGVsZW07CiAgICAgfQogCi0gICAgaW50MzJfdCBJ
bml0RW5jb2RlKGNvbnN0IHdlYnJ0Yzo6VmlkZW9Db2RlYyogY29kZWNTZXR0aW5ncywgaW50MzJf
dCwgc2l6ZV90KQorICAgIGludDMyX3QgSW5pdEVuY29kZShjb25zdCB3ZWJydGM6OlZpZGVvQ29k
ZWMqIGNvZGVjU2V0dGluZ3MsIGludDMyX3QsIHNpemVfdCkgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGVjU2V0dGluZ3MsIFdFQlJUQ19WSURFT19DT0RF
Q19FUlJfUEFSQU1FVEVSKTsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29kZWNTZXR0
aW5ncy0+Y29kZWNUeXBlID09IENvZGVjVHlwZSgpLCBXRUJSVENfVklERU9fQ09ERUNfRVJSX1BB
UkFNRVRFUik7CkBAIC0xODgsNyArMTg4LDggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgVmlkZW9FbmNvZGVyOjpFbmNvZGVySW5mbyBHZXRFbmNvZGVySW5mbygpIGNvbnN0IHsK
KyAgICBWaWRlb0VuY29kZXI6OkVuY29kZXJJbmZvIEdldEVuY29kZXJJbmZvKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICB7CiAgICAgICAgIEVuY29kZXJJbmZvIGluZm87CiAgICAgICAgIGluZm8uc3Vw
cG9ydHNfbmF0aXZlX2hhbmRsZSA9IGZhbHNlOwogICAgICAgICBpbmZvLmltcGxlbWVudGF0aW9u
X25hbWUgPSAiR1N0cmVhbWVyIjsKQEAgLTI5OCwxMCArMjk5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBBZGRDb2RlY0lmU3VwcG9ydGVkKHN0ZDo6dmVjdG9yPHdlYnJ0Yzo6U2RwVmlkZW9Gb3Jt
YXQ+KiBzdXBwb3J0ZWRGb3JtYXRzKQogICAgIHsKLSAgICAgICAgR3N0RWxlbWVudCogZW5jb2Rl
cjsKLQotICAgICAgICBpZiAoY3JlYXRlRW5jb2RlcigpLmdldCgpICE9IG51bGxwdHIpIHsKLSAg
ICAgICAgICAgIHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQgZm9ybWF0ID0gQ29uZmlndXJlU3VwcG9y
dGVkQ29kZWMoZW5jb2Rlcik7CisgICAgICAgIGlmIChhdXRvIGVuY29kZXIgPSBjcmVhdGVFbmNv
ZGVyKCkpIHsKKyAgICAgICAgICAgIHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQgZm9ybWF0ID0gQ29u
ZmlndXJlU3VwcG9ydGVkQ29kZWMoZW5jb2Rlci5nZXQoKSk7CiAKICAgICAgICAgICAgIHN1cHBv
cnRlZEZvcm1hdHMtPnB1c2hfYmFjayhmb3JtYXQpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlk
ZW9FbmNvZGVyRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaAppbmRleCAxNDgzYTJiMjBi
MzUxNWM3MWI3YTBjN2E1MjI2MjZlOWZmNTM5MjA0Li4xZWFjMTk3MGMxMzJjMzUxYjgzYzg5NjQ3
ZTIyMGFiYjkwZWVjYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRl
b0VuY29kZXJGYWN0b3J5LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9ybWF0PiBHZXRTdXBwb3J0ZWRGb3JtYXRz
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNv
ZGVyPiBDcmVhdGVWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpIGZp
bmFsOwotICAgIENvZGVjSW5mbyBRdWVyeVZpZGVvRW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZp
ZGVvRm9ybWF0JikgY29uc3QKKyAgICBDb2RlY0luZm8gUXVlcnlWaWRlb0VuY29kZXIoY29uc3Qg
d2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBH
U1RfRklYTUUoIkRldGVjdCB3ZXRoZXIgdGhlIGRlY29kZXIgaXMgSFcgYWNjZWxlcmF0ZWQiKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDRmZGJiYWI4ODljZTE5
YzMzNzdkMTczMzFjMzkzYmQwZGIwMmUyNWQuLjAwMDE1YTI5MDRjNjRjNWM4MWUzMmU1MzJlN2Ux
NDg4N2I3ZTFiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMx
Nyw2ICszMTcsOCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llcyhjb25z
dCBWZWN0b3I8Q29va2llPiYgY29va2llcywgY29uc3QgVVJMJgogCiAgICAgICAgIHNvdXBfY29v
a2llX2phcl9hZGRfY29va2llX2Z1bGwoY29va2llU3RvcmFnZSgpLCBjb29raWUudG9Tb3VwQ29v
a2llKCksIG9yaWdpbi5nZXQoKSwgZmlyc3RQYXJ0eVVSSS5nZXQoKSk7CiAjZWxzZQorICAgICAg
ICBVTlVTRURfUEFSQU0odXJsKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwog
ICAgICAgICBzb3VwX2Nvb2tpZV9qYXJfYWRkX2Nvb2tpZShjb29raWVTdG9yYWdlKCksIGNvb2tp
ZS50b1NvdXBDb29raWUoKSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggOGZjNjUwNDhiOWZlMjY4YWY4YmY1NDdi
M2U3MzhkYTJmMDhlODVmNi4uOTU3NWUzMzdhYThiZjNjZjcwNzhlMmZmN2ZlZGUyMGY5MThlMmNm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApA
QCAtNDMsNyArNDMsNyBAQCBjbGFzcyBUaWxlZEJhY2tpbmc7CiBjbGFzcyBUcmFuc2Zvcm1hdGlv
bk1hdHJpeDsKIAogCi0jaWYgX19XT1JEU0laRSA9PSA2NAorI2lmIF9fV09SRFNJWkUgPT0gNjQg
JiYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIFVTRV9PV05JTkdfTEFZRVJfQkVBUl9UUkFQIDEK
ICNkZWZpbmUgQkVBUl9UUkFQX1ZBTFVFIDB4RUVFRUVFRUVFRUVFRUVFRQogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCBlYzY4NDBk
ZDE4MDZlNjI2NDgxMDNhNWFjZDYzMjE2MzBlOWEyOTYzLi4zZmI2ZDhkYjA0YTE2ZTU3MGNlODg4
YWIyMDQ2OGNmMmYyZDYyZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQWR3YWl0YS5oCkBAIC02Miw4ICs2Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYWlu
dFNlYXJjaEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSBmaW5hbDsKIAogICAgIGJvb2wgcG9wc01lbnVCeVNwYWNlT3JSZXR1cm4oKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxl
KFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0TWVu
dUxpc3RCdXR0b25TdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKKyAg
ICB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50Kikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFJlbmRl
clN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIExlbmd0aEJveCBw
b3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgcGFpbnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKICAgICBib29sIHBhaW50TWVudUxpc3RCdXR0
b25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJCb3gmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBG
bG9hdFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3
MjYzZmE2M2U2ODI5YjNlN2ZiMjNkODk1ODc0NmUyYjg2OGIzZjc1Li5mNDc5NDJiOGZiMzM5M2Vk
YjhlNWJlYTNhMmIwNjNhNzBiYjNkOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC01NDkzLDIyICs1NDkzLDI0IEBAIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNl
SW50ZWdlcihjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiAgICAgQm9v
bGVhbiBrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCA9IGZhbHNlOwogICAgIHJldHVybiBDRlBy
ZWZlcmVuY2VzR2V0QXBwSW50ZWdlclZhbHVlKGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBk
b21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgJmtleUV4aXN0c0FuZEhhc1ZhbGlkRm9ybWF0
KTsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvbWFpbik7CisgICAgVU5VU0VEX1BBUkFNKGtl
eSk7CiAgICAgcmV0dXJuIC0xOwogI2VuZGlmCiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCi1T
dHJpbmcgSW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKGNvbnN0IFN0cmluZyYgZG9t
YWluLCBjb25zdCBTdHJpbmcmIGtleSkKK1N0cmluZyBJbnRlcm5hbHM6OmVuY29kZWRQcmVmZXJl
bmNlVmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIH0KIAotU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpCitTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5
cGUoY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25z
dCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCitTdHJpbmcgSW50
ZXJuYWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNw
cAppbmRleCA5ZmI0MDI3MDJiZGI0ODk4Y2U5ZjcwNzVmMjI5MjEwMmEzMjM1ODAxLi40Nzg1YTI2
OTY4NTNiM2I5MzRmOWQ1NWIyYWFjMWNlZDgyZjI1MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAg
LTYwOCw3ICs2MDgsNyBAQCB2b2lkIFNlc3Npb246Om5ld1dpbmRvdyhPcHRpb25hbDxTdHJpbmc+
IHR5cGVIaW50LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JgogICAgICAgICAgICAgcGFy
YW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBwYXJhbWV0ZXJz
LT5zZXRTdHJpbmcoInByZXNlbnRhdGlvbkhpbnQiX3MsIHR5cGVIaW50LnZhbHVlKCkgPT0gIndp
bmRvdyIgPyAiV2luZG93Il9zIDogIlRhYiJfcyk7CiAgICAgICAgIH0KLSAgICAgICAgbV9ob3N0
LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250ZXh0Il9zLCBXVEZNb3Zl
KHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJl
ZigpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNz
aW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICAgICAgbV9ob3N0LT5z
ZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250ZXh0Il9zLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6
Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgICAgIGlmIChyZXNwb25zZS5p
c0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNw
b25zZU9iamVjdCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xNTUwLDcgKzE1NTAs
NyBAQCB2b2lkIFNlc3Npb246OmVsZW1lbnRJc0ZpbGVVcGxvYWQoY29uc3QgU3RyaW5nJiBlbGVt
ZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbgogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJp
bmcoImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAg
ICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmdW5jdGlvbiJfcywgaXNGaWxlVXBsb2FkU2NyaXB0
KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZNb3ZlKGFyZ3Vt
ZW50cykpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAg
ICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
biJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lv
bkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25z
ZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3Bv
bnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY5Miw3ICsxNjkyLDcgQEAg
dm9pZCBTZXNzaW9uOjplbGVtZW50SXNFZGl0YWJsZShjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFIKICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJm
cmFtZUhhbmRsZSJfcywgbV9jdXJyZW50QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIHBh
cmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsIGlzRWRpdGFibGVTY3JpcHQpOwogICAg
IHBhcmFtZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1vdmUoYXJndW1lbnRzKSk7
Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9z
dC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6
Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJy
b3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmpl
Y3QpKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzk0LDcgKzE3OTQsNyBAQCB2b2lkIFNl
c3Npb246OnNldElucHV0RmlsZVVwbG9hZEZpbGVzKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBj
b25zdCBTdHJpbmcmIHRleAogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVIYW5kbGUi
X3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZU9yKGVtcHR5U3RyaW5nKCkpKTsKICAg
ICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoIm5vZGVIYW5kbGUiX3MsIGVsZW1lbnRJRCk7CiAgICAg
cGFyYW1ldGVycy0+c2V0QXJyYXkoImZpbGVuYW1lcyJfcywgV1RGTW92ZShmaWxlbmFtZXMpKTsK
LSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJzZXRGaWxlc0ZvcklucHV0RmlsZVVw
bG9hZCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgZWxlbWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11
dGFibGUgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoInNldEZpbGVzRm9ySW5w
dXRGaWxlVXBsb2FkIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBlbGVtZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVz
cG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3Bw
CmluZGV4IGQ2Mjk2NjA1MTY3NzRjNDlmM2NiYTVmMDg0ZDZjMGU0ZmE3ZjhlMDkuLmE0MmViN2M5
MTY3ZjBlN2Q4YmNmMzU2NTlhZDlhYTRiZmFmZGYwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3Bw
CkBAIC0xMTIsNiArMTEyLDggQEAgdm9pZCBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjo6cXVl
cnkoU3RyaW5nJiYgaG9zdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAgICAgICBpZiAo
c3RlcFJlc3VsdCAhPSBTUUxJVEVfUk9XICYmIHN0ZXBSZXN1bHQgIT0gU1FMSVRFX0RPTkUpIHsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoc2Vzc2lvbklELCAic3RlcCBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgc3RlcFJlc3Vs
dCwgbV9kYXRhYmFzZS0+bGFzdEVycm9yTXNnKCksIG5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2Vy
RGF0YWJhc2VQYXRoKCkudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgICAgICAgICAgVU5VU0VE
X1ZBUklBQkxFKHNlc3Npb25JRCk7CiAjZW5kaWYKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA2ZWRjMjUxOTNmNGNl
ODU5Yjc2NGIzZWMwYTViYzVmY2E3ODlkMGE4Li45ZTBiNjgyY2RlZDJhZmJiZjU3YTAyODQ5ZGMz
Yjc5ZDc5YTc2NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC02MiwxMSArNjIsMTcgQEAgTmV0d29ya0xvYWRDaGVj
a2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBO
ZXR3b3JrUmUKICAgICAsIG1fcHJlZmxpZ2h0UG9saWN5KHByZWZsaWdodFBvbGljeSkKICAgICAs
IG1fcmVmZXJyZXIoV1RGTW92ZShyZWZlcnJlcikpCiAgICAgLCBtX3Nob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Mp
CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZChpc0hU
VFBTVXBncmFkZUVuYWJsZWQpCisjZW5kaWYKICAgICAsIG1fcmVxdWVzdExvYWRUeXBlKHJlcXVl
c3RMb2FkVHlwZSkKICAgICAsIG1fc2NoZW1lUmVnaXN0cnkoc2NoZW1lUmVnaXN0cnkpCiAgICAg
LCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcihtYWtlV2Vha1B0cihuZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIpKQogeworI2lmICFQTEFURk9STShDT0NPQSkKKyAgICBVTlVTRURfUEFSQU0oaXNIVFRQU1Vw
Z3JhZGVFbmFibGVkKTsKKyNlbmRpZgorCiAgICAgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0ID0gaXNT
YW1lT3JpZ2luKG1fdXJsLCBtX29yaWdpbi5nZXQoKSk7CiAgICAgc3dpdGNoIChvcHRpb25zLmNy
ZWRlbnRpYWxzKSB7CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENo
ZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmgKaW5kZXggOWU0ZGNiMDQ1NWE1ZWFlY2JjNDdhZjIxNjc0ZGNkMGI3MGNkZDljNi4uNGQ5Y2E5
NmE4NzUxMGMwNzhiNmM5MmI3YzQzZDI0NTk4MThmYWVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0xNTMsNyArMTUzLDEx
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgYm9vbCBtX2NoZWNrQ29u
dGVudEV4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3MgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
Ym9vbCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFdl
YkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3JtYXRpb24gbV9sb2FkSW5mb3JtYXRpb247CiAKICAgICBM
b2FkVHlwZSBtX3JlcXVlc3RMb2FkVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcAppbmRleCBlOGRiYmUyNzNiM2JkNDI0MTc0YmRjOTAzZDc2NGIxYTJiMDU3NWQ0
Li5hNzNkZDQzMzUzZmYwNjg4MmM4OTkwYjNkZmVkNzgyMmMzZGQyMjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0yNzEsNyArMjcxLDcgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVNjZW5lU3RhdGUoKQogICAgICAgICAgICAg
Zm9yIChhdXRvJiBjb21wb3NpdGlvbkxheWVyIDogbV9uaWNvc2lhLnN0YXRlLmxheWVycykgewog
ICAgICAgICAgICAgICAgIGF1dG8mIGxheWVyID0gdGV4bWFwTGF5ZXIoKmNvbXBvc2l0aW9uTGF5
ZXIpOwogICAgICAgICAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPmNvbW1pdFN0YXRlKAotICAg
ICAgICAgICAgICAgICAgICBbdGhpcywgJmxheWVyLCAmY29tcG9zaXRpb25MYXllciwgJmxheWVy
c0J5QmFja2luZ10KKyAgICAgICAgICAgICAgICAgICAgWyZsYXllciwgJmxheWVyc0J5QmFja2lu
Z10KICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6
OkxheWVyU3RhdGUmIGxheWVyU3RhdGUpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChsYXllclN0YXRlLmRlbHRhLnBvc2l0aW9uQ2hhbmdlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuY3BwCmluZGV4IGJjYjIzNTk3NWIxMzNkMmUyNzY3NmQyODNmZTg5MTM4MWEwZDVkMWMuLmI4
YzczMDNlNzU5YzAwNGQzYzk3Yzc4Y2IyN2M5ZTdkMGMzZTVmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAt
MTY3LDcgKzE2Nyw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFpbnQoKQog
ICAgIC8vIGluIGEgd2F5IHRoYXQgZG9lc24ndCBzdGFydmUgb3V0IHRoZSB1bmRlcmx5aW5nIGdy
YXBoaWNzIGJ1ZmZlcnMuCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKFdQRV9SRU5ERVJFUikK
ICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hh
bmdlKG1faW5Gb3JjZVJlcGFpbnQsIHRydWUpOwogICAgICAgICByZW5kZXJMYXllclRyZWUoKTsK
ICAgICB9KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA0OTA2NDBkNTQzYjMxMWM0YWY3MTAxNTNhNTAx
ZDE4ZDg0M2Y0ZjUwLi5mY2QyZTQ4ODg5OTlkMDUyZTAyNGE1ZDMyYTU5MzQ5N2Q2ZGViYzAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuaApAQCAtMTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX25h
dGl2ZVN1cmZhY2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFn
cyBtX3BhaW50RmxhZ3MgeyAwIH07Ci0gICAgYm9vbCBtX2luRm9yY2VSZXBhaW50IHsgZmFsc2Ug
fTsKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRlZENvdW50IHsgMCB9OwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV9jb21wb3NpdGluZ1J1bkxvb3A7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRp
b25DbGllbnQuY3BwCmluZGV4IDU0ZWYwYjRlNWE5MWU0ZDg1NDc4MmIwZjIzNWRmMmRlMTE5YzVh
MWEuLjc4NzY0NDM5YTQ3NWIyMzlkMDcyZDczOTQwMWE4Mjg1MDg3MTM5NGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRp
b25DbGllbnQuY3BwCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVk
ZWRDUFVMaW1pdDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVl
c3RlZEJ5Q2xpZW50OgorICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVx
dWVzdGVkQnlOZXR3b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25S
ZWFzb246Ok5hdmlnYXRpb25Td2FwOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCBlM2Y0Zjg1
NDY5YzlkMTU5ZTI1YmQ1ODI2YTczZmQwY2EzMzVlZTQwLi5iNjU1MWVhYmY1YzJiYmQ4Y2M0ZDQ4
MmY0Y2YwNTJlYmVlOTRjMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXIuY3BwCkBAIC02MCw3ICs2MCw2IEBAIHByaXZhdGU6CiB9OwogCiBSZW1vdGVJbnNw
ZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcihXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7CiAgICAg
d2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoY29udGV4dCwgImluc3BlY3Rv
ciIsIFtdKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVzZXJEYXRh
KSB7CiAgICAgICAgIHN0YXRpY19jYXN0PFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcio+
KHVzZXJEYXRhKS0+aGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3Bl
Y3RvclByb3RvY29sSGFuZGxlci5oCmluZGV4IGM0ODczZTc1NjZkNTU1YmJiNGE3NzM5MmRmNzIy
NWEzMTRjMjZkYzIuLmY2YTBkMDExMjMzODMwOGUxODExMDA4ODFiOGJkZTRmNWJlYzc4YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaApAQCAtNDksNyArNDks
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9y
Q2xpZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKFJlbW90ZUluc3Bl
Y3RvckNsaWVudCYpIG92ZXJyaWRlOwogCi0gICAgV2ViS2l0V2ViQ29udGV4dCogbV9jb250ZXh0
IHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
SW5zcGVjdG9yQ2xpZW50Pj4gbV9pbnNwZWN0b3JDbGllbnRzOwogICAgIEhhc2hTZXQ8V2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyKj4gbV91c2VyQ29udGVudE1hbmFnZXJzOwogICAgIEhhc2hTZXQ8
V2ViS2l0V2ViVmlldyo+IG1fd2ViVmlld3M7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTBhMDg2MTFmOTkzN2UyZGQ1NDYzODg2NmI5YmE4NDM4
NDVmOWVjNy4uZmNlOTZmMjEwNmQxZWRjZmE4YzhkNTNmZmZhMTI4NDU1MmZhOWE0ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIwLTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGlu
IERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwOgorICAgICAgICAodGVz
dERvd25sb2FkTUlNRVR5cGUpOgorICAgICAgICAodGVzdENvbnRleHRNZW51RG93bmxvYWRBY3Rp
b25zKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRp
bmcuY3BwOgorCiAyMDIwLTAzLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIE1pZ3JhdGUgdG8gRmxhdHBhay1iYXNlZCBkZXYg
U0RLCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNm
b3JtYXRpb25NYXRyaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1Ry
YW5zZm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCAxOTdkMjEzZWU3YTI3YzEzNWExNDYzYjRlOTU4
ZmJlMDJiNTJhMDc5Li5hZmFkYmM1MzkyMjNlNGIyYzY1ZmY2MDA2NzNkNWFjYThhZGU2NmMxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9UcmFu
c2Zvcm1hdGlvbk1hdHJpeC5jcHAKQEAgLTEyMzksNiArMTIzOSw4IEBAIFRFU1QoVHJhbnNmb3Jt
YXRpb25NYXRyaXgsIENhc3RpbmcpCiAgICAgRVhQRUNUX0RPVUJMRV9FUSgzLjAsIGNhRnJvbVdL
Lm00Mik7CiAgICAgRVhQRUNUX0RPVUJMRV9FUSgyLjAsIGNhRnJvbVdLLm00Myk7CiAgICAgRVhQ
RUNUX0RPVUJMRV9FUSgxLjAsIGNhRnJvbVdLLm00NCk7CisjZWxzZQorICAgIFVOVVNFRF9WQVJJ
QUJMRSh0ZXN0KTsKICNlbmRpZgogCiAjaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9u
LmNwcAppbmRleCBjZGFiNGFlZWRlZjU1ZmYzZmFiM2UzMzZlNDIzMDBjYmFiZDhlYTRkLi41YWU0
NGQ0Njc3ZTY5MjVhNWE5NGY3OWQ2MmI5OTlkZjgyNTQyZTJiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25T
ZXNzaW9uLmNwcApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbm5l
Y3Rpb24oUmVmPFNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICB7Ci0gICAgICAg
IGdfYXNzZXJ0X3RydWUoY29ubmVjdGlvbi5wdHIoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbiA9
IFdURk1vdmUoY29ubmVjdGlvbik7CiAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWluTG9v
cC5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwCmluZGV4IGUwMzkxOTljMTcyZWM3ZDIzZDkyNGUw
OWU5M2RjMGY4OGRmMTExNGMuLmY3MzNlODE4M2FjZjAyM2U3ZGViZGIxZDZhNGY5ODVkYzIwMWM0
ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
RG93bmxvYWRzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdERvd25sb2Fkcy5jcHAKQEAgLTY3MiwxNCArNjcyLDE0IEBAIHN0YXRpYyB2b2lkIHRlc3RE
b3dubG9hZE1JTUVUeXBlKERvd25sb2FkVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBl
dmVudHMuY2xlYXIoKTsKIAogICAgIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QgPSB3ZWJraXRf
ZG93bmxvYWRfZ2V0X3JlcXVlc3QoZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklf
UkVRVUVTVChyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVRVUVT
VChyZXF1ZXN0KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVzdF9n
ZXRfdXJpKHJlcXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Vua25vd24iKSk7
CiAKICAgICBhdXRvIGhlYWRlcnMgPSB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X2h0dHBfaGVhZGVy
cyhyZXF1ZXN0KTsKICAgICBnX2Fzc2VydF9ub25udWxsKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dl
dF9vbmUoaGVhZGVycywgIlVzZXItQWdlbnQiKSk7CiAKICAgICBXZWJLaXRVUklSZXNwb25zZSog
cmVzcG9uc2UgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3Jlc3BvbnNlKGRvd25sb2FkLmdldCgpKTsK
LSAgICBXRUJLSVRfSVNfVVJJX1JFU1BPTlNFKHJlc3BvbnNlKTsKKyAgICBnX2Fzc2VydF90cnVl
KFdFQktJVF9JU19VUklfUkVTUE9OU0UocmVzcG9uc2UpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIo
d2Via2l0X3VyaV9yZXNwb25zZV9nZXRfbWltZV90eXBlKHJlc3BvbnNlKSwgPT0sICJhcHBsaWNh
dGlvbi9wZGYiKTsKIAogICAgIGdfYXNzZXJ0X25vbm51bGwod2Via2l0X2Rvd25sb2FkX2dldF9k
ZXN0aW5hdGlvbihkb3dubG9hZC5nZXQoKSkpOwpAQCAtNzM5LDcgKzczOSw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RDb250ZXh0TWVudURvd25sb2FkQWN0aW9ucyhXZWJWaWV3RG93bmxvYWRUZXN0KiB0
ZXN0LCBnY29uc3Rwb2luCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX3dlYlZpZXcgPT0gd2Vi
a2l0X2Rvd25sb2FkX2dldF93ZWJfdmlldyh0ZXN0LT5tX2Rvd25sb2FkLmdldCgpKSk7CiAKICAg
ICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0ID0gd2Via2l0X2Rvd25sb2FkX2dldF9yZXF1ZXN0
KHRlc3QtPm1fZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1
ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7
CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVl
c3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Rlc3QucGRmIikpOwogCiAgICAgYXV0
byBoZWFkZXJzID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF9odHRwX2hlYWRlcnMocmVxdWVzdCk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJp
bnRpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFByaW50
aW5nLmNwcAppbmRleCA1NDhhOTgxYzFiNDIyMzgyYzZiZGZlMjBhMDE3Nzk3ZWE2Nzc3MjAwLi43
MGY3MDlkYzE5MmZlZGMxNThkNzliM2Y1MDViZTYzZjY0NTgxYzc3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAKQEAgLTEx
OCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgR1JlZlB0cjxXZWJLaXRQcmludE9w
ZXJhdGlvbj4gbV9wcmludE9wZXJhdGlvbjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkRXJyb3I7
CisgICAgaW50IG1fZXhwZWN0ZWRFcnJvcjsKIH07CiAKIHN0YXRpYyB2b2lkIHRlc3RQcmludE9w
ZXJhdGlvblByaW50KFByaW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393970</attachid>
            <date>2020-03-19 06:08:37 -0700</date>
            <delta_ts>2020-03-19 08:17:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209146-20200319130836.patch</filename>
            <type>text/plain</type>
            <size>38124</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
Nzc2ZThkYzMxYjZmYTAyZTY3MWZjYjYxNzBlNjU1MzA0YWI4N2QyLi4wOTRjMzQ0Njk4NjU5YWM5
MzkyNTZkN2MxNzU0MGE0NjZlNzc3YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4
Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6
ZGVwcmVjYXRlZFZNIGNvbnN0KTogQSByZWZlcmVuY2UgbWF5IG5vdCBiZSBOVUxMLCBzbworICAg
ICAgICB0aGlzIEFTU0VSVCgpIGNhbiBuZXZlciB0cmlwLgorCiAyMDIwLTAzLTE4ICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgd2F5IHRvIG1hcmsg
YSByZWplY3RlZCBwcm9taXNlIGFzIGhhbmRsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZGQ2MDJiNDdiMmRmNTIzZWMyOGM1
MmI5MTQ2ZWMxZTFmM2NkNWY0MS4uOTA0YTgwZjQ0ZGZhNjc5OWJjYTRjOTA2ZWU3YzYzOGFkYWIy
MDQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wMy0xNiAgQ2hhcmxpZSBUdXJuZXIgIDxj
dHVybmVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFu
ZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgICogd3RmL0xvZ2dlckhlbHBlci5oOiBXaGVuIHRoZSBSRUxFQVNF
X0xPRyBpcyBkaXNhYmxlZCwgYXZvaWQgd2FybmluZworICAgICAgICBzcGFtIGFib3V0IHVudXNl
ZCBjaGFubmVsIG5hbWVzLiBDYWxsIHNpdGVzIG9mdGVuIGNyZWF0ZSBsb2NhbHMgZm9yCisgICAg
ICAgIHRoZSBjaGFubmVsIG5hbWUgb3V0c2lkZSBvZiBSRUxFQVNFX0xPRyBpZmRlZidzLCB3aGlj
aCBjYXVzZSBtYW55CisgICAgICAgIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncy4KKwogMjAyMC0w
My0xOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBVbnJldmlld2VkLCBidWlsZCBmaXhlcyBhZnRlciByMjU4NTQ3IHdoZW4gZGlz
YWJsaW5nIHJlbGVhc2UgbG9nZ2luZyBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM3ZDdkM2I2NTU4
MDFhMjEzMjRlOTA0YzQ5NmViZGE2OTRjMzk1Yi4uZDQyNzQ0M2JhMzBkMWIyN2RlZWVlNTgwYzAz
ZjEzNTQ4ZmFhNmZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTAzLTE2ICBD
aGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggbWFueSB3
YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGluIERlYnVnLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2FybmluZyBmaXhlcywgbm8gbmV3
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpNZWRpYUtleXMpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOiBUaGUgbV9udW1iZXJPZkZy
YW1lcyBpdmFyCisgICAgICAgIGlzIHBsYXRmb3JtLXNwZWNpZmljLgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZTo6bG9hZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpnZXRT
dGF0aWNWQk8pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQXVkaW9DYXB0dXJlci5oOiBUaGVyZSBhcmUKKyAgICAgICAgc3RpbGwgdmlydHVhbCBtZXRo
b2RzIGluIHRoaXMgY2xhc3MsIGJ1dCBubyB2aXJ0dWFsIGRlc3RydWN0b3IuIFNpbmNlCisgICAg
ICAgIHRoaXMgd29uJ3QgYmUgc3ViY2xhc3NlZCBmdXJ0aGVyIChJIGRvdWJ0LCBhbnl3YXkhKSBs
ZXRzIG1ha2UgaXQgZmluYWwKKyAgICAgICAgYW5kIHBsdWcgdGhlIGJ1Zy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlci5oOiBTZWUKKyAgICAgICAgQXVkaW9DYXB0dXJlci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9y
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0RlY29kZXI6OlJlZ2lzdGVy
RGVjb2RlQ29tcGxldGVDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHU3Ry
ZWFtZXJWaWRlb0RlY29kZXI6OkltcGxlbWVudGF0aW9uTmFtZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5j
b2Rlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOiBUaGUKKyAgICAgICAgZW5jb2RlciB3YXMgYmVp
bmcgdXNlZCB1bmluaXRpYWxpemVkLCBhbmQgaGVuY2UgY29kZWMgc3VwcG9ydCBjYW4gbm90Cisg
ICAgICAgIGJlIHdvcmtpbmcgYXMgaW50ZW5kZWQuIEZpeCB0aGF0IGJ1Zy4KKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2Rlcjo6QWRkQ29kZWNJZlN1cHBvcnRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29kZXI6OkluaXRFbmNvZGUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyOjpHZXRFbmNvZGVySW5m
byBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXMpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDogQ29uZGl0aW9uIHRoZSBiZWFyIHRyYXAgb24gQ29j
b2EKKyAgICAgICAgcGxhdGZvcm0gd2hlcmUgdGhlIGNyYXNoIGlzIGJlaW5nIHNlZW4uIE9uIEdU
SyB0aGVzZSB0cmFwcyBnZW5lcmF0ZQorICAgICAgICB3YXJuaW5nIHNwYW0gYW5kIHdlIGRvbid0
IHNlZSB0aGUgY3Jhc2ggaGVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdh
aXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpyZWFkUHJlZmVyZW5jZUludGVnZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMtMTkgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxl
eiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBtZWRpYS90cmFjay90cmFj
ay1hdXRvbWF0aWMtc3VidGl0bGVzLmh0bWwgaXMgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZwppbmRl
eCA0M2NkYmQwZjE3YTlmYTgzM2RlMDhiOWQxYjM1N2I1MWFjZmZhMDE2Li43Y2JmYmY3OTM1NTVi
ODFjODc4ZTgwMjM5MjNjMGZjMjYyMTUyMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIwLTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2LTY0IGlu
IERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBT
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6bmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6ZWxlbWVudElzRmlsZVVwbG9hZCk6CisgICAgICAg
IChXZWJEcml2ZXI6OlNlc3Npb246OmVsZW1lbnRJc0VkaXRhYmxlKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6U2Vzc2lvbjo6c2V0SW5wdXRGaWxlVXBsb2FkRmlsZXMpOgorCiAyMDIwLTAyLTEyICBD
YXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFdlYkRyaXZlcjogcmV0dXJuIGludmFsaWRTZXNzaW9uSUQgZXhjZXB0aW9uIGlmIHRoZSBXZWJQ
cm9jZXNzIGRvZXNuJ3QgcmVzcG9uZCAoY3Jhc2hlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWM3NWIzYTE0ZmRk
MDIzZTQ3ZDg4ZTZjZWIzYzAwM2ZmNjc3MzRmYy4uMzY0MTAxYTcwMGY1ZTE3ZjA0MzRiYTkxYWE4
YTQzOTIwNzVjYTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0wMy0xNiAgQ2hh
cmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgRml4IG1hbnkgd2Fy
bmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlcjo6cXVlcnkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5jcHA6IFRoZSBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZAorICAgICAgICBpdmFy
IGlzIG9ubHkgdXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMsIG9uIEdUSyBpdCBpcyBjYXVzaW5nIHdh
cm5pbmcKKyAgICAgICAgc3BhbS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2Vy
OjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5oOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6dXBkYXRlU2NlbmVTdGF0ZSk6CisgICAgICAgICoKKyAgICAgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRv
ci5jcHA6CisgICAgICAgIG1faW5Gb3JjZVJlcGFpbnQgaXMgbm90IGJlaW5nIHVzZWQgYW55bW9y
ZS4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFpbnQpOgor
ICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
TmF2aWdhdGlvbkNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjpSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclBy
b3RvY29sSGFuZGxlci5oOgorCiAyMDIwLTAzLTE5ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIFVSTDo6cGF0aCgpIHJldHVybiBhIFN0cmluZ1ZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAppbmRleCAy
ZGFmN2JjMGRkYjM3ZTQwZjczMDljYTFkNjI3MDM2Yzc4YjE4YWY5Li4xYzlkMTMyNDhhOTMyNGZh
ZjUyYTJjOGZhMDEwNzA2MjYxMTA0MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0xNDIsNyArMTQyLDYgQEAgQUxXQVlTX0lOTElORSBW
TSYgQ2FsbEZyYW1lOjpkZXByZWNhdGVkVk0oKSBjb25zdAogewogICAgIEpTQ2VsbCogY2FsbGVl
ID0gdGhpcy0+Y2FsbGVlKCkuYXNDZWxsKCk7CiAgICAgQVNTRVJUKGNhbGxlZSk7Ci0gICAgQVNT
RVJUKCZjYWxsZWUtPnZtKCkpOwogICAgIHJldHVybiBjYWxsZWUtPnZtKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oIGIvU291cmNlL1dURi93dGYvTG9n
Z2VySGVscGVyLmgKaW5kZXggOWViNzNiYTZlMGZkOTRjMDQ4ZGQ1OTNiNWZmNTI5MTY4MGI2ZGYz
MC4uNTQyYzIzNGZhZmZmNTE4ZmRmYjViZGNhODhkMzkzZmRmN2JiNDEzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2Vy
SGVscGVyLmgKQEAgLTg5LDE0ICs4OSwxMyBAQCBwdWJsaWM6CiAKICNkZWZpbmUgTE9HSURFTlRJ
RklFUiAoV1RGOjpudWxsb3B0KQogCi0jZGVmaW5lIEFMV0FZU19MT0coLi4uKSAgICAgKCh2b2lk
KTApCi0jZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIEVSUk9S
X0xPRyguLi4pICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgKCh2
b2lkKTApCi0jZGVmaW5lIE5PVElDRV9MT0coLi4uKSAgICAgKCh2b2lkKTApCi0jZGVmaW5lIElO
Rk9fTE9HKC4uLikgICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAg
KCh2b2lkKTApCi0jZGVmaW5lIFdJTExfTE9HKF9sZXZlbF8pICAgZmFsc2UKKyNkZWZpbmUgQUxX
QVlTX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgKFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkpCisj
ZGVmaW5lIEVSUk9SX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAgIChVTlVTRURfUEFSQU0oY2hhbm5l
bE5hbWUpKQorI2RlZmluZSBXQVJOSU5HX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAoVU5VU0VEX1BB
UkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUgTk9USUNFX0xPRyhjaGFubmVsTmFtZSwgLi4uKSAg
KFVOVVNFRF9QQVJBTShjaGFubmVsTmFtZSkpCisjZGVmaW5lIElORk9fTE9HKGNoYW5uZWxOYW1l
LCAuLi4pICAgIChVTlVTRURfUEFSQU0oY2hhbm5lbE5hbWUpKQorI2RlZmluZSBERUJVR19MT0co
Y2hhbm5lbE5hbWUsIC4uLikgICAoVU5VU0VEX1BBUkFNKGNoYW5uZWxOYW1lKSkKKyNkZWZpbmUg
V0lMTF9MT0coX2xldmVsXykgICAgZmFsc2UKIAogI2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRp
dGlvbiwgLi4uKSAgICAgKCh2b2lkKTApCiAjZGVmaW5lIEVSUk9SX0xPR19JRihjb25kaXRpb24s
IC4uLikgICAgICAoKHZvaWQpMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAppbmRleCBhODljZDQwMDNkNzFlZWFmOTEwN2E0NTdi
NDQzZmI3ZTMwYzU1MzI3Li5jNGI2OTg0MmY1MTUyNWI5ODRiYmQwOTdmNzkyZGYyMDE3MmI2NGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuY3BwCkBAIC02Myw2ICs2Myw4IEBAIE1lZGlhS2V5czo6TWVkaWFLZXlzKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyCiB7CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9pbnN0YW5jZS0+c2V0TG9nZ2VyKGRvY3Vt
ZW50LmxvZ2dlcigpLCBtX2xvZ0lkZW50aWZpZXIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
ZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgbV9pbnN0YW5jZS0+c2V0Q2xpZW50KG1ha2VXZWFrUHRy
KHRoaXMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggZmM2ZGRiOGU2ZDJiODcwMzZkMjYyMTM4
ZGVkNGM2Yzc3Nzk2YmU5ZS4uMTY3MjY4MTdkYjM3MzU0YjgxMzk1YzQzNTYzMDM2Yzg0Yzg3MTA5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmgKQEAgLTU4LDcgKzU4LDkgQEAgcHJpdmF0ZToKIAogICAgIFN0
cmluZyBtX2RldmljZUlkOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJl
bnRTZXR0aW5nczsKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIHNpemVfdCBtX251bWJlck9m
RnJhbWVzIHsgMCB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA1ZDg2
YWY2ZTRkYjFhMzViYWMxNTg4YTA5ZmU4ZWVhNDRkNjM1NDg4Li4yM2U2ZmYzZTUzY2NhZmM3NWI2
ZDViMmRiY2RmMmQwZmYxY2NkM2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTMzMCw4ICszMzAsNyBAQCB2b2lkIENhY2hlZFJlc291
cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+bG9hZFJlc291cmNlKGZy
YW1lLCAqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgbV9vcHRpb25zLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPih0aGlzKSwgZnJhbWVS
ZWYgPSBtYWtlUmVmKGZyYW1lKSwgbG9nZ2luZ0FsbG93ZWQgPSBjYWNoZWRSZXNvdXJjZUxvYWRl
ci5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKV0gKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4m
JiBsb2FkZXIpIHsKICAgICAgICAgbV9sb2FkZXIgPSBXVEZNb3ZlKGxvYWRlcik7CiAgICAgICAg
IGlmICghbV9sb2FkZXIpIHsKLSAgICAgICAgICAgIGF1dG8mIGZyYW1lID0gZnJhbWVSZWYuZ2V0
KCk7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihsb2dnaW5nQWxsb3dlZCwgTmV0d29yaywg
IiVwIC0gW3BhZ2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1NjQgIl0gQ2FjaGVkUmVz
b3VyY2U6OmxvYWQ6IFVuYWJsZSB0byBjcmVhdGUgU3VicmVzb3VyY2VMb2FkZXIiLCB0aGlzLCBQ
QUdFX0lEKGZyYW1lKSwgRlJBTUVfSUQoZnJhbWUpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGKGxvZ2dpbmdBbGxvd2VkLCBOZXR3b3JrLCAiJXAgLSBbcGFnZUlEPSUiIFBSSXU2NCAiLCBm
cmFtZUlEPSUiIFBSSXU2NCAiXSBDYWNoZWRSZXNvdXJjZTo6bG9hZDogVW5hYmxlIHRvIGNyZWF0
ZSBTdWJyZXNvdXJjZUxvYWRlciIsIHRoaXMsIFBBR0VfSUQoZnJhbWVSZWYuZ2V0KCkpLCBGUkFN
RV9JRChmcmFtZVJlZi5nZXQoKSkpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggOTZlMzA0MzEyNjllNGQ4MmIxYzEwNzcxOWU3MDViODEzMmE2MjdhNC4uZmJhMTEyMDc4ZDY0
OGVjM2EyYTdkMjkxZDA0YzgwNGY5NzFlNDQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTE1MCw3ICsxNTAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTERhdGE6OmluaXRpYWxpemVTdGVu
Y2lsKCkKIEdMdWludCBUZXh0dXJlTWFwcGVyR0xEYXRhOjpnZXRTdGF0aWNWQk8oR0xlbnVtIHRh
cmdldCwgR0xzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKQogewogICAgIGF1dG8gYWRk
UmVzdWx0ID0gbV92Ym9zLmVuc3VyZShkYXRhLAotICAgICAgICBbdGhpcywgdGFyZ2V0LCBzaXpl
LCBkYXRhXSB7CisgICAgICAgIFt0YXJnZXQsIHNpemUsIGRhdGFdIHsKICAgICAgICAgICAgIEdM
dWludCB2Ym8gPSAwOwogICAgICAgICAgICAgZ2xHZW5CdWZmZXJzKDEsICZ2Ym8pOwogICAgICAg
ICAgICAgZ2xCaW5kQnVmZmVyKHRhcmdldCwgdmJvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAz
YjYxYmM5MWViM2FhZmMxYjMzMmE5OGNlNTA0YWQ5N2YzYTZiZjAxLi5iMDdiZTYwOWM2MzIzODlk
ODJmMmRmODEwYTk1MDA5M2QxYTZmNGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC03MCw3ICs3
MCw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IG1f
c291cmNlOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5n
czsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB1aW50NjRfdCBtX2Nsb25lQ291bnRl
ciB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVyLmgKaW5kZXggOWFhZjc2MWQ2YzRiNDNjNDRl
ZjQ0NzExZTgzN2IwZjEyNTJkMWY1YS4uZGM3ZjI4ZmQxN2I4Yjk2YzhiMzZjOTdjZGQzOTllMGI4
YzhkNDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlci5oCkBA
IC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVhbWVy
QXVkaW9DYXB0dXJlciA6IHB1YmxpYyBHU3RyZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVyIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1Ymxp
YzoKICAgICBHU3RyZWFtZXJBdWRpb0NhcHR1cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwog
ICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYWM5ODhlNGMwY2FjNDA2MzA2MDA2
YmY0ZmIyZTc2ZTkyYzAyYjRiNi4uODdhMDhmMjkxN2JkNWU3N2RlNDI5OGYyNGU2MjYyYjA3YmYw
OWE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZS5jcHAKQEAgLTM4LDkgKzM4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25z
dCBzdGF0aWMgaW50IGRlZmF1bHRXaWR0aCA9IDY0MDsKLWNvbnN0IHN0YXRpYyBpbnQgZGVmYXVs
dEhlaWdodCA9IDQ4MDsKLQogR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF92aWRlb19jYXB0dXJl
X3NvdXJjZV9kZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCB3ZWJraXRfdmlkZW9fY2Fw
dHVyZV9zb3VyY2VfZGVidWcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVyLmgKaW5kZXggNTdiMGI0Njg2ZDM0YWUwYzExNTRhNzNmZDRhNGI5ZWQ1YzQwZTY5NS4uNDQ2
MDI4ZDBiOGU0MDQwZmViZjUxNDk3NjJiMzQ3NmI1YWY2ZDVkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2Fw
dHVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlciA6IHB1YmxpYyBHU3Ry
ZWFtZXJDYXB0dXJlciB7CitjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVyIGZpbmFsIDogcHVi
bGljIEdTdHJlYW1lckNhcHR1cmVyIHsKIHB1YmxpYzoKICAgICBHU3RyZWFtZXJWaWRlb0NhcHR1
cmVyKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwogICAgIEdTdHJlYW1lclZpZGVvQ2FwdHVyZXIo
Y29uc3QgY2hhciogc291cmNlX2ZhY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCmluZGV4IGEzYmRkNmI3MjI3Y2JiNGFjZWMz
MzI3ODBhNTVkMGJhNzdkZTgzMmEuLjUzNDZlMmViZDBmYTg3ZTNlOGI3MTMxYjdiZDkyYTEzNmY2
N2MzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVy
RmFjdG9yeS5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBX
RUJSVENfVklERU9fQ09ERUNfT0s7CiAgICAgfQogCi0gICAgaW50MzJfdCBSZWdpc3RlckRlY29k
ZUNvbXBsZXRlQ2FsbGJhY2sod2VicnRjOjpEZWNvZGVkSW1hZ2VDYWxsYmFjayogY2FsbGJhY2sp
CisgICAgaW50MzJfdCBSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sod2VicnRjOjpEZWNv
ZGVkSW1hZ2VDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlCiAgICAgewogICAgICAgICBtX2lt
YWdlUmVhZHlDYiA9IGNhbGxiYWNrOwogCkBAIC0zMjAsNyArMzIwLDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBjb25zdCBnY2hhciogQ2FwcygpID0gMDsKICAgICB2aXJ0dWFsIHdlYnJ0Yzo6
VmlkZW9Db2RlY1R5cGUgQ29kZWNUeXBlKCkgPSAwOwotICAgIGNvbnN0IGNoYXIqIEltcGxlbWVu
dGF0aW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CisgICAgY29uc3QgY2hh
ciogSW1wbGVtZW50YXRpb25OYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkdTdHJlYW1l
ciI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGdjaGFyKiBOYW1lKCkgPSAwOwogCiBwcm90ZWN0ZWQ6
CkBAIC0zMzYsNyArMzM2LDYgQEAgcHJpdmF0ZToKICAgICBHc3RFbGVtZW50KiBtX3Npbms7CiAg
ICAgR3N0RWxlbWVudCogbV9zcmM7CiAKLSAgICBHc3RWaWRlb0luZm8gbV9pbmZvOwogICAgIHdl
YnJ0Yzo6RGVjb2RlZEltYWdlQ2FsbGJhY2sqIG1faW1hZ2VSZWFkeUNiOwogCiAgICAgU3RkTWFw
PEdzdENsb2NrVGltZSwgSW5wdXRUaW1lc3RhbXBzPiBtX2R0c1B0c01hcDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKaW5kZXggNDJmMGNmODU3MTFhNzRkODhl
YTNkYTI3M2I3OWY5MmZhMzllZTJiYS4uNmExZDRhN2E0MTAyNWQ3ZTU1YmUyYTY0OGMwZWU2ODBh
Zjc1ZGVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAK
QEAgLTY3LDE3ICs2Nyw3IEBAIHR5cGVkZWYgZW51bQogICBFTkNPREVSX0xBU1QsCiB9IEVuY29k
ZXJJZDsKIAotRW5jb2RlckRlZmluaXRpb24gZW5jb2RlcnNbRU5DT0RFUl9MQVNUXSA9IHsKLSAg
RkFMU0UsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5VTEwsCi0gIE5V
TEwsCi0gIE5VTEwsCi0gIE5VTEwsCi19OworRW5jb2RlckRlZmluaXRpb24gZW5jb2RlcnNbRU5D
T0RFUl9MQVNUXSA9IHsgeyB9IH07CiAKIHR5cGVkZWYgc3RydWN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlk
ZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggYTJmZGRh
NWZmYTUwOTNjY2I3NWRjZDZjOGVjNDdlZmYxYmI4YzllYi4uMGE1ZGQ5YzEzZjdkZmY1NWY4MDgz
NTVkYmY3OWEzYWYyNjE4MjViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFt
ZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGVsZW07CiAgICAgfQogCi0gICAgaW50MzJfdCBJbml0RW5jb2RlKGNvbnN0
IHdlYnJ0Yzo6VmlkZW9Db2RlYyogY29kZWNTZXR0aW5ncywgaW50MzJfdCwgc2l6ZV90KQorICAg
IGludDMyX3QgSW5pdEVuY29kZShjb25zdCB3ZWJydGM6OlZpZGVvQ29kZWMqIGNvZGVjU2V0dGlu
Z3MsIGludDMyX3QsIHNpemVfdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKGNvZGVjU2V0dGluZ3MsIFdFQlJUQ19WSURFT19DT0RFQ19FUlJfUEFSQU1FVEVS
KTsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29kZWNTZXR0aW5ncy0+Y29kZWNUeXBl
ID09IENvZGVjVHlwZSgpLCBXRUJSVENfVklERU9fQ09ERUNfRVJSX1BBUkFNRVRFUik7CkBAIC0x
ODgsNyArMTg4LDggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgVmlkZW9FbmNv
ZGVyOjpFbmNvZGVySW5mbyBHZXRFbmNvZGVySW5mbygpIGNvbnN0IHsKKyAgICBWaWRlb0VuY29k
ZXI6OkVuY29kZXJJbmZvIEdldEVuY29kZXJJbmZvKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CiAg
ICAgICAgIEVuY29kZXJJbmZvIGluZm87CiAgICAgICAgIGluZm8uc3VwcG9ydHNfbmF0aXZlX2hh
bmRsZSA9IGZhbHNlOwogICAgICAgICBpbmZvLmltcGxlbWVudGF0aW9uX25hbWUgPSAiR1N0cmVh
bWVyIjsKQEAgLTI5OCwxMCArMjk5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBBZGRDb2RlY0lm
U3VwcG9ydGVkKHN0ZDo6dmVjdG9yPHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQ+KiBzdXBwb3J0ZWRG
b3JtYXRzKQogICAgIHsKLSAgICAgICAgR3N0RWxlbWVudCogZW5jb2RlcjsKLQotICAgICAgICBp
ZiAoY3JlYXRlRW5jb2RlcigpLmdldCgpICE9IG51bGxwdHIpIHsKLSAgICAgICAgICAgIHdlYnJ0
Yzo6U2RwVmlkZW9Gb3JtYXQgZm9ybWF0ID0gQ29uZmlndXJlU3VwcG9ydGVkQ29kZWMoZW5jb2Rl
cik7CisgICAgICAgIGlmIChhdXRvIGVuY29kZXIgPSBjcmVhdGVFbmNvZGVyKCkpIHsKKyAgICAg
ICAgICAgIHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQgZm9ybWF0ID0gQ29uZmlndXJlU3VwcG9ydGVk
Q29kZWMoZW5jb2Rlci5nZXQoKSk7CiAKICAgICAgICAgICAgIHN1cHBvcnRlZEZvcm1hdHMtPnB1
c2hfYmFjayhmb3JtYXQpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9y
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRW5jb2RlckZhY3RvcnkuaAppbmRleCAxNDgzYTJiMjBiMzUxNWM3MWI3YTBjN2E1
MjI2MjZlOWZmNTM5MjA0Li4xZWFjMTk3MGMxMzJjMzUxYjgzYzg5NjQ3ZTIyMGFiYjkwZWVjYTU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5
LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGQ6OnZlY3Rvcjx3
ZWJydGM6OlNkcFZpZGVvRm9ybWF0PiBHZXRTdXBwb3J0ZWRGb3JtYXRzKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyPiBDcmVhdGVWaWRl
b0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpIGZpbmFsOwotICAgIENvZGVj
SW5mbyBRdWVyeVZpZGVvRW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JikgY29u
c3QKKyAgICBDb2RlY0luZm8gUXVlcnlWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRl
b0Zvcm1hdCYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBHU1RfRklYTUUoIkRldGVj
dCB3ZXRoZXIgdGhlIGRlY29kZXIgaXMgSFcgYWNjZWxlcmF0ZWQiKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IDRmZGJiYWI4ODljZTE5YzMzNzdkMTczMzFjMzkz
YmQwZGIwMmUyNWQuLjAwMDE1YTI5MDRjNjRjNWM4MWUzMmU1MzJlN2UxNDg4N2I3ZTFiMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMxNyw2ICszMTcsOCBAQCB2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2ll
PiYgY29va2llcywgY29uc3QgVVJMJgogCiAgICAgICAgIHNvdXBfY29va2llX2phcl9hZGRfY29v
a2llX2Z1bGwoY29va2llU3RvcmFnZSgpLCBjb29raWUudG9Tb3VwQ29va2llKCksIG9yaWdpbi5n
ZXQoKSwgZmlyc3RQYXJ0eVVSSS5nZXQoKSk7CiAjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0o
dXJsKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAgICAgICBzb3VwX2Nv
b2tpZV9qYXJfYWRkX2Nvb2tpZShjb29raWVTdG9yYWdlKCksIGNvb2tpZS50b1NvdXBDb29raWUo
KSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmgKaW5kZXggOGZjNjUwNDhiOWZlMjY4YWY4YmY1NDdiM2U3MzhkYTJmMDhlODVm
Ni4uOTU3NWUzMzdhYThiZjNjZjcwNzhlMmZmN2ZlZGUyMGY5MThlMmNmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtNDMsNyArNDMsNyBA
QCBjbGFzcyBUaWxlZEJhY2tpbmc7CiBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAogCi0j
aWYgX19XT1JEU0laRSA9PSA2NAorI2lmIF9fV09SRFNJWkUgPT0gNjQgJiYgUExBVEZPUk0oQ09D
T0EpCiAjZGVmaW5lIFVTRV9PV05JTkdfTEFZRVJfQkVBUl9UUkFQIDEKICNkZWZpbmUgQkVBUl9U
UkFQX1ZBTFVFIDB4RUVFRUVFRUVFRUVFRUVFRQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuaAppbmRleCBlYzY4NDBkZDE4MDZlNjI2NDgxMDNh
NWFjZDYzMjE2MzBlOWEyOTYzLi4zZmI2ZDhkYjA0YTE2ZTU3MGNlODg4YWIyMDQ2OGNmMmYyZDYy
ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdh
aXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5o
CkBAIC02Miw4ICs2Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYWludFNlYXJjaEZpZWxkKGNv
bnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBmaW5h
bDsKIAogICAgIGJvb2wgcG9wc01lbnVCeVNwYWNlT3JSZXR1cm4oKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxlKFJlbmRlclN0eWxlJiwg
Y29uc3QgRWxlbWVudCopIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25TdHls
ZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdDsKKyAgICB2b2lkIGFkanVzdE1l
bnVMaXN0U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3Qg
RWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIExlbmd0aEJveCBwb3B1cEludGVybmFsUGFk
ZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgcGFpbnRN
ZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBmaW5hbDsKICAgICBib29sIHBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9ucyhj
b25zdCBSZW5kZXJCb3gmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBmNTRiYjg5ODFmYmFlMjkz
ODVkMzljMWZlNzc5NTJkM2Q5NGE4NjM3Li5kODE5ODFmMjAxNmIyOWY3MzYyM2RkMDIzY2VlYTNi
YjFlNzA5NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NTE4LDI0
ICs1NTE4LDE4IEBAIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBT
dHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiB9CiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCi1TdHJpbmcgSW50ZXJuYWxzOjplbmNvZGVkUHJlZmVyZW5jZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKK1N0cmluZyBJbnRlcm5hbHM6OmVuY29kZWRQ
cmVmZXJlbmNlVmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBVTlVT
RURfUEFSQU0oZG9tYWluKTsKLSAgICBVTlVTRURfUEFSQU0oa2V5KTsKICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIH0KIAotU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpCitTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5
cGUoY29uc3QgU3RyaW5nJikKIHsKLSAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogfQogCi1TdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tVGFn
KGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcm
IGNvbmZvcm1pbmdUb1VUSSkKK1N0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBVTlVTRURfUEFS
QU0odGFnQ2xhc3MpOwotICAgIFVOVVNFRF9QQVJBTSh0YWcpOwotICAgIFVOVVNFRF9QQVJBTShj
b25mb3JtaW5nVG9VVEkpOwogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcAppbmRleCA5ZmI0MDI3MDJiZGI0ODk4Y2U5ZjcwNzVmMjI5MjEwMmEzMjM1ODAxLi40
Nzg1YTI2OTY4NTNiM2I5MzRmOWQ1NWIyYWFjMWNlZDgyZjI1MTA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5j
cHAKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIFNlc3Npb246Om5ld1dpbmRvdyhPcHRpb25hbDxT
dHJpbmc+IHR5cGVIaW50LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JgogICAgICAgICAg
ICAgcGFyYW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBwYXJh
bWV0ZXJzLT5zZXRTdHJpbmcoInByZXNlbnRhdGlvbkhpbnQiX3MsIHR5cGVIaW50LnZhbHVlKCkg
PT0gIndpbmRvdyIgPyAiV2luZG93Il9zIDogIlRhYiJfcyk7CiAgICAgICAgIH0KLSAgICAgICAg
bV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250ZXh0Il9zLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMu
Y29weVJlZigpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICAgICAgbV9o
b3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250ZXh0Il9zLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgICAgIGlmIChyZXNw
b25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25z
ZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xNTUwLDcg
KzE1NTAsNyBAQCB2b2lkIFNlc3Npb246OmVsZW1lbnRJc0ZpbGVVcGxvYWQoY29uc3QgU3RyaW5n
JiBlbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbgogICAgICAgICBwYXJhbWV0ZXJzLT5z
ZXRTdHJpbmcoImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUo
KSk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmdW5jdGlvbiJfcywgaXNGaWxlVXBsb2Fk
U2NyaXB0KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZNb3Zl
KGFyZ3VtZW50cykpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2Up
IHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
U2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChy
ZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNl
LnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY5Miw3ICsxNjky
LDcgQEAgdm9pZCBTZXNzaW9uOjplbGVtZW50SXNFZGl0YWJsZShjb25zdCBTdHJpbmcmIGVsZW1l
bnRJRCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFIKICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3Ry
aW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwog
ICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsIGlzRWRpdGFibGVTY3JpcHQp
OwogICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1vdmUoYXJndW1l
bnRzKSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2Ny
aXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAg
IG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9u
Il9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNl
LmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9u
c2VPYmplY3QpKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzk0LDcgKzE3OTQsNyBAQCB2
b2lkIFNlc3Npb246OnNldElucHV0RmlsZVVwbG9hZEZpbGVzKGNvbnN0IFN0cmluZyYgZWxlbWVu
dElELCBjb25zdCBTdHJpbmcmIHRleAogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVI
YW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZU9yKGVtcHR5U3RyaW5nKCkp
KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoIm5vZGVIYW5kbGUiX3MsIGVsZW1lbnRJRCk7
CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImZpbGVuYW1lcyJfcywgV1RGTW92ZShmaWxlbmFt
ZXMpKTsKLSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJzZXRGaWxlc0ZvcklucHV0
RmlsZVVwbG9hZCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZWxlbWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9u
c2UpIG11dGFibGUgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoInNldEZpbGVz
Rm9ySW5wdXRGaWxlVXBsb2FkIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBlbGVtZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNw
b25zZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9u
c2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIuY3BwCmluZGV4IGQ2Mjk2NjA1MTY3NzRjNDlmM2NiYTVmMDg0ZDZjMGU0ZmE3ZjhlMDkuLmE0
MmViN2M5MTY3ZjBlN2Q4YmNmMzU2NTlhZDlhYTRiZmFmZGYwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIuY3BwCkBAIC0xMTIsNiArMTEyLDggQEAgdm9pZCBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
cjo6cXVlcnkoU3RyaW5nJiYgaG9zdCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAgICAg
ICBpZiAoc3RlcFJlc3VsdCAhPSBTUUxJVEVfUk9XICYmIHN0ZXBSZXN1bHQgIT0gU1FMSVRFX0RP
TkUpIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQoc2Vzc2lvbklELCAic3RlcCBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgc3Rl
cFJlc3VsdCwgbV9kYXRhYmFzZS0+bGFzdEVycm9yTXNnKCksIG5ldHdvcmtIVFRQU1VwZ3JhZGVD
aGVja2VyRGF0YWJhc2VQYXRoKCkudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgICAgICAgICAg
VU5VU0VEX1ZBUklBQkxFKHNlc3Npb25JRCk7CiAjZW5kaWYKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA2ZWRjMjUx
OTNmNGNlODU5Yjc2NGIzZWMwYTViYzVmY2E3ODlkMGE4Li45ZTBiNjgyY2RlZDJhZmJiZjU3YTAy
ODQ5ZGMzYjc5ZDc5YTc2NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC02MiwxMSArNjIsMTcgQEAgTmV0d29ya0xv
YWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBOZXR3b3JrUmUKICAgICAsIG1fcHJlZmxpZ2h0UG9saWN5KHByZWZsaWdodFBvbGljeSkK
ICAgICAsIG1fcmVmZXJyZXIoV1RGTW92ZShyZWZlcnJlcikpCiAgICAgLCBtX3Nob3VsZENhcHR1
cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1l
dHJpY3MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxl
ZChpc0hUVFBTVXBncmFkZUVuYWJsZWQpCisjZW5kaWYKICAgICAsIG1fcmVxdWVzdExvYWRUeXBl
KHJlcXVlc3RMb2FkVHlwZSkKICAgICAsIG1fc2NoZW1lUmVnaXN0cnkoc2NoZW1lUmVnaXN0cnkp
CiAgICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcihtYWtlV2Vha1B0cihuZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIpKQogeworI2lmICFQTEFURk9STShDT0NPQSkKKyAgICBVTlVTRURfUEFSQU0oaXNI
VFRQU1VwZ3JhZGVFbmFibGVkKTsKKyNlbmRpZgorCiAgICAgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0
ID0gaXNTYW1lT3JpZ2luKG1fdXJsLCBtX29yaWdpbi5nZXQoKSk7CiAgICAgc3dpdGNoIChvcHRp
b25zLmNyZWRlbnRpYWxzKSB7CiAgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJ
bmNsdWRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKaW5kZXggOWU0ZGNiMDQ1NWE1ZWFlY2JjNDdhZjIxNjc0ZGNkMGI3MGNkZDljNi4u
NGQ5Y2E5NmE4NzUxMGMwNzhiNmM5MmI3YzQzZDI0NTk4MThmYWVjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0xNTMsNyAr
MTUzLDExIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgYm9vbCBtX2No
ZWNrQ29udGVudEV4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJl
RXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgYm9vbCBtX2lzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwog
ICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3JtYXRpb24gbV9sb2FkSW5mb3JtYXRpb247CiAK
ICAgICBMb2FkVHlwZSBtX3JlcXVlc3RMb2FkVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmNwcAppbmRleCBlOGRiYmUyNzNiM2JkNDI0MTc0YmRjOTAzZDc2NGIxYTJi
MDU3NWQ0Li5hNzNkZDQzMzUzZmYwNjg4MmM4OTkwYjNkZmVkNzgyMmMzZGQyMjVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC0yNzEsNyArMjcxLDcgQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVNjZW5lU3RhdGUoKQogICAgICAg
ICAgICAgZm9yIChhdXRvJiBjb21wb3NpdGlvbkxheWVyIDogbV9uaWNvc2lhLnN0YXRlLmxheWVy
cykgewogICAgICAgICAgICAgICAgIGF1dG8mIGxheWVyID0gdGV4bWFwTGF5ZXIoKmNvbXBvc2l0
aW9uTGF5ZXIpOwogICAgICAgICAgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXItPmNvbW1pdFN0YXRl
KAotICAgICAgICAgICAgICAgICAgICBbdGhpcywgJmxheWVyLCAmY29tcG9zaXRpb25MYXllciwg
JmxheWVyc0J5QmFja2luZ10KKyAgICAgICAgICAgICAgICAgICAgWyZsYXllciwgJmxheWVyc0J5
QmFja2luZ10KICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IE5pY29zaWE6OkNvbXBvc2l0aW9u
TGF5ZXI6OkxheWVyU3RhdGUmIGxheWVyU3RhdGUpCiAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXllclN0YXRlLmRlbHRhLnBvc2l0aW9uQ2hhbmdl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENv
bXBvc2l0b3IuY3BwCmluZGV4IGJjYjIzNTk3NWIxMzNkMmUyNzY3NmQyODNmZTg5MTM4MWEwZDVk
MWMuLmI4YzczMDNlNzU5YzAwNGQzYzk3Yzc4Y2IyN2M5ZTdkMGMzZTVmMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNw
cApAQCAtMTY3LDcgKzE2Nyw2IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJlcGFp
bnQoKQogICAgIC8vIGluIGEgd2F5IHRoYXQgZG9lc24ndCBzdGFydmUgb3V0IHRoZSB1bmRlcmx5
aW5nIGdyYXBoaWNzIGJ1ZmZlcnMuCiAjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKFdQRV9SRU5E
RVJFUikKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gY2hhbmdlKG1faW5Gb3JjZVJlcGFpbnQsIHRydWUpOwogICAgICAgICByZW5kZXJMYXllclRy
ZWUoKTsKICAgICB9KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA0OTA2NDBkNTQzYjMxMWM0YWY3MTAx
NTNhNTAxZDE4ZDg0M2Y0ZjUwLi5mY2QyZTQ4ODg5OTlkMDUyZTAyNGE1ZDMyYTU5MzQ5N2Q2ZGVi
YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaApAQCAtMTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRf
dCBtX25hdGl2ZVN1cmZhY2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFp
bnRGbGFncyBtX3BhaW50RmxhZ3MgeyAwIH07Ci0gICAgYm9vbCBtX2luRm9yY2VSZXBhaW50IHsg
ZmFsc2UgfTsKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRlZENvdW50IHsgMCB9OwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPENvbXBvc2l0aW5nUnVuTG9vcD4gbV9jb21wb3NpdGluZ1J1bkxvb3A7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0
aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5h
dmlnYXRpb25DbGllbnQuY3BwCmluZGV4IDU0ZWYwYjRlNWE5MWU0ZDg1NDc4MmIwZjIzNWRmMmRl
MTE5YzVhMWEuLjc4NzY0NDM5YTQ3NWIyMzlkMDcyZDczOTQwMWE4Mjg1MDg3MTM5NGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5h
dmlnYXRpb25DbGllbnQuY3BwCkBAIC0xMjMsNiArMTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6
RXhjZWVkZWRDUFVMaW1pdDoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246
OlJlcXVlc3RlZEJ5Q2xpZW50OgorICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bjo6UmVxdWVzdGVkQnlOZXR3b3JrUHJvY2VzczoKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246Ok5hdmlnYXRpb25Td2FwOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCBl
M2Y0Zjg1NDY5YzlkMTU5ZTI1YmQ1ODI2YTczZmQwY2EzMzVlZTQwLi5iNjU1MWVhYmY1YzJiYmQ4
Y2M0ZDQ4MmY0Y2YwNTJlYmVlOTRjMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQ
cm90b2NvbEhhbmRsZXIuY3BwCkBAIC02MCw3ICs2MCw2IEBAIHByaXZhdGU6CiB9OwogCiBSZW1v
dGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OlJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cihXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7
CiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUoY29udGV4dCwgImlu
c3BlY3RvciIsIFtdKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyIHVz
ZXJEYXRhKSB7CiAgICAgICAgIHN0YXRpY19jYXN0PFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFu
ZGxlcio+KHVzZXJEYXRhKS0+aGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90
ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCmluZGV4IGM0ODczZTc1NjZkNTU1YmJiNGE3NzM5
MmRmNzIyNWEzMTRjMjZkYzIuLmY2YTBkMDExMjMzODMwOGUxODExMDA4ODFiOGJkZTRmNWJlYzc4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaApAQCAtNDks
NyArNDksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5z
cGVjdG9yQ2xpZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKFJlbW90
ZUluc3BlY3RvckNsaWVudCYpIG92ZXJyaWRlOwogCi0gICAgV2ViS2l0V2ViQ29udGV4dCogbV9j
b250ZXh0IHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlSW5zcGVjdG9yQ2xpZW50Pj4gbV9pbnNwZWN0b3JDbGllbnRzOwogICAgIEhhc2hTZXQ8
V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyKj4gbV91c2VyQ29udGVudE1hbmFnZXJzOwogICAgIEhh
c2hTZXQ8V2ViS2l0V2ViVmlldyo+IG1fd2ViVmlld3M7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGY3ZDViYWQzNTUzNTBkOTJkYzljOThmYjVi
MTIwYmMwZmEyMzQxOC4uZGIyNzM5ODU0MDU1ODFmMTgwMzI4MDQyOWYzYTFiYzRiMDEwMDExZSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDIwLTAzLTE2ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNv
bT4KKworICAgICAgICBGaXggbWFueSB3YXJuaW5ncyB3aXRoIENsYW5nIDcuMCBvbiBHVEsgeDg2
LTY0IGluIERlYnVnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwOgorICAgICAg
ICAodGVzdERvd25sb2FkTUlNRVR5cGUpOgorICAgICAgICAodGVzdENvbnRleHRNZW51RG93bmxv
YWRBY3Rpb25zKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0
UHJpbnRpbmcuY3BwOgorCiAyMDIwLTAzLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNTg2MjYpOiB3ZWJraXQtZGlycyB3
YXJuaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJh
bnNmb3JtYXRpb25NYXRyaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCAxOTdkMjEzZWU3YTI3YzEzNWExNDYzYjRl
OTU4ZmJlMDJiNTJhMDc5Li5hZmFkYmM1MzkyMjNlNGIyYzY1ZmY2MDA2NzNkNWFjYThhZGU2NmMx
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVHJhbnNmb3Jt
YXRpb25NYXRyaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKQEAgLTEyMzksNiArMTIzOSw4IEBAIFRFU1QoVHJhbnNm
b3JtYXRpb25NYXRyaXgsIENhc3RpbmcpCiAgICAgRVhQRUNUX0RPVUJMRV9FUSgzLjAsIGNhRnJv
bVdLLm00Mik7CiAgICAgRVhQRUNUX0RPVUJMRV9FUSgyLjAsIGNhRnJvbVdLLm00Myk7CiAgICAg
RVhQRUNUX0RPVUJMRV9FUSgxLjAsIGNhRnJvbVdLLm00NCk7CisjZWxzZQorICAgIFVOVVNFRF9W
QVJJQUJMRSh0ZXN0KTsKICNlbmRpZgogCiAjaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNz
aW9uLmNwcAppbmRleCBjZGFiNGFlZWRlZjU1ZmYzZmFiM2UzMzZlNDIzMDBjYmFiZDhlYTRkLi41
YWU0NGQ0Njc3ZTY5MjVhNWE5NGY3OWQ2MmI5OTlkZjgyNTQyZTJiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRp
b25TZXNzaW9uLmNwcApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENv
bm5lY3Rpb24oUmVmPFNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICB7Ci0gICAg
ICAgIGdfYXNzZXJ0X3RydWUoY29ubmVjdGlvbi5wdHIoKSk7CiAgICAgICAgIG1fY29ubmVjdGlv
biA9IFdURk1vdmUoY29ubmVjdGlvbik7CiAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWlu
TG9vcC5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3REb3dubG9hZHMuY3BwCmluZGV4IGUwMzkxOTljMTcyZWM3ZDIzZDky
NGUwOWU5M2RjMGY4OGRmMTExNGMuLmY3MzNlODE4M2FjZjAyM2U3ZGViZGIxZDZhNGY5ODVkYzIw
MWM0ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0RG93bmxvYWRzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdERvd25sb2Fkcy5jcHAKQEAgLTY3MiwxNCArNjcyLDE0IEBAIHN0YXRpYyB2b2lkIHRl
c3REb3dubG9hZE1JTUVUeXBlKERvd25sb2FkVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAg
ICBldmVudHMuY2xlYXIoKTsKIAogICAgIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QgPSB3ZWJr
aXRfZG93bmxvYWRfZ2V0X3JlcXVlc3QoZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19V
UklfUkVRVUVTVChyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVR
VUVTVChyZXF1ZXN0KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVz
dF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Vua25vd24i
KSk7CiAKICAgICBhdXRvIGhlYWRlcnMgPSB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X2h0dHBfaGVh
ZGVycyhyZXF1ZXN0KTsKICAgICBnX2Fzc2VydF9ub25udWxsKHNvdXBfbWVzc2FnZV9oZWFkZXJz
X2dldF9vbmUoaGVhZGVycywgIlVzZXItQWdlbnQiKSk7CiAKICAgICBXZWJLaXRVUklSZXNwb25z
ZSogcmVzcG9uc2UgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3Jlc3BvbnNlKGRvd25sb2FkLmdldCgp
KTsKLSAgICBXRUJLSVRfSVNfVVJJX1JFU1BPTlNFKHJlc3BvbnNlKTsKKyAgICBnX2Fzc2VydF90
cnVlKFdFQktJVF9JU19VUklfUkVTUE9OU0UocmVzcG9uc2UpKTsKICAgICBnX2Fzc2VydF9jbXBz
dHIod2Via2l0X3VyaV9yZXNwb25zZV9nZXRfbWltZV90eXBlKHJlc3BvbnNlKSwgPT0sICJhcHBs
aWNhdGlvbi9wZGYiKTsKIAogICAgIGdfYXNzZXJ0X25vbm51bGwod2Via2l0X2Rvd25sb2FkX2dl
dF9kZXN0aW5hdGlvbihkb3dubG9hZC5nZXQoKSkpOwpAQCAtNzM5LDcgKzczOSw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RDb250ZXh0TWVudURvd25sb2FkQWN0aW9ucyhXZWJWaWV3RG93bmxvYWRUZXN0
KiB0ZXN0LCBnY29uc3Rwb2luCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX3dlYlZpZXcgPT0g
d2Via2l0X2Rvd25sb2FkX2dldF93ZWJfdmlldyh0ZXN0LT5tX2Rvd25sb2FkLmdldCgpKSk7CiAK
ICAgICBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0ID0gd2Via2l0X2Rvd25sb2FkX2dldF9yZXF1
ZXN0KHRlc3QtPm1fZG93bmxvYWQuZ2V0KCkpOwotICAgIFdFQktJVF9JU19VUklfUkVRVUVTVChy
ZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0
KSk7CiAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJl
cXVlc3QpLCA9PSwga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Rlc3QucGRmIikpOwogCiAgICAg
YXV0byBoZWFkZXJzID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF9odHRwX2hlYWRlcnMocmVxdWVz
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0
UHJpbnRpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFBy
aW50aW5nLmNwcAppbmRleCA1NDhhOTgxYzFiNDIyMzgyYzZiZGZlMjBhMDE3Nzk3ZWE2Nzc3MjAw
Li43MGY3MDlkYzE5MmZlZGMxNThkNzliM2Y1MDViZTYzZjY0NTgxYzc3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0UHJpbnRpbmcuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RQcmludGluZy5jcHAKQEAg
LTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgR1JlZlB0cjxXZWJLaXRQcmlu
dE9wZXJhdGlvbj4gbV9wcmludE9wZXJhdGlvbjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkRXJy
b3I7CisgICAgaW50IG1fZXhwZWN0ZWRFcnJvcjsKIH07CiAKIHN0YXRpYyB2b2lkIHRlc3RQcmlu
dE9wZXJhdGlvblByaW50KFByaW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>