<?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>223847</bug_id>
          
          <creation_ts>2021-03-27 21:08:23 -0700</creation_ts>
          <short_desc>Plumb DisplayUpdate through the display refresh monitors</short_desc>
          <delta_ts>2021-03-29 10:21:50 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>luiz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744584</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-27 21:08:23 -0700</bug_when>
    <thetext>Plumb DisplayUpdate through the display refresh monitors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744585</commentid>
    <comment_count>1</comment_count>
      <attachid>424480</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-27 21:23:16 -0700</bug_when>
    <thetext>Created attachment 424480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744588</commentid>
    <comment_count>2</comment_count>
      <attachid>424481</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-27 22:07:25 -0700</bug_when>
    <thetext>Created attachment 424481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744589</commentid>
    <comment_count>3</comment_count>
      <attachid>424482</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-27 23:19:32 -0700</bug_when>
    <thetext>Created attachment 424482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744590</commentid>
    <comment_count>4</comment_count>
      <attachid>424483</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-27 23:38:23 -0700</bug_when>
    <thetext>Created attachment 424483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744615</commentid>
    <comment_count>5</comment_count>
      <attachid>424498</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-28 08:53:57 -0700</bug_when>
    <thetext>Created attachment 424498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744648</commentid>
    <comment_count>6</comment_count>
      <attachid>424498</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-28 15:06:02 -0700</bug_when>
    <thetext>Comment on attachment 424498
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        that&apos;s that&apos;s necessary for downstream clients.

that&apos;s that&apos;s -&gt; that&apos;s

&gt; Source/WebKit/ChangeLog:15
&gt; +        the highest possible frequency; at various stages of propagation the rate might be halved if
&gt; +        that&apos;s that&apos;s necessary for downstream clients.

that&apos;s that&apos;s -&gt; that&apos;s

&gt; Source/WebKit/ChangeLog:18
&gt; +        To make this frequency splitting logic simple, this patch introduces DisplayUpdate, which
&gt; +        represents the fractional second for the current update. The numerator is the frame index,

The first sentence here is a bit confusing here: &quot;...DisplayUpdate, which represents the fractional second for the current update&quot;. It seems more like &quot;DisplayUpdate represents an update of the display, and contains data about it in the form of ...&quot;, is that correct?

&gt; Source/WebCore/platform/graphics/DisplayUpdate.h:46
&gt; +    void didUpdate()
&gt; +    {
&gt; +        updateIndex = (updateIndex + 1) % updatesPerSecond;
&gt; +    }

I think this would be a bit more easy to understand if this returned a new DisplayUpdate and was called something like nextUpdate(). That way we could treat these as immutable values, which is a bit easier to think about.

&gt; Source/WebCore/platform/graphics/ios/DisplayRefreshMonitorIOS.mm:40
&gt; +constexpr WebCore::FramesPerSecond DisplayLinkFramesPerSecond = 60;

Should this be named something like preferredDisplayLinkFramesPerSecond or maximumDisplayLinkFramesPerSecond? It&apos;s a bit sad this is hard coded here and not something more configurable per-page.

&gt; Source/WebCore/platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h:46
&gt; +    const DisplayUpdate&amp; currentUpdate() const { return m_currentUpdate; }

I think this could just return DisplayUpdate, rather than a reference, give how small it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744733</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-29 09:40:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/75958114&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744751</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-29 10:07:52 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; Comment on attachment 424498 [details]

&gt; &gt; Source/WebCore/platform/graphics/DisplayUpdate.h:46
&gt; &gt; +    void didUpdate()
&gt; &gt; +    {
&gt; &gt; +        updateIndex = (updateIndex + 1) % updatesPerSecond;
&gt; &gt; +    }
&gt; 
&gt; I think this would be a bit more easy to understand if this returned a new
&gt; DisplayUpdate and was called something like nextUpdate(). That way we could
&gt; treat these as immutable values, which is a bit easier to think about.

Done.

&gt; &gt; Source/WebCore/platform/graphics/ios/DisplayRefreshMonitorIOS.mm:40
&gt; &gt; +constexpr WebCore::FramesPerSecond DisplayLinkFramesPerSecond = 60;
&gt; 
&gt; Should this be named something like preferredDisplayLinkFramesPerSecond or
&gt; maximumDisplayLinkFramesPerSecond? It&apos;s a bit sad this is hard coded here
&gt; and not something more configurable per-page.

DisplayRefreshMonitorIOS is only used in UIWebView so I think is OK to hardcode 60.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h:46
&gt; &gt; +    const DisplayUpdate&amp; currentUpdate() const { return m_currentUpdate; }

Was unused, so I removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744759</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-29 10:20:29 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; (In reply to Sam Weinig from comment #6)
&gt; &gt; Comment on attachment 424498 [details]
&gt; &gt; &gt; Source/WebCore/platform/graphics/ios/DisplayRefreshMonitorIOS.mm:40
&gt; &gt; &gt; +constexpr WebCore::FramesPerSecond DisplayLinkFramesPerSecond = 60;
&gt; &gt; 
&gt; &gt; Should this be named something like preferredDisplayLinkFramesPerSecond or
&gt; &gt; maximumDisplayLinkFramesPerSecond? It&apos;s a bit sad this is hard coded here
&gt; &gt; and not something more configurable per-page.
&gt; 
&gt; DisplayRefreshMonitorIOS is only used in UIWebView so I think is OK to
&gt; hardcode 60.

Maybe you should Legacy- this one like you did the WebView one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744761</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-29 10:21:50 -0700</bug_when>
    <thetext>Too late :P

https://trac.webkit.org/changeset/275163/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424480</attachid>
            <date>2021-03-27 21:23:16 -0700</date>
            <delta_ts>2021-03-27 22:24:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223847-20210327212315.patch</filename>
            <type>text/plain</type>
            <size>52405</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uMGRhZDQ2YzU4NTFlNjg0MGViZmYyMDZhNGQ1ZWQx
YmMyODc0Y2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAzLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIERpc3Bs
YXlVcGRhdGUgdGhyb3VnaCB0aGUgZGlzcGxheSByZWZyZXNoIG1vbml0b3JzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdXR1cmUgd29yayB3aWxsIGFs
bG93IERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudHMgdG8gcmVxdWVzdCBkaWZmZXJlbnQgZnJh
bWUgcmF0ZXMsIHdoaWNoCisgICAgICAgIGFyZSB3aG9sZSBmcmFjdGlvbnMgb2YgdGhlIGRpc3Bs
YXkncyBub21pbmFsIHJlZnJlc2ggcmF0ZS4gVGhlc2UgdmFyaW91cyBmcmFtZSByYXRlIHJlcXVl
c3RzCisgICAgICAgIGZsb3cgdXAgdGhyb3VnaCB0aGUgRGlzcGxheVJlZnJlc2hNb25pdG9ycywg
YW5kIGluIFdlYktpdDIsIHVwIHRocm91Z2ggSVBDIHRvIHRoZQorICAgICAgICBwZXItZGlzcGxh
eSBEaXNwbGF5TGluayB3aGljaCBtYXkgZXZlbiBzZXJ2aWNlIG11bHRpcGxlIHByb2Nlc3Nlcy4K
KworICAgICAgICBGb3IgcG93ZXIgcmVhc29ucywgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGRp
c3BsYXkgcmVmcmVzaCBub3RpZmljYXRpb25zIGRvd24gdGhlIGNoYWluIGF0CisgICAgICAgIHRo
ZSBoaWdoZXN0IHBvc3NpYmxlIGZyZXF1ZW5jeTsgYXQgdmFyaW91cyBzdGFnZXMgb2YgcHJvcGFn
YXRpb24gdGhlIHJhdGUgbWlnaHQgYmUgaGFsdmVkIGlmCisgICAgICAgIHRoYXQncyB0aGF0J3Mg
bmVjZXNzYXJ5IGZvciBkb3duc3RyZWFtIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICBUbyBt
YWtlIHRoaXMgZnJlcXVlbmN5IHNwbGl0dGluZyBsb2dpYyBzaW1wbGUsIHRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBEaXNwbGF5VXBkYXRlLCB3aGljaAorICAgICAgICByZXByZXNlbnRzIHRoZSBmcmFj
dGlvbmFsIHNlY29uZCBmb3IgdGhlIGN1cnJlbnQgdXBkYXRlLiBUaGUgbnVtZXJhdG9yIGlzIHRo
ZSBmcmFtZSBpbmRleCwKKyAgICAgICAgYW5kIHRoZSBkZW5vbWluYXRvciBpcyB0aGUgbm9taW5h
bCBmcmFtZSByYXRlLiBGcmFtZSBpbmRleCB3cmFwcyB0byB6ZXJvIGV2ZXJ5IHNlY29uZC4KKyAg
ICAgICAgCisgICAgICAgIEZvciBleGFtcGxlLCBhIDYwSHogZGlzcGxheSB3aWxsIGdlbmVyYXRl
IGRpc3BsYXkgcmVmcmVzaGVzIHdpdGggRGlzcGxheVVwZGF0ZXMgd2hpY2gKKyAgICAgICAgc2Vx
dWVudGlhbGx5IHdpbGwgYmUgeyAwLCA2MCB9LCB7IDEsIDYwIH0sIHsgMiwgNjAgfSAuLi4geyA1
OSwgNjAgfSwgeyAwLCA2MCB9LiBUaGUKKyAgICAgICAgemVyb3RoIGZyYW1lIGlzIGF0IHNvbWUg
YXJiaXRyYXJ5IHRpbWUgYW5kIG5vdCBhbGlnbmVkIHdpdGggd2FsbGNsb2NrIHRpbWUuCisgICAg
ICAgIAorICAgICAgICBUaHVzIGEgY2xpZW50IHdpdGggYSAzMEh6IHVwZGF0ZSByZXF1aXJlbWVu
dCBjYW4gc2ltcGx5IGlnbm9yZSBldmVyeSBvZGQtbnVtYmVyZWQgZnJhbWUsIGFuZAorICAgICAg
ICBhIGNsaWVudCBkb3duc3RyZWFtIGZyb20gaXQgd2l0aCBhIDE1SHogcmVxdWlyZW1lbnQsIHdo
aWNoIG9ubHkgcmVjZWl2ZXMgdGhvc2UgZXZlbi1udW1iZXJlZAorICAgICAgICBmcmFtZXMsIHN0
aWxsIGhhcyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB3aGljaCBmcmFtZXMgdG8gaWdu
b3JlLgorICAgICAgICAKKyAgICAgICAgQ2xhc3NlcyB3aGljaCBhcmUgc291cmNlcyBvZiBjYWxs
YmFja3MgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvciBuZWVkIHRvIGdlbmVyYXRlIHRoZXNlCisg
ICAgICAgIERpc3BsYXlVcGRhdGVzOyB0aGF0IGluY2x1ZGVzIHRoZSB2YXJpb3VzIHBsYXRmb3Jt
IERpc3BsYXlSZWZyZXNoTW9uaXRvciBzdWJjbGFzc2VzIGluCisgICAgICAgIFdlYkNvcmUsIGFu
ZCB0aG9zZSBpbiBXZWJLaXQgdGhhdCBsaXZlIGluIHRoZSBVSSBwcm9jZXNzIGFuZCB0cmlnZ2Vy
IHVwZGF0ZXMgb3ZlciBJUEMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVS
YXRlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGF0Y2hE
aXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlXYXNVcGRhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaC4KKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlVcGRhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheVVwZGF0ZTo6ZGlkVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlVcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5VXBkYXRlOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuY3BwOiBBc3N1bWUgYSA2MGZwcyByZWZyZXNoIHJhdGUgYnV0IHRoaXMgY29kZQorICAg
ICAgICBzaG91bGQgcHJvYmFibHkgdXNlIGdka19mcmFtZV9jbG9ja19nZXRfcmVmcmVzaF9pbmZv
KCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHJhdGUuCisgICAgICAgIChXZWJDb3JlOjpvbkZyYW1lQ2xv
Y2tVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpk
aXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tOgor
ICAgICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaW5pdFdpdGhNb25pdG9yOl0pOgorICAg
ICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaGFuZGxlRGlzcGxheUxpbms6XSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKC1bV2ViRGlzcGxheUxpbmtIYW5k
bGVyIHNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0NhbGxiYWNrRmly
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNwbGF5TGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmN1cnJlbnRVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
V2luOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaDoKKwogMjAyMS0wMy0yNyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBEaXNwbGF5
UmVmcmVzaE1vbml0b3IgdG8gYmUgbW9yZSBsb25nLWxpdmVkIG9iamVjdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmI4Mjk0NzgzNTk3NzcyMzRjOGU5OTNmNzNiMzlmZDZlYjcyNjc0Zi4uMmI0YTY1ZDNhMTBhMWFi
ZjFkYjM5YmM4YzMzZDcxMWY5ZDZiN2U1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAy
MS0wMy0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBQbHVtYiBEaXNwbGF5VXBkYXRlIHRocm91Z2ggdGhlIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnV0dXJl
IHdvcmsgd2lsbCBhbGxvdyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnRzIHRvIHJlcXVlc3Qg
ZGlmZmVyZW50IGZyYW1lIHJhdGVzLCB3aGljaAorICAgICAgICBhcmUgd2hvbGUgZnJhY3Rpb25z
IG9mIHRoZSBkaXNwbGF5J3Mgbm9taW5hbCByZWZyZXNoIHJhdGUuIFRoZXNlIHZhcmlvdXMgZnJh
bWUgcmF0ZSByZXF1ZXN0cworICAgICAgICBmbG93IHVwIHRocm91Z2ggdGhlIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcnMsIGFuZCBpbiBXZWJLaXQyLCB1cCB0aHJvdWdoIElQQyB0byB0aGUKKyAgICAg
ICAgcGVyLWRpc3BsYXkgRGlzcGxheUxpbmsgd2hpY2ggbWF5IGV2ZW4gc2VydmljZSBtdWx0aXBs
ZSBwcm9jZXNzZXMuCisKKyAgICAgICAgRm9yIHBvd2VyIHJlYXNvbnMsIHdlIGRvbid0IHdhbnQg
dG8gdHJpZ2dlciBkaXNwbGF5IHJlZnJlc2ggbm90aWZpY2F0aW9ucyBkb3duIHRoZSBjaGFpbiBh
dAorICAgICAgICB0aGUgaGlnaGVzdCBwb3NzaWJsZSBmcmVxdWVuY3k7IGF0IHZhcmlvdXMgc3Rh
Z2VzIG9mIHByb3BhZ2F0aW9uIHRoZSByYXRlIG1pZ2h0IGJlIGhhbHZlZCBpZgorICAgICAgICB0
aGF0J3MgdGhhdCdzIG5lY2Vzc2FyeSBmb3IgZG93bnN0cmVhbSBjbGllbnRzLgorICAgICAgICAK
KyAgICAgICAgVG8gbWFrZSB0aGlzIGZyZXF1ZW5jeSBzcGxpdHRpbmcgbG9naWMgc2ltcGxlLCB0
aGlzIHBhdGNoIGludHJvZHVjZXMgRGlzcGxheVVwZGF0ZSwgd2hpY2gKKyAgICAgICAgcmVwcmVz
ZW50cyB0aGUgZnJhY3Rpb25hbCBzZWNvbmQgZm9yIHRoZSBjdXJyZW50IHVwZGF0ZS4gVGhlIG51
bWVyYXRvciBpcyB0aGUgZnJhbWUgaW5kZXgsCisgICAgICAgIGFuZCB0aGUgZGVub21pbmF0b3Ig
aXMgdGhlIG5vbWluYWwgZnJhbWUgcmF0ZS4gRnJhbWUgaW5kZXggd3JhcHMgdG8gemVybyBldmVy
eSBzZWNvbmQuCisgICAgICAgIAorICAgICAgICBGb3IgZXhhbXBsZSwgYSA2MEh6IGRpc3BsYXkg
d2lsbCBnZW5lcmF0ZSBkaXNwbGF5IHJlZnJlc2hlcyB3aXRoIERpc3BsYXlVcGRhdGVzIHdoaWNo
CisgICAgICAgIHNlcXVlbnRpYWxseSB3aWxsIGJlIHsgMCwgNjAgfSwgeyAxLCA2MCB9LCB7IDIs
IDYwIH0gLi4uIHsgNTksIDYwIH0sIHsgMCwgNjAgfS4gVGhlCisgICAgICAgIHplcm90aCBmcmFt
ZSBpcyBhdCBzb21lIGFyYml0cmFyeSB0aW1lIGFuZCBub3QgYWxpZ25lZCB3aXRoIHdhbGxjbG9j
ayB0aW1lLgorICAgICAgICAKKyAgICAgICAgVGh1cyBhIGNsaWVudCB3aXRoIGEgMzBIeiB1cGRh
dGUgcmVxdWlyZW1lbnQgY2FuIHNpbXBseSBpZ25vcmUgZXZlcnkgb2RkLW51bWJlcmVkIGZyYW1l
LCBhbmQKKyAgICAgICAgYSBjbGllbnQgZG93bnN0cmVhbSBmcm9tIGl0IHdpdGggYSAxNUh6IHJl
cXVpcmVtZW50LCB3aGljaCBvbmx5IHJlY2VpdmVzIHRob3NlIGV2ZW4tbnVtYmVyZWQKKyAgICAg
ICAgZnJhbWVzLCBzdGlsbCBoYXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgd2hpY2gg
ZnJhbWVzIHRvIGlnbm9yZS4KKyAgICAgICAgCisgICAgICAgIENsYXNzZXMgd2hpY2ggYXJlIHNv
dXJjZXMgb2YgY2FsbGJhY2tzIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3IgbmVlZCB0byBnZW5l
cmF0ZSB0aGVzZQorICAgICAgICBEaXNwbGF5VXBkYXRlczsgdGhhdCBpbmNsdWRlcyB0aGUgdmFy
aW91cyBwbGF0Zm9ybSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igc3ViY2xhc3NlcyBpbgorICAgICAg
ICBXZWJDb3JlLCBhbmQgdGhvc2UgaW4gV2ViS2l0IHRoYXQgbGl2ZSBpbiB0aGUgVUkgcHJvY2Vz
cyBhbmQgdHJpZ2dlciB1cGRhdGVzIG92ZXIgSVBDLgorCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheVJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5r
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpub3RpZnlPYnNl
cnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlkVXBkYXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1lc1Bl
clNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggN2UxODA1NWQzYzM3MTU0Nzg0MDVm
ZjM5YTU1Y2M5OTE4M2NiNmVjOC4uYWJlZjM3MjE1MDg0ZTI5OWJiZDkzMmZlYmRhYjFjNDdmYzQz
ZWFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5NDMsNiArMTk0Myw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL0N1c3RvbVBhaW50SW1hZ2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVz
aE1vbml0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGll
bnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNw
cAorcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0TGluZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFBvaW50M0QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDUwMDY0OTg1NDNjYTE5ZjdhN2VhMGRk
MDFjZjQwNDhiYjczNzk1MS4uOTk1N2RhYTNlNDE1NmRlYjY0ODhlMTE4NWRhMjUzNTA3NjJiNmIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzQ1LDYgKzM0NSw3IEBACiAJCTBGQjYyNTJGMThERTFCMTUwMEEwN0MwNSAvKiBH
ZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZCNjI1MkQxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZCODg5
MEYxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCODg5MEQxNjdEMzAxNjAw
MTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQkI1RkJFMjYwOTkxRDIwMDU0NTcyQyAv
KiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkJCNUZCRDI2MDk1QTlDMDA1NDU3MkMgLyogRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGQkI1RkNDMjYwRTlFMDcwMDU0NTcyQyAvKiBEaXNwbGF5VXBk
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkJC
NUZDQjI2MEU5QjQ0MDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzRCMDA2MjJCOUEwMkQwMENGM0Ix
RSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzRCMDA0MjJCOUEwMkMwMENGM0Ix
RSAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkNGMzMyRjBGMkI5QTI1MDA0
QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGQ0YzMzJCMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRDMwODBGMTE3Q0Y3
RTcwMEE3OTFGNyAvKiBSZW5kZXJGcmFtZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDMwODBEMTE3Q0Y3RTcwMEE3OTFGNyAvKiBSZW5kZXJG
cmFtZUJhc2UuaCAqLzsgfTsKQEAgLTYyMDUsNiArNjIwNiw4IEBACiAJCTBGQjg4OTBDMTY3RDMw
MTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZCODg5MEQxNjdEMzAxNjAwMTBDREE1IC8qIFNj
cm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rv
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkJCNUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlz
cGxheVVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5VXBkYXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCQjVGQ0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERp
c3BsYXlVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVVwZGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRkJGQ0UyNDI1NkNCRDlBMDBBMEI0ODkgLyogRGlzcGxheUJv
eENsaXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUJveENsaXAuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkJGQ0UyNjI1NkNCRDlBMDBBMEI0ODkgLyogRGlzcGxh
eUJveENsaXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUJveENsaXAuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZDMDUxNjgyMTlCNUVCRTAwMzFDMzlFIC8qIFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY3ODAsNiArMjY3ODMsOCBAQAogCQkJCTBGQkI1RkJEMjYwOTVBOUMwMDU0
NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmggKi8sCiAJCQkJMkQyOUVDQzMx
OTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwICovLAog
CQkJCTJEMjlFQ0M0MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5h
Z2VyLmggKi8sCisJCQkJMEZCQjVGQzkyNjBFOUI0MzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUu
Y3BwICovLAorCQkJCTBGQkI1RkNCMjYwRTlCNDQwMDU0NTcyQyAvKiBEaXNwbGF5VXBkYXRlLmgg
Ki8sCiAJCQkJNkU2N0QyQTgxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnNHTC5oICovLAog
CQkJCTJFODg4Q0E5MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuY3BwICovLAogCQkJCTJF
ODg4Q0E4MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuaCAqLywKQEAgLTMyMTE5LDYgKzMy
MTI0LDcgQEAKIAkJCQkwRkJCNUZCRTI2MDk5MUQyMDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hN
b25pdG9yRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQyOUVDQ0ExOTJGMUYxRDAwOTg0
Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQy
OUVDQzgxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGQkI1RkNDMjYwRTlFMDcwMDU0NTcyQyAvKiBEaXNwbGF5VXBk
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlz
cGxheVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDkxMTJCMDI2RjcwMEMxQTM1OSAv
KiBEaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDAyODMyNDlBN0E2MjAwQTkwRDhE
IC8qIERpc3RhbmNlTW9kZWxUeXBlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYjI3ZmQzNjAxMjQwOTk2MzU1MDRmNTI3MTg4MDY1ODdj
Mzg1YTUxYy4uNmVlZWQxZjQyMDJmYjkyMjAyMjVjYzRhNzM0ZGViZjY3YTA2ODFjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5RGlzcGxheVJlZnJlc2hNb25p
dG9yKGRpc3BsYXlJRCkpOwogICAgIH0KIAotICAgIHZvaWQgZGlzcGxheUxpbmtGaXJlZCgpIGZp
bmFsIHsgfQorICAgIHZvaWQgZGlzcGxheUxpbmtGaXJlZChjb25zdCBEaXNwbGF5VXBkYXRlJikg
ZmluYWwgeyB9CiAgICAgYm9vbCByZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2b2lkIHN0b3AoKSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAKaW5k
ZXggZGU4NjViZDFjYzAyMDQ3ZDkwYmVjYzAyMGJlZWJhNzg4MjA4ZjMwMS4uNWMyYzQwODljNThm
YjliMmNlODRjMDkzNjMzZmUwMmRjODZhZjJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBbmltYXRpb25GcmFtZVJh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQW5p
bWF0aW9uRnJhbWVSYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Bbmlt
YXRpb25GcmFtZVJhdGUuaAppbmRleCAxYmFmODdlZDY1MjM5NWY2MzA1NzliYTdhZmU5MDJlODAw
YjliNmJiLi5iNDFiYzRlOTlkMjc5MzUzNDIxNDdiZDg4OWM0YzAxOWJmZWNhMzJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJh
dGUuaApAQCAtMjYsOCArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09w
dGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNv
bmRzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorCituYW1lc3BhY2UgV1RG
IHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQs
NiArNTgsNiBAQCBXRUJDT1JFX0VYUE9SVCBGcmFtZXNQZXJTZWNvbmQgZnJhbWVzUGVyU2Vjb25k
TmVhcmVzdEZ1bGxTcGVlZChGcmFtZXNQZXJTZWNvbmQpOwogV0VCQ09SRV9FWFBPUlQgU2Vjb25k
cyBwcmVmZXJyZWRGcmFtZUludGVydmFsKGNvbnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29u
PiYsIE9wdGlvbmFsPEZyYW1lc1BlclNlY29uZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCk7CiBX
RUJDT1JFX0VYUE9SVCBGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kRnJv
bUludGVydmFsKFNlY29uZHMpOwogCi1XRUJDT1JFX0VYUE9SVCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mLCBjb25zdCBPcHRpb25TZXQ8VGhyb3R0bGluZ1JlYXNvbj4mKTsKK1dF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBjb25zdCBPcHRpb25TZXQ8VGhyb3R0bGluZ1JlYXNvbj4mKTsKIAotfQorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKaW5kZXggYjhlZTJjOTliY2M3MGE3OTExZDk4
MGEwYWJhNGM1NDc5NzBlYjdiNy4uODNmZjNkMzYxMzMxNTI3NmY2MjlkYjQxZTU0MjA3YjdhNGJi
ODNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBEaXNw
bGF5UmVmcmVzaE1vbml0b3I6OmZpcmVkQW5kUmVhY2hlZE1heFVuc2NoZWR1bGVkRmlyZUNvdW50
KCkKICAgICByZXR1cm4gbV91bnNjaGVkdWxlZEZpcmVDb3VudCA+IG1fbWF4VW5zY2hlZHVsZWRG
aXJlQ291bnQ7CiB9CiAKLXZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0Zp
cmVkKCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKGNvbnN0
IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgewogICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CkBAIC0xNDYsMTkgKzE0NiwyMiBAQCB2b2lkIERpc3Bs
YXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheUxpbmtGaXJlZCgpCiAgICAgICAgIHNldElzU2NoZWR1
bGVkKGZhbHNlKTsKICAgICAgICAgc2V0SXNQcmV2aW91c0ZyYW1lRG9uZShmYWxzZSk7CiAgICAg
fQotICAgIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKTsKKyAgICBkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRv
cjo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCgpCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRv
cjo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaChjb25zdCBEaXNwbGF5VXBkYXRlJiBkaXNwbGF5
VXBkYXRlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgZGlzcGxheURpZFJl
ZnJlc2goKTsKKyAgICBkaXNwbGF5RGlkUmVmcmVzaChkaXNwbGF5VXBkYXRlKTsKIH0KIAotdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlEaWRSZWZyZXNoKCkKK3ZvaWQgRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaChjb25zdCBEaXNwbGF5VXBkYXRlJiBk
aXNwbGF5VXBkYXRlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKKyAgICBVTlVT
RURfUEFSQU0oZGlzcGxheVVwZGF0ZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5r
LCBzdHJlYW0gPDwgIkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheURpZFJlZnJlc2ggZm9y
IGRpc3BsYXkgIiA8PCBkaXNwbGF5SUQoKSA8PCAiIHVwZGF0ZSAiIDw8IGRpc3BsYXlVcGRhdGUp
OworCiAgICAgLy8gVGhlIGNhbGwgYmFjayBjYW4gY2F1c2UgYWxsIG91ciBjbGllbnRzIHRvIGJl
IHVucmVnaXN0ZXJlZCwgc28gd2UgbmVlZCB0byBwcm90ZWN0CiAgICAgLy8gYWdhaW5zdCBkZWxl
dGlvbiB1bnRpbCB0aGUgZW5kIG9mIHRoZSBtZXRob2QuCiAgICAgUmVmPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCmluZGV4IDVlNjU2
ZDcwMmJkMmQzYWMwYWYwMzdjNWIyZWZlYjVmMDBhZDhkMzIuLjI1YTEzZjkyZTQ5NGNkY2YzMzg3
NmE5OWE1M2MzNzhlODEzNDI3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1
ZGUgIkRpc3BsYXlVcGRhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTYxLDEyICs2Miwx
MiBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9kaXNwbGF5SUQ7IH0KIAogICAgIHN0YXRpYyBSZWZQdHI8RGlzcGxheVJlZnJlc2hN
b25pdG9yPiBjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxh
eUlEKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGlzcGxheUxpbmtGaXJlZCgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKGNvbnN0
IERpc3BsYXlVcGRhdGUmKTsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IERpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGNv
bnN0IERpc3BsYXlVcGRhdGUmKTsKIAogICAgIExvY2smIGxvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KICAgICB2b2lkIHNldE1heFVuc2NoZWR1bGVkRmlyZUNvdW50KHVuc2lnbmVkIGNvdW50KSB7
IG1fbWF4VW5zY2hlZHVsZWRGaXJlQ291bnQgPSBjb3VudDsgfQpAQCAtODEsNyArODIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBpc1ByZXZpb3VzRnJhbWVEb25lKCkgY29uc3QgeyByZXR1cm4g
bV9wcmV2aW91c0ZyYW1lRG9uZTsgfQogICAgIHZvaWQgc2V0SXNQcmV2aW91c0ZyYW1lRG9uZShi
b29sIGRvbmUpIHsgbV9wcmV2aW91c0ZyYW1lRG9uZSA9IGRvbmU7IH0KIAotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2goKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpc3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmKTsKIAogcHJpdmF0ZToKICAg
ICBib29sIGZpcmVkQW5kUmVhY2hlZE1heFVuc2NoZWR1bGVkRmlyZUNvdW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCmluZGV4IDJjMzk3Yjk5OGZiZjFlNjVmZTliZDFmMTJk
ODMzM2VmN2JjYmQ0ZWIuLmQ5NWVjYTc0YzIwY2EwNmNlYWFkYjYxYTc1NzQ2Y2QxNDNjZGUwNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCkBAIC0xMDgsMTEgKzEwOCwxMSBA
QCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OndpbmRvd1NjcmVlbkRpZENoYW5n
ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbAogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbihjbGll
bnQpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlXYXNV
cGRhdGVkKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
eUlELCBjb25zdCBEaXNwbGF5VXBkYXRlJiBkaXNwbGF5VXBkYXRlKQogewogICAgIGF1dG8qIG1v
bml0b3IgPSBtb25pdG9yRm9yRGlzcGxheUlEKGRpc3BsYXlJRCk7CiAgICAgaWYgKG1vbml0b3Ip
Ci0gICAgICAgIG1vbml0b3ItPmRpc3BsYXlMaW5rRmlyZWQoKTsKKyAgICAgICAgbW9uaXRvci0+
ZGlzcGxheUxpbmtGaXJlZChkaXNwbGF5VXBkYXRlKTsKIH0KIAogc2l6ZV90IERpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OmZpbmRNb25pdG9yRm9yRGlzcGxheUlEKFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaAppbmRleCAw
YWUwZmEwOWZiMDY2ZWY5ZTA3NDg2YmQ0NzM3OWVmYTI2NDg0ZjEwLi5lZTg5MTI5MDM0MjUzNzUx
ZGRlNzJiNmFhZTJkNDVlNjNhN2VjYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
CkBAIC0zNCw2ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IERpc3Bs
YXlVcGRhdGU7CisKIGNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIgewogICAgIGZy
aWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyPjsK
ICAgICBmcmllbmQgY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yOwpAQCAtNDYsNyArNDgsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzY2hlZHVsZUFuaW1hdGlvbihEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQmKTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3Bs
YXlJRCwgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpc3BsYXlXYXNVcGRhdGVkKFBsYXRmb3JtRGlzcGxheUlEKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpc3BsYXlXYXNVcGRhdGVkKFBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBE
aXNwbGF5VXBkYXRlJik7CiAKIHByaXZhdGU6CiAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlVcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVVwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmZDIzNGRjODkwNjRlYjU0ODIzNWVi
Y2ZkZDY4MDdjZmM1YmMzYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaXNwbGF5VXBkYXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRGlzcGxheVVwZGF0ZSYgdXBkYXRlKQoreworICAgIHRz
IDw8IHVwZGF0ZS51cGRhdGVJbmRleCA8PCAiLyIgPDwgdXBkYXRlLnVwZGF0ZXNQZXJTZWNvbmQ7
CisgICAgcmV0dXJuIHRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5VXBkYXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5VXBkYXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjJkNWVkNjgwYTdiMTU0NGVhMjUxNTMzOGQzMzBmZjNkNTlhMzQ4MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaApAQCAt
MCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBbmltYXRpb25GcmFtZVJhdGUuaCIKKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFt
OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFVzZWQgdG8gcmVwcmVzZW50IGEgZ2l2
ZW4gdXBkYXRlLiBBbiB2YWx1ZSBvZiB7IDMsIDYwIH0gaW5kaWNhdGVzIHRoYXQgdGhpcyBpcyB0
aGUgdGhpcmQgdXBkYXRlIGluIGEgMS1zZWNvbmQgaW50ZXJ2YWwKKy8vIG9uIGEgNjBmcHMgY2Fk
ZW5jZS4gdXBkYXRlSW5kZXggd2lsbCByZXNldCB0byB6ZXJvIGV2ZXJ5IHNlY29uZCwgc28geyA1
OSwgNjAgfSBpcyBmb2xsb3dlZCBieSB7IDAsIDYwIH0uCitzdHJ1Y3QgRGlzcGxheVVwZGF0ZSB7
CisgICAgdW5zaWduZWQgdXBkYXRlSW5kZXggeyAwIH07CisgICAgRnJhbWVzUGVyU2Vjb25kIHVw
ZGF0ZXNQZXJTZWNvbmQgeyAwIH07CisgICAgCisgICAgdm9pZCBkaWRVcGRhdGUoKQorICAgIHsK
KyAgICAgICAgdXBkYXRlSW5kZXggPSAodXBkYXRlSW5kZXggKyAxKSAlIHVwZGF0ZXNQZXJTZWNv
bmQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25h
bDxEaXNwbGF5VXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgRGlzcGxheVVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCB1cGRhdGVJbmRleDsKKyAgICBlbmNvZGVyIDw8IHVwZGF0
ZXNQZXJTZWNvbmQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxEaXNw
bGF5VXBkYXRlPiBEaXNwbGF5VXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBPcHRpb25hbDx1bnNpZ25lZD4gdXBkYXRlSW5kZXg7CisgICAgZGVjb2RlciA+PiB1cGRhdGVJ
bmRleDsKKyAgICBpZiAoIXVwZGF0ZUluZGV4KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgT3B0aW9uYWw8RnJhbWVzUGVyU2Vjb25kPiB1cGRhdGVzUGVyU2Vjb25kOworICAg
IGRlY29kZXIgPj4gdXBkYXRlc1BlclNlY29uZDsKKyAgICBpZiAoIXVwZGF0ZXNQZXJTZWNvbmQp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnVwZGF0ZUlu
ZGV4LCAqdXBkYXRlc1BlclNlY29uZCB9fTsKK30KKworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IERpc3BsYXlVcGRhdGUm
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3Rr
LmNwcAppbmRleCA4ZjY5MDljZDBkM2Y0ZjFhODgxMGVmYWVkMzViNTQxYjhhOGE5MzMzLi5hNTdl
YTBkMWFjYzQxN2VlMzBiYzY3MjdkZjhhNTE1NWE0N2QzMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrLmNwcApAQCAtMzMsNiArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NvbnN0ZXhwciBGcmFtZXNQZXJTZWNvbmQgRGVmYXVsdEZyYW1lc1BlclNlY29uZCA9IDYw
OworCiBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckd0ayhQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgOiBEaXNwbGF5UmVmcmVzaE1vbml0b3Io
ZGlzcGxheUlEKQogewpAQCAtNDUsNyArNDcsMTMgQEAgRGlzcGxheVJlZnJlc2hNb25pdG9yR3Rr
Ojp+RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKCkKIAogc3RhdGljIHZvaWQgb25GcmFtZUNsb2Nr
VXBkYXRlKEdka0ZyYW1lQ2xvY2sqLCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsqIG1vbml0b3Ip
CiB7Ci0gICAgbW9uaXRvci0+ZGlzcGxheUxpbmtGaXJlZCgpOworICAgIG1vbml0b3ItPmRpc3Bs
YXlMaW5rQ2FsbGJhY2tGaXJlZCgpOworfQorCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0
azo6ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCkKK3sKKyAgICBkaXNwbGF5TGlua0ZpcmVkKG1f
Y3VycmVudFVwZGF0ZSk7CisgICAgbV9jdXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOwogfQogCiB2
b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0azo6c3RvcCgpCkBAIC04MSw2ICs4OSw5IEBAIGJv
b2wgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgp
CiAgICAgQVNTRVJUKGZyYW1lQ2xvY2spOwogICAgIGdka19mcmFtZV9jbG9ja19iZWdpbl91cGRh
dGluZyhmcmFtZUNsb2NrKTsKIAorICAgIC8vIEZJWE1FOiBVc2UgZ2RrX2ZyYW1lX2Nsb2NrX2dl
dF9yZWZyZXNoX2luZm8gdG8gZ2V0IHRoZSBjb3JyZWN0IGZyYW1lIHJhdGUuCisgICAgbV9jdXJy
ZW50VXBkYXRlID0geyAwLCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25kIH07CisKICAgICBtX2Nsb2Nr
SXNBY3RpdmUgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvckd0ay5oCmluZGV4IDkxZGZmYzFlMDMzYzBjODYyZDE4MDBmMDZkODUzNWJhNTViOWYzNGQu
LjMyZTI2ZmMzNmJhMGZhODdlNTg0OGMwOWY1YWY1M2Q5MGRlNDVmYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JH
dGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJl
ZnJlc2hNb25pdG9yR3RrLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB+RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKCk7CiAKKyAgICB2b2lkIGRpc3BsYXlMaW5rQ2Fs
bGJhY2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9u
aXRvckd0ayhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTUwLDYgKzUyLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKIAogICAgIEd0a1dp
ZGdldCogbV93aW5kb3cgeyBudWxscHRyIH07CisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRV
cGRhdGU7CiAgICAgYm9vbCBtX2Nsb2NrSXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvcklPUy5oCmluZGV4IDEwNTA4ZTg5MGQ1MDA0MDFhN2NhMzBmMTQ0M2Vj
MTMwNzFkNDQ2OGIuLjFmOTEzMzNlYTE1MGIwMTRiODBkOTA5MTc4ZmVjYTkyNGYzZjc2MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9p
b3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmgKQEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgog
ICAgIAogICAgIHZpcnR1YWwgfkRpc3BsYXlSZWZyZXNoTW9uaXRvcklPUygpOwogCisgICAgdm9p
ZCBkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBE
aXNwbGF5UmVmcmVzaE1vbml0b3JJT1MoUGxhdGZvcm1EaXNwbGF5SUQpOwogCkBAIC01MSw2ICs1
Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmlu
YWw7CiAKICAgICBSZXRhaW5QdHI8V2ViRGlzcGxheUxpbmtIYW5kbGVyPiBtX2hhbmRsZXI7Cisg
ICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiAgICAgYm9vbCBtX2Rpc3BsYXlMaW5r
SXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0K
aW5kZXggY2RjMTZmYzQ2ZGQ4NzMzYTE2MDhmNzY4ZTU5YzUwYWIyYTc5YzdkYS4uNmI1ZjI1MGRh
ZGNiMTg5ODQxYzRkNDg3YzY3NzdmZDlkY2FmOGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25p
dG9ySU9TLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
CisjaW1wb3J0ICJEaXNwbGF5VXBkYXRlLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJXZWJDb3JlVGhyZWFkLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBRGlzcGxheUxpbmsuaD4K
QEAgLTM2LDYgKzM3LDggQEAKIAogdXNpbmcgV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
SU9TOwogCitjb25zdGV4cHIgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIERpc3BsYXlMaW5rRnJh
bWVzUGVyU2Vjb25kID0gNjA7CisKIEBpbnRlcmZhY2UgV2ViRGlzcGxheUxpbmtIYW5kbGVyIDog
TlNPYmplY3QKIHsKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MqIG1fbW9uaXRvcjsKQEAg
LTQzLDcgKzQ2LDYgQEAgQGludGVyZmFjZSBXZWJEaXNwbGF5TGlua0hhbmRsZXIgOiBOU09iamVj
dAogfQogCiAtIChpZClpbml0V2l0aE1vbml0b3I6KERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUyop
bW9uaXRvcjsKLS0gKHZvaWQpc2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kOihOU0ludGVnZXIp
cHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kOwogLSAodm9pZCloYW5kbGVEaXNwbGF5TGluazooQ0FE
aXNwbGF5TGluayAqKXNlbmRlcjsKIC0gKHZvaWQpc2V0UGF1c2VkOihCT09MKXBhdXNlZDsKIC0g
KHZvaWQpaW52YWxpZGF0ZTsKQEAgLTU5LDcgKzYxLDcgQEAgLSAoaWQpaW5pdFdpdGhNb25pdG9y
OihEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MqKW1vbml0b3IKICAgICAgICAgLy8gTm90ZSB0aGF0
IENBRGlzcGxheUxpbmsgcmV0YWlucyBpdHMgdGFyZ2V0IChzZWxmKSwgc28gYSBjYWxsIHRvIC1p
bnZhbGlkYXRlIGlzIG5lZWRlZCBvbiB0ZWFyZG93bi4KICAgICAgICAgbV9kaXNwbGF5TGluayA9
IFtDQURpc3BsYXlMaW5rIGRpc3BsYXlMaW5rV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihoYW5kbGVEaXNwbGF5TGluazopXTsKICAgICAgICAgW21fZGlzcGxheUxpbmsgYWRkVG9S
dW5Mb29wOldlYlRocmVhZE5TUnVuTG9vcCgpIGZvck1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGVd
OwotICAgICAgICBtX2Rpc3BsYXlMaW5rLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IDYwOwor
ICAgICAgICBtX2Rpc3BsYXlMaW5rLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IERpc3BsYXlM
aW5rRnJhbWVzUGVyU2Vjb25kOwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTcwLDE2
ICs3MiwxMiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLS0g
KHZvaWQpc2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kOihOU0ludGVnZXIpcHJlZmVycmVkRnJh
bWVzUGVyU2Vjb25kCi17Ci0gICAgbV9kaXNwbGF5TGluay5wcmVmZXJyZWRGcmFtZXNQZXJTZWNv
bmQgPSBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQ7Ci19Ci0KIC0gKHZvaWQpaGFuZGxlRGlzcGxh
eUxpbms6KENBRGlzcGxheUxpbmsgKilzZW5kZXIKIHsKICAgICBVTlVTRURfUEFSQU0oc2VuZGVy
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fbW9uaXRvci0+ZGlzcGxheUxp
bmtGaXJlZCgpOworICAgIAorICAgIG1fbW9uaXRvci0+ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVk
KCk7CiB9CiAKIC0gKHZvaWQpc2V0UGF1c2VkOihCT09MKXBhdXNlZApAQCAtMTE2LDYgKzExNCwx
MiBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUzo6c3RvcCgpCiAgICAgbV9oYW5kbGVy
ID0gbmlsOwogfQogCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUzo6ZGlzcGxheUxpbmtD
YWxsYmFja0ZpcmVkKCkKK3sKKyAgICBkaXNwbGF5TGlua0ZpcmVkKG1fY3VycmVudFVwZGF0ZSk7
CisgICAgbV9jdXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOworfQorCiBib29sIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcklPUzo6c3RhcnROb3RpZmljYXRpb25NZWNoYW5pc20oKQogewogICAgIGlmICht
X2Rpc3BsYXlMaW5rSXNBY3RpdmUpCkBAIC0xMjgsNyArMTMyLDEwIEBAIGJvb2wgRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpCiAKICAgICBMT0df
V0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiRGlzcGxheVJlZnJlc2hNb25pdG9y
SU9TOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSAtIHN0YXJ0aW5nIFdlYkRpc3BsYXlMaW5r
SGFuZGxlciIpOwogICAgIFttX2hhbmRsZXIgc2V0UGF1c2VkOk5PXTsKKworICAgIG1fY3VycmVu
dFVwZGF0ZSA9IHsgMCwgRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQgfTsKICAgICBtX2Rpc3Bs
YXlMaW5rSXNBY3RpdmUgPSB0cnVlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKaW5kZXggYzc0NTgwMDYxZWMxMzFm
NmEwNzY3OWU2OGNmZDdiMTc2NjUzMDlkMi4uNmJjY2Y5NzU2MjZkNThiYzA4NDgyOWI0YzAyZGMz
Y2ZlNjlhNmQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5j
cHAKQEAgLTYxLDE4ICs2MSwzMCBAQCB2b2lkIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6c3RvcCgpCiBzdGF0aWMgQ1ZSZXR1cm4gZGlzcGxheUxpbmtDYWxsYmFjayhDVkRpc3BsYXlM
aW5rUmVmLCBjb25zdCBDVlRpbWVTdGFtcCosIGNvbnN0IENWVGltZVN0YW1wKiwgQ1ZPcHRpb25G
bGFncywgQ1ZPcHRpb25GbGFncyosIHZvaWQqIGRhdGEpCiB7CiAgICAgTGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjKiBtb25pdG9yID0gc3RhdGljX2Nhc3Q8TGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjKj4oZGF0YSk7Ci0gICAgbW9uaXRvci0+ZGlzcGxheUxpbmtGaXJlZCgpOwor
ICAgIG1vbml0b3ItPmRpc3BsYXlMaW5rQ2FsbGJhY2tGaXJlZCgpOwogICAgIHJldHVybiBrQ1ZS
ZXR1cm5TdWNjZXNzOwogfQogCi12b2lkIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6
ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCgpCit2b2lkIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYzo6ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCkKIHsKLSAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAg
IGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRhdGUu
ZGlkVXBkYXRlKCk7Cit9CisKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRh
dGUpCit7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBkaXNwbGF5VXBkYXRl
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgaWYgKG1fZGlzcGxh
eUxpbmspCi0gICAgICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAgICAgICAgICAgZGlz
cGxheURpZFJlZnJlc2goZGlzcGxheVVwZGF0ZSk7CiAgICAgfSk7CiB9CiAKK1dlYkNvcmU6OkZy
YW1lc1BlclNlY29uZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6Om5vbWluYWxGcmFt
ZXNQZXJTZWNvbmRGcm9tRGlzcGxheUxpbmsoQ1ZEaXNwbGF5TGlua1JlZiBkaXNwbGF5TGluaykK
K3sKKyAgICBDVlRpbWUgcmVmcmVzaFBlcmlvZCA9IENWRGlzcGxheUxpbmtHZXROb21pbmFsT3V0
cHV0VmlkZW9SZWZyZXNoUGVyaW9kKGRpc3BsYXlMaW5rKTsKKyAgICByZXR1cm4gcm91bmQoKGRv
dWJsZSlyZWZyZXNoUGVyaW9kLnRpbWVTY2FsZSAvIChkb3VibGUpcmVmcmVzaFBlcmlvZC50aW1l
VmFsdWUpOworfQorCiBib29sIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RhcnRO
b3RpZmljYXRpb25NZWNoYW5pc20oKQogewogICAgIGlmICghbV9kaXNwbGF5TGluaykgewpAQCAt
ODMsNiArOTUsOCBAQCBib29sIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RhcnRO
b3RpZmljYXRpb25NZWNoYW5pc20oKQogICAgICAgICBlcnJvciA9IENWRGlzcGxheUxpbmtTZXRP
dXRwdXRDYWxsYmFjayhtX2Rpc3BsYXlMaW5rLCBkaXNwbGF5TGlua0NhbGxiYWNrLCB0aGlzKTsK
ICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IG1fY3VycmVudFVwZGF0ZSA9IHsgMCwgbm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNwbGF5
TGluayhtX2Rpc3BsYXlMaW5rKSB9OwogICAgIH0KIAogICAgIGlmICghbV9kaXNwbGF5TGlua0lz
QWN0aXZlKSB7CkBAIC05Myw2ICsxMDcsNyBAQCBib29sIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYzo6c3RhcnROb3RpZmljYXRpb25NZWNoYW5pc20oKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAKICAgICAgICAgbV9kaXNwbGF5TGlua0lzQWN0aXZlID0gdHJ1ZTsK
KyAgICAgICAgbV9jdXJyZW50VXBkYXRlLnVwZGF0ZUluZGV4ID0gMDsKICAgICB9CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAppbmRl
eCA4YThiMjgwZTc2N2FiNWMxY2NlZWFkZjZhZmFhYWNhYmU4MTQyNTIyLi5kMjZiMDA4NDExODE5
OTJmY2ZkMGM2ZGZiMWQxNGM2YmY0ZmQ0MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYy5oCkBAIC00MywxNyArNDMsMjUgQEAgcHVibGljOgogICAgIAogICAgIHZp
cnR1YWwgfkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpOwogCisgICAgY29uc3QgRGlz
cGxheVVwZGF0ZSYgY3VycmVudFVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFVwZGF0
ZTsgfQorCisgICAgdm9pZCBkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKTsKKwogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNw
bGF5SUQpOwogCi0gICAgdm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCkgZmluYWw7Cisg
ICAgdm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmKSBm
aW5hbDsKIAogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCiAgICAgYm9vbCBzdGFydE5vdGlmaWNh
dGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpIGZpbmFsOwogCisgICAgc3RhdGljIEZyYW1lc1BlclNlY29uZCBub21pbmFsRnJhbWVzUGVy
U2Vjb25kRnJvbURpc3BsYXlMaW5rKENWRGlzcGxheUxpbmtSZWYpOworCiAgICAgQ1ZEaXNwbGF5
TGlua1JlZiBtX2Rpc3BsYXlMaW5rIHsgbnVsbHB0ciB9OworICAgIAorICAgIERpc3BsYXlVcGRh
dGUgbV9jdXJyZW50VXBkYXRlOwogICAgIGJvb2wgbV9kaXNwbGF5TGlua0lzQWN0aXZlIHsgZmFs
c2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldpbi5jcHAKaW5kZXggM2EyMGE2
Mzc2YTQ5MTFjZGM3ZTk4OWVmODBkNjVhZDc2YjhkNjE2NS4uZTBiODdkYzAwYmY0MTU2NWVlMmZh
MjA4NDM3NzI4MjJjOTM3NjhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldpbi5jcHAK
QEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdGV4cHIgRnJh
bWVzUGVyU2Vjb25kIERlZmF1bHRGcmFtZXNQZXJTZWNvbmQgPSA2MDsKKwogUmVmUHRyPERpc3Bs
YXlSZWZyZXNoTW9uaXRvcldpbj4gRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpjcmVhdGUoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERp
c3BsYXlSZWZyZXNoTW9uaXRvcldpbihkaXNwbGF5SUQpKTsKQEAgLTM1LDggKzM3LDE1IEBAIFJl
ZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4+IERpc3BsYXlSZWZyZXNoTW9uaXRvcldpbjo6
Y3JlYXRlKFBsYXRmb3JtRGlzcGxhCiAKIERpc3BsYXlSZWZyZXNoTW9uaXRvcldpbjo6RGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICAgICA6IERp
c3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCi0gICAgLCBtX3RpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheUxpbmtGaXJlZCkKKyAg
ICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRGlzcGxheVJlZnJlc2hNb25pdG9y
OjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpCisgICAgLCBtX2N1cnJlbnRVcGRhdGUoMCwgRGVm
YXVsdEZyYW1lc1BlclNlY29uZCkKK3sKK30KKwordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JX
aW46OmRpc3BsYXlMaW5rQ2FsbGJhY2tGaXJlZCgpCiB7CisgICAgZGlzcGxheUxpbmtGaXJlZCht
X2N1cnJlbnRVcGRhdGUpOworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKIH0KIAog
Ym9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNt
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNw
bGF5UmVmcmVzaE1vbml0b3JXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaAppbmRleCBlZmU1NzZlMmY0YzQyMGY4OGVi
NmVkODY1Y2FmNmY4YjEwZmIxYjYxLi4xNjA5MjBmYTZhZGM4NGRkN2NiOWNiNzRjOGUxNTZmMWM2
YzRmNzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
RGlzcGxheVJlZnJlc2hNb25pdG9yV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldpbi5oCkBAIC0zOSw4ICszOSwxMSBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFs
OwogICAgIHZvaWQgc3RvcE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOworICAgIAorICAg
IHZvaWQgZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCk7CiAKICAgICBSdW5Mb29wOjpUaW1lcjxE
aXNwbGF5UmVmcmVzaE1vbml0b3JXaW4+IG1fdGltZXI7CisgICAgRGlzcGxheVVwZGF0ZSBtX2N1
cnJlbnRVcGRhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlS
ZWZyZXNoTW9uaXRvci5jcHAKaW5kZXggOGMyYTcwODQwMmMwZjM5OWU2Nzc1Zjg2NGE4YWQyMGM3
YThmNzg4My4uOWNlMjJhMTFmOTRlODk1MjI1YzBjNTc5MzQyYjFhNWFmODI2NWY3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVh
ZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcApAQCAtMzcsMTAgKzM3LDE0IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCisvLyBGSVhNRTogVXNlIHRoZSBjb3JyZWN0IGZyYW1lIHJhdGUuCitj
b25zdGV4cHIgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIERlZmF1bHRGcmFtZXNQZXJTZWNvbmQg
PSA2MDsKKwogVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3I6OlRocmVhZGVkRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlE
KQogICAgICwgbV9kaXNwbGF5UmVmcmVzaFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRo
cmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5UmVmcmVzaENhbGxiYWNrKQogICAg
ICwgbV9jbGllbnQoJmNsaWVudCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSgwLCBEZWZhdWx0RnJh
bWVzUGVyU2Vjb25kKTsKIHsKICNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQogICAgIG1fZGlzcGxh
eVJlZnJlc2hUaW1lci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OkRpc3BsYXlS
ZWZyZXNoTW9uaXRvclRpbWVyKTsKQEAgLTkwLDggKzk0LDEwIEBAIHZvaWQgVGhyZWFkZWREaXNw
bGF5UmVmcmVzaE1vbml0b3I6OmludmFsaWRhdGUoKQogICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKGxvY2soKSk7CiAgICAgICAgIHdhc1NjaGVkdWxlZCA9IGlzU2NoZWR1bGVkKCk7CiAg
ICAgfQotICAgIGlmICh3YXNTY2hlZHVsZWQpCi0gICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKCk7
CisgICAgaWYgKHdhc1NjaGVkdWxlZCkgeworICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChtX2N1
cnJlbnRVcGRhdGUpOworICAgICAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CisgICAg
fQogICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKIH0KIApAQCAtMTA2LDggKzExMiwxMCBAQCB2b2lk
IFRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5UmVmcmVzaENhbGxiYWNrKCkK
ICAgICAgICAgICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogICAgIH0KIAotICAg
IGlmIChzaG91bGRIYW5kbGVEaXNwbGF5UmVmcmVzaE5vdGlmaWNhdGlvbikKLSAgICAgICAgZGlz
cGxheURpZFJlZnJlc2goKTsKKyAgICBpZiAoc2hvdWxkSGFuZGxlRGlzcGxheVJlZnJlc2hOb3Rp
ZmljYXRpb24pIHsKKyAgICAgICAgZGlzcGxheURpZFJlZnJlc2gobV9jdXJyZW50VXBkYXRlKTsK
KyAgICAgICAgbV9jdXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOworICAgIH0KIAogICAgIC8vIFJl
dHJpZXZlIHRoZSBzY2hlZHVsZWQgc3RhdHVzIGZvciB0aGlzIERpc3BsYXlSZWZyZXNoTW9uaXRv
ci4KICAgICBib29sIGhhc0JlZW5SZXNjaGVkdWxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVm
cmVzaE1vbml0b3IuaAppbmRleCBiNDlhOGIyZGJlZjA0OWE3ZTQ0MTNkMmU4MmRlOTUxZDI3N2Nl
NjM0Li5kYjI5M2ZmZmM0YzFmM2NmNGFkMzIwYmEwODJhMDU3OWE3MmMzNTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlz
cGxheVJlZnJlc2hNb25pdG9yLmgKQEAgLTYzLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpc3BsYXlSZWZyZXNoQ2FsbGJhY2soKTsKICAgICBSdW5Mb29wOjpUaW1lcjxUaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvcj4gbV9kaXNwbGF5UmVmcmVzaFRpbWVyOwogICAgIENsaWVudCog
bV9jbGllbnQ7CisgICAgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
RGlzcGxheUxpbmsuY3BwCmluZGV4IGE0M2RmY2Q0NmQ1MWY0NDQ3ODJhZmQxNzdiYmFiNTFkMDI2
YTY4ZGEuLjNkMmJjNGUxMjM1ODkxNGU3MTU2NmZjOWE1NjY5OTZjODY5MWEzM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcApAQCAtOTcsNiArOTcsOCBA
QCB2b2lkIERpc3BsYXlMaW5rOjphZGRPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRAogICAgICAgICBDVlJldHVybiBlcnJvciA9IENWRGlz
cGxheUxpbmtTdGFydChtX2Rpc3BsYXlMaW5rKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3Qgc3RhcnQgdGhlIGRpc3BsYXkgbGluazogJWQi
LCBlcnJvcik7CisKKyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBtX2Rpc3BsYXlOb21p
bmFsRnJhbWVzUGVyU2Vjb25kIH07CiAgICAgfQogfQogCkBAIC0xNTIsMTIgKzE1NCwxNSBAQCB2
b2lkIERpc3BsYXlMaW5rOjpub3RpZnlPYnNlcnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKCkKICAg
ICBtX2ZpcmVDb3VudFdpdGhvdXRPYnNlcnZlcnMgPSAwOwogCiAgICAgZm9yIChhdXRvJiBjb25u
ZWN0aW9uIDogbV9vYnNlcnZlcnMua2V5cygpKSB7Ci0gICAgICAgIExPR19XSVRIX1NUUkVBTShE
aXNwbGF5TGluaywgc3RyZWFtIDw8ICJbVUkgXSBEaXNwbGF5TGluayBmb3IgZGlzcGxheSAiIDw8
IG1fZGlzcGxheUlEIDw8ICIgc2VuZGluZyBmb3IgY29ubmVjdGlvbiAiIDw8IGNvbm5lY3Rpb24t
PnVuaXF1ZUlEKCkgPDwgIiBvbiBiYWNrZ3JvdW5kIHF1ZXVlICIgPDwgc2hvdWxkU2VuZElQQ09u
QmFja2dyb3VuZFF1ZXVlKTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBz
dHJlYW0gPDwgIltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQg
PDwgIiAoZGlzcGxheSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIDw8
ICIpIHVwZGF0ZSAiIDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiIGNvbm5lY3Rpb24gIiA8PCBjb25u
ZWN0aW9uLT51bmlxdWVJRCgpIDw8ICIgb24gYmFja2dyb3VuZCBxdWV1ZSAiIDw8IHNob3VsZFNl
bmRJUENPbkJhY2tncm91bmRRdWV1ZSk7CisKICAgICAgICAgaWYgKHNob3VsZFNlbmRJUENPbkJh
Y2tncm91bmRRdWV1ZSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkV2
ZW50RGlzcGF0Y2hlcjo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCksIDApOworICAg
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpEaXNw
bGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlELCBtX2N1cnJlbnRVcGRhdGUpLCAwKTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCksIDApOworICAgICAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlzcGxheVdhc1JlZnJlc2hlZCht
X2Rpc3BsYXlJRCwgbV9jdXJyZW50VXBkYXRlKSwgMCk7CiAgICAgfQorCisgICAgbV9jdXJyZW50
VXBkYXRlLmRpZFVwZGF0ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggYWExYTBiN2IwNWY0NTJiYTUz
ZGM4ZDU2N2ZhZTU5ZTA5ZWUwZjczNy4uNTJjMzE5OWVmOGNkNjBmNDAyOGNlZDUwOGU4Yzc0MWMz
OTgxODNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlM
aW5rLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlua09ic2VydmVySUQuaCIKICNpbmNs
dWRlIDxDb3JlVmlkZW8vQ1ZEaXNwbGF5TGluay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0
aW9uRnJhbWVSYXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5VXBkYXRlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTY5LDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0b3I8RGlzcGxheUxpbmtPYnNlcnZl
cklEPj4gbV9vYnNlcnZlcnM7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNw
bGF5SUQ7CiAgICAgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIG1fZGlzcGxheU5vbWluYWxGcmFt
ZXNQZXJTZWNvbmQgeyAwIH07CisgICAgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRV
cGRhdGU7CiAgICAgdW5zaWduZWQgbV9maXJlQ291bnRXaXRob3V0T2JzZXJ2ZXJzIHsgMCB9Owog
ICAgIHN0YXRpYyBib29sIHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRRdWV1ZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNw
cAppbmRleCA3N2Q1ZjkzYzMxNjA1ZDBjZmRlMTdjZWQ4YTJkNzU1YjhmNjVlMGNjLi44NmY4ZjNk
ODEzYjY0MjFmM2VkYTc3MmQxYTFkZDBjYTllNjE3YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5o
IgogI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlV
cGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1do
ZWVsRXZlbnRUZXN0TW9uaXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0y
ODgsMTMgKzI4OSwxMyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6bm90aWZ5U2Nyb2xsaW5nVHJl
ZXNEaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlECiB9CiAKICNpZiBIQVZFKENW
RElTUExBWUxJTkspCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxh
eVdhc1JlZnJlc2hlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlV
cGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgbm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRpc3BsYXlJRCk7
CiAKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2Rpc3BsYXlJRF0oKSB7Ci0gICAgICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5kaXNwbGF5V2Fz
VXBkYXRlZChkaXNwbGF5SUQpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbZGlzcGxh
eUlELCBkaXNwbGF5VXBkYXRlXSgpIHsKKyAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxh
eVVwZGF0ZSk7CiAgICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggNjcxYjI4ZGYzZTUxMGRlYTM1
MDFkODAyOGI5Nzg3MTg3NmE2NGEwZC4uYTEzMGQ0NDM1YzdjOWVjMDk3N2U5ZjE4MGFkODE2MmUz
MjFiZWViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CitzdHJ1Y3QgRGlzcGxheVVwZGF0ZTsKIGNsYXNzIFRocmVhZGVkU2Nyb2xsaW5nVHJl
ZTsKIHVzaW5nIFBsYXRmb3JtRGlzcGxheUlEID0gdWludDMyX3Q7CiB9CkBAIC0xMDcsNyArMTA4
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGlz
cGxheVdhc1JlZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CisgICAgdm9pZCBk
aXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBXZWJD
b3JlOjpEaXNwbGF5VXBkYXRlJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhS
RUFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmluZGV4IGNmNGY3NjY2NmNjNTM0MzFlOTliZWRl
NWU4MjhhOGFhODdhMDNjYzguLjBiNWQyOTEyY2RhOTcxZjNlMTkxNWI4ZTJhZjBjNWY1MDA5ODEw
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDYgQEAgbWVzc2FnZXMg
LT4gRXZlbnREaXNwYXRjaGVyIHsKICAgICBHZXN0dXJlRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCBldmVudCkKICNlbmRpZgogI2lm
IEhBVkUoQ1ZESVNQTEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRp
c3BsYXlJRCkKKyAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgc3Ry
dWN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQogI2VuZGlmCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yLmgKaW5kZXggNjg1NTUzODE4ZjRiYmZkZWMzZGMyNTkzOTMxMzU3ZjNkZDk5ZmFkOC4u
YTRlYWU1Mjk5N2UzYjUyNzE0MTg0ZWViODM1NzA1MjIyOTE5MzEwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1v
bml0b3IuaApAQCAtNTMsNiArNTMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlmaWNh
dGlvbk1lY2hhbmlzbSgpIGZpbmFsIHsgfQogCiAgICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYT4gbV9kcmF3aW5nQXJlYTsKKworICAgIFdlYkNvcmU6OkZyYW1lc1BlclNlY29u
ZCBtX3ByZWZlcnJlZEZyYW1lc1BlclNlY29uZDsKKyAgICBXZWJDb3JlOjpEaXNwbGF5VXBkYXRl
IG1fY3VycmVudFVwZGF0ZTsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVm
cmVzaE1vbml0b3IubW0KaW5kZXggNzU5MmY1NjEwM2YyMGJjOWZiZTcxYWY1YjRkNDZiYTJjYzMz
NzkwNy4uZGQ3OTlkY2E0YWUzOWVjNGQ3OTA2OTEwMjY1YWRkN2NiYjljY2VlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJl
ZnJlc2hNb25pdG9yLm1tCkBAIC0zMiw5ICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorY29uc3RleHByIEZyYW1lc1BlclNlY29uZCBEZWZh
dWx0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIFJlbW90ZUxheWVyVHJlZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcjo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBs
YXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRy
YXdpbmdBcmVhKQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKICAgICAs
IG1fZHJhd2luZ0FyZWEobWFrZVdlYWtQdHIoZHJhd2luZ0FyZWEpKQorICAgICwgbV9wcmVmZXJy
ZWRGcmFtZXNQZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKKyAgICAs
IG1fY3VycmVudFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIH0pCiB7CiB9
CiAKQEAgLTQ2LDYgKzUwLDEyIEBAIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRv
cjo6flJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcigpCiAKIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNv
bmQoRnJhbWVzUGVyU2Vjb25kIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKIHsKKyAgICBpZiAo
cHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID09IG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3ByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZl
cnJlZEZyYW1lc1BlclNlY29uZDsKKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIG1fcHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kIH07CisKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAg
bV9kcmF3aW5nQXJlYS0+c2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKHByZWZlcnJlZEZyYW1l
c1BlclNlY29uZCk7CiB9CkBAIC03Miw3ICs4Miw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlz
cGxheVJlZnJlc2hNb25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVz
aCgpOworICAgIGRpc3BsYXlEaWRSZWZyZXNoKG1fY3VycmVudFVwZGF0ZSk7CisgICAgbV9jdXJy
ZW50VXBkYXRlLmRpZFVwZGF0ZSgpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEmIGRyYXdpbmdBcmVhKQpAQCAtODAsNCArOTEsNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURp
c3BsYXlSZWZyZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJh
dwogICAgIG1fZHJhd2luZ0FyZWEgPSBtYWtlV2Vha1B0cihkcmF3aW5nQXJlYSk7CiB9CiAKLX0K
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApp
bmRleCBmNGEyNDdmNmU3NTQzZTg1Y2U0MGNhNzFjNDY4M2MyNGFkMTYxZGE5Li4wYjFhM2I3OTNh
YzFlYTliM2IzZjMxOGM5OTUyOTFmZDYxOWM5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmNwcApAQCAtNTYsMTIgKzU2LDEzIEBAIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6
fkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpCiAgICAgQVNTRVJUKCFtX2Rpc3BsYXlMaW5rSXNB
Y3RpdmUpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNw
bGF5RGlkUmVmcmVzaCgpCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hE
aXNwbGF5RGlkUmVmcmVzaChjb25zdCBEaXNwbGF5VXBkYXRlJiBkaXNwbGF5VXBkYXRlKQogewor
ICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgcGVydHVyYiBkaXNwbGF5VXBkYXRlLgogICAgIGlmICgh
bV9maXJzdENhbGxiYWNrSW5DdXJyZW50UnVubG9vcCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAg
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGRpc3BsYXlV
cGRhdGUpOwogfQogCiBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RhcnROb3RpZmlj
YXRpb25NZWNoYW5pc20oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDJlNjVj
NGMwMjhkNzI0MGZmZTIzMWQ1MjExZTE5OGY1Y2JmZDNjYzEuLjk2MDRiODkwMzAzYjBhYWNlZGU1
YTA2ZmVjNDI3YTljMjFmYzA3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwogCi0gICAgdm9pZCBk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERpc3Bs
YXlEaWRSZWZyZXNoKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUmKSBmaW5hbDsKIAogICAg
IGJvb2wgc3RhcnROb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKICAgICB2b2lkIHN0b3BO
b3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCA5Njg0MDgwNDQxZTA1N2M0NzNjZDJkMjcyZDhiMDhiMzIxZjQzZTc1
Li5iMDY0ZjIyN2NkNTJiNzUwZDZjM2FlNGMyZTRkMjA2ZGI2N2Y3MDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xODk1LDExICsxODk1LDExIEBAIGJvb2wg
V2ViUHJvY2Vzczo6YXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBjb25zdAogfQogCiAjaWYgSEFW
RShDVkRJU1BMQVlMSU5LKQotdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKHVp
bnQzMl90IGRpc3BsYXlJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlzcGxheVdhc1JlZnJlc2hlZCh1
aW50MzJfdCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBtX2V2ZW50RGlzcGF0Y2hlci0+
bm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRpc3BsYXlJRCk7Ci0gICAg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNV
cGRhdGVkKGRpc3BsYXlJRCk7CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxheVVwZGF0ZSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDYz
MWY3M2NmNDIyMTNhYjhlOWE3MDUyOTI1NzIzZTk2Y2Q1ZGEwOC4uNjQ2ZTVlZDA4OTcxNjEzYWZi
NDE1NDgwNzdmZTMxNDhiZDE4YWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC05NCw2ICs5NCw3IEBAIGNsYXNzIFVzZXJHZXN0dXJlVG9rZW47CiBlbnVtIGNsYXNz
IEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOwogCiBzdHJ1Y3QgQmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllcjsKK3N0cnVjdCBEaXNwbGF5VXBkYXRlOwogc3RydWN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllcjsKIHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKIHN0cnVjdCBNb2Nr
TWVkaWFEZXZpY2U7CkBAIC01MDcsNyArNTA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
SEFWRShDVkRJU1BMQVlMSU5LKQotICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJf
dCBkaXNwbGF5SUQpOworICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNw
bGF5SUQsIGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUmKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCAxMjJlNTQzYjJiYTg3YjgwYzRlZDYwNWIwZTQyMjNhNGQxN2ExMGQ2Li5h
OTkyYTQ0NjM0YzRlMTdmZWZjZGNiMzk0NjA2YWNmZDEwMzQ0MDJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTg4LDcgKzE4OCw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7
CiAjZW5kaWYKIAogI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVz
aGVkKHVpbnQzMl90IGRpc3BsYXlJRCkKKyAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90
IGRpc3BsYXlJRCwgc3RydWN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQogI2VuZGlm
CiAKICNpZiBQTEFURk9STShNQUMpCg==
</data>
<flag name="commit-queue"
          id="444174"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424481</attachid>
            <date>2021-03-27 22:07:25 -0700</date>
            <delta_ts>2021-03-27 23:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223847-20210327220724.patch</filename>
            <type>text/plain</type>
            <size>53013</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uMGRhZDQ2YzU4NTFlNjg0MGViZmYyMDZhNGQ1ZWQx
YmMyODc0Y2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAzLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIERpc3Bs
YXlVcGRhdGUgdGhyb3VnaCB0aGUgZGlzcGxheSByZWZyZXNoIG1vbml0b3JzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdXR1cmUgd29yayB3aWxsIGFs
bG93IERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudHMgdG8gcmVxdWVzdCBkaWZmZXJlbnQgZnJh
bWUgcmF0ZXMsIHdoaWNoCisgICAgICAgIGFyZSB3aG9sZSBmcmFjdGlvbnMgb2YgdGhlIGRpc3Bs
YXkncyBub21pbmFsIHJlZnJlc2ggcmF0ZS4gVGhlc2UgdmFyaW91cyBmcmFtZSByYXRlIHJlcXVl
c3RzCisgICAgICAgIGZsb3cgdXAgdGhyb3VnaCB0aGUgRGlzcGxheVJlZnJlc2hNb25pdG9ycywg
YW5kIGluIFdlYktpdDIsIHVwIHRocm91Z2ggSVBDIHRvIHRoZQorICAgICAgICBwZXItZGlzcGxh
eSBEaXNwbGF5TGluayB3aGljaCBtYXkgZXZlbiBzZXJ2aWNlIG11bHRpcGxlIHByb2Nlc3Nlcy4K
KworICAgICAgICBGb3IgcG93ZXIgcmVhc29ucywgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGRp
c3BsYXkgcmVmcmVzaCBub3RpZmljYXRpb25zIGRvd24gdGhlIGNoYWluIGF0CisgICAgICAgIHRo
ZSBoaWdoZXN0IHBvc3NpYmxlIGZyZXF1ZW5jeTsgYXQgdmFyaW91cyBzdGFnZXMgb2YgcHJvcGFn
YXRpb24gdGhlIHJhdGUgbWlnaHQgYmUgaGFsdmVkIGlmCisgICAgICAgIHRoYXQncyB0aGF0J3Mg
bmVjZXNzYXJ5IGZvciBkb3duc3RyZWFtIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICBUbyBt
YWtlIHRoaXMgZnJlcXVlbmN5IHNwbGl0dGluZyBsb2dpYyBzaW1wbGUsIHRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBEaXNwbGF5VXBkYXRlLCB3aGljaAorICAgICAgICByZXByZXNlbnRzIHRoZSBmcmFj
dGlvbmFsIHNlY29uZCBmb3IgdGhlIGN1cnJlbnQgdXBkYXRlLiBUaGUgbnVtZXJhdG9yIGlzIHRo
ZSBmcmFtZSBpbmRleCwKKyAgICAgICAgYW5kIHRoZSBkZW5vbWluYXRvciBpcyB0aGUgbm9taW5h
bCBmcmFtZSByYXRlLiBGcmFtZSBpbmRleCB3cmFwcyB0byB6ZXJvIGV2ZXJ5IHNlY29uZC4KKyAg
ICAgICAgCisgICAgICAgIEZvciBleGFtcGxlLCBhIDYwSHogZGlzcGxheSB3aWxsIGdlbmVyYXRl
IGRpc3BsYXkgcmVmcmVzaGVzIHdpdGggRGlzcGxheVVwZGF0ZXMgd2hpY2gKKyAgICAgICAgc2Vx
dWVudGlhbGx5IHdpbGwgYmUgeyAwLCA2MCB9LCB7IDEsIDYwIH0sIHsgMiwgNjAgfSAuLi4geyA1
OSwgNjAgfSwgeyAwLCA2MCB9LiBUaGUKKyAgICAgICAgemVyb3RoIGZyYW1lIGlzIGF0IHNvbWUg
YXJiaXRyYXJ5IHRpbWUgYW5kIG5vdCBhbGlnbmVkIHdpdGggd2FsbGNsb2NrIHRpbWUuCisgICAg
ICAgIAorICAgICAgICBUaHVzIGEgY2xpZW50IHdpdGggYSAzMEh6IHVwZGF0ZSByZXF1aXJlbWVu
dCBjYW4gc2ltcGx5IGlnbm9yZSBldmVyeSBvZGQtbnVtYmVyZWQgZnJhbWUsIGFuZAorICAgICAg
ICBhIGNsaWVudCBkb3duc3RyZWFtIGZyb20gaXQgd2l0aCBhIDE1SHogcmVxdWlyZW1lbnQsIHdo
aWNoIG9ubHkgcmVjZWl2ZXMgdGhvc2UgZXZlbi1udW1iZXJlZAorICAgICAgICBmcmFtZXMsIHN0
aWxsIGhhcyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB3aGljaCBmcmFtZXMgdG8gaWdu
b3JlLgorICAgICAgICAKKyAgICAgICAgQ2xhc3NlcyB3aGljaCBhcmUgc291cmNlcyBvZiBjYWxs
YmFja3MgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvciBuZWVkIHRvIGdlbmVyYXRlIHRoZXNlCisg
ICAgICAgIERpc3BsYXlVcGRhdGVzOyB0aGF0IGluY2x1ZGVzIHRoZSB2YXJpb3VzIHBsYXRmb3Jt
IERpc3BsYXlSZWZyZXNoTW9uaXRvciBzdWJjbGFzc2VzIGluCisgICAgICAgIFdlYkNvcmUsIGFu
ZCB0aG9zZSBpbiBXZWJLaXQgdGhhdCBsaXZlIGluIHRoZSBVSSBwcm9jZXNzIGFuZCB0cmlnZ2Vy
IHVwZGF0ZXMgb3ZlciBJUEMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVS
YXRlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGF0Y2hE
aXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlXYXNVcGRhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaC4KKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlVcGRhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheVVwZGF0ZTo6ZGlkVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlVcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5VXBkYXRlOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuY3BwOiBBc3N1bWUgYSA2MGZwcyByZWZyZXNoIHJhdGUgYnV0IHRoaXMgY29kZQorICAg
ICAgICBzaG91bGQgcHJvYmFibHkgdXNlIGdka19mcmFtZV9jbG9ja19nZXRfcmVmcmVzaF9pbmZv
KCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHJhdGUuCisgICAgICAgIChXZWJDb3JlOjpvbkZyYW1lQ2xv
Y2tVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpk
aXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tOgor
ICAgICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaW5pdFdpdGhNb25pdG9yOl0pOgorICAg
ICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaGFuZGxlRGlzcGxheUxpbms6XSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKC1bV2ViRGlzcGxheUxpbmtIYW5k
bGVyIHNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0NhbGxiYWNrRmly
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNwbGF5TGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmN1cnJlbnRVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
V2luOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaDoKKwogMjAyMS0wMy0yNyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBEaXNwbGF5
UmVmcmVzaE1vbml0b3IgdG8gYmUgbW9yZSBsb25nLWxpdmVkIG9iamVjdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmI4Mjk0NzgzNTk3NzcyMzRjOGU5OTNmNzNiMzlmZDZlYjcyNjc0Zi4uMmI0YTY1ZDNhMTBhMWFi
ZjFkYjM5YmM4YzMzZDcxMWY5ZDZiN2U1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAy
MS0wMy0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBQbHVtYiBEaXNwbGF5VXBkYXRlIHRocm91Z2ggdGhlIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnV0dXJl
IHdvcmsgd2lsbCBhbGxvdyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnRzIHRvIHJlcXVlc3Qg
ZGlmZmVyZW50IGZyYW1lIHJhdGVzLCB3aGljaAorICAgICAgICBhcmUgd2hvbGUgZnJhY3Rpb25z
IG9mIHRoZSBkaXNwbGF5J3Mgbm9taW5hbCByZWZyZXNoIHJhdGUuIFRoZXNlIHZhcmlvdXMgZnJh
bWUgcmF0ZSByZXF1ZXN0cworICAgICAgICBmbG93IHVwIHRocm91Z2ggdGhlIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcnMsIGFuZCBpbiBXZWJLaXQyLCB1cCB0aHJvdWdoIElQQyB0byB0aGUKKyAgICAg
ICAgcGVyLWRpc3BsYXkgRGlzcGxheUxpbmsgd2hpY2ggbWF5IGV2ZW4gc2VydmljZSBtdWx0aXBs
ZSBwcm9jZXNzZXMuCisKKyAgICAgICAgRm9yIHBvd2VyIHJlYXNvbnMsIHdlIGRvbid0IHdhbnQg
dG8gdHJpZ2dlciBkaXNwbGF5IHJlZnJlc2ggbm90aWZpY2F0aW9ucyBkb3duIHRoZSBjaGFpbiBh
dAorICAgICAgICB0aGUgaGlnaGVzdCBwb3NzaWJsZSBmcmVxdWVuY3k7IGF0IHZhcmlvdXMgc3Rh
Z2VzIG9mIHByb3BhZ2F0aW9uIHRoZSByYXRlIG1pZ2h0IGJlIGhhbHZlZCBpZgorICAgICAgICB0
aGF0J3MgdGhhdCdzIG5lY2Vzc2FyeSBmb3IgZG93bnN0cmVhbSBjbGllbnRzLgorICAgICAgICAK
KyAgICAgICAgVG8gbWFrZSB0aGlzIGZyZXF1ZW5jeSBzcGxpdHRpbmcgbG9naWMgc2ltcGxlLCB0
aGlzIHBhdGNoIGludHJvZHVjZXMgRGlzcGxheVVwZGF0ZSwgd2hpY2gKKyAgICAgICAgcmVwcmVz
ZW50cyB0aGUgZnJhY3Rpb25hbCBzZWNvbmQgZm9yIHRoZSBjdXJyZW50IHVwZGF0ZS4gVGhlIG51
bWVyYXRvciBpcyB0aGUgZnJhbWUgaW5kZXgsCisgICAgICAgIGFuZCB0aGUgZGVub21pbmF0b3Ig
aXMgdGhlIG5vbWluYWwgZnJhbWUgcmF0ZS4gRnJhbWUgaW5kZXggd3JhcHMgdG8gemVybyBldmVy
eSBzZWNvbmQuCisgICAgICAgIAorICAgICAgICBGb3IgZXhhbXBsZSwgYSA2MEh6IGRpc3BsYXkg
d2lsbCBnZW5lcmF0ZSBkaXNwbGF5IHJlZnJlc2hlcyB3aXRoIERpc3BsYXlVcGRhdGVzIHdoaWNo
CisgICAgICAgIHNlcXVlbnRpYWxseSB3aWxsIGJlIHsgMCwgNjAgfSwgeyAxLCA2MCB9LCB7IDIs
IDYwIH0gLi4uIHsgNTksIDYwIH0sIHsgMCwgNjAgfS4gVGhlCisgICAgICAgIHplcm90aCBmcmFt
ZSBpcyBhdCBzb21lIGFyYml0cmFyeSB0aW1lIGFuZCBub3QgYWxpZ25lZCB3aXRoIHdhbGxjbG9j
ayB0aW1lLgorICAgICAgICAKKyAgICAgICAgVGh1cyBhIGNsaWVudCB3aXRoIGEgMzBIeiB1cGRh
dGUgcmVxdWlyZW1lbnQgY2FuIHNpbXBseSBpZ25vcmUgZXZlcnkgb2RkLW51bWJlcmVkIGZyYW1l
LCBhbmQKKyAgICAgICAgYSBjbGllbnQgZG93bnN0cmVhbSBmcm9tIGl0IHdpdGggYSAxNUh6IHJl
cXVpcmVtZW50LCB3aGljaCBvbmx5IHJlY2VpdmVzIHRob3NlIGV2ZW4tbnVtYmVyZWQKKyAgICAg
ICAgZnJhbWVzLCBzdGlsbCBoYXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgd2hpY2gg
ZnJhbWVzIHRvIGlnbm9yZS4KKyAgICAgICAgCisgICAgICAgIENsYXNzZXMgd2hpY2ggYXJlIHNv
dXJjZXMgb2YgY2FsbGJhY2tzIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3IgbmVlZCB0byBnZW5l
cmF0ZSB0aGVzZQorICAgICAgICBEaXNwbGF5VXBkYXRlczsgdGhhdCBpbmNsdWRlcyB0aGUgdmFy
aW91cyBwbGF0Zm9ybSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igc3ViY2xhc3NlcyBpbgorICAgICAg
ICBXZWJDb3JlLCBhbmQgdGhvc2UgaW4gV2ViS2l0IHRoYXQgbGl2ZSBpbiB0aGUgVUkgcHJvY2Vz
cyBhbmQgdHJpZ2dlciB1cGRhdGVzIG92ZXIgSVBDLgorCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheVJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5r
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpub3RpZnlPYnNl
cnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlkVXBkYXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1lc1Bl
clNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ0Yjk3MDgyNGQ1ZGM4NWFj
YzNkOTkxMjQ5ZGE2MTM5NWQzMGEwNTAuLjgyOTAyOWJlOTA3NTI2MTBkNDk4MzI5NTc4YTE5OTUw
YzBjZWVjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE4OSw2ICsxMTg5LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdExpbmUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4
Li5hYmVmMzcyMTUwODRlMjk5YmJkOTMyZmViZGFiMWM0N2ZjNDNlYWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTk0Myw2ICsxOTQzLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFn
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5VXBkYXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRMaW5lLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9p
bnQzRC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NTAwNjQ5ODU0M2NhMTlmN2E3ZWEwZGQwMWNmNDA0OGJiNzM3OTUxLi45
OTU3ZGFhM2U0MTU2ZGViNjQ4OGUxMTg1ZGEyNTM1MDc2MmI2YjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDUsNiArMzQ1
LDcgQEAKIAkJMEZCNjI1MkYxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI2MjUyRDE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI4ODkwRjE2N0QzMDE2MDAxMENEQTUg
LyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQkI1RkJEMjYwOTVBOUMwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQkI1RkNCMjYwRTlCNDQwMDU0NTcy
QyAvKiBEaXNwbGF5VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEZDNEIwMDYyMkI5QTAyRDAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDNEIwMDQyMkI5QTAyQzAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQ0YzMzJGMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRjMzMkIw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZEMzA4MEYxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRl
ckZyYW1lQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZEMzA4MEQxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRlckZyYW1lQmFzZS5oICovOyB9OwpA
QCAtNjIwNSw2ICs2MjA2LDggQEAKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkJCNUZCRDI2MDk1QTlD
MDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGQkI1RkM5MjYwRTlCNDMwMDU0NTcyQyAvKiBEaXNwbGF5VXBkYXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlVcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRkJCNUZDQjI2MEU5QjQ0MDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaXNwbGF5VXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGQkZDRTI0MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQkZDRTI2MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkMwNTE2ODIxOUI1RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc4MCw2
ICsyNjc4Myw4IEBACiAJCQkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkuaCAqLywKIAkJCQkyRDI5RUNDMzE5MkVDQzgzMDA5ODRCNzggLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8sCiAJCQkJMkQyOUVDQzQxOTJFQ0M4
MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAqLywKKwkJCQkwRkJC
NUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5jcHAgKi8sCisJCQkJMEZCQjVG
Q0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCAqLywKIAkJCQk2RTY3RDJBODEy
ODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uc0dMLmggKi8sCiAJCQkJMkU4ODhDQTkyNUY2QTQx
MTAwNTc5MTRBIC8qIEZsb2F0TGluZS5jcHAgKi8sCiAJCQkJMkU4ODhDQTgyNUY2QTQxMTAwNTc5
MTRBIC8qIEZsb2F0TGluZS5oICovLApAQCAtMzIxMTksNiArMzIxMjQsNyBAQAogCQkJCTBGQkI1
RkJFMjYwOTkxRDIwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDI5RUNDQTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJlZnJl
c2hNb25pdG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNzkwRjQzMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQzMTYwOTExMkIwMjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzA0MDI4MzI0OUE3QTYyMDBBOTBEOEQgLyogRGlzdGFuY2VNb2RlbFR5
cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBiMjdmZDM2MDEyNDA5OTYzNTUwNGY1MjcxODgwNjU4N2MzODVhNTFjLi42ZWVlZDFmNDIw
MmZiOTIyMDIyNWNjNGE3MzRkZWJmNjdhMDY4MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBk
aXNwbGF5TGlua0ZpcmVkKGNvbnN0IERpc3BsYXlVcGRhdGUmKSBmaW5hbCB7IH0KICAgICBib29s
IHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZv
aWQgc3RvcCgpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcAppbmRleCBkZTg2NWJkMWNjMDIwNDdk
OTBiZWNjMDIwYmVlYmE3ODgyMDhmMzAxLi41YzJjNDA4OWM1OGZiOWIyY2U4NGMwOTM2MzNmZTAy
ZGM4NmFmMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
bmltYXRpb25GcmFtZVJhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCmlu
ZGV4IDFiYWY4N2VkNjUyMzk1ZjYzMDU3OWJhN2FmZTkwMmU4MDBiOWI2YmIuLmI0MWJjNGU5OWQy
NzkzNTM0MjE0N2JkODg5YzRjMDE5YmZlY2EzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCkBAIC0yNiw4ICsyNiwx
MiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVh
bTsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw2ICs1OCw2IEBAIFdFQkNPUkVf
RVhQT1JUIEZyYW1lc1BlclNlY29uZCBmcmFtZXNQZXJTZWNvbmROZWFyZXN0RnVsbFNwZWVkKEZy
YW1lc1BlclNlY29uZCk7CiBXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50
ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiwgT3B0aW9uYWw8RnJhbWVz
UGVyU2Vjb25kPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKIFdFQkNPUkVfRVhQT1JUIEZyYW1l
c1BlclNlY29uZCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmRGcm9tSW50ZXJ2YWwoU2Vjb25kcyk7
CiAKLVdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNv
bnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiYpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IE9wdGlvblNldDxU
aHJvdHRsaW5nUmVhc29uPiYpOwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcAppbmRleCBiOGVlMmM5OWJjYzcwYTc5MTFkOTgwYTBhYmE0YzU0Nzk3MGViN2I3
Li44M2ZmM2QzNjEzMzE1Mjc2ZjYyOWRiNDFlNTQyMDdiN2E0YmI4M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
ZmlyZWRBbmRSZWFjaGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKQogICAgIHJldHVybiBtX3Vu
c2NoZWR1bGVkRmlyZUNvdW50ID4gbV9tYXhVbnNjaGVkdWxlZEZpcmVDb3VudDsKIH0KIAotdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoKQordm9pZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlz
cGxheVVwZGF0ZSkKIHsKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9s
b2NrKTsKQEAgLTE0NiwxOSArMTQ2LDIyIEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpk
aXNwbGF5TGlua0ZpcmVkKCkKICAgICAgICAgc2V0SXNTY2hlZHVsZWQoZmFsc2UpOwogICAgICAg
ICBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKICAgICB9Ci0gICAgZGlzcGF0Y2hEaXNw
bGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goZGlzcGxheVVw
ZGF0ZSk7CiB9CiAKLXZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3Bs
YXlEaWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6ZGlzcGxheURpZFJlZnJlc2goKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRp
c3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIFVOVVNFRF9QQVJBTShkaXNwbGF5VXBk
YXRlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaCBmb3IgZGlzcGxheSAiIDw8IGRpc3Bs
YXlJRCgpIDw8ICIgdXBkYXRlICIgPDwgZGlzcGxheVVwZGF0ZSk7CisKICAgICAvLyBUaGUgY2Fs
bCBiYWNrIGNhbiBjYXVzZSBhbGwgb3VyIGNsaWVudHMgdG8gYmUgdW5yZWdpc3RlcmVkLCBzbyB3
ZSBuZWVkIHRvIHByb3RlY3QKICAgICAvLyBhZ2FpbnN0IGRlbGV0aW9uIHVudGlsIHRoZSBlbmQg
b2YgdGhlIG1ldGhvZC4KICAgICBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKaW5kZXggNWU2NTZkNzAyYmQyZDNhYzBhZjAzN2M1
YjJlZmViNWYwMGFkOGQzMi4uMjVhMTNmOTJlNDk0Y2RjZjMzODc2YTk5YTUzYzM3OGU4MTM0Mjc2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQW5pbWF0aW9uRnJhbWVSYXRlLmgiCisjaW5jbHVkZSAiRGlzcGxheVVwZGF0ZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNjEsMTIgKzYyLDEyIEBAIHB1YmxpYzoKICAgICBQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsg
fQogCiAgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURlZmF1
bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYp
OwogCiAgICAgTG9jayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogICAgIHZvaWQgc2V0TWF4
VW5zY2hlZHVsZWRGaXJlQ291bnQodW5zaWduZWQgY291bnQpIHsgbV9tYXhVbnNjaGVkdWxlZEZp
cmVDb3VudCA9IGNvdW50OyB9CkBAIC04MSw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGlzUHJldmlvdXNGcmFtZURvbmUoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzRnJhbWVEb25l
OyB9CiAgICAgdm9pZCBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGJvb2wgZG9uZSkgeyBtX3ByZXZp
b3VzRnJhbWVEb25lID0gZG9uZTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwbGF5
RGlkUmVmcmVzaCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2go
Y29uc3QgRGlzcGxheVVwZGF0ZSYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgZmlyZWRBbmRSZWFj
aGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5jcHAKaW5kZXggMmMzOTdiOTk4ZmJmMWU2NWZlOWJkMWYxMmQ4MzMzZWY3YmNiZDRlYi4uZDk1
ZWNhNzRjMjBjYTA2Y2VhYWRiNjFhNzU3NDZjZDE0M2NkZTA3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlci5jcHAKQEAgLTEwOCwxMSArMTA4LDExIEBAIHZvaWQgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFuYWdlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsCiAgICAgICAgIHNjaGVkdWxlQW5pbWF0aW9uKGNsaWVudCk7CiB9CiAKLXZvaWQgRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlEKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpkaXNw
bGF5V2FzVXBkYXRlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlV
cGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgYXV0byogbW9uaXRvciA9IG1vbml0b3JGb3JE
aXNwbGF5SUQoZGlzcGxheUlEKTsKICAgICBpZiAobW9uaXRvcikKLSAgICAgICAgbW9uaXRvci0+
ZGlzcGxheUxpbmtGaXJlZCgpOworICAgICAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKGRp
c3BsYXlVcGRhdGUpOwogfQogCiBzaXplX3QgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6
ZmluZE1vbml0b3JGb3JEaXNwbGF5SUQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCmluZGV4IDBhZTBmYTA5ZmIwNjZlZjllMDc0
ODZiZDQ3Mzc5ZWZhMjY0ODRmMTAuLmVlODkxMjkwMzQyNTM3NTFkZGU3MmI2YWFlMmQ0NWU2M2E3
ZWNhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgKQEAgLTM0LDYgKzM0LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRGlzcGxheVVwZGF0ZTsKKwogY2xhc3Mg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlciB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI+OwogICAgIGZyaWVuZCBjbGFzcyBE
aXNwbGF5UmVmcmVzaE1vbml0b3I7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNjaGVkdWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCYpOwogICAgIHZv
aWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheVdhc1Vw
ZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxh
eVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmKTsKIAog
cHJpdmF0ZToKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5VXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZGZkMjM0ZGM4OTA2NGViNTQ4MjM1ZWJjZmRkNjgwN2NmYzViYzNhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVVwZGF0ZS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3Bs
YXlVcGRhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEaXNwbGF5VXBkYXRlJiB1cGRhdGUpCit7CisgICAgdHMgPDwgdXBkYXRlLnVwZGF0ZUlu
ZGV4IDw8ICIvIiA8PCB1cGRhdGUudXBkYXRlc1BlclNlY29uZDsKKyAgICByZXR1cm4gdHM7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ1ZWQ2ODBhN2IxNTQ0ZWEy
NTE1MzM4ZDMzMGZmM2Q1OWEzNDgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworLy8gVXNlZCB0byByZXByZXNlbnQgYSBnaXZlbiB1cGRhdGUuIEFuIHZhbHVl
IG9mIHsgMywgNjAgfSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIHRoZSB0aGlyZCB1cGRhdGUgaW4g
YSAxLXNlY29uZCBpbnRlcnZhbAorLy8gb24gYSA2MGZwcyBjYWRlbmNlLiB1cGRhdGVJbmRleCB3
aWxsIHJlc2V0IHRvIHplcm8gZXZlcnkgc2Vjb25kLCBzbyB7IDU5LCA2MCB9IGlzIGZvbGxvd2Vk
IGJ5IHsgMCwgNjAgfS4KK3N0cnVjdCBEaXNwbGF5VXBkYXRlIHsKKyAgICB1bnNpZ25lZCB1cGRh
dGVJbmRleCB7IDAgfTsKKyAgICBGcmFtZXNQZXJTZWNvbmQgdXBkYXRlc1BlclNlY29uZCB7IDAg
fTsKKyAgICAKKyAgICB2b2lkIGRpZFVwZGF0ZSgpCisgICAgeworICAgICAgICB1cGRhdGVJbmRl
eCA9ICh1cGRhdGVJbmRleCArIDEpICUgdXBkYXRlc1BlclNlY29uZDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPERpc3BsYXlVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEaXNw
bGF5VXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHVwZGF0ZUluZGV4OworICAgIGVuY29kZXIgPDwgdXBkYXRlc1BlclNlY29uZDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPERpc3BsYXlVcGRhdGU+IERpc3BsYXlV
cGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVk
PiB1cGRhdGVJbmRleDsKKyAgICBkZWNvZGVyID4+IHVwZGF0ZUluZGV4OworICAgIGlmICghdXBk
YXRlSW5kZXgpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxG
cmFtZXNQZXJTZWNvbmQ+IHVwZGF0ZXNQZXJTZWNvbmQ7CisgICAgZGVjb2RlciA+PiB1cGRhdGVz
UGVyU2Vjb25kOworICAgIGlmICghdXBkYXRlc1BlclNlY29uZCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqdXBkYXRlSW5kZXgsICp1cGRhdGVzUGVyU2Vj
b25kIH19OworfQorCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRGlzcGxheVVwZGF0ZSYpOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDhmNjkwOWNk
MGQzZjRmMWE4ODEwZWZhZWQzNWI1NDFiOGE4YTkzMzMuLmE1N2VhMGQxYWNjNDE3ZWUzMGJjNjcy
N2RmOGE1MTU1YTQ3ZDMwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCkBA
IC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3RleHByIEZyYW1l
c1BlclNlY29uZCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIERpc3BsYXlSZWZyZXNo
TW9uaXRvckd0azo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKICAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCiB7CkBAIC00
NSw3ICs0NywxMyBAQCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6On5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKQogCiBzdGF0aWMgdm9pZCBvbkZyYW1lQ2xvY2tVcGRhdGUoR2RrRnJhbWVDbG9j
ayosIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0ayogbW9uaXRvcikKIHsKLSAgICBtb25pdG9yLT5k
aXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVk
KCk7Cit9CisKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpkaXNwbGF5TGlua0NhbGxi
YWNrRmlyZWQoKQoreworICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAg
ICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hN
b25pdG9yR3RrOjpzdG9wKCkKQEAgLTgxLDYgKzg5LDkgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGs6OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKICAgICBBU1NFUlQoZnJhbWVD
bG9jayk7CiAgICAgZ2RrX2ZyYW1lX2Nsb2NrX2JlZ2luX3VwZGF0aW5nKGZyYW1lQ2xvY2spOwog
CisgICAgLy8gRklYTUU6IFVzZSBnZGtfZnJhbWVfY2xvY2tfZ2V0X3JlZnJlc2hfaW5mbyB0byBn
ZXQgdGhlIGNvcnJlY3QgZnJhbWUgcmF0ZS4KKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIERl
ZmF1bHRGcmFtZXNQZXJTZWNvbmQgfTsKKwogICAgIG1fY2xvY2tJc0FjdGl2ZSA9IHRydWU7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmgKaW5kZXggOTFk
ZmZjMWUwMzNjMGM4NjJkMTgwMGYwNmQ4NTM1YmE1NWI5ZjM0ZC4uMzJlMjZmYzM2YmEwZmE4N2U1
ODQ4YzA5ZjVhZjUzZDkwZGU0NWZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApA
QCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKTsKIAorICAgIHZvaWQgZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCk7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlz
cGxheUlEKTsKIApAQCAtNTAsNiArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogCiAgICAgR3RrV2lkZ2V0KiBtX3dpbmRvdyB7IG51
bGxwdHIgfTsKKyAgICBEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKICAgICBib29sIG1f
Y2xvY2tJc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9T
LmgKaW5kZXggMTA1MDhlODkwZDUwMDQwMWE3Y2EzMGYxNDQzZWMxMzA3MWQ0NDY4Yi4uMWY5MTMz
M2VhMTUwYjAxNGI4MGQ5MDkxNzhmZWNhOTI0ZjNmNzYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JJT1MuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKCk7CiAKKyAgICB2b2lkIGRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTUxLDYgKzUzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKIAogICAgIFJldGFpblB0
cjxXZWJEaXNwbGF5TGlua0hhbmRsZXI+IG1faGFuZGxlcjsKKyAgICBEaXNwbGF5VXBkYXRlIG1f
Y3VycmVudFVwZGF0ZTsKICAgICBib29sIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSB7IGZhbHNlIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbQppbmRleCBjZGMxNmZjNDZkZDg3
MzNhMTYwOGY3NjhlNTljNTBhYjJhNzljN2RhLi42YjVmMjUwZGFkY2IxODk4NDFjNGQ0ODdjNjc3
N2ZkOWRjYWY4YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkRpc3BsYXlV
cGRhdGUuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQuaCIK
ICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FEaXNwbGF5TGluay5oPgpAQCAtMzYsNiArMzcsOCBAQAog
CiB1c2luZyBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M7CiAKK2NvbnN0ZXhwciBX
ZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQgPSA2MDsK
KwogQGludGVyZmFjZSBXZWJEaXNwbGF5TGlua0hhbmRsZXIgOiBOU09iamVjdAogewogICAgIERp
c3BsYXlSZWZyZXNoTW9uaXRvcklPUyogbV9tb25pdG9yOwpAQCAtNDMsNyArNDYsNiBAQCBAaW50
ZXJmYWNlIFdlYkRpc3BsYXlMaW5rSGFuZGxlciA6IE5TT2JqZWN0CiB9CiAKIC0gKGlkKWluaXRX
aXRoTW9uaXRvcjooRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKiltb25pdG9yOwotLSAodm9pZClz
ZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJT
ZWNvbmQ7CiAtICh2b2lkKWhhbmRsZURpc3BsYXlMaW5rOihDQURpc3BsYXlMaW5rICopc2VuZGVy
OwogLSAodm9pZClzZXRQYXVzZWQ6KEJPT0wpcGF1c2VkOwogLSAodm9pZClpbnZhbGlkYXRlOwpA
QCAtNTksNyArNjEsNyBAQCAtIChpZClpbml0V2l0aE1vbml0b3I6KERpc3BsYXlSZWZyZXNoTW9u
aXRvcklPUyopbW9uaXRvcgogICAgICAgICAvLyBOb3RlIHRoYXQgQ0FEaXNwbGF5TGluayByZXRh
aW5zIGl0cyB0YXJnZXQgKHNlbGYpLCBzbyBhIGNhbGwgdG8gLWludmFsaWRhdGUgaXMgbmVlZGVk
IG9uIHRlYXJkb3duLgogICAgICAgICBtX2Rpc3BsYXlMaW5rID0gW0NBRGlzcGxheUxpbmsgZGlz
cGxheUxpbmtXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGhhbmRsZURpc3BsYXlM
aW5rOildOwogICAgICAgICBbbV9kaXNwbGF5TGluayBhZGRUb1J1bkxvb3A6V2ViVGhyZWFkTlNS
dW5Mb29wKCkgZm9yTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZV07Ci0gICAgICAgIG1fZGlzcGxh
eUxpbmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gNjA7CisgICAgICAgIG1fZGlzcGxheUxp
bmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQ7
CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNzAsMTYgKzcyLDEyIEBAIC0gKHZvaWQp
ZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9pZClzZXRQcmVmZXJyZWRG
cmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQKLXsKLSAg
ICBtX2Rpc3BsYXlMaW5rLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1l
c1BlclNlY29uZDsKLX0KLQogLSAodm9pZCloYW5kbGVEaXNwbGF5TGluazooQ0FEaXNwbGF5TGlu
ayAqKXNlbmRlcgogewogICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgCisg
ICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKTsKIH0KIAogLSAodm9pZClz
ZXRQYXVzZWQ6KEJPT0wpcGF1c2VkCkBAIC0xMTYsNiArMTE0LDEyIEBAIHZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TOjpzdG9wKCkKICAgICBtX2hhbmRsZXIgPSBuaWw7CiB9CiAKK3ZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKQorewor
ICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRh
dGUuZGlkVXBkYXRlKCk7Cit9CisKIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpzdGFy
dE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpCiB7CiAgICAgaWYgKG1fZGlzcGxheUxpbmtJc0FjdGl2
ZSkKQEAgLTEyOCw3ICsxMzIsMTAgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKIAogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5
TGluaywgc3RyZWFtIDw8ICJEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0YXJ0Tm90aWZpY2F0
aW9uTWVjaGFuaXNtIC0gc3RhcnRpbmcgV2ViRGlzcGxheUxpbmtIYW5kbGVyIik7CiAgICAgW21f
aGFuZGxlciBzZXRQYXVzZWQ6Tk9dOworCisgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBEaXNw
bGF5TGlua0ZyYW1lc1BlclNlY29uZCB9OwogICAgIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSA9IHRy
dWU7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcAppbmRleCBjNzQ1ODAwNjFlYzEzMWY2YTA3Njc5ZTY4Y2ZkN2IxNzY2
NTMwOWQyLi42YmNjZjk3NTYyNmQ1OGJjMDg0ODI5YjRjMDJkYzNjZmU2OWE2ZDczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtNjEsMTggKzYxLDMw
IEBAIHZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdG9wKCkKIHN0YXRpYyBD
VlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGlt
ZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdz
Kiwgdm9pZCogZGF0YSkKIHsKICAgICBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqIG1v
bml0b3IgPSBzdGF0aWNfY2FzdDxMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqPihkYXRh
KTsKLSAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxh
eUxpbmtDYWxsYmFja0ZpcmVkKCk7CiAgICAgcmV0dXJuIGtDVlJldHVyblN1Y2Nlc3M7CiB9CiAK
LXZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRS
ZWZyZXNoKCkKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlu
a0NhbGxiYWNrRmlyZWQoKQogewotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgZGlzcGxheUxpbmtGaXJlZCht
X2N1cnJlbnRVcGRhdGUpOworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKK30KKwor
dm9pZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BhdGNoRGlzcGxheURpZFJl
ZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0ZSkKK3sKKyAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIGRpc3BsYXlVcGRhdGUsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0gewogICAgICAgICBpZiAobV9kaXNwbGF5TGluaykKLSAgICAgICAgICAg
IGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChkaXNw
bGF5VXBkYXRlKTsKICAgICB9KTsKIH0KIAorV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNw
bGF5TGluayhDVkRpc3BsYXlMaW5rUmVmIGRpc3BsYXlMaW5rKQoreworICAgIENWVGltZSByZWZy
ZXNoUGVyaW9kID0gQ1ZEaXNwbGF5TGlua0dldE5vbWluYWxPdXRwdXRWaWRlb1JlZnJlc2hQZXJp
b2QoZGlzcGxheUxpbmspOworICAgIHJldHVybiByb3VuZCgoZG91YmxlKXJlZnJlc2hQZXJpb2Qu
dGltZVNjYWxlIC8gKGRvdWJsZSlyZWZyZXNoUGVyaW9kLnRpbWVWYWx1ZSk7Cit9CisKIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiB7CiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rKSB7CkBAIC04Myw2ICs5NSw4IEBAIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiAgICAgICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1NldE91dHB1dENhbGxiYWNrKG1fZGlz
cGxheUxpbmssIGRpc3BsYXlMaW5rQ2FsbGJhY2ssIHRoaXMpOwogICAgICAgICBpZiAoZXJyb3Ip
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0g
eyAwLCBub21pbmFsRnJhbWVzUGVyU2Vjb25kRnJvbURpc3BsYXlMaW5rKG1fZGlzcGxheUxpbmsp
IH07CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpIHsKQEAgLTkzLDYg
KzEwNyw3IEBAIGJvb2wgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgPSB0cnVlOworICAgICAgICBtX2N1cnJlbnRV
cGRhdGUudXBkYXRlSW5kZXggPSAwOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDhhOGIyODBlNzY3YWI1YzFj
Y2VlYWRmNmFmYWFhY2FiZTgxNDI1MjIuLmQyNmIwMDg0MTE4MTk5MmZjZmQwYzZkZmIxZDE0YzZi
ZjRmZDQxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAg
LTQzLDE3ICs0MywyNSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+TGVnYWN5RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjKCk7CiAKKyAgICBjb25zdCBEaXNwbGF5VXBkYXRlJiBjdXJyZW50
VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VXBkYXRlOyB9CisKKyAgICB2b2lkIGRp
c3BsYXlMaW5rQ2FsbGJhY2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICB2b2lk
IGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlz
cGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYpIGZpbmFsOwogCiAgICAgdm9pZCBz
dG9wKCkgZmluYWw7CiAKICAgICBib29sIHN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmlu
YWw7CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CiAKKyAgICBz
dGF0aWMgRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmRGcm9tRGlzcGxheUxp
bmsoQ1ZEaXNwbGF5TGlua1JlZik7CisKICAgICBDVkRpc3BsYXlMaW5rUmVmIG1fZGlzcGxheUxp
bmsgeyBudWxscHRyIH07CisgICAgCisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7
CiAgICAgYm9vbCBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlz
cGxheVJlZnJlc2hNb25pdG9yV2luLmNwcAppbmRleCAzYTIwYTYzNzZhNDkxMWNkYzdlOTg5ZWY4
MGQ2NWFkNzZiOGQ2MTY1Li5lMGI4N2RjMDBiZjQxNTY1ZWUyZmEyMDg0Mzc3MjgyMmM5Mzc2OGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRGlzcGxheVJlZnJlc2hNb25pdG9yV2luLmNwcApAQCAtMjgsNiArMjgsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhwciBGcmFtZXNQZXJTZWNvbmQgRGVmYXVs
dEZyYW1lc1BlclNlY29uZCA9IDYwOworCiBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yV2lu
PiBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJlc2hNb25pdG9y
V2luKGRpc3BsYXlJRCkpOwpAQCAtMzUsOCArMzcsMTUgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbj4gRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpjcmVhdGUoUGxhdGZvcm1EaXNw
bGEKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4o
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9y
KGRpc3BsYXlJRCkKLSAgICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKQorICAgICwgbV90aW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSgwLCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25k
KQoreworfQorCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcldpbjo6ZGlzcGxheUxpbmtDYWxs
YmFja0ZpcmVkKCkKIHsKKyAgICBkaXNwbGF5TGlua0ZpcmVkKG1fY3VycmVudFVwZGF0ZSk7Cisg
ICAgbV9jdXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOwogfQogCiBib29sIERpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbjo6c3RhcnROb3RpZmljYXRpb25NZWNoYW5pc20oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldp
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbi5oCmluZGV4IGVmZTU3NmUyZjRjNDIwZjg4ZWI2ZWQ4NjVjYWY2ZjhiMTBmYjFi
NjEuLjE2MDkyMGZhNmFkYzg0ZGQ3Y2I5Y2I3NGM4ZTE1NmYxYzZjNGY3MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0
b3JXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luLmgKQEAgLTM5LDggKzM5LDExIEBAIHByaXZhdGU6CiAKICAgICBi
b29sIHN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wTm90
aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CisgICAgCisgICAgdm9pZCBkaXNwbGF5TGlua0Nh
bGxiYWNrRmlyZWQoKTsKIAogICAgIFJ1bkxvb3A6OlRpbWVyPERpc3BsYXlSZWZyZXNoTW9uaXRv
cldpbj4gbV90aW1lcjsKKyAgICBEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcApp
bmRleCA4YzJhNzA4NDAyYzBmMzk5ZTY3NzVmODY0YThhZDIwYzdhOGY3ODgzLi45Y2UyMmExMWY5
NGU4OTUyMjVjMGM1NzkzNDJiMWE1YWY4MjY1ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1v
bml0b3IuY3BwCkBAIC0zNywxMCArMzcsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKy8v
IEZJWE1FOiBVc2UgdGhlIGNvcnJlY3QgZnJhbWUgcmF0ZS4KK2NvbnN0ZXhwciBXZWJDb3JlOjpG
cmFtZXNQZXJTZWNvbmQgRGVmYXVsdEZyYW1lc1BlclNlY29uZCA9IDYwOworCiBUaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvcjo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBDbGllbnQmIGNsaWVudCkKICAgICA6IFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCiAgICAgLCBtX2Rpc3BsYXlS
ZWZyZXNoVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGhyZWFkZWREaXNwbGF5UmVmcmVz
aE1vbml0b3I6OmRpc3BsYXlSZWZyZXNoQ2FsbGJhY2spCiAgICAgLCBtX2NsaWVudCgmY2xpZW50
KQorICAgICwgbV9jdXJyZW50VXBkYXRlKDAsIERlZmF1bHRGcmFtZXNQZXJTZWNvbmQpOwogewog
I2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAgICAgbV9kaXNwbGF5UmVmcmVzaFRpbWVyLnNldFBy
aW9yaXR5KFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6RGlzcGxheVJlZnJlc2hNb25pdG9yVGltZXIp
OwpAQCAtOTAsOCArOTQsMTAgQEAgdm9pZCBUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
aW52YWxpZGF0ZSgpCiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobG9jaygpKTsKICAg
ICAgICAgd2FzU2NoZWR1bGVkID0gaXNTY2hlZHVsZWQoKTsKICAgICB9Ci0gICAgaWYgKHdhc1Nj
aGVkdWxlZCkKLSAgICAgICAgZGlzcGxheURpZFJlZnJlc2goKTsKKyAgICBpZiAod2FzU2NoZWR1
bGVkKSB7CisgICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKG1fY3VycmVudFVwZGF0ZSk7CisgICAg
ICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKKyAgICB9CiAgICAgbV9jbGllbnQgPSBu
dWxscHRyOwogfQogCkBAIC0xMDYsOCArMTEyLDEwIEBAIHZvaWQgVGhyZWFkZWREaXNwbGF5UmVm
cmVzaE1vbml0b3I6OmRpc3BsYXlSZWZyZXNoQ2FsbGJhY2soKQogICAgICAgICAgICAgc2V0SXNQ
cmV2aW91c0ZyYW1lRG9uZShmYWxzZSk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZEhhbmRsZURp
c3BsYXlSZWZyZXNoTm90aWZpY2F0aW9uKQotICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOwor
ICAgIGlmIChzaG91bGRIYW5kbGVEaXNwbGF5UmVmcmVzaE5vdGlmaWNhdGlvbikgeworICAgICAg
ICBkaXNwbGF5RGlkUmVmcmVzaChtX2N1cnJlbnRVcGRhdGUpOworICAgICAgICBtX2N1cnJlbnRV
cGRhdGUuZGlkVXBkYXRlKCk7CisgICAgfQogCiAgICAgLy8gUmV0cmlldmUgdGhlIHNjaGVkdWxl
ZCBzdGF0dXMgZm9yIHRoaXMgRGlzcGxheVJlZnJlc2hNb25pdG9yLgogICAgIGJvb2wgaGFzQmVl
blJlc2NoZWR1bGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oCmluZGV4
IGI0OWE4YjJkYmVmMDQ5YTdlNDQxM2QyZTgyZGU5NTFkMjc3Y2U2MzQuLmRiMjkzZmZmYzRjMWYz
Y2Y0YWQzMjBiYTA4MmEwNTc5YTcyYzM1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3Iu
aApAQCAtNjMsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGxheVJlZnJlc2hDYWxs
YmFjaygpOwogICAgIFJ1bkxvb3A6OlRpbWVyPFRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9y
PiBtX2Rpc3BsYXlSZWZyZXNoVGltZXI7CiAgICAgQ2xpZW50KiBtX2NsaWVudDsKKyAgICBXZWJD
b3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlM
aW5rLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKaW5k
ZXggYTQzZGZjZDQ2ZDUxZjQ0NDc4MmFmZDE3N2JiYWI1MWQwMjZhNjhkYS4uM2QyYmM0ZTEyMzU4
OTE0ZTcxNTY2ZmM5YTU2Njk5NmM4NjkxYTMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvRGlzcGxheUxpbmsuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIHZvaWQgRGlzcGxheUxpbms6
OmFkZE9ic2VydmVyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGlzcGxheUxpbmtPYnNl
cnZlcklECiAgICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZEaXNwbGF5TGlua1N0YXJ0KG1fZGlz
cGxheUxpbmspOwogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBXVEZMb2dBbHdheXMo
IkNvdWxkIG5vdCBzdGFydCB0aGUgZGlzcGxheSBsaW5rOiAlZCIsIGVycm9yKTsKKworICAgICAg
ICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIG1fZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQg
fTsKICAgICB9CiB9CiAKQEAgLTE1MiwxMiArMTU0LDE1IEBAIHZvaWQgRGlzcGxheUxpbms6Om5v
dGlmeU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNoZWQoKQogICAgIG1fZmlyZUNvdW50V2l0aG91
dE9ic2VydmVycyA9IDA7CiAKICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX29ic2VydmVy
cy5rZXlzKCkpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0g
PDwgIltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiBz
ZW5kaW5nIGZvciBjb25uZWN0aW9uICIgPDwgY29ubmVjdGlvbi0+dW5pcXVlSUQoKSA8PCAiIG9u
IGJhY2tncm91bmQgcXVldWUgIiA8PCBzaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVldWUpOwor
ICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiW1VJIF0gRGlz
cGxheUxpbmsgZm9yIGRpc3BsYXkgIiA8PCBtX2Rpc3BsYXlJRCA8PCAiIChkaXNwbGF5IGZwcyAi
IDw8IG1fZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPDwgIikgdXBkYXRlICIgPDwgbV9j
dXJyZW50VXBkYXRlIDw8ICIgY29ubmVjdGlvbiAiIDw8IGNvbm5lY3Rpb24tPnVuaXF1ZUlEKCkg
PDwgIiBvbiBiYWNrZ3JvdW5kIHF1ZXVlICIgPDwgc2hvdWxkU2VuZElQQ09uQmFja2dyb3VuZFF1
ZXVlKTsKKwogICAgICAgICBpZiAoc2hvdWxkU2VuZElQQ09uQmFja2dyb3VuZFF1ZXVlKQotICAg
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpEaXNw
bGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlEKSwgMCk7CisgICAgICAgICAgICBjb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpFdmVudERpc3BhdGNoZXI6OkRpc3BsYXlXYXNSZWZyZXNoZWQobV9k
aXNwbGF5SUQsIG1fY3VycmVudFVwZGF0ZSksIDApOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEaXNwbGF5V2FzUmVmcmVz
aGVkKG1fZGlzcGxheUlEKSwgMCk7CisgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpEaXNwbGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlELCBtX2N1cnJl
bnRVcGRhdGUpLCAwKTsKICAgICB9CisKKyAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
RGlzcGxheUxpbmsuaAppbmRleCBhYTFhMGI3YjA1ZjQ1MmJhNTNkYzhkNTY3ZmFlNTllMDllZTBm
NzM3Li41MmMzMTk5ZWY4Y2Q2MGY0MDI4Y2VkNTA4ZThjNzQxYzM5ODE4M2RmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oIgogI2luY2x1ZGUgPENvcmVWaWRlby9DVkRp
c3BsYXlMaW5rLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BbmltYXRpb25GcmFtZVJhdGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgpAQCAtNjksNiArNzAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UmVmUHRyPElQQzo6
Q29ubmVjdGlvbj4sIFZlY3RvcjxEaXNwbGF5TGlua09ic2VydmVySUQ+PiBtX29ic2VydmVyczsK
ICAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKICAgICBXZWJDb3Jl
OjpGcmFtZXNQZXJTZWNvbmQgbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCB7IDAgfTsK
KyAgICBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKICAgICB1bnNpZ25l
ZCBtX2ZpcmVDb3VudFdpdGhvdXRPYnNlcnZlcnMgeyAwIH07CiAgICAgc3RhdGljIGJvb2wgc2hv
dWxkU2VuZElQQ09uQmFja2dyb3VuZFF1ZXVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDc3ZDVmOTNjMzE2
MDVkMGNmZGUxN2NlZDhhMmQ3NTViOGY2NWUwY2MuLjg2ZjhmM2Q4MTNiNjQyMWYzZWRhNzcyZDFh
MWRkMGNhOWU2MTdiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViV2hl
ZWxFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVVwZGF0ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RNb25pdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTI4OCwxMyArMjg5LDEzIEBAIHZv
aWQgRXZlbnREaXNwYXRjaGVyOjpub3RpZnlTY3JvbGxpbmdUcmVlc0Rpc3BsYXlXYXNSZWZyZXNo
ZWQoUGxhdGZvcm1EaXNwbGF5SUQKIH0KIAogI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKLXZvaWQg
RXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0
ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBub3RpZnlTY3JvbGxp
bmdUcmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUlEKTsKIAotICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbZGlzcGxheUlEXSgpIHsKLSAgICAgICAgRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCk7
CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtkaXNwbGF5SUQsIGRpc3BsYXlVcGRhdGVd
KCkgeworICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCkuZGlzcGxheVdhc1VwZGF0ZWQoZGlzcGxheUlELCBkaXNwbGF5VXBkYXRlKTsKICAgICB9KTsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuaAppbmRleCA2NzFiMjhkZjNlNTEwZGVhMzUwMWQ4MDI4Yjk3ODcxODc2YTY0
YTBkLi5hMTMwZDQ0MzVjN2M5ZWMwOTc3ZTlmMTgwYWQ4MTYyZTMyMWJlZWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAt
NDMsNiArNDMsNyBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBEaXNw
bGF5VXBkYXRlOwogY2xhc3MgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOwogdXNpbmcgUGxhdGZvcm1E
aXNwbGF5SUQgPSB1aW50MzJfdDsKIH0KQEAgLTEwNyw3ICsxMDgsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKKyAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNoZWQo
V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQsIGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUm
KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVz
c2FnZXMuaW4KaW5kZXggY2Y0Zjc2NjY2Y2M1MzQzMWU5OWJlZGU1ZTgyOGE4YWE4N2EwM2NjOC4u
MGI1ZDI5MTJjZGE5NzFmM2UxOTE1YjhlMmFmMGM1ZjUwMDk4MTAzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbgpAQCAtMzAsNiArMzAsNiBAQCBtZXNzYWdlcyAtPiBFdmVudERpc3BhdGNoZXIg
ewogICAgIEdlc3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktp
dDo6V2ViR2VzdHVyZUV2ZW50IGV2ZW50KQogI2VuZGlmCiAjaWYgSEFWRShDVkRJU1BMQVlMSU5L
KQotICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlEKQorICAgIERpc3Bs
YXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlELCBzdHJ1Y3QgV2ViQ29yZTo6RGlzcGxh
eVVwZGF0ZSB1cGRhdGUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVm
cmVzaE1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaAppbmRleCA2ODU1
NTM4MThmNGJiZmRlYzNkYzI1OTM5MzEzNTdmM2RkOTlmYWQ4Li5hNGVhZTUyOTk3ZTNiNTI3MTQx
ODRlZWI4MzU3MDUyMjI5MTkzMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oCkBAIC01Myw2ICs1
Myw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmlu
YWwgeyB9CiAKICAgICBXZWFrUHRyPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPiBtX2RyYXdp
bmdBcmVhOworCisgICAgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIG1fcHJlZmVycmVkRnJhbWVz
UGVyU2Vjb25kOworICAgIFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgbV9jdXJyZW50VXBkYXRlOwog
fTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxh
eVJlZnJlc2hNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQppbmRl
eCA3NTkyZjU2MTAzZjIwYmM5ZmJlNzFhZjViNGQ0NmJhMmNjMzM3OTA3Li5kZDc5OWRjYTRhZTM5
ZWM0ZDc5MDY5MTAyNjVhZGQ3Y2JiOWNjZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJl
ZnJlc2hNb25pdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0KQEAg
LTMyLDkgKzMyLDEzIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCitjb25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJyZWRGcmFtZXNQ
ZXJTZWNvbmQgPSA2MDsKKwogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlELCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAgOiBE
aXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQogICAgICwgbV9kcmF3aW5nQXJlYShtYWtl
V2Vha1B0cihkcmF3aW5nQXJlYSkpCisgICAgLCBtX3ByZWZlcnJlZEZyYW1lc1BlclNlY29uZChE
ZWZhdWx0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQorICAgICwgbV9jdXJyZW50VXBkYXRlKHsg
MCwgbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQgfSkKIHsKIH0KIApAQCAtNDYsNiArNTAsMTIg
QEAgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjp+UmVtb3RlTGF5ZXJUcmVl
RGlzcGxheVJlZnJlc2hNb25pdG9yKCkKIAogdm9pZCBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVm
cmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZChGcmFtZXNQZXJTZWNvbmQg
cHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQogeworICAgIGlmIChwcmVmZXJyZWRGcmFtZXNQZXJT
ZWNvbmQgPT0gbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25k
OworICAgIG1fY3VycmVudFVwZGF0ZSA9IHsgMCwgbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQg
fTsKKwogICAgIGlmIChtX2RyYXdpbmdBcmVhKQogICAgICAgICBtX2RyYXdpbmdBcmVhLT5zZXRQ
cmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQocHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKTsKIH0KQEAg
LTcyLDcgKzgyLDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6
OmRpZFVwZGF0ZUxheWVycygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldElzUHJldmlvdXNG
cmFtZURvbmUoZmFsc2UpOwotICAgIGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgZGlzcGxheURp
ZFJlZnJlc2gobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRl
KCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjp1cGRh
dGVEcmF3aW5nQXJlYShSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCkBA
IC04MCw0ICs5MSw0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9y
Ojp1cGRhdGVEcmF3aW5nQXJlYShSZW1vdGVMYXllclRyZWVEcmF3CiAgICAgbV9kcmF3aW5nQXJl
YSA9IG1ha2VXZWFrUHRyKGRyYXdpbmdBcmVhKTsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCmluZGV4IGY0YTI0N2Y2ZTc1NDNl
ODVjZTQwY2E3MWM0NjgzYzI0YWQxNjFkYTkuLjBiMWEzYjc5M2FjMWVhOWIzYjNmMzE4Yzk5NTI5
MWZkNjE5Yzk2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCkBAIC01Niwx
MiArNTYsMTMgQEAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjp+RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjKCkKICAgICBBU1NFUlQoIW1fZGlzcGxheUxpbmtJc0FjdGl2ZSk7CiB9CiAKLXZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCkKK3Zv
aWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGNv
bnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CisgICAgLy8gRklYTUU6IFRoaXMg
d2lsbCBwZXJ0dXJiIGRpc3BsYXlVcGRhdGUuCiAgICAgaWYgKCFtX2ZpcnN0Q2FsbGJhY2tJbkN1
cnJlbnRSdW5sb29wKQogICAgICAgICByZXR1cm47CiAKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKTsKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goZGlzcGxheVVwZGF0ZSk7CiB9CiAKIGJvb2wg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKaW5kZXggMmU2NWM0YzAyOGQ3MjQwZmZlMjMxZDUy
MTFlMTk4ZjVjYmZkM2NjMS4uOTYwNGI4OTAzMDNiMGFhY2VkZTVhMDZmZWM0MjdhOWMyMWZjMDc2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJl
ZnJlc2goKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goY29uc3Qg
V2ViQ29yZTo6RGlzcGxheVVwZGF0ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBzdGFydE5vdGlmaWNh
dGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk2
ODQwODA0NDFlMDU3YzQ3M2NkMmQyNzJkOGIwOGIzMjFmNDNlNzUuLmIwNjRmMjI3Y2Q1MmI3NTBk
NmMzYWU0YzJlNGQyMDZkYjY3ZjcwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTE4OTUsMTEgKzE4OTUsMTEgQEAgYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQ
YWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB9CiAKICNpZiBIQVZFKENWRElTUExBWUxJTkspCi12
b2lkIFdlYlByb2Nlc3M6OmRpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlEKQor
dm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwg
Y29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0ZSkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIG1fZXZlbnREaXNwYXRjaGVyLT5ub3RpZnlTY3JvbGxpbmdUcmVl
c0Rpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUlEKTsKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1VwZGF0ZWQoZGlzcGxheUlEKTsK
KyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxh
eVdhc1VwZGF0ZWQoZGlzcGxheUlELCBkaXNwbGF5VXBkYXRlKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkNjMxZjczY2Y0MjIxM2FiOGU5YTcw
NTI5MjU3MjNlOTZjZDVkYTA4Li42NDZlNWVkMDg5NzE2MTNhZmI0MTU0ODA3N2ZlMzE0OGJkMThh
ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk0LDYgKzk0LDcg
QEAgY2xhc3MgVXNlckdlc3R1cmVUb2tlbjsKIGVudW0gY2xhc3MgRXZlbnRNYWtlc0dhbWVwYWRz
VmlzaWJsZSA6IGJvb2w7CiAKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOworc3Ry
dWN0IERpc3BsYXlVcGRhdGU7CiBzdHJ1Y3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyOwogc3RydWN0
IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwogc3RydWN0IE1vY2tNZWRpYURldmljZTsKQEAgLTUw
Nyw3ICs1MDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBIQVZFKENWRElTUExBWUxJTksp
Ci0gICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCk7CisgICAg
dm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgY29uc3QgV2ViQ29y
ZTo6RGlzcGxheVVwZGF0ZSYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDEyMmU1
NDNiMmJhODdiODBjNGVkNjA1YjBlNDIyM2E0ZDE3YTEwZDYuLmE5OTJhNDQ2MzRjNGUxN2ZlZmNk
Y2IzOTQ2MDZhY2ZkMTAzNDQwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xODgsNyArMTg4LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICNlbmRpZgogCiAjaWYgSEFW
RShDVkRJU1BMQVlMSU5LKQotICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxh
eUlEKQorICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6RGlzcGxheVVwZGF0ZSB1cGRhdGUpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykK
</data>
<flag name="commit-queue"
          id="444176"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424482</attachid>
            <date>2021-03-27 23:19:32 -0700</date>
            <delta_ts>2021-03-28 00:08:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223847-20210327231931.patch</filename>
            <type>text/plain</type>
            <size>53016</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uMGRhZDQ2YzU4NTFlNjg0MGViZmYyMDZhNGQ1ZWQx
YmMyODc0Y2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAzLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIERpc3Bs
YXlVcGRhdGUgdGhyb3VnaCB0aGUgZGlzcGxheSByZWZyZXNoIG1vbml0b3JzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdXR1cmUgd29yayB3aWxsIGFs
bG93IERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudHMgdG8gcmVxdWVzdCBkaWZmZXJlbnQgZnJh
bWUgcmF0ZXMsIHdoaWNoCisgICAgICAgIGFyZSB3aG9sZSBmcmFjdGlvbnMgb2YgdGhlIGRpc3Bs
YXkncyBub21pbmFsIHJlZnJlc2ggcmF0ZS4gVGhlc2UgdmFyaW91cyBmcmFtZSByYXRlIHJlcXVl
c3RzCisgICAgICAgIGZsb3cgdXAgdGhyb3VnaCB0aGUgRGlzcGxheVJlZnJlc2hNb25pdG9ycywg
YW5kIGluIFdlYktpdDIsIHVwIHRocm91Z2ggSVBDIHRvIHRoZQorICAgICAgICBwZXItZGlzcGxh
eSBEaXNwbGF5TGluayB3aGljaCBtYXkgZXZlbiBzZXJ2aWNlIG11bHRpcGxlIHByb2Nlc3Nlcy4K
KworICAgICAgICBGb3IgcG93ZXIgcmVhc29ucywgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGRp
c3BsYXkgcmVmcmVzaCBub3RpZmljYXRpb25zIGRvd24gdGhlIGNoYWluIGF0CisgICAgICAgIHRo
ZSBoaWdoZXN0IHBvc3NpYmxlIGZyZXF1ZW5jeTsgYXQgdmFyaW91cyBzdGFnZXMgb2YgcHJvcGFn
YXRpb24gdGhlIHJhdGUgbWlnaHQgYmUgaGFsdmVkIGlmCisgICAgICAgIHRoYXQncyB0aGF0J3Mg
bmVjZXNzYXJ5IGZvciBkb3duc3RyZWFtIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICBUbyBt
YWtlIHRoaXMgZnJlcXVlbmN5IHNwbGl0dGluZyBsb2dpYyBzaW1wbGUsIHRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBEaXNwbGF5VXBkYXRlLCB3aGljaAorICAgICAgICByZXByZXNlbnRzIHRoZSBmcmFj
dGlvbmFsIHNlY29uZCBmb3IgdGhlIGN1cnJlbnQgdXBkYXRlLiBUaGUgbnVtZXJhdG9yIGlzIHRo
ZSBmcmFtZSBpbmRleCwKKyAgICAgICAgYW5kIHRoZSBkZW5vbWluYXRvciBpcyB0aGUgbm9taW5h
bCBmcmFtZSByYXRlLiBGcmFtZSBpbmRleCB3cmFwcyB0byB6ZXJvIGV2ZXJ5IHNlY29uZC4KKyAg
ICAgICAgCisgICAgICAgIEZvciBleGFtcGxlLCBhIDYwSHogZGlzcGxheSB3aWxsIGdlbmVyYXRl
IGRpc3BsYXkgcmVmcmVzaGVzIHdpdGggRGlzcGxheVVwZGF0ZXMgd2hpY2gKKyAgICAgICAgc2Vx
dWVudGlhbGx5IHdpbGwgYmUgeyAwLCA2MCB9LCB7IDEsIDYwIH0sIHsgMiwgNjAgfSAuLi4geyA1
OSwgNjAgfSwgeyAwLCA2MCB9LiBUaGUKKyAgICAgICAgemVyb3RoIGZyYW1lIGlzIGF0IHNvbWUg
YXJiaXRyYXJ5IHRpbWUgYW5kIG5vdCBhbGlnbmVkIHdpdGggd2FsbGNsb2NrIHRpbWUuCisgICAg
ICAgIAorICAgICAgICBUaHVzIGEgY2xpZW50IHdpdGggYSAzMEh6IHVwZGF0ZSByZXF1aXJlbWVu
dCBjYW4gc2ltcGx5IGlnbm9yZSBldmVyeSBvZGQtbnVtYmVyZWQgZnJhbWUsIGFuZAorICAgICAg
ICBhIGNsaWVudCBkb3duc3RyZWFtIGZyb20gaXQgd2l0aCBhIDE1SHogcmVxdWlyZW1lbnQsIHdo
aWNoIG9ubHkgcmVjZWl2ZXMgdGhvc2UgZXZlbi1udW1iZXJlZAorICAgICAgICBmcmFtZXMsIHN0
aWxsIGhhcyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB3aGljaCBmcmFtZXMgdG8gaWdu
b3JlLgorICAgICAgICAKKyAgICAgICAgQ2xhc3NlcyB3aGljaCBhcmUgc291cmNlcyBvZiBjYWxs
YmFja3MgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvciBuZWVkIHRvIGdlbmVyYXRlIHRoZXNlCisg
ICAgICAgIERpc3BsYXlVcGRhdGVzOyB0aGF0IGluY2x1ZGVzIHRoZSB2YXJpb3VzIHBsYXRmb3Jt
IERpc3BsYXlSZWZyZXNoTW9uaXRvciBzdWJjbGFzc2VzIGluCisgICAgICAgIFdlYkNvcmUsIGFu
ZCB0aG9zZSBpbiBXZWJLaXQgdGhhdCBsaXZlIGluIHRoZSBVSSBwcm9jZXNzIGFuZCB0cmlnZ2Vy
IHVwZGF0ZXMgb3ZlciBJUEMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVS
YXRlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGF0Y2hE
aXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlXYXNVcGRhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaC4KKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlVcGRhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheVVwZGF0ZTo6ZGlkVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlVcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5VXBkYXRlOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuY3BwOiBBc3N1bWUgYSA2MGZwcyByZWZyZXNoIHJhdGUgYnV0IHRoaXMgY29kZQorICAg
ICAgICBzaG91bGQgcHJvYmFibHkgdXNlIGdka19mcmFtZV9jbG9ja19nZXRfcmVmcmVzaF9pbmZv
KCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHJhdGUuCisgICAgICAgIChXZWJDb3JlOjpvbkZyYW1lQ2xv
Y2tVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpk
aXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tOgor
ICAgICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaW5pdFdpdGhNb25pdG9yOl0pOgorICAg
ICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaGFuZGxlRGlzcGxheUxpbms6XSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKC1bV2ViRGlzcGxheUxpbmtIYW5k
bGVyIHNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0NhbGxiYWNrRmly
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNwbGF5TGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmN1cnJlbnRVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
V2luOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaDoKKwogMjAyMS0wMy0yNyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBEaXNwbGF5
UmVmcmVzaE1vbml0b3IgdG8gYmUgbW9yZSBsb25nLWxpdmVkIG9iamVjdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmI4Mjk0NzgzNTk3NzcyMzRjOGU5OTNmNzNiMzlmZDZlYjcyNjc0Zi4uMmI0YTY1ZDNhMTBhMWFi
ZjFkYjM5YmM4YzMzZDcxMWY5ZDZiN2U1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAy
MS0wMy0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBQbHVtYiBEaXNwbGF5VXBkYXRlIHRocm91Z2ggdGhlIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnV0dXJl
IHdvcmsgd2lsbCBhbGxvdyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnRzIHRvIHJlcXVlc3Qg
ZGlmZmVyZW50IGZyYW1lIHJhdGVzLCB3aGljaAorICAgICAgICBhcmUgd2hvbGUgZnJhY3Rpb25z
IG9mIHRoZSBkaXNwbGF5J3Mgbm9taW5hbCByZWZyZXNoIHJhdGUuIFRoZXNlIHZhcmlvdXMgZnJh
bWUgcmF0ZSByZXF1ZXN0cworICAgICAgICBmbG93IHVwIHRocm91Z2ggdGhlIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcnMsIGFuZCBpbiBXZWJLaXQyLCB1cCB0aHJvdWdoIElQQyB0byB0aGUKKyAgICAg
ICAgcGVyLWRpc3BsYXkgRGlzcGxheUxpbmsgd2hpY2ggbWF5IGV2ZW4gc2VydmljZSBtdWx0aXBs
ZSBwcm9jZXNzZXMuCisKKyAgICAgICAgRm9yIHBvd2VyIHJlYXNvbnMsIHdlIGRvbid0IHdhbnQg
dG8gdHJpZ2dlciBkaXNwbGF5IHJlZnJlc2ggbm90aWZpY2F0aW9ucyBkb3duIHRoZSBjaGFpbiBh
dAorICAgICAgICB0aGUgaGlnaGVzdCBwb3NzaWJsZSBmcmVxdWVuY3k7IGF0IHZhcmlvdXMgc3Rh
Z2VzIG9mIHByb3BhZ2F0aW9uIHRoZSByYXRlIG1pZ2h0IGJlIGhhbHZlZCBpZgorICAgICAgICB0
aGF0J3MgdGhhdCdzIG5lY2Vzc2FyeSBmb3IgZG93bnN0cmVhbSBjbGllbnRzLgorICAgICAgICAK
KyAgICAgICAgVG8gbWFrZSB0aGlzIGZyZXF1ZW5jeSBzcGxpdHRpbmcgbG9naWMgc2ltcGxlLCB0
aGlzIHBhdGNoIGludHJvZHVjZXMgRGlzcGxheVVwZGF0ZSwgd2hpY2gKKyAgICAgICAgcmVwcmVz
ZW50cyB0aGUgZnJhY3Rpb25hbCBzZWNvbmQgZm9yIHRoZSBjdXJyZW50IHVwZGF0ZS4gVGhlIG51
bWVyYXRvciBpcyB0aGUgZnJhbWUgaW5kZXgsCisgICAgICAgIGFuZCB0aGUgZGVub21pbmF0b3Ig
aXMgdGhlIG5vbWluYWwgZnJhbWUgcmF0ZS4gRnJhbWUgaW5kZXggd3JhcHMgdG8gemVybyBldmVy
eSBzZWNvbmQuCisgICAgICAgIAorICAgICAgICBGb3IgZXhhbXBsZSwgYSA2MEh6IGRpc3BsYXkg
d2lsbCBnZW5lcmF0ZSBkaXNwbGF5IHJlZnJlc2hlcyB3aXRoIERpc3BsYXlVcGRhdGVzIHdoaWNo
CisgICAgICAgIHNlcXVlbnRpYWxseSB3aWxsIGJlIHsgMCwgNjAgfSwgeyAxLCA2MCB9LCB7IDIs
IDYwIH0gLi4uIHsgNTksIDYwIH0sIHsgMCwgNjAgfS4gVGhlCisgICAgICAgIHplcm90aCBmcmFt
ZSBpcyBhdCBzb21lIGFyYml0cmFyeSB0aW1lIGFuZCBub3QgYWxpZ25lZCB3aXRoIHdhbGxjbG9j
ayB0aW1lLgorICAgICAgICAKKyAgICAgICAgVGh1cyBhIGNsaWVudCB3aXRoIGEgMzBIeiB1cGRh
dGUgcmVxdWlyZW1lbnQgY2FuIHNpbXBseSBpZ25vcmUgZXZlcnkgb2RkLW51bWJlcmVkIGZyYW1l
LCBhbmQKKyAgICAgICAgYSBjbGllbnQgZG93bnN0cmVhbSBmcm9tIGl0IHdpdGggYSAxNUh6IHJl
cXVpcmVtZW50LCB3aGljaCBvbmx5IHJlY2VpdmVzIHRob3NlIGV2ZW4tbnVtYmVyZWQKKyAgICAg
ICAgZnJhbWVzLCBzdGlsbCBoYXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgd2hpY2gg
ZnJhbWVzIHRvIGlnbm9yZS4KKyAgICAgICAgCisgICAgICAgIENsYXNzZXMgd2hpY2ggYXJlIHNv
dXJjZXMgb2YgY2FsbGJhY2tzIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3IgbmVlZCB0byBnZW5l
cmF0ZSB0aGVzZQorICAgICAgICBEaXNwbGF5VXBkYXRlczsgdGhhdCBpbmNsdWRlcyB0aGUgdmFy
aW91cyBwbGF0Zm9ybSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igc3ViY2xhc3NlcyBpbgorICAgICAg
ICBXZWJDb3JlLCBhbmQgdGhvc2UgaW4gV2ViS2l0IHRoYXQgbGl2ZSBpbiB0aGUgVUkgcHJvY2Vz
cyBhbmQgdHJpZ2dlciB1cGRhdGVzIG92ZXIgSVBDLgorCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheVJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5r
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpub3RpZnlPYnNl
cnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlkVXBkYXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1lc1Bl
clNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ0Yjk3MDgyNGQ1ZGM4NWFj
YzNkOTkxMjQ5ZGE2MTM5NWQzMGEwNTAuLjgyOTAyOWJlOTA3NTI2MTBkNDk4MzI5NTc4YTE5OTUw
YzBjZWVjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE4OSw2ICsxMTg5LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdExpbmUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4
Li5hYmVmMzcyMTUwODRlMjk5YmJkOTMyZmViZGFiMWM0N2ZjNDNlYWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTk0Myw2ICsxOTQzLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFn
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5VXBkYXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRMaW5lLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9p
bnQzRC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NTAwNjQ5ODU0M2NhMTlmN2E3ZWEwZGQwMWNmNDA0OGJiNzM3OTUxLi45
OTU3ZGFhM2U0MTU2ZGViNjQ4OGUxMTg1ZGEyNTM1MDc2MmI2YjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDUsNiArMzQ1
LDcgQEAKIAkJMEZCNjI1MkYxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI2MjUyRDE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI4ODkwRjE2N0QzMDE2MDAxMENEQTUg
LyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQkI1RkJEMjYwOTVBOUMwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQkI1RkNCMjYwRTlCNDQwMDU0NTcy
QyAvKiBEaXNwbGF5VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEZDNEIwMDYyMkI5QTAyRDAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDNEIwMDQyMkI5QTAyQzAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQ0YzMzJGMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRjMzMkIw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZEMzA4MEYxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRl
ckZyYW1lQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZEMzA4MEQxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRlckZyYW1lQmFzZS5oICovOyB9OwpA
QCAtNjIwNSw2ICs2MjA2LDggQEAKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkJCNUZCRDI2MDk1QTlD
MDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGQkI1RkM5MjYwRTlCNDMwMDU0NTcyQyAvKiBEaXNwbGF5VXBkYXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlVcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRkJCNUZDQjI2MEU5QjQ0MDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaXNwbGF5VXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGQkZDRTI0MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQkZDRTI2MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkMwNTE2ODIxOUI1RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc4MCw2
ICsyNjc4Myw4IEBACiAJCQkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkuaCAqLywKIAkJCQkyRDI5RUNDMzE5MkVDQzgzMDA5ODRCNzggLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8sCiAJCQkJMkQyOUVDQzQxOTJFQ0M4
MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAqLywKKwkJCQkwRkJC
NUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5jcHAgKi8sCisJCQkJMEZCQjVG
Q0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCAqLywKIAkJCQk2RTY3RDJBODEy
ODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uc0dMLmggKi8sCiAJCQkJMkU4ODhDQTkyNUY2QTQx
MTAwNTc5MTRBIC8qIEZsb2F0TGluZS5jcHAgKi8sCiAJCQkJMkU4ODhDQTgyNUY2QTQxMTAwNTc5
MTRBIC8qIEZsb2F0TGluZS5oICovLApAQCAtMzIxMTksNiArMzIxMjQsNyBAQAogCQkJCTBGQkI1
RkJFMjYwOTkxRDIwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDI5RUNDQTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJlZnJl
c2hNb25pdG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNzkwRjQzMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQzMTYwOTExMkIwMjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzA0MDI4MzI0OUE3QTYyMDBBOTBEOEQgLyogRGlzdGFuY2VNb2RlbFR5
cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBiMjdmZDM2MDEyNDA5OTYzNTUwNGY1MjcxODgwNjU4N2MzODVhNTFjLi42ZWVlZDFmNDIw
MmZiOTIyMDIyNWNjNGE3MzRkZWJmNjdhMDY4MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBk
aXNwbGF5TGlua0ZpcmVkKGNvbnN0IERpc3BsYXlVcGRhdGUmKSBmaW5hbCB7IH0KICAgICBib29s
IHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZv
aWQgc3RvcCgpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcAppbmRleCBkZTg2NWJkMWNjMDIwNDdk
OTBiZWNjMDIwYmVlYmE3ODgyMDhmMzAxLi41YzJjNDA4OWM1OGZiOWIyY2U4NGMwOTM2MzNmZTAy
ZGM4NmFmMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
bmltYXRpb25GcmFtZVJhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCmlu
ZGV4IDFiYWY4N2VkNjUyMzk1ZjYzMDU3OWJhN2FmZTkwMmU4MDBiOWI2YmIuLmI0MWJjNGU5OWQy
NzkzNTM0MjE0N2JkODg5YzRjMDE5YmZlY2EzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCkBAIC0yNiw4ICsyNiwx
MiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVh
bTsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw2ICs1OCw2IEBAIFdFQkNPUkVf
RVhQT1JUIEZyYW1lc1BlclNlY29uZCBmcmFtZXNQZXJTZWNvbmROZWFyZXN0RnVsbFNwZWVkKEZy
YW1lc1BlclNlY29uZCk7CiBXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50
ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiwgT3B0aW9uYWw8RnJhbWVz
UGVyU2Vjb25kPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKIFdFQkNPUkVfRVhQT1JUIEZyYW1l
c1BlclNlY29uZCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmRGcm9tSW50ZXJ2YWwoU2Vjb25kcyk7
CiAKLVdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNv
bnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiYpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IE9wdGlvblNldDxU
aHJvdHRsaW5nUmVhc29uPiYpOwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcAppbmRleCBiOGVlMmM5OWJjYzcwYTc5MTFkOTgwYTBhYmE0YzU0Nzk3MGViN2I3
Li44M2ZmM2QzNjEzMzE1Mjc2ZjYyOWRiNDFlNTQyMDdiN2E0YmI4M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
ZmlyZWRBbmRSZWFjaGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKQogICAgIHJldHVybiBtX3Vu
c2NoZWR1bGVkRmlyZUNvdW50ID4gbV9tYXhVbnNjaGVkdWxlZEZpcmVDb3VudDsKIH0KIAotdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoKQordm9pZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlz
cGxheVVwZGF0ZSkKIHsKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9s
b2NrKTsKQEAgLTE0NiwxOSArMTQ2LDIyIEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpk
aXNwbGF5TGlua0ZpcmVkKCkKICAgICAgICAgc2V0SXNTY2hlZHVsZWQoZmFsc2UpOwogICAgICAg
ICBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKICAgICB9Ci0gICAgZGlzcGF0Y2hEaXNw
bGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goZGlzcGxheVVw
ZGF0ZSk7CiB9CiAKLXZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3Bs
YXlEaWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6ZGlzcGxheURpZFJlZnJlc2goKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRp
c3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIFVOVVNFRF9QQVJBTShkaXNwbGF5VXBk
YXRlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaCBmb3IgZGlzcGxheSAiIDw8IGRpc3Bs
YXlJRCgpIDw8ICIgdXBkYXRlICIgPDwgZGlzcGxheVVwZGF0ZSk7CisKICAgICAvLyBUaGUgY2Fs
bCBiYWNrIGNhbiBjYXVzZSBhbGwgb3VyIGNsaWVudHMgdG8gYmUgdW5yZWdpc3RlcmVkLCBzbyB3
ZSBuZWVkIHRvIHByb3RlY3QKICAgICAvLyBhZ2FpbnN0IGRlbGV0aW9uIHVudGlsIHRoZSBlbmQg
b2YgdGhlIG1ldGhvZC4KICAgICBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKaW5kZXggNWU2NTZkNzAyYmQyZDNhYzBhZjAzN2M1
YjJlZmViNWYwMGFkOGQzMi4uMjVhMTNmOTJlNDk0Y2RjZjMzODc2YTk5YTUzYzM3OGU4MTM0Mjc2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQW5pbWF0aW9uRnJhbWVSYXRlLmgiCisjaW5jbHVkZSAiRGlzcGxheVVwZGF0ZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNjEsMTIgKzYyLDEyIEBAIHB1YmxpYzoKICAgICBQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsg
fQogCiAgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURlZmF1
bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYp
OwogCiAgICAgTG9jayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogICAgIHZvaWQgc2V0TWF4
VW5zY2hlZHVsZWRGaXJlQ291bnQodW5zaWduZWQgY291bnQpIHsgbV9tYXhVbnNjaGVkdWxlZEZp
cmVDb3VudCA9IGNvdW50OyB9CkBAIC04MSw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGlzUHJldmlvdXNGcmFtZURvbmUoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzRnJhbWVEb25l
OyB9CiAgICAgdm9pZCBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGJvb2wgZG9uZSkgeyBtX3ByZXZp
b3VzRnJhbWVEb25lID0gZG9uZTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwbGF5
RGlkUmVmcmVzaCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2go
Y29uc3QgRGlzcGxheVVwZGF0ZSYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgZmlyZWRBbmRSZWFj
aGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5jcHAKaW5kZXggMmMzOTdiOTk4ZmJmMWU2NWZlOWJkMWYxMmQ4MzMzZWY3YmNiZDRlYi4uZDk1
ZWNhNzRjMjBjYTA2Y2VhYWRiNjFhNzU3NDZjZDE0M2NkZTA3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlci5jcHAKQEAgLTEwOCwxMSArMTA4LDExIEBAIHZvaWQgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFuYWdlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsCiAgICAgICAgIHNjaGVkdWxlQW5pbWF0aW9uKGNsaWVudCk7CiB9CiAKLXZvaWQgRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlEKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpkaXNw
bGF5V2FzVXBkYXRlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlV
cGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgYXV0byogbW9uaXRvciA9IG1vbml0b3JGb3JE
aXNwbGF5SUQoZGlzcGxheUlEKTsKICAgICBpZiAobW9uaXRvcikKLSAgICAgICAgbW9uaXRvci0+
ZGlzcGxheUxpbmtGaXJlZCgpOworICAgICAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKGRp
c3BsYXlVcGRhdGUpOwogfQogCiBzaXplX3QgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6
ZmluZE1vbml0b3JGb3JEaXNwbGF5SUQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCmluZGV4IDBhZTBmYTA5ZmIwNjZlZjllMDc0
ODZiZDQ3Mzc5ZWZhMjY0ODRmMTAuLmVlODkxMjkwMzQyNTM3NTFkZGU3MmI2YWFlMmQ0NWU2M2E3
ZWNhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgKQEAgLTM0LDYgKzM0LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRGlzcGxheVVwZGF0ZTsKKwogY2xhc3Mg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlciB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI+OwogICAgIGZyaWVuZCBjbGFzcyBE
aXNwbGF5UmVmcmVzaE1vbml0b3I7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNjaGVkdWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCYpOwogICAgIHZv
aWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheVdhc1Vw
ZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxh
eVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmKTsKIAog
cHJpdmF0ZToKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5VXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZGZkMjM0ZGM4OTA2NGViNTQ4MjM1ZWJjZmRkNjgwN2NmYzViYzNhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVVwZGF0ZS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3Bs
YXlVcGRhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEaXNwbGF5VXBkYXRlJiB1cGRhdGUpCit7CisgICAgdHMgPDwgdXBkYXRlLnVwZGF0ZUlu
ZGV4IDw8ICIvIiA8PCB1cGRhdGUudXBkYXRlc1BlclNlY29uZDsKKyAgICByZXR1cm4gdHM7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ1ZWQ2ODBhN2IxNTQ0ZWEy
NTE1MzM4ZDMzMGZmM2Q1OWEzNDgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworLy8gVXNlZCB0byByZXByZXNlbnQgYSBnaXZlbiB1cGRhdGUuIEFuIHZhbHVl
IG9mIHsgMywgNjAgfSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIHRoZSB0aGlyZCB1cGRhdGUgaW4g
YSAxLXNlY29uZCBpbnRlcnZhbAorLy8gb24gYSA2MGZwcyBjYWRlbmNlLiB1cGRhdGVJbmRleCB3
aWxsIHJlc2V0IHRvIHplcm8gZXZlcnkgc2Vjb25kLCBzbyB7IDU5LCA2MCB9IGlzIGZvbGxvd2Vk
IGJ5IHsgMCwgNjAgfS4KK3N0cnVjdCBEaXNwbGF5VXBkYXRlIHsKKyAgICB1bnNpZ25lZCB1cGRh
dGVJbmRleCB7IDAgfTsKKyAgICBGcmFtZXNQZXJTZWNvbmQgdXBkYXRlc1BlclNlY29uZCB7IDAg
fTsKKyAgICAKKyAgICB2b2lkIGRpZFVwZGF0ZSgpCisgICAgeworICAgICAgICB1cGRhdGVJbmRl
eCA9ICh1cGRhdGVJbmRleCArIDEpICUgdXBkYXRlc1BlclNlY29uZDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPERpc3BsYXlVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEaXNw
bGF5VXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHVwZGF0ZUluZGV4OworICAgIGVuY29kZXIgPDwgdXBkYXRlc1BlclNlY29uZDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPERpc3BsYXlVcGRhdGU+IERpc3BsYXlV
cGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVk
PiB1cGRhdGVJbmRleDsKKyAgICBkZWNvZGVyID4+IHVwZGF0ZUluZGV4OworICAgIGlmICghdXBk
YXRlSW5kZXgpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxG
cmFtZXNQZXJTZWNvbmQ+IHVwZGF0ZXNQZXJTZWNvbmQ7CisgICAgZGVjb2RlciA+PiB1cGRhdGVz
UGVyU2Vjb25kOworICAgIGlmICghdXBkYXRlc1BlclNlY29uZCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqdXBkYXRlSW5kZXgsICp1cGRhdGVzUGVyU2Vj
b25kIH19OworfQorCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRGlzcGxheVVwZGF0ZSYpOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDhmNjkwOWNk
MGQzZjRmMWE4ODEwZWZhZWQzNWI1NDFiOGE4YTkzMzMuLmE1N2VhMGQxYWNjNDE3ZWUzMGJjNjcy
N2RmOGE1MTU1YTQ3ZDMwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCkBA
IC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3RleHByIEZyYW1l
c1BlclNlY29uZCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIERpc3BsYXlSZWZyZXNo
TW9uaXRvckd0azo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKICAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCiB7CkBAIC00
NSw3ICs0NywxMyBAQCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6On5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKQogCiBzdGF0aWMgdm9pZCBvbkZyYW1lQ2xvY2tVcGRhdGUoR2RrRnJhbWVDbG9j
ayosIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0ayogbW9uaXRvcikKIHsKLSAgICBtb25pdG9yLT5k
aXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVk
KCk7Cit9CisKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpkaXNwbGF5TGlua0NhbGxi
YWNrRmlyZWQoKQoreworICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAg
ICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hN
b25pdG9yR3RrOjpzdG9wKCkKQEAgLTgxLDYgKzg5LDkgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGs6OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKICAgICBBU1NFUlQoZnJhbWVD
bG9jayk7CiAgICAgZ2RrX2ZyYW1lX2Nsb2NrX2JlZ2luX3VwZGF0aW5nKGZyYW1lQ2xvY2spOwog
CisgICAgLy8gRklYTUU6IFVzZSBnZGtfZnJhbWVfY2xvY2tfZ2V0X3JlZnJlc2hfaW5mbyB0byBn
ZXQgdGhlIGNvcnJlY3QgZnJhbWUgcmF0ZS4KKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIERl
ZmF1bHRGcmFtZXNQZXJTZWNvbmQgfTsKKwogICAgIG1fY2xvY2tJc0FjdGl2ZSA9IHRydWU7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmgKaW5kZXggOTFk
ZmZjMWUwMzNjMGM4NjJkMTgwMGYwNmQ4NTM1YmE1NWI5ZjM0ZC4uMzJlMjZmYzM2YmEwZmE4N2U1
ODQ4YzA5ZjVhZjUzZDkwZGU0NWZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApA
QCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKTsKIAorICAgIHZvaWQgZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCk7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlz
cGxheUlEKTsKIApAQCAtNTAsNiArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogCiAgICAgR3RrV2lkZ2V0KiBtX3dpbmRvdyB7IG51
bGxwdHIgfTsKKyAgICBEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKICAgICBib29sIG1f
Y2xvY2tJc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9T
LmgKaW5kZXggMTA1MDhlODkwZDUwMDQwMWE3Y2EzMGYxNDQzZWMxMzA3MWQ0NDY4Yi4uMWY5MTMz
M2VhMTUwYjAxNGI4MGQ5MDkxNzhmZWNhOTI0ZjNmNzYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JJT1MuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKCk7CiAKKyAgICB2b2lkIGRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTUxLDYgKzUzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKIAogICAgIFJldGFpblB0
cjxXZWJEaXNwbGF5TGlua0hhbmRsZXI+IG1faGFuZGxlcjsKKyAgICBEaXNwbGF5VXBkYXRlIG1f
Y3VycmVudFVwZGF0ZTsKICAgICBib29sIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSB7IGZhbHNlIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbQppbmRleCBjZGMxNmZjNDZkZDg3
MzNhMTYwOGY3NjhlNTljNTBhYjJhNzljN2RhLi42YjVmMjUwZGFkY2IxODk4NDFjNGQ0ODdjNjc3
N2ZkOWRjYWY4YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkRpc3BsYXlV
cGRhdGUuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQuaCIK
ICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FEaXNwbGF5TGluay5oPgpAQCAtMzYsNiArMzcsOCBAQAog
CiB1c2luZyBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M7CiAKK2NvbnN0ZXhwciBX
ZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQgPSA2MDsK
KwogQGludGVyZmFjZSBXZWJEaXNwbGF5TGlua0hhbmRsZXIgOiBOU09iamVjdAogewogICAgIERp
c3BsYXlSZWZyZXNoTW9uaXRvcklPUyogbV9tb25pdG9yOwpAQCAtNDMsNyArNDYsNiBAQCBAaW50
ZXJmYWNlIFdlYkRpc3BsYXlMaW5rSGFuZGxlciA6IE5TT2JqZWN0CiB9CiAKIC0gKGlkKWluaXRX
aXRoTW9uaXRvcjooRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKiltb25pdG9yOwotLSAodm9pZClz
ZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJT
ZWNvbmQ7CiAtICh2b2lkKWhhbmRsZURpc3BsYXlMaW5rOihDQURpc3BsYXlMaW5rICopc2VuZGVy
OwogLSAodm9pZClzZXRQYXVzZWQ6KEJPT0wpcGF1c2VkOwogLSAodm9pZClpbnZhbGlkYXRlOwpA
QCAtNTksNyArNjEsNyBAQCAtIChpZClpbml0V2l0aE1vbml0b3I6KERpc3BsYXlSZWZyZXNoTW9u
aXRvcklPUyopbW9uaXRvcgogICAgICAgICAvLyBOb3RlIHRoYXQgQ0FEaXNwbGF5TGluayByZXRh
aW5zIGl0cyB0YXJnZXQgKHNlbGYpLCBzbyBhIGNhbGwgdG8gLWludmFsaWRhdGUgaXMgbmVlZGVk
IG9uIHRlYXJkb3duLgogICAgICAgICBtX2Rpc3BsYXlMaW5rID0gW0NBRGlzcGxheUxpbmsgZGlz
cGxheUxpbmtXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGhhbmRsZURpc3BsYXlM
aW5rOildOwogICAgICAgICBbbV9kaXNwbGF5TGluayBhZGRUb1J1bkxvb3A6V2ViVGhyZWFkTlNS
dW5Mb29wKCkgZm9yTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZV07Ci0gICAgICAgIG1fZGlzcGxh
eUxpbmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gNjA7CisgICAgICAgIG1fZGlzcGxheUxp
bmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQ7
CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNzAsMTYgKzcyLDEyIEBAIC0gKHZvaWQp
ZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9pZClzZXRQcmVmZXJyZWRG
cmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQKLXsKLSAg
ICBtX2Rpc3BsYXlMaW5rLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1l
c1BlclNlY29uZDsKLX0KLQogLSAodm9pZCloYW5kbGVEaXNwbGF5TGluazooQ0FEaXNwbGF5TGlu
ayAqKXNlbmRlcgogewogICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgCisg
ICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKTsKIH0KIAogLSAodm9pZClz
ZXRQYXVzZWQ6KEJPT0wpcGF1c2VkCkBAIC0xMTYsNiArMTE0LDEyIEBAIHZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TOjpzdG9wKCkKICAgICBtX2hhbmRsZXIgPSBuaWw7CiB9CiAKK3ZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKQorewor
ICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRh
dGUuZGlkVXBkYXRlKCk7Cit9CisKIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpzdGFy
dE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpCiB7CiAgICAgaWYgKG1fZGlzcGxheUxpbmtJc0FjdGl2
ZSkKQEAgLTEyOCw3ICsxMzIsMTAgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKIAogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5
TGluaywgc3RyZWFtIDw8ICJEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0YXJ0Tm90aWZpY2F0
aW9uTWVjaGFuaXNtIC0gc3RhcnRpbmcgV2ViRGlzcGxheUxpbmtIYW5kbGVyIik7CiAgICAgW21f
aGFuZGxlciBzZXRQYXVzZWQ6Tk9dOworCisgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBEaXNw
bGF5TGlua0ZyYW1lc1BlclNlY29uZCB9OwogICAgIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSA9IHRy
dWU7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcAppbmRleCBjNzQ1ODAwNjFlYzEzMWY2YTA3Njc5ZTY4Y2ZkN2IxNzY2
NTMwOWQyLi42YmNjZjk3NTYyNmQ1OGJjMDg0ODI5YjRjMDJkYzNjZmU2OWE2ZDczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtNjEsMTggKzYxLDMw
IEBAIHZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdG9wKCkKIHN0YXRpYyBD
VlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGlt
ZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdz
Kiwgdm9pZCogZGF0YSkKIHsKICAgICBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqIG1v
bml0b3IgPSBzdGF0aWNfY2FzdDxMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqPihkYXRh
KTsKLSAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxh
eUxpbmtDYWxsYmFja0ZpcmVkKCk7CiAgICAgcmV0dXJuIGtDVlJldHVyblN1Y2Nlc3M7CiB9CiAK
LXZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRS
ZWZyZXNoKCkKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlu
a0NhbGxiYWNrRmlyZWQoKQogewotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgZGlzcGxheUxpbmtGaXJlZCht
X2N1cnJlbnRVcGRhdGUpOworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKK30KKwor
dm9pZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BhdGNoRGlzcGxheURpZFJl
ZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0ZSkKK3sKKyAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIGRpc3BsYXlVcGRhdGUsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0gewogICAgICAgICBpZiAobV9kaXNwbGF5TGluaykKLSAgICAgICAgICAg
IGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChkaXNw
bGF5VXBkYXRlKTsKICAgICB9KTsKIH0KIAorV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNw
bGF5TGluayhDVkRpc3BsYXlMaW5rUmVmIGRpc3BsYXlMaW5rKQoreworICAgIENWVGltZSByZWZy
ZXNoUGVyaW9kID0gQ1ZEaXNwbGF5TGlua0dldE5vbWluYWxPdXRwdXRWaWRlb1JlZnJlc2hQZXJp
b2QoZGlzcGxheUxpbmspOworICAgIHJldHVybiByb3VuZCgoZG91YmxlKXJlZnJlc2hQZXJpb2Qu
dGltZVNjYWxlIC8gKGRvdWJsZSlyZWZyZXNoUGVyaW9kLnRpbWVWYWx1ZSk7Cit9CisKIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiB7CiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rKSB7CkBAIC04Myw2ICs5NSw4IEBAIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiAgICAgICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1NldE91dHB1dENhbGxiYWNrKG1fZGlz
cGxheUxpbmssIGRpc3BsYXlMaW5rQ2FsbGJhY2ssIHRoaXMpOwogICAgICAgICBpZiAoZXJyb3Ip
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0g
eyAwLCBub21pbmFsRnJhbWVzUGVyU2Vjb25kRnJvbURpc3BsYXlMaW5rKG1fZGlzcGxheUxpbmsp
IH07CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpIHsKQEAgLTkzLDYg
KzEwNyw3IEBAIGJvb2wgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgPSB0cnVlOworICAgICAgICBtX2N1cnJlbnRV
cGRhdGUudXBkYXRlSW5kZXggPSAwOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDhhOGIyODBlNzY3YWI1YzFj
Y2VlYWRmNmFmYWFhY2FiZTgxNDI1MjIuLmQyNmIwMDg0MTE4MTk5MmZjZmQwYzZkZmIxZDE0YzZi
ZjRmZDQxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAg
LTQzLDE3ICs0MywyNSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+TGVnYWN5RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjKCk7CiAKKyAgICBjb25zdCBEaXNwbGF5VXBkYXRlJiBjdXJyZW50
VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VXBkYXRlOyB9CisKKyAgICB2b2lkIGRp
c3BsYXlMaW5rQ2FsbGJhY2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICB2b2lk
IGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlz
cGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYpIGZpbmFsOwogCiAgICAgdm9pZCBz
dG9wKCkgZmluYWw7CiAKICAgICBib29sIHN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmlu
YWw7CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CiAKKyAgICBz
dGF0aWMgRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmRGcm9tRGlzcGxheUxp
bmsoQ1ZEaXNwbGF5TGlua1JlZik7CisKICAgICBDVkRpc3BsYXlMaW5rUmVmIG1fZGlzcGxheUxp
bmsgeyBudWxscHRyIH07CisgICAgCisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7
CiAgICAgYm9vbCBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlz
cGxheVJlZnJlc2hNb25pdG9yV2luLmNwcAppbmRleCAzYTIwYTYzNzZhNDkxMWNkYzdlOTg5ZWY4
MGQ2NWFkNzZiOGQ2MTY1Li5lMGI4N2RjMDBiZjQxNTY1ZWUyZmEyMDg0Mzc3MjgyMmM5Mzc2OGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRGlzcGxheVJlZnJlc2hNb25pdG9yV2luLmNwcApAQCAtMjgsNiArMjgsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhwciBGcmFtZXNQZXJTZWNvbmQgRGVmYXVs
dEZyYW1lc1BlclNlY29uZCA9IDYwOworCiBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yV2lu
PiBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJlc2hNb25pdG9y
V2luKGRpc3BsYXlJRCkpOwpAQCAtMzUsOCArMzcsMTUgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbj4gRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpjcmVhdGUoUGxhdGZvcm1EaXNw
bGEKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4o
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9y
KGRpc3BsYXlJRCkKLSAgICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKQorICAgICwgbV90aW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSgwLCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25k
KQoreworfQorCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcldpbjo6ZGlzcGxheUxpbmtDYWxs
YmFja0ZpcmVkKCkKIHsKKyAgICBkaXNwbGF5TGlua0ZpcmVkKG1fY3VycmVudFVwZGF0ZSk7Cisg
ICAgbV9jdXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOwogfQogCiBib29sIERpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbjo6c3RhcnROb3RpZmljYXRpb25NZWNoYW5pc20oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldp
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbi5oCmluZGV4IGVmZTU3NmUyZjRjNDIwZjg4ZWI2ZWQ4NjVjYWY2ZjhiMTBmYjFi
NjEuLjE2MDkyMGZhNmFkYzg0ZGQ3Y2I5Y2I3NGM4ZTE1NmYxYzZjNGY3MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0
b3JXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luLmgKQEAgLTM5LDggKzM5LDExIEBAIHByaXZhdGU6CiAKICAgICBi
b29sIHN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wTm90
aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CisgICAgCisgICAgdm9pZCBkaXNwbGF5TGlua0Nh
bGxiYWNrRmlyZWQoKTsKIAogICAgIFJ1bkxvb3A6OlRpbWVyPERpc3BsYXlSZWZyZXNoTW9uaXRv
cldpbj4gbV90aW1lcjsKKyAgICBEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcApp
bmRleCA4YzJhNzA4NDAyYzBmMzk5ZTY3NzVmODY0YThhZDIwYzdhOGY3ODgzLi42OWVkNzVkYjgw
MmRiOTY1ODUxYzA1M2MzYWE3OTg0ODRhNTMyNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1v
bml0b3IuY3BwCkBAIC0zNywxMCArMzcsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKy8v
IEZJWE1FOiBVc2UgdGhlIGNvcnJlY3QgZnJhbWUgcmF0ZS4KK2NvbnN0ZXhwciBXZWJDb3JlOjpG
cmFtZXNQZXJTZWNvbmQgRGVmYXVsdEZyYW1lc1BlclNlY29uZCA9IDYwOworCiBUaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvcjo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBDbGllbnQmIGNsaWVudCkKICAgICA6IFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCiAgICAgLCBtX2Rpc3BsYXlS
ZWZyZXNoVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGhyZWFkZWREaXNwbGF5UmVmcmVz
aE1vbml0b3I6OmRpc3BsYXlSZWZyZXNoQ2FsbGJhY2spCiAgICAgLCBtX2NsaWVudCgmY2xpZW50
KQorICAgICwgbV9jdXJyZW50VXBkYXRlKHsgMCwgRGVmYXVsdEZyYW1lc1BlclNlY29uZCB9KQog
ewogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAgICAgbV9kaXNwbGF5UmVmcmVzaFRpbWVyLnNl
dFByaW9yaXR5KFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6RGlzcGxheVJlZnJlc2hNb25pdG9yVGlt
ZXIpOwpAQCAtOTAsOCArOTQsMTAgQEAgdm9pZCBUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRv
cjo6aW52YWxpZGF0ZSgpCiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobG9jaygpKTsK
ICAgICAgICAgd2FzU2NoZWR1bGVkID0gaXNTY2hlZHVsZWQoKTsKICAgICB9Ci0gICAgaWYgKHdh
c1NjaGVkdWxlZCkKLSAgICAgICAgZGlzcGxheURpZFJlZnJlc2goKTsKKyAgICBpZiAod2FzU2No
ZWR1bGVkKSB7CisgICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKG1fY3VycmVudFVwZGF0ZSk7Cisg
ICAgICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKKyAgICB9CiAgICAgbV9jbGllbnQg
PSBudWxscHRyOwogfQogCkBAIC0xMDYsOCArMTEyLDEwIEBAIHZvaWQgVGhyZWFkZWREaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlSZWZyZXNoQ2FsbGJhY2soKQogICAgICAgICAgICAgc2V0
SXNQcmV2aW91c0ZyYW1lRG9uZShmYWxzZSk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZEhhbmRs
ZURpc3BsYXlSZWZyZXNoTm90aWZpY2F0aW9uKQotICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaCgp
OworICAgIGlmIChzaG91bGRIYW5kbGVEaXNwbGF5UmVmcmVzaE5vdGlmaWNhdGlvbikgeworICAg
ICAgICBkaXNwbGF5RGlkUmVmcmVzaChtX2N1cnJlbnRVcGRhdGUpOworICAgICAgICBtX2N1cnJl
bnRVcGRhdGUuZGlkVXBkYXRlKCk7CisgICAgfQogCiAgICAgLy8gUmV0cmlldmUgdGhlIHNjaGVk
dWxlZCBzdGF0dXMgZm9yIHRoaXMgRGlzcGxheVJlZnJlc2hNb25pdG9yLgogICAgIGJvb2wgaGFz
QmVlblJlc2NoZWR1bGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oCmlu
ZGV4IGI0OWE4YjJkYmVmMDQ5YTdlNDQxM2QyZTgyZGU5NTFkMjc3Y2U2MzQuLmRiMjkzZmZmYzRj
MWYzY2Y0YWQzMjBiYTA4MmEwNTc5YTcyYzM1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlz
cGxheVJlZnJlc2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuaApAQCAtNjMsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGxheVJlZnJlc2hD
YWxsYmFjaygpOwogICAgIFJ1bkxvb3A6OlRpbWVyPFRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25p
dG9yPiBtX2Rpc3BsYXlSZWZyZXNoVGltZXI7CiAgICAgQ2xpZW50KiBtX2NsaWVudDsKKyAgICBX
ZWJDb3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAK
aW5kZXggYTQzZGZjZDQ2ZDUxZjQ0NDc4MmFmZDE3N2JiYWI1MWQwMjZhNjhkYS4uM2QyYmM0ZTEy
MzU4OTE0ZTcxNTY2ZmM5YTU2Njk5NmM4NjkxYTMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIHZvaWQgRGlzcGxheUxp
bms6OmFkZE9ic2VydmVyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGlzcGxheUxpbmtP
YnNlcnZlcklECiAgICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZEaXNwbGF5TGlua1N0YXJ0KG1f
ZGlzcGxheUxpbmspOwogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIkNvdWxkIG5vdCBzdGFydCB0aGUgZGlzcGxheSBsaW5rOiAlZCIsIGVycm9yKTsKKworICAg
ICAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIG1fZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNv
bmQgfTsKICAgICB9CiB9CiAKQEAgLTE1MiwxMiArMTU0LDE1IEBAIHZvaWQgRGlzcGxheUxpbms6
Om5vdGlmeU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNoZWQoKQogICAgIG1fZmlyZUNvdW50V2l0
aG91dE9ic2VydmVycyA9IDA7CiAKICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX29ic2Vy
dmVycy5rZXlzKCkpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJl
YW0gPDwgIltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwg
IiBzZW5kaW5nIGZvciBjb25uZWN0aW9uICIgPDwgY29ubmVjdGlvbi0+dW5pcXVlSUQoKSA8PCAi
IG9uIGJhY2tncm91bmQgcXVldWUgIiA8PCBzaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVldWUp
OworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiW1VJIF0g
RGlzcGxheUxpbmsgZm9yIGRpc3BsYXkgIiA8PCBtX2Rpc3BsYXlJRCA8PCAiIChkaXNwbGF5IGZw
cyAiIDw8IG1fZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPDwgIikgdXBkYXRlICIgPDwg
bV9jdXJyZW50VXBkYXRlIDw8ICIgY29ubmVjdGlvbiAiIDw8IGNvbm5lY3Rpb24tPnVuaXF1ZUlE
KCkgPDwgIiBvbiBiYWNrZ3JvdW5kIHF1ZXVlICIgPDwgc2hvdWxkU2VuZElQQ09uQmFja2dyb3Vu
ZFF1ZXVlKTsKKwogICAgICAgICBpZiAoc2hvdWxkU2VuZElQQ09uQmFja2dyb3VuZFF1ZXVlKQot
ICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpE
aXNwbGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlEKSwgMCk7CisgICAgICAgICAgICBjb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpFdmVudERpc3BhdGNoZXI6OkRpc3BsYXlXYXNSZWZyZXNoZWQo
bV9kaXNwbGF5SUQsIG1fY3VycmVudFVwZGF0ZSksIDApOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEaXNwbGF5V2FzUmVm
cmVzaGVkKG1fZGlzcGxheUlEKSwgMCk7CisgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpEaXNwbGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlELCBtX2N1
cnJlbnRVcGRhdGUpLCAwKTsKICAgICB9CisKKyAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRl
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvRGlzcGxheUxpbmsuaAppbmRleCBhYTFhMGI3YjA1ZjQ1MmJhNTNkYzhkNTY3ZmFlNTllMDll
ZTBmNzM3Li41MmMzMTk5ZWY4Y2Q2MGY0MDI4Y2VkNTA4ZThjNzQxYzM5ODE4M2RmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkRpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oIgogI2luY2x1ZGUgPENvcmVWaWRlby9D
VkRpc3BsYXlMaW5rLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BbmltYXRpb25GcmFtZVJhdGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgpAQCAtNjksNiArNzAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4sIFZlY3RvcjxEaXNwbGF5TGlua09ic2VydmVySUQ+PiBtX29ic2VydmVy
czsKICAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKICAgICBXZWJD
b3JlOjpGcmFtZXNQZXJTZWNvbmQgbV9kaXNwbGF5Tm9taW5hbEZyYW1lc1BlclNlY29uZCB7IDAg
fTsKKyAgICBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKICAgICB1bnNp
Z25lZCBtX2ZpcmVDb3VudFdpdGhvdXRPYnNlcnZlcnMgeyAwIH07CiAgICAgc3RhdGljIGJvb2wg
c2hvdWxkU2VuZElQQ09uQmFja2dyb3VuZFF1ZXVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDc3ZDVmOTNj
MzE2MDVkMGNmZGUxN2NlZDhhMmQ3NTViOGY2NWUwY2MuLjg2ZjhmM2Q4MTNiNjQyMWYzZWRhNzcy
ZDFhMWRkMGNhOWU2MTdiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAjaW5jbHVkZSAiV2Vi
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVVwZGF0ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RNb25p
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTI4OCwxMyArMjg5LDEzIEBA
IHZvaWQgRXZlbnREaXNwYXRjaGVyOjpub3RpZnlTY3JvbGxpbmdUcmVlc0Rpc3BsYXlXYXNSZWZy
ZXNoZWQoUGxhdGZvcm1EaXNwbGF5SUQKIH0KIAogI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKLXZv
aWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsYXlJRCkKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBs
YXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVw
ZGF0ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBub3RpZnlTY3Jv
bGxpbmdUcmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUlEKTsKIAotICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbZGlzcGxheUlEXSgpIHsKLSAgICAgICAgRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJ
RCk7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtkaXNwbGF5SUQsIGRpc3BsYXlVcGRh
dGVdKCkgeworICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkuZGlzcGxheVdhc1VwZGF0ZWQoZGlzcGxheUlELCBkaXNwbGF5VXBkYXRlKTsKICAgICB9
KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuaAppbmRleCA2NzFiMjhkZjNlNTEwZGVhMzUwMWQ4MDI4Yjk3ODcxODc2
YTY0YTBkLi5hMTMwZDQ0MzVjN2M5ZWMwOTc3ZTlmMTgwYWQ4MTYyZTMyMWJlZWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApA
QCAtNDMsNiArNDMsNyBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBE
aXNwbGF5VXBkYXRlOwogY2xhc3MgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOwogdXNpbmcgUGxhdGZv
cm1EaXNwbGF5SUQgPSB1aW50MzJfdDsKIH0KQEAgLTEwNyw3ICsxMDgsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVk
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKKyAgICB2b2lkIGRpc3BsYXlXYXNSZWZyZXNo
ZWQoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQsIGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRh
dGUmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
bWVzc2FnZXMuaW4KaW5kZXggY2Y0Zjc2NjY2Y2M1MzQzMWU5OWJlZGU1ZTgyOGE4YWE4N2EwM2Nj
OC4uMGI1ZDI5MTJjZGE5NzFmM2UxOTE1YjhlMmFmMGM1ZjUwMDk4MTAzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5tZXNzYWdlcy5pbgpAQCAtMzAsNiArMzAsNiBAQCBtZXNzYWdlcyAtPiBFdmVudERpc3BhdGNo
ZXIgewogICAgIEdlc3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YktpdDo6V2ViR2VzdHVyZUV2ZW50IGV2ZW50KQogI2VuZGlmCiAjaWYgSEFWRShDVkRJU1BMQVlM
SU5LKQotICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlEKQorICAgIERp
c3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlELCBzdHJ1Y3QgV2ViQ29yZTo6RGlz
cGxheVVwZGF0ZSB1cGRhdGUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5
UmVmcmVzaE1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaAppbmRleCA2
ODU1NTM4MThmNGJiZmRlYzNkYzI1OTM5MzEzNTdmM2RkOTlmYWQ4Li5hNGVhZTUyOTk3ZTNiNTI3
MTQxODRlZWI4MzU3MDUyMjI5MTkzMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJl
c2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oCkBAIC01Myw2
ICs1Myw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkg
ZmluYWwgeyB9CiAKICAgICBXZWFrUHRyPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPiBtX2Ry
YXdpbmdBcmVhOworCisgICAgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIG1fcHJlZmVycmVkRnJh
bWVzUGVyU2Vjb25kOworICAgIFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgbV9jdXJyZW50VXBkYXRl
OwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlz
cGxheVJlZnJlc2hNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpp
bmRleCA3NTkyZjU2MTAzZjIwYmM5ZmJlNzFhZjViNGQ0NmJhMmNjMzM3OTA3Li5kZDc5OWRjYTRh
ZTM5ZWM0ZDc5MDY5MTAyNjVhZGQ3Y2JiOWNjZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxh
eVJlZnJlc2hNb25pdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0K
QEAgLTMyLDkgKzMyLDEzIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCitjb25zdGV4cHIgRnJhbWVzUGVyU2Vjb25kIERlZmF1bHRQcmVmZXJyZWRGcmFt
ZXNQZXJTZWNvbmQgPSA2MDsKKwogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9y
OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQg
ZGlzcGxheUlELCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAgICAg
OiBEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQogICAgICwgbV9kcmF3aW5nQXJlYSht
YWtlV2Vha1B0cihkcmF3aW5nQXJlYSkpCisgICAgLCBtX3ByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZChEZWZhdWx0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQorICAgICwgbV9jdXJyZW50VXBkYXRl
KHsgMCwgbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQgfSkKIHsKIH0KIApAQCAtNDYsNiArNTAs
MTIgQEAgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjp+UmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yKCkKIAogdm9pZCBSZW1vdGVMYXllclRyZWVEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZChGcmFtZXNQZXJTZWNv
bmQgcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQogeworICAgIGlmIChwcmVmZXJyZWRGcmFtZXNQ
ZXJTZWNvbmQgPT0gbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gcHJlZmVycmVkRnJhbWVzUGVyU2Vj
b25kOworICAgIG1fY3VycmVudFVwZGF0ZSA9IHsgMCwgbV9wcmVmZXJyZWRGcmFtZXNQZXJTZWNv
bmQgfTsKKwogICAgIGlmIChtX2RyYXdpbmdBcmVhKQogICAgICAgICBtX2RyYXdpbmdBcmVhLT5z
ZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQocHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKTsKIH0K
QEAgLTcyLDcgKzgyLDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpZFVwZGF0ZUxheWVycygpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldElzUHJldmlv
dXNGcmFtZURvbmUoZmFsc2UpOwotICAgIGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgZGlzcGxh
eURpZFJlZnJlc2gobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBk
YXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjp1
cGRhdGVEcmF3aW5nQXJlYShSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEp
CkBAIC04MCw0ICs5MSw0IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yOjp1cGRhdGVEcmF3aW5nQXJlYShSZW1vdGVMYXllclRyZWVEcmF3CiAgICAgbV9kcmF3aW5n
QXJlYSA9IG1ha2VXZWFrUHRyKGRyYXdpbmdBcmVhKTsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCmluZGV4IGY0YTI0N2Y2ZTc1
NDNlODVjZTQwY2E3MWM0NjgzYzI0YWQxNjFkYTkuLjBiMWEzYjc5M2FjMWVhOWIzYjNmMzE4Yzk5
NTI5MWZkNjE5Yzk2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCkBAIC01
NiwxMiArNTYsMTMgQEAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjp+RGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjKCkKICAgICBBU1NFUlQoIW1fZGlzcGxheUxpbmtJc0FjdGl2ZSk7CiB9CiAKLXZv
aWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCkK
K3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNo
KGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CisgICAgLy8gRklYTUU6IFRo
aXMgd2lsbCBwZXJ0dXJiIGRpc3BsYXlVcGRhdGUuCiAgICAgaWYgKCFtX2ZpcnN0Q2FsbGJhY2tJ
bkN1cnJlbnRSdW5sb29wKQogICAgICAgICByZXR1cm47CiAKLSAgICBEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKTsKKyAgICBEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goZGlzcGxheVVwZGF0ZSk7CiB9CiAKIGJv
b2wgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKaW5kZXggMmU2NWM0YzAyOGQ3MjQwZmZlMjMx
ZDUyMTFlMTk4ZjVjYmZkM2NjMS4uOTYwNGI4OTAzMDNiMGFhY2VkZTVhMDZmZWM0MjdhOWMyMWZj
MDc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaApAQCAtNDUsNyArNDUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhX
ZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGlzcGxheURp
ZFJlZnJlc2goKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goY29u
c3QgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBzdGFydE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcE5vdGlmaWNhdGlvbk1lY2hh
bmlzbSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IDk2ODQwODA0NDFlMDU3YzQ3M2NkMmQyNzJkOGIwOGIzMjFmNDNlNzUuLmIwNjRmMjI3Y2Q1MmI3
NTBkNmMzYWU0YzJlNGQyMDZkYjY3ZjcwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTE4OTUsMTEgKzE4OTUsMTEgQEAgYm9vbCBXZWJQcm9jZXNzOjphcmVB
bGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB9CiAKICNpZiBIQVZFKENWRElTUExBWUxJTksp
Ci12b2lkIFdlYlByb2Nlc3M6OmRpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlE
KQordm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJ
RCwgY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0ZSkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgIG1fZXZlbnREaXNwYXRjaGVyLT5ub3RpZnlTY3JvbGxpbmdU
cmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUlEKTsKLSAgICBEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1VwZGF0ZWQoZGlzcGxheUlE
KTsKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlz
cGxheVdhc1VwZGF0ZWQoZGlzcGxheUlELCBkaXNwbGF5VXBkYXRlKTsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkNjMxZjczY2Y0MjIxM2FiOGU5
YTcwNTI5MjU3MjNlOTZjZDVkYTA4Li42NDZlNWVkMDg5NzE2MTNhZmI0MTU0ODA3N2ZlMzE0OGJk
MThhZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTk0LDYgKzk0
LDcgQEAgY2xhc3MgVXNlckdlc3R1cmVUb2tlbjsKIGVudW0gY2xhc3MgRXZlbnRNYWtlc0dhbWVw
YWRzVmlzaWJsZSA6IGJvb2w7CiAKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwor
c3RydWN0IERpc3BsYXlVcGRhdGU7CiBzdHJ1Y3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyOwogc3Ry
dWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwogc3RydWN0IE1vY2tNZWRpYURldmljZTsKQEAg
LTUwNyw3ICs1MDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBIQVZFKENWRElTUExBWUxJ
TkspCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCk7Cisg
ICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgY29uc3QgV2Vi
Q29yZTo6RGlzcGxheVVwZGF0ZSYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDEy
MmU1NDNiMmJhODdiODBjNGVkNjA1YjBlNDIyM2E0ZDE3YTEwZDYuLmE5OTJhNDQ2MzRjNGUxN2Zl
ZmNkY2IzOTQ2MDZhY2ZkMTAzNDQwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xODgsNyArMTg4LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICNlbmRpZgogCiAjaWYg
SEFWRShDVkRJU1BMQVlMSU5LKQotICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlz
cGxheUlEKQorICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlELCBzdHJ1
Y3QgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSB1cGRhdGUpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykK
</data>
<flag name="commit-queue"
          id="444178"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424483</attachid>
            <date>2021-03-27 23:38:23 -0700</date>
            <delta_ts>2021-03-28 08:53:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223847-20210327233822.patch</filename>
            <type>text/plain</type>
            <size>53020</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uMGRhZDQ2YzU4NTFlNjg0MGViZmYyMDZhNGQ1ZWQx
YmMyODc0Y2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAzLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIERpc3Bs
YXlVcGRhdGUgdGhyb3VnaCB0aGUgZGlzcGxheSByZWZyZXNoIG1vbml0b3JzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdXR1cmUgd29yayB3aWxsIGFs
bG93IERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudHMgdG8gcmVxdWVzdCBkaWZmZXJlbnQgZnJh
bWUgcmF0ZXMsIHdoaWNoCisgICAgICAgIGFyZSB3aG9sZSBmcmFjdGlvbnMgb2YgdGhlIGRpc3Bs
YXkncyBub21pbmFsIHJlZnJlc2ggcmF0ZS4gVGhlc2UgdmFyaW91cyBmcmFtZSByYXRlIHJlcXVl
c3RzCisgICAgICAgIGZsb3cgdXAgdGhyb3VnaCB0aGUgRGlzcGxheVJlZnJlc2hNb25pdG9ycywg
YW5kIGluIFdlYktpdDIsIHVwIHRocm91Z2ggSVBDIHRvIHRoZQorICAgICAgICBwZXItZGlzcGxh
eSBEaXNwbGF5TGluayB3aGljaCBtYXkgZXZlbiBzZXJ2aWNlIG11bHRpcGxlIHByb2Nlc3Nlcy4K
KworICAgICAgICBGb3IgcG93ZXIgcmVhc29ucywgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGRp
c3BsYXkgcmVmcmVzaCBub3RpZmljYXRpb25zIGRvd24gdGhlIGNoYWluIGF0CisgICAgICAgIHRo
ZSBoaWdoZXN0IHBvc3NpYmxlIGZyZXF1ZW5jeTsgYXQgdmFyaW91cyBzdGFnZXMgb2YgcHJvcGFn
YXRpb24gdGhlIHJhdGUgbWlnaHQgYmUgaGFsdmVkIGlmCisgICAgICAgIHRoYXQncyB0aGF0J3Mg
bmVjZXNzYXJ5IGZvciBkb3duc3RyZWFtIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICBUbyBt
YWtlIHRoaXMgZnJlcXVlbmN5IHNwbGl0dGluZyBsb2dpYyBzaW1wbGUsIHRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBEaXNwbGF5VXBkYXRlLCB3aGljaAorICAgICAgICByZXByZXNlbnRzIHRoZSBmcmFj
dGlvbmFsIHNlY29uZCBmb3IgdGhlIGN1cnJlbnQgdXBkYXRlLiBUaGUgbnVtZXJhdG9yIGlzIHRo
ZSBmcmFtZSBpbmRleCwKKyAgICAgICAgYW5kIHRoZSBkZW5vbWluYXRvciBpcyB0aGUgbm9taW5h
bCBmcmFtZSByYXRlLiBGcmFtZSBpbmRleCB3cmFwcyB0byB6ZXJvIGV2ZXJ5IHNlY29uZC4KKyAg
ICAgICAgCisgICAgICAgIEZvciBleGFtcGxlLCBhIDYwSHogZGlzcGxheSB3aWxsIGdlbmVyYXRl
IGRpc3BsYXkgcmVmcmVzaGVzIHdpdGggRGlzcGxheVVwZGF0ZXMgd2hpY2gKKyAgICAgICAgc2Vx
dWVudGlhbGx5IHdpbGwgYmUgeyAwLCA2MCB9LCB7IDEsIDYwIH0sIHsgMiwgNjAgfSAuLi4geyA1
OSwgNjAgfSwgeyAwLCA2MCB9LiBUaGUKKyAgICAgICAgemVyb3RoIGZyYW1lIGlzIGF0IHNvbWUg
YXJiaXRyYXJ5IHRpbWUgYW5kIG5vdCBhbGlnbmVkIHdpdGggd2FsbGNsb2NrIHRpbWUuCisgICAg
ICAgIAorICAgICAgICBUaHVzIGEgY2xpZW50IHdpdGggYSAzMEh6IHVwZGF0ZSByZXF1aXJlbWVu
dCBjYW4gc2ltcGx5IGlnbm9yZSBldmVyeSBvZGQtbnVtYmVyZWQgZnJhbWUsIGFuZAorICAgICAg
ICBhIGNsaWVudCBkb3duc3RyZWFtIGZyb20gaXQgd2l0aCBhIDE1SHogcmVxdWlyZW1lbnQsIHdo
aWNoIG9ubHkgcmVjZWl2ZXMgdGhvc2UgZXZlbi1udW1iZXJlZAorICAgICAgICBmcmFtZXMsIHN0
aWxsIGhhcyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB3aGljaCBmcmFtZXMgdG8gaWdu
b3JlLgorICAgICAgICAKKyAgICAgICAgQ2xhc3NlcyB3aGljaCBhcmUgc291cmNlcyBvZiBjYWxs
YmFja3MgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvciBuZWVkIHRvIGdlbmVyYXRlIHRoZXNlCisg
ICAgICAgIERpc3BsYXlVcGRhdGVzOyB0aGF0IGluY2x1ZGVzIHRoZSB2YXJpb3VzIHBsYXRmb3Jt
IERpc3BsYXlSZWZyZXNoTW9uaXRvciBzdWJjbGFzc2VzIGluCisgICAgICAgIFdlYkNvcmUsIGFu
ZCB0aG9zZSBpbiBXZWJLaXQgdGhhdCBsaXZlIGluIHRoZSBVSSBwcm9jZXNzIGFuZCB0cmlnZ2Vy
IHVwZGF0ZXMgb3ZlciBJUEMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVS
YXRlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGF0Y2hE
aXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlXYXNVcGRhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaC4KKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlVcGRhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheVVwZGF0ZTo6ZGlkVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlVcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5VXBkYXRlOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuY3BwOiBBc3N1bWUgYSA2MGZwcyByZWZyZXNoIHJhdGUgYnV0IHRoaXMgY29kZQorICAg
ICAgICBzaG91bGQgcHJvYmFibHkgdXNlIGdka19mcmFtZV9jbG9ja19nZXRfcmVmcmVzaF9pbmZv
KCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHJhdGUuCisgICAgICAgIChXZWJDb3JlOjpvbkZyYW1lQ2xv
Y2tVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpk
aXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tOgor
ICAgICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaW5pdFdpdGhNb25pdG9yOl0pOgorICAg
ICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaGFuZGxlRGlzcGxheUxpbms6XSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKC1bV2ViRGlzcGxheUxpbmtIYW5k
bGVyIHNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0NhbGxiYWNrRmly
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNwbGF5TGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmN1cnJlbnRVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
V2luOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaDoKKwogMjAyMS0wMy0yNyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBEaXNwbGF5
UmVmcmVzaE1vbml0b3IgdG8gYmUgbW9yZSBsb25nLWxpdmVkIG9iamVjdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmI4Mjk0NzgzNTk3NzcyMzRjOGU5OTNmNzNiMzlmZDZlYjcyNjc0Zi4uMmI0YTY1ZDNhMTBhMWFi
ZjFkYjM5YmM4YzMzZDcxMWY5ZDZiN2U1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAy
MS0wMy0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBQbHVtYiBEaXNwbGF5VXBkYXRlIHRocm91Z2ggdGhlIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnV0dXJl
IHdvcmsgd2lsbCBhbGxvdyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnRzIHRvIHJlcXVlc3Qg
ZGlmZmVyZW50IGZyYW1lIHJhdGVzLCB3aGljaAorICAgICAgICBhcmUgd2hvbGUgZnJhY3Rpb25z
IG9mIHRoZSBkaXNwbGF5J3Mgbm9taW5hbCByZWZyZXNoIHJhdGUuIFRoZXNlIHZhcmlvdXMgZnJh
bWUgcmF0ZSByZXF1ZXN0cworICAgICAgICBmbG93IHVwIHRocm91Z2ggdGhlIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcnMsIGFuZCBpbiBXZWJLaXQyLCB1cCB0aHJvdWdoIElQQyB0byB0aGUKKyAgICAg
ICAgcGVyLWRpc3BsYXkgRGlzcGxheUxpbmsgd2hpY2ggbWF5IGV2ZW4gc2VydmljZSBtdWx0aXBs
ZSBwcm9jZXNzZXMuCisKKyAgICAgICAgRm9yIHBvd2VyIHJlYXNvbnMsIHdlIGRvbid0IHdhbnQg
dG8gdHJpZ2dlciBkaXNwbGF5IHJlZnJlc2ggbm90aWZpY2F0aW9ucyBkb3duIHRoZSBjaGFpbiBh
dAorICAgICAgICB0aGUgaGlnaGVzdCBwb3NzaWJsZSBmcmVxdWVuY3k7IGF0IHZhcmlvdXMgc3Rh
Z2VzIG9mIHByb3BhZ2F0aW9uIHRoZSByYXRlIG1pZ2h0IGJlIGhhbHZlZCBpZgorICAgICAgICB0
aGF0J3MgdGhhdCdzIG5lY2Vzc2FyeSBmb3IgZG93bnN0cmVhbSBjbGllbnRzLgorICAgICAgICAK
KyAgICAgICAgVG8gbWFrZSB0aGlzIGZyZXF1ZW5jeSBzcGxpdHRpbmcgbG9naWMgc2ltcGxlLCB0
aGlzIHBhdGNoIGludHJvZHVjZXMgRGlzcGxheVVwZGF0ZSwgd2hpY2gKKyAgICAgICAgcmVwcmVz
ZW50cyB0aGUgZnJhY3Rpb25hbCBzZWNvbmQgZm9yIHRoZSBjdXJyZW50IHVwZGF0ZS4gVGhlIG51
bWVyYXRvciBpcyB0aGUgZnJhbWUgaW5kZXgsCisgICAgICAgIGFuZCB0aGUgZGVub21pbmF0b3Ig
aXMgdGhlIG5vbWluYWwgZnJhbWUgcmF0ZS4gRnJhbWUgaW5kZXggd3JhcHMgdG8gemVybyBldmVy
eSBzZWNvbmQuCisgICAgICAgIAorICAgICAgICBGb3IgZXhhbXBsZSwgYSA2MEh6IGRpc3BsYXkg
d2lsbCBnZW5lcmF0ZSBkaXNwbGF5IHJlZnJlc2hlcyB3aXRoIERpc3BsYXlVcGRhdGVzIHdoaWNo
CisgICAgICAgIHNlcXVlbnRpYWxseSB3aWxsIGJlIHsgMCwgNjAgfSwgeyAxLCA2MCB9LCB7IDIs
IDYwIH0gLi4uIHsgNTksIDYwIH0sIHsgMCwgNjAgfS4gVGhlCisgICAgICAgIHplcm90aCBmcmFt
ZSBpcyBhdCBzb21lIGFyYml0cmFyeSB0aW1lIGFuZCBub3QgYWxpZ25lZCB3aXRoIHdhbGxjbG9j
ayB0aW1lLgorICAgICAgICAKKyAgICAgICAgVGh1cyBhIGNsaWVudCB3aXRoIGEgMzBIeiB1cGRh
dGUgcmVxdWlyZW1lbnQgY2FuIHNpbXBseSBpZ25vcmUgZXZlcnkgb2RkLW51bWJlcmVkIGZyYW1l
LCBhbmQKKyAgICAgICAgYSBjbGllbnQgZG93bnN0cmVhbSBmcm9tIGl0IHdpdGggYSAxNUh6IHJl
cXVpcmVtZW50LCB3aGljaCBvbmx5IHJlY2VpdmVzIHRob3NlIGV2ZW4tbnVtYmVyZWQKKyAgICAg
ICAgZnJhbWVzLCBzdGlsbCBoYXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgd2hpY2gg
ZnJhbWVzIHRvIGlnbm9yZS4KKyAgICAgICAgCisgICAgICAgIENsYXNzZXMgd2hpY2ggYXJlIHNv
dXJjZXMgb2YgY2FsbGJhY2tzIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3IgbmVlZCB0byBnZW5l
cmF0ZSB0aGVzZQorICAgICAgICBEaXNwbGF5VXBkYXRlczsgdGhhdCBpbmNsdWRlcyB0aGUgdmFy
aW91cyBwbGF0Zm9ybSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igc3ViY2xhc3NlcyBpbgorICAgICAg
ICBXZWJDb3JlLCBhbmQgdGhvc2UgaW4gV2ViS2l0IHRoYXQgbGl2ZSBpbiB0aGUgVUkgcHJvY2Vz
cyBhbmQgdHJpZ2dlciB1cGRhdGVzIG92ZXIgSVBDLgorCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheVJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5r
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpub3RpZnlPYnNl
cnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlkVXBkYXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1lc1Bl
clNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ0Yjk3MDgyNGQ1ZGM4NWFj
YzNkOTkxMjQ5ZGE2MTM5NWQzMGEwNTAuLjgyOTAyOWJlOTA3NTI2MTBkNDk4MzI5NTc4YTE5OTUw
YzBjZWVjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE4OSw2ICsxMTg5LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdExpbmUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4
Li5hYmVmMzcyMTUwODRlMjk5YmJkOTMyZmViZGFiMWM0N2ZjNDNlYWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTk0Myw2ICsxOTQzLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFn
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5VXBkYXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRMaW5lLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9p
bnQzRC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NTAwNjQ5ODU0M2NhMTlmN2E3ZWEwZGQwMWNmNDA0OGJiNzM3OTUxLi45
OTU3ZGFhM2U0MTU2ZGViNjQ4OGUxMTg1ZGEyNTM1MDc2MmI2YjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDUsNiArMzQ1
LDcgQEAKIAkJMEZCNjI1MkYxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI2MjUyRDE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI4ODkwRjE2N0QzMDE2MDAxMENEQTUg
LyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQkI1RkJEMjYwOTVBOUMwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQkI1RkNCMjYwRTlCNDQwMDU0NTcy
QyAvKiBEaXNwbGF5VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEZDNEIwMDYyMkI5QTAyRDAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDNEIwMDQyMkI5QTAyQzAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQ0YzMzJGMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRjMzMkIw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZEMzA4MEYxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRl
ckZyYW1lQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZEMzA4MEQxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRlckZyYW1lQmFzZS5oICovOyB9OwpA
QCAtNjIwNSw2ICs2MjA2LDggQEAKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkJCNUZCRDI2MDk1QTlD
MDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGQkI1RkM5MjYwRTlCNDMwMDU0NTcyQyAvKiBEaXNwbGF5VXBkYXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlVcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRkJCNUZDQjI2MEU5QjQ0MDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaXNwbGF5VXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGQkZDRTI0MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQkZDRTI2MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkMwNTE2ODIxOUI1RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc4MCw2
ICsyNjc4Myw4IEBACiAJCQkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkuaCAqLywKIAkJCQkyRDI5RUNDMzE5MkVDQzgzMDA5ODRCNzggLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8sCiAJCQkJMkQyOUVDQzQxOTJFQ0M4
MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAqLywKKwkJCQkwRkJC
NUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5jcHAgKi8sCisJCQkJMEZCQjVG
Q0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCAqLywKIAkJCQk2RTY3RDJBODEy
ODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uc0dMLmggKi8sCiAJCQkJMkU4ODhDQTkyNUY2QTQx
MTAwNTc5MTRBIC8qIEZsb2F0TGluZS5jcHAgKi8sCiAJCQkJMkU4ODhDQTgyNUY2QTQxMTAwNTc5
MTRBIC8qIEZsb2F0TGluZS5oICovLApAQCAtMzIxMTksNiArMzIxMjQsNyBAQAogCQkJCTBGQkI1
RkJFMjYwOTkxRDIwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDI5RUNDQTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJlZnJl
c2hNb25pdG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNzkwRjQzMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQzMTYwOTExMkIwMjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzA0MDI4MzI0OUE3QTYyMDBBOTBEOEQgLyogRGlzdGFuY2VNb2RlbFR5
cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBiMjdmZDM2MDEyNDA5OTYzNTUwNGY1MjcxODgwNjU4N2MzODVhNTFjLi42ZWVlZDFmNDIw
MmZiOTIyMDIyNWNjNGE3MzRkZWJmNjdhMDY4MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBk
aXNwbGF5TGlua0ZpcmVkKGNvbnN0IERpc3BsYXlVcGRhdGUmKSBmaW5hbCB7IH0KICAgICBib29s
IHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZv
aWQgc3RvcCgpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcAppbmRleCBkZTg2NWJkMWNjMDIwNDdk
OTBiZWNjMDIwYmVlYmE3ODgyMDhmMzAxLi41YzJjNDA4OWM1OGZiOWIyY2U4NGMwOTM2MzNmZTAy
ZGM4NmFmMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
bmltYXRpb25GcmFtZVJhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCmlu
ZGV4IDFiYWY4N2VkNjUyMzk1ZjYzMDU3OWJhN2FmZTkwMmU4MDBiOWI2YmIuLmI0MWJjNGU5OWQy
NzkzNTM0MjE0N2JkODg5YzRjMDE5YmZlY2EzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCkBAIC0yNiw4ICsyNiwx
MiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVh
bTsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw2ICs1OCw2IEBAIFdFQkNPUkVf
RVhQT1JUIEZyYW1lc1BlclNlY29uZCBmcmFtZXNQZXJTZWNvbmROZWFyZXN0RnVsbFNwZWVkKEZy
YW1lc1BlclNlY29uZCk7CiBXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50
ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiwgT3B0aW9uYWw8RnJhbWVz
UGVyU2Vjb25kPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKIFdFQkNPUkVfRVhQT1JUIEZyYW1l
c1BlclNlY29uZCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmRGcm9tSW50ZXJ2YWwoU2Vjb25kcyk7
CiAKLVdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNv
bnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiYpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IE9wdGlvblNldDxU
aHJvdHRsaW5nUmVhc29uPiYpOwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcAppbmRleCBiOGVlMmM5OWJjYzcwYTc5MTFkOTgwYTBhYmE0YzU0Nzk3MGViN2I3
Li44M2ZmM2QzNjEzMzE1Mjc2ZjYyOWRiNDFlNTQyMDdiN2E0YmI4M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
ZmlyZWRBbmRSZWFjaGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKQogICAgIHJldHVybiBtX3Vu
c2NoZWR1bGVkRmlyZUNvdW50ID4gbV9tYXhVbnNjaGVkdWxlZEZpcmVDb3VudDsKIH0KIAotdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoKQordm9pZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlz
cGxheVVwZGF0ZSkKIHsKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9s
b2NrKTsKQEAgLTE0NiwxOSArMTQ2LDIyIEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpk
aXNwbGF5TGlua0ZpcmVkKCkKICAgICAgICAgc2V0SXNTY2hlZHVsZWQoZmFsc2UpOwogICAgICAg
ICBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKICAgICB9Ci0gICAgZGlzcGF0Y2hEaXNw
bGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goZGlzcGxheVVw
ZGF0ZSk7CiB9CiAKLXZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3Bs
YXlEaWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6ZGlzcGxheURpZFJlZnJlc2goKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRp
c3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIFVOVVNFRF9QQVJBTShkaXNwbGF5VXBk
YXRlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaCBmb3IgZGlzcGxheSAiIDw8IGRpc3Bs
YXlJRCgpIDw8ICIgdXBkYXRlICIgPDwgZGlzcGxheVVwZGF0ZSk7CisKICAgICAvLyBUaGUgY2Fs
bCBiYWNrIGNhbiBjYXVzZSBhbGwgb3VyIGNsaWVudHMgdG8gYmUgdW5yZWdpc3RlcmVkLCBzbyB3
ZSBuZWVkIHRvIHByb3RlY3QKICAgICAvLyBhZ2FpbnN0IGRlbGV0aW9uIHVudGlsIHRoZSBlbmQg
b2YgdGhlIG1ldGhvZC4KICAgICBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKaW5kZXggNWU2NTZkNzAyYmQyZDNhYzBhZjAzN2M1
YjJlZmViNWYwMGFkOGQzMi4uMjVhMTNmOTJlNDk0Y2RjZjMzODc2YTk5YTUzYzM3OGU4MTM0Mjc2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQW5pbWF0aW9uRnJhbWVSYXRlLmgiCisjaW5jbHVkZSAiRGlzcGxheVVwZGF0ZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNjEsMTIgKzYyLDEyIEBAIHB1YmxpYzoKICAgICBQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsg
fQogCiAgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURlZmF1
bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYp
OwogCiAgICAgTG9jayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogICAgIHZvaWQgc2V0TWF4
VW5zY2hlZHVsZWRGaXJlQ291bnQodW5zaWduZWQgY291bnQpIHsgbV9tYXhVbnNjaGVkdWxlZEZp
cmVDb3VudCA9IGNvdW50OyB9CkBAIC04MSw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGlzUHJldmlvdXNGcmFtZURvbmUoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzRnJhbWVEb25l
OyB9CiAgICAgdm9pZCBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGJvb2wgZG9uZSkgeyBtX3ByZXZp
b3VzRnJhbWVEb25lID0gZG9uZTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwbGF5
RGlkUmVmcmVzaCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2go
Y29uc3QgRGlzcGxheVVwZGF0ZSYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgZmlyZWRBbmRSZWFj
aGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5jcHAKaW5kZXggMmMzOTdiOTk4ZmJmMWU2NWZlOWJkMWYxMmQ4MzMzZWY3YmNiZDRlYi4uZDk1
ZWNhNzRjMjBjYTA2Y2VhYWRiNjFhNzU3NDZjZDE0M2NkZTA3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlci5jcHAKQEAgLTEwOCwxMSArMTA4LDExIEBAIHZvaWQgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFuYWdlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsCiAgICAgICAgIHNjaGVkdWxlQW5pbWF0aW9uKGNsaWVudCk7CiB9CiAKLXZvaWQgRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlEKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpkaXNw
bGF5V2FzVXBkYXRlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlV
cGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgYXV0byogbW9uaXRvciA9IG1vbml0b3JGb3JE
aXNwbGF5SUQoZGlzcGxheUlEKTsKICAgICBpZiAobW9uaXRvcikKLSAgICAgICAgbW9uaXRvci0+
ZGlzcGxheUxpbmtGaXJlZCgpOworICAgICAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKGRp
c3BsYXlVcGRhdGUpOwogfQogCiBzaXplX3QgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6
ZmluZE1vbml0b3JGb3JEaXNwbGF5SUQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCmluZGV4IDBhZTBmYTA5ZmIwNjZlZjllMDc0
ODZiZDQ3Mzc5ZWZhMjY0ODRmMTAuLmVlODkxMjkwMzQyNTM3NTFkZGU3MmI2YWFlMmQ0NWU2M2E3
ZWNhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgKQEAgLTM0LDYgKzM0LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRGlzcGxheVVwZGF0ZTsKKwogY2xhc3Mg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlciB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI+OwogICAgIGZyaWVuZCBjbGFzcyBE
aXNwbGF5UmVmcmVzaE1vbml0b3I7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNjaGVkdWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCYpOwogICAgIHZv
aWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheVdhc1Vw
ZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxh
eVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmKTsKIAog
cHJpdmF0ZToKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5VXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZGZkMjM0ZGM4OTA2NGViNTQ4MjM1ZWJjZmRkNjgwN2NmYzViYzNhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVVwZGF0ZS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3Bs
YXlVcGRhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEaXNwbGF5VXBkYXRlJiB1cGRhdGUpCit7CisgICAgdHMgPDwgdXBkYXRlLnVwZGF0ZUlu
ZGV4IDw8ICIvIiA8PCB1cGRhdGUudXBkYXRlc1BlclNlY29uZDsKKyAgICByZXR1cm4gdHM7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ1ZWQ2ODBhN2IxNTQ0ZWEy
NTE1MzM4ZDMzMGZmM2Q1OWEzNDgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworLy8gVXNlZCB0byByZXByZXNlbnQgYSBnaXZlbiB1cGRhdGUuIEFuIHZhbHVl
IG9mIHsgMywgNjAgfSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIHRoZSB0aGlyZCB1cGRhdGUgaW4g
YSAxLXNlY29uZCBpbnRlcnZhbAorLy8gb24gYSA2MGZwcyBjYWRlbmNlLiB1cGRhdGVJbmRleCB3
aWxsIHJlc2V0IHRvIHplcm8gZXZlcnkgc2Vjb25kLCBzbyB7IDU5LCA2MCB9IGlzIGZvbGxvd2Vk
IGJ5IHsgMCwgNjAgfS4KK3N0cnVjdCBEaXNwbGF5VXBkYXRlIHsKKyAgICB1bnNpZ25lZCB1cGRh
dGVJbmRleCB7IDAgfTsKKyAgICBGcmFtZXNQZXJTZWNvbmQgdXBkYXRlc1BlclNlY29uZCB7IDAg
fTsKKyAgICAKKyAgICB2b2lkIGRpZFVwZGF0ZSgpCisgICAgeworICAgICAgICB1cGRhdGVJbmRl
eCA9ICh1cGRhdGVJbmRleCArIDEpICUgdXBkYXRlc1BlclNlY29uZDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPERpc3BsYXlVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEaXNw
bGF5VXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHVwZGF0ZUluZGV4OworICAgIGVuY29kZXIgPDwgdXBkYXRlc1BlclNlY29uZDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPERpc3BsYXlVcGRhdGU+IERpc3BsYXlV
cGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVk
PiB1cGRhdGVJbmRleDsKKyAgICBkZWNvZGVyID4+IHVwZGF0ZUluZGV4OworICAgIGlmICghdXBk
YXRlSW5kZXgpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxG
cmFtZXNQZXJTZWNvbmQ+IHVwZGF0ZXNQZXJTZWNvbmQ7CisgICAgZGVjb2RlciA+PiB1cGRhdGVz
UGVyU2Vjb25kOworICAgIGlmICghdXBkYXRlc1BlclNlY29uZCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqdXBkYXRlSW5kZXgsICp1cGRhdGVzUGVyU2Vj
b25kIH19OworfQorCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRGlzcGxheVVwZGF0ZSYpOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDhmNjkwOWNk
MGQzZjRmMWE4ODEwZWZhZWQzNWI1NDFiOGE4YTkzMzMuLmE1N2VhMGQxYWNjNDE3ZWUzMGJjNjcy
N2RmOGE1MTU1YTQ3ZDMwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCkBA
IC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3RleHByIEZyYW1l
c1BlclNlY29uZCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIERpc3BsYXlSZWZyZXNo
TW9uaXRvckd0azo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKICAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCiB7CkBAIC00
NSw3ICs0NywxMyBAQCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6On5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKQogCiBzdGF0aWMgdm9pZCBvbkZyYW1lQ2xvY2tVcGRhdGUoR2RrRnJhbWVDbG9j
ayosIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0ayogbW9uaXRvcikKIHsKLSAgICBtb25pdG9yLT5k
aXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVk
KCk7Cit9CisKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpkaXNwbGF5TGlua0NhbGxi
YWNrRmlyZWQoKQoreworICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAg
ICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hN
b25pdG9yR3RrOjpzdG9wKCkKQEAgLTgxLDYgKzg5LDkgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGs6OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKICAgICBBU1NFUlQoZnJhbWVD
bG9jayk7CiAgICAgZ2RrX2ZyYW1lX2Nsb2NrX2JlZ2luX3VwZGF0aW5nKGZyYW1lQ2xvY2spOwog
CisgICAgLy8gRklYTUU6IFVzZSBnZGtfZnJhbWVfY2xvY2tfZ2V0X3JlZnJlc2hfaW5mbyB0byBn
ZXQgdGhlIGNvcnJlY3QgZnJhbWUgcmF0ZS4KKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIERl
ZmF1bHRGcmFtZXNQZXJTZWNvbmQgfTsKKwogICAgIG1fY2xvY2tJc0FjdGl2ZSA9IHRydWU7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmgKaW5kZXggOTFk
ZmZjMWUwMzNjMGM4NjJkMTgwMGYwNmQ4NTM1YmE1NWI5ZjM0ZC4uMzJlMjZmYzM2YmEwZmE4N2U1
ODQ4YzA5ZjVhZjUzZDkwZGU0NWZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApA
QCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKTsKIAorICAgIHZvaWQgZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCk7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlz
cGxheUlEKTsKIApAQCAtNTAsNiArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogCiAgICAgR3RrV2lkZ2V0KiBtX3dpbmRvdyB7IG51
bGxwdHIgfTsKKyAgICBEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKICAgICBib29sIG1f
Y2xvY2tJc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9T
LmgKaW5kZXggMTA1MDhlODkwZDUwMDQwMWE3Y2EzMGYxNDQzZWMxMzA3MWQ0NDY4Yi4uMWY5MTMz
M2VhMTUwYjAxNGI4MGQ5MDkxNzhmZWNhOTI0ZjNmNzYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JJT1MuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKCk7CiAKKyAgICB2b2lkIGRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTUxLDYgKzUzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKIAogICAgIFJldGFpblB0
cjxXZWJEaXNwbGF5TGlua0hhbmRsZXI+IG1faGFuZGxlcjsKKyAgICBEaXNwbGF5VXBkYXRlIG1f
Y3VycmVudFVwZGF0ZTsKICAgICBib29sIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSB7IGZhbHNlIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbQppbmRleCBjZGMxNmZjNDZkZDg3
MzNhMTYwOGY3NjhlNTljNTBhYjJhNzljN2RhLi42YjVmMjUwZGFkY2IxODk4NDFjNGQ0ODdjNjc3
N2ZkOWRjYWY4YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkRpc3BsYXlV
cGRhdGUuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQuaCIK
ICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FEaXNwbGF5TGluay5oPgpAQCAtMzYsNiArMzcsOCBAQAog
CiB1c2luZyBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M7CiAKK2NvbnN0ZXhwciBX
ZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQgPSA2MDsK
KwogQGludGVyZmFjZSBXZWJEaXNwbGF5TGlua0hhbmRsZXIgOiBOU09iamVjdAogewogICAgIERp
c3BsYXlSZWZyZXNoTW9uaXRvcklPUyogbV9tb25pdG9yOwpAQCAtNDMsNyArNDYsNiBAQCBAaW50
ZXJmYWNlIFdlYkRpc3BsYXlMaW5rSGFuZGxlciA6IE5TT2JqZWN0CiB9CiAKIC0gKGlkKWluaXRX
aXRoTW9uaXRvcjooRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKiltb25pdG9yOwotLSAodm9pZClz
ZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJT
ZWNvbmQ7CiAtICh2b2lkKWhhbmRsZURpc3BsYXlMaW5rOihDQURpc3BsYXlMaW5rICopc2VuZGVy
OwogLSAodm9pZClzZXRQYXVzZWQ6KEJPT0wpcGF1c2VkOwogLSAodm9pZClpbnZhbGlkYXRlOwpA
QCAtNTksNyArNjEsNyBAQCAtIChpZClpbml0V2l0aE1vbml0b3I6KERpc3BsYXlSZWZyZXNoTW9u
aXRvcklPUyopbW9uaXRvcgogICAgICAgICAvLyBOb3RlIHRoYXQgQ0FEaXNwbGF5TGluayByZXRh
aW5zIGl0cyB0YXJnZXQgKHNlbGYpLCBzbyBhIGNhbGwgdG8gLWludmFsaWRhdGUgaXMgbmVlZGVk
IG9uIHRlYXJkb3duLgogICAgICAgICBtX2Rpc3BsYXlMaW5rID0gW0NBRGlzcGxheUxpbmsgZGlz
cGxheUxpbmtXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGhhbmRsZURpc3BsYXlM
aW5rOildOwogICAgICAgICBbbV9kaXNwbGF5TGluayBhZGRUb1J1bkxvb3A6V2ViVGhyZWFkTlNS
dW5Mb29wKCkgZm9yTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZV07Ci0gICAgICAgIG1fZGlzcGxh
eUxpbmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gNjA7CisgICAgICAgIG1fZGlzcGxheUxp
bmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQ7
CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNzAsMTYgKzcyLDEyIEBAIC0gKHZvaWQp
ZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9pZClzZXRQcmVmZXJyZWRG
cmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQKLXsKLSAg
ICBtX2Rpc3BsYXlMaW5rLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1l
c1BlclNlY29uZDsKLX0KLQogLSAodm9pZCloYW5kbGVEaXNwbGF5TGluazooQ0FEaXNwbGF5TGlu
ayAqKXNlbmRlcgogewogICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgCisg
ICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKTsKIH0KIAogLSAodm9pZClz
ZXRQYXVzZWQ6KEJPT0wpcGF1c2VkCkBAIC0xMTYsNiArMTE0LDEyIEBAIHZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TOjpzdG9wKCkKICAgICBtX2hhbmRsZXIgPSBuaWw7CiB9CiAKK3ZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKQorewor
ICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRh
dGUuZGlkVXBkYXRlKCk7Cit9CisKIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpzdGFy
dE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpCiB7CiAgICAgaWYgKG1fZGlzcGxheUxpbmtJc0FjdGl2
ZSkKQEAgLTEyOCw3ICsxMzIsMTAgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKIAogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5
TGluaywgc3RyZWFtIDw8ICJEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0YXJ0Tm90aWZpY2F0
aW9uTWVjaGFuaXNtIC0gc3RhcnRpbmcgV2ViRGlzcGxheUxpbmtIYW5kbGVyIik7CiAgICAgW21f
aGFuZGxlciBzZXRQYXVzZWQ6Tk9dOworCisgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBEaXNw
bGF5TGlua0ZyYW1lc1BlclNlY29uZCB9OwogICAgIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSA9IHRy
dWU7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcAppbmRleCBjNzQ1ODAwNjFlYzEzMWY2YTA3Njc5ZTY4Y2ZkN2IxNzY2
NTMwOWQyLi42YmNjZjk3NTYyNmQ1OGJjMDg0ODI5YjRjMDJkYzNjZmU2OWE2ZDczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtNjEsMTggKzYxLDMw
IEBAIHZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdG9wKCkKIHN0YXRpYyBD
VlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGlt
ZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdz
Kiwgdm9pZCogZGF0YSkKIHsKICAgICBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqIG1v
bml0b3IgPSBzdGF0aWNfY2FzdDxMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqPihkYXRh
KTsKLSAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxh
eUxpbmtDYWxsYmFja0ZpcmVkKCk7CiAgICAgcmV0dXJuIGtDVlJldHVyblN1Y2Nlc3M7CiB9CiAK
LXZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRS
ZWZyZXNoKCkKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlu
a0NhbGxiYWNrRmlyZWQoKQogewotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgZGlzcGxheUxpbmtGaXJlZCht
X2N1cnJlbnRVcGRhdGUpOworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKK30KKwor
dm9pZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BhdGNoRGlzcGxheURpZFJl
ZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0ZSkKK3sKKyAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIGRpc3BsYXlVcGRhdGUsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0gewogICAgICAgICBpZiAobV9kaXNwbGF5TGluaykKLSAgICAgICAgICAg
IGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChkaXNw
bGF5VXBkYXRlKTsKICAgICB9KTsKIH0KIAorV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNw
bGF5TGluayhDVkRpc3BsYXlMaW5rUmVmIGRpc3BsYXlMaW5rKQoreworICAgIENWVGltZSByZWZy
ZXNoUGVyaW9kID0gQ1ZEaXNwbGF5TGlua0dldE5vbWluYWxPdXRwdXRWaWRlb1JlZnJlc2hQZXJp
b2QoZGlzcGxheUxpbmspOworICAgIHJldHVybiByb3VuZCgoZG91YmxlKXJlZnJlc2hQZXJpb2Qu
dGltZVNjYWxlIC8gKGRvdWJsZSlyZWZyZXNoUGVyaW9kLnRpbWVWYWx1ZSk7Cit9CisKIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiB7CiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rKSB7CkBAIC04Myw2ICs5NSw4IEBAIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiAgICAgICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1NldE91dHB1dENhbGxiYWNrKG1fZGlz
cGxheUxpbmssIGRpc3BsYXlMaW5rQ2FsbGJhY2ssIHRoaXMpOwogICAgICAgICBpZiAoZXJyb3Ip
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0g
eyAwLCBub21pbmFsRnJhbWVzUGVyU2Vjb25kRnJvbURpc3BsYXlMaW5rKG1fZGlzcGxheUxpbmsp
IH07CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpIHsKQEAgLTkzLDYg
KzEwNyw3IEBAIGJvb2wgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgPSB0cnVlOworICAgICAgICBtX2N1cnJlbnRV
cGRhdGUudXBkYXRlSW5kZXggPSAwOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDhhOGIyODBlNzY3YWI1YzFj
Y2VlYWRmNmFmYWFhY2FiZTgxNDI1MjIuLmQyNmIwMDg0MTE4MTk5MmZjZmQwYzZkZmIxZDE0YzZi
ZjRmZDQxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAg
LTQzLDE3ICs0MywyNSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+TGVnYWN5RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjKCk7CiAKKyAgICBjb25zdCBEaXNwbGF5VXBkYXRlJiBjdXJyZW50
VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VXBkYXRlOyB9CisKKyAgICB2b2lkIGRp
c3BsYXlMaW5rQ2FsbGJhY2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICB2b2lk
IGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlz
cGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYpIGZpbmFsOwogCiAgICAgdm9pZCBz
dG9wKCkgZmluYWw7CiAKICAgICBib29sIHN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmlu
YWw7CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CiAKKyAgICBz
dGF0aWMgRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmRGcm9tRGlzcGxheUxp
bmsoQ1ZEaXNwbGF5TGlua1JlZik7CisKICAgICBDVkRpc3BsYXlMaW5rUmVmIG1fZGlzcGxheUxp
bmsgeyBudWxscHRyIH07CisgICAgCisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7
CiAgICAgYm9vbCBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlz
cGxheVJlZnJlc2hNb25pdG9yV2luLmNwcAppbmRleCAzYTIwYTYzNzZhNDkxMWNkYzdlOTg5ZWY4
MGQ2NWFkNzZiOGQ2MTY1Li45YWE4ODNkZGEyYTVjZDc1NGI4Njg1ZDM5MWFhZDA0M2U5NDg1Yjdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRGlzcGxheVJlZnJlc2hNb25pdG9yV2luLmNwcApAQCAtMjgsNiArMjgsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhwciBGcmFtZXNQZXJTZWNvbmQgRGVmYXVs
dEZyYW1lc1BlclNlY29uZCA9IDYwOworCiBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yV2lu
PiBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJlc2hNb25pdG9y
V2luKGRpc3BsYXlJRCkpOwpAQCAtMzUsOCArMzcsMTUgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbj4gRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpjcmVhdGUoUGxhdGZvcm1EaXNw
bGEKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4o
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9y
KGRpc3BsYXlJRCkKLSAgICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKQorICAgICwgbV90aW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIERlZmF1bHRGcmFtZXNQZXJTZWNv
bmQgfSkKK3sKK30KKwordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmRpc3BsYXlMaW5r
Q2FsbGJhY2tGaXJlZCgpCiB7CisgICAgZGlzcGxheUxpbmtGaXJlZChtX2N1cnJlbnRVcGRhdGUp
OworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKIH0KIAogYm9vbCBEaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW46OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0
b3JXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW4uaAppbmRleCBlZmU1NzZlMmY0YzQyMGY4OGViNmVkODY1Y2FmNmY4YjEw
ZmIxYjYxLi4xNjA5MjBmYTZhZGM4NGRkN2NiOWNiNzRjOGUxNTZmMWM2YzRmNzIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxheVJlZnJlc2hN
b25pdG9yV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvcldpbi5oCkBAIC0zOSw4ICszOSwxMSBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogICAgIHZvaWQgc3Rv
cE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOworICAgIAorICAgIHZvaWQgZGlzcGxheUxp
bmtDYWxsYmFja0ZpcmVkKCk7CiAKICAgICBSdW5Mb29wOjpUaW1lcjxEaXNwbGF5UmVmcmVzaE1v
bml0b3JXaW4+IG1fdGltZXI7CisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3Bs
YXlSZWZyZXNoTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5j
cHAKaW5kZXggOGMyYTcwODQwMmMwZjM5OWU2Nzc1Zjg2NGE4YWQyMGM3YThmNzg4My4uNjllZDc1
ZGI4MDJkYjk2NTg1MWMwNTNjM2FhNzk4NDg0YTUzMjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWREaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJl
c2hNb25pdG9yLmNwcApAQCAtMzcsMTAgKzM3LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CisvLyBGSVhNRTogVXNlIHRoZSBjb3JyZWN0IGZyYW1lIHJhdGUuCitjb25zdGV4cHIgV2ViQ29y
ZTo6RnJhbWVzUGVyU2Vjb25kIERlZmF1bHRGcmFtZXNQZXJTZWNvbmQgPSA2MDsKKwogVGhyZWFk
ZWREaXNwbGF5UmVmcmVzaE1vbml0b3I6OlRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yKFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgQ2xpZW50JiBjbGllbnQpCiAgICAg
OiBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQogICAgICwgbV9kaXNw
bGF5UmVmcmVzaFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRocmVhZGVkRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpkaXNwbGF5UmVmcmVzaENhbGxiYWNrKQogICAgICwgbV9jbGllbnQoJmNs
aWVudCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIERlZmF1bHRGcmFtZXNQZXJTZWNvbmQg
fSkKIHsKICNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQogICAgIG1fZGlzcGxheVJlZnJlc2hUaW1l
ci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OkRpc3BsYXlSZWZyZXNoTW9uaXRv
clRpbWVyKTsKQEAgLTkwLDggKzk0LDEwIEBAIHZvaWQgVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmludmFsaWRhdGUoKQogICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxvY2so
KSk7CiAgICAgICAgIHdhc1NjaGVkdWxlZCA9IGlzU2NoZWR1bGVkKCk7CiAgICAgfQotICAgIGlm
ICh3YXNTY2hlZHVsZWQpCi0gICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgaWYgKHdh
c1NjaGVkdWxlZCkgeworICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChtX2N1cnJlbnRVcGRhdGUp
OworICAgICAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CisgICAgfQogICAgIG1fY2xp
ZW50ID0gbnVsbHB0cjsKIH0KIApAQCAtMTA2LDggKzExMiwxMCBAQCB2b2lkIFRocmVhZGVkRGlz
cGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5UmVmcmVzaENhbGxiYWNrKCkKICAgICAgICAgICAg
IHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogICAgIH0KIAotICAgIGlmIChzaG91bGRI
YW5kbGVEaXNwbGF5UmVmcmVzaE5vdGlmaWNhdGlvbikKLSAgICAgICAgZGlzcGxheURpZFJlZnJl
c2goKTsKKyAgICBpZiAoc2hvdWxkSGFuZGxlRGlzcGxheVJlZnJlc2hOb3RpZmljYXRpb24pIHsK
KyAgICAgICAgZGlzcGxheURpZFJlZnJlc2gobV9jdXJyZW50VXBkYXRlKTsKKyAgICAgICAgbV9j
dXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOworICAgIH0KIAogICAgIC8vIFJldHJpZXZlIHRoZSBz
Y2hlZHVsZWQgc3RhdHVzIGZvciB0aGlzIERpc3BsYXlSZWZyZXNoTW9uaXRvci4KICAgICBib29s
IGhhc0JlZW5SZXNjaGVkdWxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3Iu
aAppbmRleCBiNDlhOGIyZGJlZjA0OWE3ZTQ0MTNkMmU4MmRlOTUxZDI3N2NlNjM0Li5kYjI5M2Zm
ZmM0YzFmM2NmNGFkMzIwYmEwODJhMDU3OWE3MmMzNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hN
b25pdG9yLmgKQEAgLTYzLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BsYXlSZWZy
ZXNoQ2FsbGJhY2soKTsKICAgICBSdW5Mb29wOjpUaW1lcjxUaHJlYWRlZERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gbV9kaXNwbGF5UmVmcmVzaFRpbWVyOwogICAgIENsaWVudCogbV9jbGllbnQ7Cisg
ICAgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9E
aXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsu
Y3BwCmluZGV4IGE0M2RmY2Q0NmQ1MWY0NDQ3ODJhZmQxNzdiYmFiNTFkMDI2YTY4ZGEuLjNkMmJj
NGUxMjM1ODkxNGU3MTU2NmZjOWE1NjY5OTZjODY5MWEzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcApAQCAtOTcsNiArOTcsOCBAQCB2b2lkIERpc3Bs
YXlMaW5rOjphZGRPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERpc3BsYXlM
aW5rT2JzZXJ2ZXJJRAogICAgICAgICBDVlJldHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtTdGFy
dChtX2Rpc3BsYXlMaW5rKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCJDb3VsZCBub3Qgc3RhcnQgdGhlIGRpc3BsYXkgbGluazogJWQiLCBlcnJvcik7CisK
KyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVy
U2Vjb25kIH07CiAgICAgfQogfQogCkBAIC0xNTIsMTIgKzE1NCwxNSBAQCB2b2lkIERpc3BsYXlM
aW5rOjpub3RpZnlPYnNlcnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKCkKICAgICBtX2ZpcmVDb3Vu
dFdpdGhvdXRPYnNlcnZlcnMgPSAwOwogCiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV9v
YnNlcnZlcnMua2V5cygpKSB7Ci0gICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGluaywg
c3RyZWFtIDw8ICJbVUkgXSBEaXNwbGF5TGluayBmb3IgZGlzcGxheSAiIDw8IG1fZGlzcGxheUlE
IDw8ICIgc2VuZGluZyBmb3IgY29ubmVjdGlvbiAiIDw8IGNvbm5lY3Rpb24tPnVuaXF1ZUlEKCkg
PDwgIiBvbiBiYWNrZ3JvdW5kIHF1ZXVlICIgPDwgc2hvdWxkU2VuZElQQ09uQmFja2dyb3VuZFF1
ZXVlKTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIltV
SSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiAoZGlzcGxh
eSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIDw8ICIpIHVwZGF0ZSAi
IDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiIGNvbm5lY3Rpb24gIiA8PCBjb25uZWN0aW9uLT51bmlx
dWVJRCgpIDw8ICIgb24gYmFja2dyb3VuZCBxdWV1ZSAiIDw8IHNob3VsZFNlbmRJUENPbkJhY2tn
cm91bmRRdWV1ZSk7CisKICAgICAgICAgaWYgKHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRRdWV1
ZSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hl
cjo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCksIDApOworICAgICAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpEaXNwbGF5V2FzUmVmcmVz
aGVkKG1fZGlzcGxheUlELCBtX2N1cnJlbnRVcGRhdGUpLCAwKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlzcGxheVdh
c1JlZnJlc2hlZChtX2Rpc3BsYXlJRCksIDApOworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCwg
bV9jdXJyZW50VXBkYXRlKSwgMCk7CiAgICAgfQorCisgICAgbV9jdXJyZW50VXBkYXRlLmRpZFVw
ZGF0ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggYWExYTBiN2IwNWY0NTJiYTUzZGM4ZDU2N2ZhZTU5
ZTA5ZWUwZjczNy4uNTJjMzE5OWVmOGNkNjBmNDAyOGNlZDUwOGU4Yzc0MWMzOTgxODNkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJEaXNwbGF5TGlua09ic2VydmVySUQuaCIKICNpbmNsdWRlIDxDb3JlVmlk
ZW8vQ1ZEaXNwbGF5TGluay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJhbWVSYXRl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5VXBkYXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KQEAgLTY5LDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJlZlB0
cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0b3I8RGlzcGxheUxpbmtPYnNlcnZlcklEPj4gbV9vYnNl
cnZlcnM7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5SUQ7CiAgICAg
V2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIG1fZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQg
eyAwIH07CisgICAgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiAgICAg
dW5zaWduZWQgbV9maXJlQ291bnRXaXRob3V0T2JzZXJ2ZXJzIHsgMCB9OwogICAgIHN0YXRpYyBi
b29sIHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRRdWV1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA3N2Q1
ZjkzYzMxNjA1ZDBjZmRlMTdjZWQ4YTJkNzU1YjhmNjVlMGNjLi44NmY4ZjNkODEzYjY0MjFmM2Vk
YTc3MmQxYTFkZDBjYTllNjE3YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogI2luY2x1ZGUg
IldlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlVcGRhdGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0yODgsMTMgKzI4OSwx
MyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6bm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2Fz
UmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlECiB9CiAKICNpZiBIQVZFKENWRElTUExBWUxJTksp
Ci12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURpc3Bs
YXlJRCBkaXNwbGF5SUQpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3Bs
YXlVcGRhdGUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgbm90aWZ5
U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRpc3BsYXlJRCk7CiAKLSAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW2Rpc3BsYXlJRF0oKSB7Ci0gICAgICAgIERpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5kaXNwbGF5V2FzVXBkYXRlZChkaXNw
bGF5SUQpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbZGlzcGxheUlELCBkaXNwbGF5
VXBkYXRlXSgpIHsKKyAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxheVVwZGF0ZSk7CiAg
ICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggNjcxYjI4ZGYzZTUxMGRlYTM1MDFkODAyOGI5Nzg3
MTg3NmE2NGEwZC4uYTEzMGQ0NDM1YzdjOWVjMDk3N2U5ZjE4MGFkODE2MmUzMjFiZWViMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmgKQEAgLTQzLDYgKzQzLDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1
Y3QgRGlzcGxheVVwZGF0ZTsKIGNsYXNzIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTsKIHVzaW5nIFBs
YXRmb3JtRGlzcGxheUlEID0gdWludDMyX3Q7CiB9CkBAIC0xMDcsNyArMTA4LDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGlzcGxheVdhc1JlZnJl
c2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CisgICAgdm9pZCBkaXNwbGF5V2FzUmVm
cmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBXZWJDb3JlOjpEaXNwbGF5
VXBkYXRlJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLm1lc3NhZ2VzLmluCmluZGV4IGNmNGY3NjY2NmNjNTM0MzFlOTliZWRlNWU4MjhhOGFhODdh
MDNjYzguLjBiNWQyOTEyY2RhOTcxZjNlMTkxNWI4ZTJhZjBjNWY1MDA5ODEwM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDYgQEAgbWVzc2FnZXMgLT4gRXZlbnREaXNw
YXRjaGVyIHsKICAgICBHZXN0dXJlRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCBldmVudCkKICNlbmRpZgogI2lmIEhBVkUoQ1ZESVNQ
TEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCkKKyAg
ICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgc3RydWN0IFdlYkNvcmU6
OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlz
cGxheVJlZnJlc2hNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKaW5k
ZXggNjg1NTUzODE4ZjRiYmZkZWMzZGMyNTkzOTMxMzU3ZjNkZDk5ZmFkOC4uYTRlYWU1Mjk5N2Uz
YjUyNzE0MTg0ZWViODM1NzA1MjIyOTE5MzEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaApAQCAt
NTMsNiArNTMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpIGZpbmFsIHsgfQogCiAgICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4g
bV9kcmF3aW5nQXJlYTsKKworICAgIFdlYkNvcmU6OkZyYW1lc1BlclNlY29uZCBtX3ByZWZlcnJl
ZEZyYW1lc1BlclNlY29uZDsKKyAgICBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVw
ZGF0ZTsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3Iu
bW0KaW5kZXggNzU5MmY1NjEwM2YyMGJjOWZiZTcxYWY1YjRkNDZiYTJjYzMzNzkwNy4uZGQ3OTlk
Y2E0YWUzOWVjNGQ3OTA2OTEwMjY1YWRkN2NiYjljY2VlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURp
c3BsYXlSZWZyZXNoTW9uaXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9y
Lm1tCkBAIC0zMiw5ICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAorY29uc3RleHByIEZyYW1lc1BlclNlY29uZCBEZWZhdWx0UHJlZmVycmVk
RnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCwgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVhKQog
ICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKICAgICAsIG1fZHJhd2luZ0Fy
ZWEobWFrZVdlYWtQdHIoZHJhd2luZ0FyZWEpKQorICAgICwgbV9wcmVmZXJyZWRGcmFtZXNQZXJT
ZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKKyAgICAsIG1fY3VycmVudFVw
ZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIH0pCiB7CiB9CiAKQEAgLTQ2LDYg
KzUwLDEyIEBAIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6flJlbW90ZUxh
eWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcigpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlz
cGxheVJlZnJlc2hNb25pdG9yOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRnJhbWVzUGVy
U2Vjb25kIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKIHsKKyAgICBpZiAocHJlZmVycmVkRnJh
bWVzUGVyU2Vjb25kID09IG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3ByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZDsKKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVy
U2Vjb25kIH07CisKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAgbV9kcmF3aW5nQXJl
YS0+c2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCk7
CiB9CkBAIC03Miw3ICs4Miw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogICAgICAgICByZXR1cm47CiAKICAgICBzZXRJc1By
ZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAgIGRp
c3BsYXlEaWRSZWZyZXNoKG1fY3VycmVudFVwZGF0ZSk7CisgICAgbV9jdXJyZW50VXBkYXRlLmRp
ZFVwZGF0ZSgpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRv
cjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdB
cmVhKQpAQCAtODAsNCArOTEsNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhdwogICAgIG1fZHJh
d2luZ0FyZWEgPSBtYWtlV2Vha1B0cihkcmF3aW5nQXJlYSk7CiB9CiAKLX0KK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAppbmRleCBmNGEyNDdm
NmU3NTQzZTg1Y2U0MGNhNzFjNDY4M2MyNGFkMTYxZGE5Li4wYjFhM2I3OTNhYzFlYTliM2IzZjMx
OGM5OTUyOTFmZDYxOWM5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApA
QCAtNTYsMTIgKzU2LDEzIEBAIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6fkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYygpCiAgICAgQVNTRVJUKCFtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpOwogfQog
Ci12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVz
aCgpCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVm
cmVzaChjb25zdCBEaXNwbGF5VXBkYXRlJiBkaXNwbGF5VXBkYXRlKQogeworICAgIC8vIEZJWE1F
OiBUaGlzIHdpbGwgcGVydHVyYiBkaXNwbGF5VXBkYXRlLgogICAgIGlmICghbV9maXJzdENhbGxi
YWNrSW5DdXJyZW50UnVubG9vcCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRGlzcGxheVJlZnJl
c2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgRGlzcGxheVJlZnJl
c2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwogfQog
CiBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RhcnROb3RpZmljYXRpb25NZWNoYW5p
c20oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDJlNjVjNGMwMjhkNzI0MGZm
ZTIzMWQ1MjExZTE5OGY1Y2JmZDNjYzEuLjk2MDRiODkwMzAzYjBhYWNlZGU1YTA2ZmVjNDI3YTlj
MjFmYzA3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwogCi0gICAgdm9pZCBkaXNwYXRjaERpc3Bs
YXlEaWRSZWZyZXNoKCkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNo
KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUmKSBmaW5hbDsKIAogICAgIGJvb2wgc3RhcnRO
b3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKICAgICB2b2lkIHN0b3BOb3RpZmljYXRpb25N
ZWNoYW5pc20oKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApp
bmRleCA5Njg0MDgwNDQxZTA1N2M0NzNjZDJkMjcyZDhiMDhiMzIxZjQzZTc1Li5iMDY0ZjIyN2Nk
NTJiNzUwZDZjM2FlNGMyZTRkMjA2ZGI2N2Y3MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC0xODk1LDExICsxODk1LDExIEBAIGJvb2wgV2ViUHJvY2Vzczo6
YXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBjb25zdAogfQogCiAjaWYgSEFWRShDVkRJU1BMQVlM
SU5LKQotdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3Bs
YXlJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNw
bGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBtX2V2ZW50RGlzcGF0Y2hlci0+bm90aWZ5U2Nyb2xs
aW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRpc3BsYXlJRCk7Ci0gICAgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3Bs
YXlJRCk7CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigp
LmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxheVVwZGF0ZSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDYzMWY3M2NmNDIyMTNh
YjhlOWE3MDUyOTI1NzIzZTk2Y2Q1ZGEwOC4uNjQ2ZTVlZDA4OTcxNjEzYWZiNDE1NDgwNzdmZTMx
NDhiZDE4YWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05NCw2
ICs5NCw3IEBAIGNsYXNzIFVzZXJHZXN0dXJlVG9rZW47CiBlbnVtIGNsYXNzIEV2ZW50TWFrZXNH
YW1lcGFkc1Zpc2libGUgOiBib29sOwogCiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
cjsKK3N0cnVjdCBEaXNwbGF5VXBkYXRlOwogc3RydWN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllcjsK
IHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKIHN0cnVjdCBNb2NrTWVkaWFEZXZpY2U7
CkBAIC01MDcsNyArNTA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgSEFWRShDVkRJU1BM
QVlMSU5LKQotICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQp
OworICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQsIGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCAxMjJlNTQzYjJiYTg3YjgwYzRlZDYwNWIwZTQyMjNhNGQxN2ExMGQ2Li5hOTkyYTQ0NjM0YzRl
MTdmZWZjZGNiMzk0NjA2YWNmZDEwMzQ0MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTg4LDcgKzE4OCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAjZW5kaWYKIAog
I2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90
IGRpc3BsYXlJRCkKKyAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwg
c3RydWN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424498</attachid>
            <date>2021-03-28 08:53:57 -0700</date>
            <delta_ts>2021-03-28 15:06:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223847-20210328085356.patch</filename>
            <type>text/plain</type>
            <size>53023</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxODQ3MDkyZmVmMzFm
ZWYxZmZjNDY1ZmVjNmMzMTQyMmVhOGY1MS4uMGRhZDQ2YzU4NTFlNjg0MGViZmYyMDZhNGQ1ZWQx
YmMyODc0Y2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIxLTAzLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIERpc3Bs
YXlVcGRhdGUgdGhyb3VnaCB0aGUgZGlzcGxheSByZWZyZXNoIG1vbml0b3JzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4NDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdXR1cmUgd29yayB3aWxsIGFs
bG93IERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudHMgdG8gcmVxdWVzdCBkaWZmZXJlbnQgZnJh
bWUgcmF0ZXMsIHdoaWNoCisgICAgICAgIGFyZSB3aG9sZSBmcmFjdGlvbnMgb2YgdGhlIGRpc3Bs
YXkncyBub21pbmFsIHJlZnJlc2ggcmF0ZS4gVGhlc2UgdmFyaW91cyBmcmFtZSByYXRlIHJlcXVl
c3RzCisgICAgICAgIGZsb3cgdXAgdGhyb3VnaCB0aGUgRGlzcGxheVJlZnJlc2hNb25pdG9ycywg
YW5kIGluIFdlYktpdDIsIHVwIHRocm91Z2ggSVBDIHRvIHRoZQorICAgICAgICBwZXItZGlzcGxh
eSBEaXNwbGF5TGluayB3aGljaCBtYXkgZXZlbiBzZXJ2aWNlIG11bHRpcGxlIHByb2Nlc3Nlcy4K
KworICAgICAgICBGb3IgcG93ZXIgcmVhc29ucywgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGRp
c3BsYXkgcmVmcmVzaCBub3RpZmljYXRpb25zIGRvd24gdGhlIGNoYWluIGF0CisgICAgICAgIHRo
ZSBoaWdoZXN0IHBvc3NpYmxlIGZyZXF1ZW5jeTsgYXQgdmFyaW91cyBzdGFnZXMgb2YgcHJvcGFn
YXRpb24gdGhlIHJhdGUgbWlnaHQgYmUgaGFsdmVkIGlmCisgICAgICAgIHRoYXQncyB0aGF0J3Mg
bmVjZXNzYXJ5IGZvciBkb3duc3RyZWFtIGNsaWVudHMuCisgICAgICAgIAorICAgICAgICBUbyBt
YWtlIHRoaXMgZnJlcXVlbmN5IHNwbGl0dGluZyBsb2dpYyBzaW1wbGUsIHRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBEaXNwbGF5VXBkYXRlLCB3aGljaAorICAgICAgICByZXByZXNlbnRzIHRoZSBmcmFj
dGlvbmFsIHNlY29uZCBmb3IgdGhlIGN1cnJlbnQgdXBkYXRlLiBUaGUgbnVtZXJhdG9yIGlzIHRo
ZSBmcmFtZSBpbmRleCwKKyAgICAgICAgYW5kIHRoZSBkZW5vbWluYXRvciBpcyB0aGUgbm9taW5h
bCBmcmFtZSByYXRlLiBGcmFtZSBpbmRleCB3cmFwcyB0byB6ZXJvIGV2ZXJ5IHNlY29uZC4KKyAg
ICAgICAgCisgICAgICAgIEZvciBleGFtcGxlLCBhIDYwSHogZGlzcGxheSB3aWxsIGdlbmVyYXRl
IGRpc3BsYXkgcmVmcmVzaGVzIHdpdGggRGlzcGxheVVwZGF0ZXMgd2hpY2gKKyAgICAgICAgc2Vx
dWVudGlhbGx5IHdpbGwgYmUgeyAwLCA2MCB9LCB7IDEsIDYwIH0sIHsgMiwgNjAgfSAuLi4geyA1
OSwgNjAgfSwgeyAwLCA2MCB9LiBUaGUKKyAgICAgICAgemVyb3RoIGZyYW1lIGlzIGF0IHNvbWUg
YXJiaXRyYXJ5IHRpbWUgYW5kIG5vdCBhbGlnbmVkIHdpdGggd2FsbGNsb2NrIHRpbWUuCisgICAg
ICAgIAorICAgICAgICBUaHVzIGEgY2xpZW50IHdpdGggYSAzMEh6IHVwZGF0ZSByZXF1aXJlbWVu
dCBjYW4gc2ltcGx5IGlnbm9yZSBldmVyeSBvZGQtbnVtYmVyZWQgZnJhbWUsIGFuZAorICAgICAg
ICBhIGNsaWVudCBkb3duc3RyZWFtIGZyb20gaXQgd2l0aCBhIDE1SHogcmVxdWlyZW1lbnQsIHdo
aWNoIG9ubHkgcmVjZWl2ZXMgdGhvc2UgZXZlbi1udW1iZXJlZAorICAgICAgICBmcmFtZXMsIHN0
aWxsIGhhcyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB3aGljaCBmcmFtZXMgdG8gaWdu
b3JlLgorICAgICAgICAKKyAgICAgICAgQ2xhc3NlcyB3aGljaCBhcmUgc291cmNlcyBvZiBjYWxs
YmFja3MgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRvciBuZWVkIHRvIGdlbmVyYXRlIHRoZXNlCisg
ICAgICAgIERpc3BsYXlVcGRhdGVzOyB0aGF0IGluY2x1ZGVzIHRoZSB2YXJpb3VzIHBsYXRmb3Jt
IERpc3BsYXlSZWZyZXNoTW9uaXRvciBzdWJjbGFzc2VzIGluCisgICAgICAgIFdlYkNvcmUsIGFu
ZCB0aG9zZSBpbiBXZWJLaXQgdGhhdCBsaXZlIGluIHRoZSBVSSBwcm9jZXNzIGFuZCB0cmlnZ2Vy
IHVwZGF0ZXMgb3ZlciBJUEMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVS
YXRlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGF0Y2hE
aXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmRpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlXYXNVcGRhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaC4KKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlVcGRhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheVVwZGF0ZTo6ZGlkVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlVcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5VXBkYXRlOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0
b3JHdGsuY3BwOiBBc3N1bWUgYSA2MGZwcyByZWZyZXNoIHJhdGUgYnV0IHRoaXMgY29kZQorICAg
ICAgICBzaG91bGQgcHJvYmFibHkgdXNlIGdka19mcmFtZV9jbG9ja19nZXRfcmVmcmVzaF9pbmZv
KCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHJhdGUuCisgICAgICAgIChXZWJDb3JlOjpvbkZyYW1lQ2xv
Y2tVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpk
aXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJl
c2hNb25pdG9yR3RrOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tOgor
ICAgICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaW5pdFdpdGhNb25pdG9yOl0pOgorICAg
ICAgICAoLVtXZWJEaXNwbGF5TGlua0hhbmRsZXIgaGFuZGxlRGlzcGxheUxpbms6XSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKC1bV2ViRGlzcGxheUxpbmtIYW5k
bGVyIHNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0NhbGxiYWNrRmly
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpk
aXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNwbGF5TGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmN1cnJlbnRVcGRhdGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JXaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
V2luOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4uaDoKKwogMjAyMS0wMy0yNyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBEaXNwbGF5
UmVmcmVzaE1vbml0b3IgdG8gYmUgbW9yZSBsb25nLWxpdmVkIG9iamVjdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmI4Mjk0NzgzNTk3NzcyMzRjOGU5OTNmNzNiMzlmZDZlYjcyNjc0Zi4uMmI0YTY1ZDNhMTBhMWFi
ZjFkYjM5YmM4YzMzZDcxMWY5ZDZiN2U1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAy
MS0wMy0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBQbHVtYiBEaXNwbGF5VXBkYXRlIHRocm91Z2ggdGhlIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODQ3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnV0dXJl
IHdvcmsgd2lsbCBhbGxvdyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnRzIHRvIHJlcXVlc3Qg
ZGlmZmVyZW50IGZyYW1lIHJhdGVzLCB3aGljaAorICAgICAgICBhcmUgd2hvbGUgZnJhY3Rpb25z
IG9mIHRoZSBkaXNwbGF5J3Mgbm9taW5hbCByZWZyZXNoIHJhdGUuIFRoZXNlIHZhcmlvdXMgZnJh
bWUgcmF0ZSByZXF1ZXN0cworICAgICAgICBmbG93IHVwIHRocm91Z2ggdGhlIERpc3BsYXlSZWZy
ZXNoTW9uaXRvcnMsIGFuZCBpbiBXZWJLaXQyLCB1cCB0aHJvdWdoIElQQyB0byB0aGUKKyAgICAg
ICAgcGVyLWRpc3BsYXkgRGlzcGxheUxpbmsgd2hpY2ggbWF5IGV2ZW4gc2VydmljZSBtdWx0aXBs
ZSBwcm9jZXNzZXMuCisKKyAgICAgICAgRm9yIHBvd2VyIHJlYXNvbnMsIHdlIGRvbid0IHdhbnQg
dG8gdHJpZ2dlciBkaXNwbGF5IHJlZnJlc2ggbm90aWZpY2F0aW9ucyBkb3duIHRoZSBjaGFpbiBh
dAorICAgICAgICB0aGUgaGlnaGVzdCBwb3NzaWJsZSBmcmVxdWVuY3k7IGF0IHZhcmlvdXMgc3Rh
Z2VzIG9mIHByb3BhZ2F0aW9uIHRoZSByYXRlIG1pZ2h0IGJlIGhhbHZlZCBpZgorICAgICAgICB0
aGF0J3MgdGhhdCdzIG5lY2Vzc2FyeSBmb3IgZG93bnN0cmVhbSBjbGllbnRzLgorICAgICAgICAK
KyAgICAgICAgVG8gbWFrZSB0aGlzIGZyZXF1ZW5jeSBzcGxpdHRpbmcgbG9naWMgc2ltcGxlLCB0
aGlzIHBhdGNoIGludHJvZHVjZXMgRGlzcGxheVVwZGF0ZSwgd2hpY2gKKyAgICAgICAgcmVwcmVz
ZW50cyB0aGUgZnJhY3Rpb25hbCBzZWNvbmQgZm9yIHRoZSBjdXJyZW50IHVwZGF0ZS4gVGhlIG51
bWVyYXRvciBpcyB0aGUgZnJhbWUgaW5kZXgsCisgICAgICAgIGFuZCB0aGUgZGVub21pbmF0b3Ig
aXMgdGhlIG5vbWluYWwgZnJhbWUgcmF0ZS4gRnJhbWUgaW5kZXggd3JhcHMgdG8gemVybyBldmVy
eSBzZWNvbmQuCisgICAgICAgIAorICAgICAgICBGb3IgZXhhbXBsZSwgYSA2MEh6IGRpc3BsYXkg
d2lsbCBnZW5lcmF0ZSBkaXNwbGF5IHJlZnJlc2hlcyB3aXRoIERpc3BsYXlVcGRhdGVzIHdoaWNo
CisgICAgICAgIHNlcXVlbnRpYWxseSB3aWxsIGJlIHsgMCwgNjAgfSwgeyAxLCA2MCB9LCB7IDIs
IDYwIH0gLi4uIHsgNTksIDYwIH0sIHsgMCwgNjAgfS4gVGhlCisgICAgICAgIHplcm90aCBmcmFt
ZSBpcyBhdCBzb21lIGFyYml0cmFyeSB0aW1lIGFuZCBub3QgYWxpZ25lZCB3aXRoIHdhbGxjbG9j
ayB0aW1lLgorICAgICAgICAKKyAgICAgICAgVGh1cyBhIGNsaWVudCB3aXRoIGEgMzBIeiB1cGRh
dGUgcmVxdWlyZW1lbnQgY2FuIHNpbXBseSBpZ25vcmUgZXZlcnkgb2RkLW51bWJlcmVkIGZyYW1l
LCBhbmQKKyAgICAgICAgYSBjbGllbnQgZG93bnN0cmVhbSBmcm9tIGl0IHdpdGggYSAxNUh6IHJl
cXVpcmVtZW50LCB3aGljaCBvbmx5IHJlY2VpdmVzIHRob3NlIGV2ZW4tbnVtYmVyZWQKKyAgICAg
ICAgZnJhbWVzLCBzdGlsbCBoYXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgd2hpY2gg
ZnJhbWVzIHRvIGlnbm9yZS4KKyAgICAgICAgCisgICAgICAgIENsYXNzZXMgd2hpY2ggYXJlIHNv
dXJjZXMgb2YgY2FsbGJhY2tzIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3IgbmVlZCB0byBnZW5l
cmF0ZSB0aGVzZQorICAgICAgICBEaXNwbGF5VXBkYXRlczsgdGhhdCBpbmNsdWRlcyB0aGUgdmFy
aW91cyBwbGF0Zm9ybSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igc3ViY2xhc3NlcyBpbgorICAgICAg
ICBXZWJDb3JlLCBhbmQgdGhvc2UgaW4gV2ViS2l0IHRoYXQgbGl2ZSBpbiB0aGUgVUkgcHJvY2Vz
cyBhbmQgdHJpZ2dlciB1cGRhdGVzIG92ZXIgSVBDLgorCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZERpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlzcGxheVJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOjpUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5r
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpub3RpZnlPYnNl
cnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnNldFByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6ZGlkVXBkYXRlTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMjEtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGF2ZSBEaXNwbGF5TGluayBjb21wdXRlIGl0cyBkaXNwbGF5Tm9taW5hbEZyYW1lc1Bl
clNlY29uZCBqdXN0IG9uY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ0Yjk3MDgyNGQ1ZGM4NWFj
YzNkOTkxMjQ5ZGE2MTM5NWQzMGEwNTAuLjgyOTAyOWJlOTA3NTI2MTBkNDk4MzI5NTc4YTE5OTUw
YzBjZWVjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE4OSw2ICsxMTg5LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdExpbmUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA3ZTE4MDU1ZDNjMzcxNTQ3ODQwNWZmMzlhNTVjYzk5MTgzY2I2ZWM4
Li5hYmVmMzcyMTUwODRlMjk5YmJkOTMyZmViZGFiMWM0N2ZjNDNlYWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTk0Myw2ICsxOTQzLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFn
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5VXBkYXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRMaW5lLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9p
bnQzRC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NTAwNjQ5ODU0M2NhMTlmN2E3ZWEwZGQwMWNmNDA0OGJiNzM3OTUxLi45
OTU3ZGFhM2U0MTU2ZGViNjQ4OGUxMTg1ZGEyNTM1MDc2MmI2YjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDUsNiArMzQ1
LDcgQEAKIAkJMEZCNjI1MkYxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI2MjUyRDE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI4ODkwRjE2N0QzMDE2MDAxMENEQTUg
LyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQkI1RkJEMjYwOTVBOUMwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQkI1RkNCMjYwRTlCNDQwMDU0NTcy
QyAvKiBEaXNwbGF5VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEZDNEIwMDYyMkI5QTAyRDAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDNEIwMDQyMkI5QTAyQzAwQ0YzQjFFIC8qIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQ0YzMzJGMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRjMzMkIw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZEMzA4MEYxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRl
ckZyYW1lQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZEMzA4MEQxMTdDRjdFNzAwQTc5MUY3IC8qIFJlbmRlckZyYW1lQmFzZS5oICovOyB9OwpA
QCAtNjIwNSw2ICs2MjA2LDggQEAKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9s
bGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkI4ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkJCNUZCRDI2MDk1QTlD
MDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGQkI1RkM5MjYwRTlCNDMwMDU0NTcyQyAvKiBEaXNwbGF5VXBkYXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlVcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRkJCNUZDQjI2MEU5QjQ0MDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaXNwbGF5VXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGQkZDRTI0MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQkZDRTI2MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkMwNTE2ODIxOUI1RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc4MCw2
ICsyNjc4Myw4IEBACiAJCQkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkuaCAqLywKIAkJCQkyRDI5RUNDMzE5MkVDQzgzMDA5ODRCNzggLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8sCiAJCQkJMkQyOUVDQzQxOTJFQ0M4
MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAqLywKKwkJCQkwRkJC
NUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5jcHAgKi8sCisJCQkJMEZCQjVG
Q0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCAqLywKIAkJCQk2RTY3RDJBODEy
ODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uc0dMLmggKi8sCiAJCQkJMkU4ODhDQTkyNUY2QTQx
MTAwNTc5MTRBIC8qIEZsb2F0TGluZS5jcHAgKi8sCiAJCQkJMkU4ODhDQTgyNUY2QTQxMTAwNTc5
MTRBIC8qIEZsb2F0TGluZS5oICovLApAQCAtMzIxMTksNiArMzIxMjQsNyBAQAogCQkJCTBGQkI1
RkJFMjYwOTkxRDIwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDI5RUNDQTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJlZnJl
c2hNb25pdG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZCQjVGQ0MyNjBFOUUwNzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNzkwRjQzMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQzMTYwOTExMkIwMjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzA0MDI4MzI0OUE3QTYyMDBBOTBEOEQgLyogRGlzdGFuY2VNb2RlbFR5
cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBiMjdmZDM2MDEyNDA5OTYzNTUwNGY1MjcxODgwNjU4N2MzODVhNTFjLi42ZWVlZDFmNDIw
MmZiOTIyMDIyNWNjNGE3MzRkZWJmNjdhMDY4MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBk
aXNwbGF5TGlua0ZpcmVkKGNvbnN0IERpc3BsYXlVcGRhdGUmKSBmaW5hbCB7IH0KICAgICBib29s
IHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZv
aWQgc3RvcCgpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcAppbmRleCBkZTg2NWJkMWNjMDIwNDdk
OTBiZWNjMDIwYmVlYmE3ODgyMDhmMzAxLi41YzJjNDA4OWM1OGZiOWIyY2U4NGMwOTM2MzNmZTAy
ZGM4NmFmMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
bmltYXRpb25GcmFtZVJhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCmlu
ZGV4IDFiYWY4N2VkNjUyMzk1ZjYzMDU3OWJhN2FmZTkwMmU4MDBiOWI2YmIuLmI0MWJjNGU5OWQy
NzkzNTM0MjE0N2JkODg5YzRjMDE5YmZlY2EzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oCkBAIC0yNiw4ICsyNiwx
MiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVh
bTsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw2ICs1OCw2IEBAIFdFQkNPUkVf
RVhQT1JUIEZyYW1lc1BlclNlY29uZCBmcmFtZXNQZXJTZWNvbmROZWFyZXN0RnVsbFNwZWVkKEZy
YW1lc1BlclNlY29uZCk7CiBXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50
ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiwgT3B0aW9uYWw8RnJhbWVz
UGVyU2Vjb25kPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKIFdFQkNPUkVfRVhQT1JUIEZyYW1l
c1BlclNlY29uZCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmRGcm9tSW50ZXJ2YWwoU2Vjb25kcyk7
CiAKLVdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNv
bnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiYpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IE9wdGlvblNldDxU
aHJvdHRsaW5nUmVhc29uPiYpOwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcAppbmRleCBiOGVlMmM5OWJjYzcwYTc5MTFkOTgwYTBhYmE0YzU0Nzk3MGViN2I3
Li44M2ZmM2QzNjEzMzE1Mjc2ZjYyOWRiNDFlNTQyMDdiN2E0YmI4M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
ZmlyZWRBbmRSZWFjaGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKQogICAgIHJldHVybiBtX3Vu
c2NoZWR1bGVkRmlyZUNvdW50ID4gbV9tYXhVbnNjaGVkdWxlZEZpcmVDb3VudDsKIH0KIAotdm9p
ZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoKQordm9pZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlz
cGxheVVwZGF0ZSkKIHsKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9s
b2NrKTsKQEAgLTE0NiwxOSArMTQ2LDIyIEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpk
aXNwbGF5TGlua0ZpcmVkKCkKICAgICAgICAgc2V0SXNTY2hlZHVsZWQoZmFsc2UpOwogICAgICAg
ICBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKICAgICB9Ci0gICAgZGlzcGF0Y2hEaXNw
bGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goZGlzcGxheVVw
ZGF0ZSk7CiB9CiAKLXZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlE
aWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAgIGRpc3Bs
YXlEaWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwogfQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6ZGlzcGxheURpZFJlZnJlc2goKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRp
c3BsYXlEaWRSZWZyZXNoKGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIFVOVVNFRF9QQVJBTShkaXNwbGF5VXBk
YXRlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaCBmb3IgZGlzcGxheSAiIDw8IGRpc3Bs
YXlJRCgpIDw8ICIgdXBkYXRlICIgPDwgZGlzcGxheVVwZGF0ZSk7CisKICAgICAvLyBUaGUgY2Fs
bCBiYWNrIGNhbiBjYXVzZSBhbGwgb3VyIGNsaWVudHMgdG8gYmUgdW5yZWdpc3RlcmVkLCBzbyB3
ZSBuZWVkIHRvIHByb3RlY3QKICAgICAvLyBhZ2FpbnN0IGRlbGV0aW9uIHVudGlsIHRoZSBlbmQg
b2YgdGhlIG1ldGhvZC4KICAgICBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKaW5kZXggNWU2NTZkNzAyYmQyZDNhYzBhZjAzN2M1
YjJlZmViNWYwMGFkOGQzMi4uMjVhMTNmOTJlNDk0Y2RjZjMzODc2YTk5YTUzYzM3OGU4MTM0Mjc2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQW5pbWF0aW9uRnJhbWVSYXRlLmgiCisjaW5jbHVkZSAiRGlzcGxheVVwZGF0ZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNjEsMTIgKzYyLDEyIEBAIHB1YmxpYzoKICAgICBQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsg
fQogCiAgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURlZmF1
bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYpOwog
CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYp
OwogCiAgICAgTG9jayYgbG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQogICAgIHZvaWQgc2V0TWF4
VW5zY2hlZHVsZWRGaXJlQ291bnQodW5zaWduZWQgY291bnQpIHsgbV9tYXhVbnNjaGVkdWxlZEZp
cmVDb3VudCA9IGNvdW50OyB9CkBAIC04MSw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGlzUHJldmlvdXNGcmFtZURvbmUoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzRnJhbWVEb25l
OyB9CiAgICAgdm9pZCBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGJvb2wgZG9uZSkgeyBtX3ByZXZp
b3VzRnJhbWVEb25lID0gZG9uZTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwbGF5
RGlkUmVmcmVzaCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2go
Y29uc3QgRGlzcGxheVVwZGF0ZSYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgZmlyZWRBbmRSZWFj
aGVkTWF4VW5zY2hlZHVsZWRGaXJlQ291bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5jcHAKaW5kZXggMmMzOTdiOTk4ZmJmMWU2NWZlOWJkMWYxMmQ4MzMzZWY3YmNiZDRlYi4uZDk1
ZWNhNzRjMjBjYTA2Y2VhYWRiNjFhNzU3NDZjZDE0M2NkZTA3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlci5jcHAKQEAgLTEwOCwxMSArMTA4LDExIEBAIHZvaWQgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFuYWdlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
IGRpc3BsCiAgICAgICAgIHNjaGVkdWxlQW5pbWF0aW9uKGNsaWVudCk7CiB9CiAKLXZvaWQgRGlz
cGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlEKQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpkaXNw
bGF5V2FzVXBkYXRlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlV
cGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgYXV0byogbW9uaXRvciA9IG1vbml0b3JGb3JE
aXNwbGF5SUQoZGlzcGxheUlEKTsKICAgICBpZiAobW9uaXRvcikKLSAgICAgICAgbW9uaXRvci0+
ZGlzcGxheUxpbmtGaXJlZCgpOworICAgICAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKGRp
c3BsYXlVcGRhdGUpOwogfQogCiBzaXplX3QgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6
ZmluZE1vbml0b3JGb3JEaXNwbGF5SUQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCmluZGV4IDBhZTBmYTA5ZmIwNjZlZjllMDc0
ODZiZDQ3Mzc5ZWZhMjY0ODRmMTAuLmVlODkxMjkwMzQyNTM3NTFkZGU3MmI2YWFlMmQ0NWU2M2E3
ZWNhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgKQEAgLTM0LDYgKzM0LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRGlzcGxheVVwZGF0ZTsKKwogY2xhc3Mg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlciB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI+OwogICAgIGZyaWVuZCBjbGFzcyBE
aXNwbGF5UmVmcmVzaE1vbml0b3I7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNjaGVkdWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCYpOwogICAgIHZv
aWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheVdhc1Vw
ZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxh
eVdhc1VwZGF0ZWQoUGxhdGZvcm1EaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmKTsKIAog
cHJpdmF0ZToKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5VXBkYXRlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZGZkMjM0ZGM4OTA2NGViNTQ4MjM1ZWJjZmRkNjgwN2NmYzViYzNhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVVwZGF0ZS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3Bs
YXlVcGRhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEaXNwbGF5VXBkYXRlJiB1cGRhdGUpCit7CisgICAgdHMgPDwgdXBkYXRlLnVwZGF0ZUlu
ZGV4IDw8ICIvIiA8PCB1cGRhdGUudXBkYXRlc1BlclNlY29uZDsKKyAgICByZXR1cm4gdHM7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlVcGRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ1ZWQ2ODBhN2IxNTQ0ZWEy
NTE1MzM4ZDMzMGZmM2Q1OWEzNDgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVVwZGF0ZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFuaW1hdGlvbkZyYW1lUmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworLy8gVXNlZCB0byByZXByZXNlbnQgYSBnaXZlbiB1cGRhdGUuIEFuIHZhbHVl
IG9mIHsgMywgNjAgfSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIHRoZSB0aGlyZCB1cGRhdGUgaW4g
YSAxLXNlY29uZCBpbnRlcnZhbAorLy8gb24gYSA2MGZwcyBjYWRlbmNlLiB1cGRhdGVJbmRleCB3
aWxsIHJlc2V0IHRvIHplcm8gZXZlcnkgc2Vjb25kLCBzbyB7IDU5LCA2MCB9IGlzIGZvbGxvd2Vk
IGJ5IHsgMCwgNjAgfS4KK3N0cnVjdCBEaXNwbGF5VXBkYXRlIHsKKyAgICB1bnNpZ25lZCB1cGRh
dGVJbmRleCB7IDAgfTsKKyAgICBGcmFtZXNQZXJTZWNvbmQgdXBkYXRlc1BlclNlY29uZCB7IDAg
fTsKKyAgICAKKyAgICB2b2lkIGRpZFVwZGF0ZSgpCisgICAgeworICAgICAgICB1cGRhdGVJbmRl
eCA9ICh1cGRhdGVJbmRleCArIDEpICUgdXBkYXRlc1BlclNlY29uZDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPERpc3BsYXlVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEaXNw
bGF5VXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHVwZGF0ZUluZGV4OworICAgIGVuY29kZXIgPDwgdXBkYXRlc1BlclNlY29uZDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPERpc3BsYXlVcGRhdGU+IERpc3BsYXlV
cGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVk
PiB1cGRhdGVJbmRleDsKKyAgICBkZWNvZGVyID4+IHVwZGF0ZUluZGV4OworICAgIGlmICghdXBk
YXRlSW5kZXgpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxG
cmFtZXNQZXJTZWNvbmQ+IHVwZGF0ZXNQZXJTZWNvbmQ7CisgICAgZGVjb2RlciA+PiB1cGRhdGVz
UGVyU2Vjb25kOworICAgIGlmICghdXBkYXRlc1BlclNlY29uZCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqdXBkYXRlSW5kZXgsICp1cGRhdGVzUGVyU2Vj
b25kIH19OworfQorCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgRGlzcGxheVVwZGF0ZSYpOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCmluZGV4IDhmNjkwOWNk
MGQzZjRmMWE4ODEwZWZhZWQzNWI1NDFiOGE4YTkzMzMuLmE1N2VhMGQxYWNjNDE3ZWUzMGJjNjcy
N2RmOGE1MTU1YTQ3ZDMwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuY3BwCkBA
IC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3RleHByIEZyYW1l
c1BlclNlY29uZCBEZWZhdWx0RnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIERpc3BsYXlSZWZyZXNo
TW9uaXRvckd0azo6RGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKICAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCiB7CkBAIC00
NSw3ICs0NywxMyBAQCBEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGs6On5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKQogCiBzdGF0aWMgdm9pZCBvbkZyYW1lQ2xvY2tVcGRhdGUoR2RrRnJhbWVDbG9j
ayosIERpc3BsYXlSZWZyZXNoTW9uaXRvckd0ayogbW9uaXRvcikKIHsKLSAgICBtb25pdG9yLT5k
aXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVk
KCk7Cit9CisKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrOjpkaXNwbGF5TGlua0NhbGxi
YWNrRmlyZWQoKQoreworICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAg
ICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CiB9CiAKIHZvaWQgRGlzcGxheVJlZnJlc2hN
b25pdG9yR3RrOjpzdG9wKCkKQEAgLTgxLDYgKzg5LDkgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGs6OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKICAgICBBU1NFUlQoZnJhbWVD
bG9jayk7CiAgICAgZ2RrX2ZyYW1lX2Nsb2NrX2JlZ2luX3VwZGF0aW5nKGZyYW1lQ2xvY2spOwog
CisgICAgLy8gRklYTUU6IFVzZSBnZGtfZnJhbWVfY2xvY2tfZ2V0X3JlZnJlc2hfaW5mbyB0byBn
ZXQgdGhlIGNvcnJlY3QgZnJhbWUgcmF0ZS4KKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIERl
ZmF1bHRGcmFtZXNQZXJTZWNvbmQgfTsKKwogICAgIG1fY2xvY2tJc0FjdGl2ZSA9IHRydWU7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmgKaW5kZXggOTFk
ZmZjMWUwMzNjMGM4NjJkMTgwMGYwNmQ4NTM1YmE1NWI5ZjM0ZC4uMzJlMjZmYzM2YmEwZmE4N2U1
ODQ4YzA5ZjVhZjUzZDkwZGU0NWZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9EaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaApA
QCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5EaXNwbGF5UmVmcmVzaE1v
bml0b3JHdGsoKTsKIAorICAgIHZvaWQgZGlzcGxheUxpbmtDYWxsYmFja0ZpcmVkKCk7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrKFBsYXRmb3JtRGlz
cGxheUlEKTsKIApAQCAtNTAsNiArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogCiAgICAgR3RrV2lkZ2V0KiBtX3dpbmRvdyB7IG51
bGxwdHIgfTsKKyAgICBEaXNwbGF5VXBkYXRlIG1fY3VycmVudFVwZGF0ZTsKICAgICBib29sIG1f
Y2xvY2tJc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9T
LmgKaW5kZXggMTA1MDhlODkwZDUwMDQwMWE3Y2EzMGYxNDQzZWMxMzA3MWQ0NDY4Yi4uMWY5MTMz
M2VhMTUwYjAxNGI4MGQ5MDkxNzhmZWNhOTI0ZjNmNzYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JJT1MuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKCk7CiAKKyAgICB2b2lkIGRpc3BsYXlMaW5rQ2FsbGJh
Y2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKQEAgLTUxLDYgKzUzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKIAogICAgIFJldGFpblB0
cjxXZWJEaXNwbGF5TGlua0hhbmRsZXI+IG1faGFuZGxlcjsKKyAgICBEaXNwbGF5VXBkYXRlIG1f
Y3VycmVudFVwZGF0ZTsKICAgICBib29sIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSB7IGZhbHNlIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbQppbmRleCBjZGMxNmZjNDZkZDg3
MzNhMTYwOGY3NjhlNTljNTBhYjJhNzljN2RhLi42YjVmMjUwZGFkY2IxODk4NDFjNGQ0ODdjNjc3
N2ZkOWRjYWY4YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkRpc3BsYXlV
cGRhdGUuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQuaCIK
ICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FEaXNwbGF5TGluay5oPgpAQCAtMzYsNiArMzcsOCBAQAog
CiB1c2luZyBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M7CiAKK2NvbnN0ZXhwciBX
ZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQgPSA2MDsK
KwogQGludGVyZmFjZSBXZWJEaXNwbGF5TGlua0hhbmRsZXIgOiBOU09iamVjdAogewogICAgIERp
c3BsYXlSZWZyZXNoTW9uaXRvcklPUyogbV9tb25pdG9yOwpAQCAtNDMsNyArNDYsNiBAQCBAaW50
ZXJmYWNlIFdlYkRpc3BsYXlMaW5rSGFuZGxlciA6IE5TT2JqZWN0CiB9CiAKIC0gKGlkKWluaXRX
aXRoTW9uaXRvcjooRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TKiltb25pdG9yOwotLSAodm9pZClz
ZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJT
ZWNvbmQ7CiAtICh2b2lkKWhhbmRsZURpc3BsYXlMaW5rOihDQURpc3BsYXlMaW5rICopc2VuZGVy
OwogLSAodm9pZClzZXRQYXVzZWQ6KEJPT0wpcGF1c2VkOwogLSAodm9pZClpbnZhbGlkYXRlOwpA
QCAtNTksNyArNjEsNyBAQCAtIChpZClpbml0V2l0aE1vbml0b3I6KERpc3BsYXlSZWZyZXNoTW9u
aXRvcklPUyopbW9uaXRvcgogICAgICAgICAvLyBOb3RlIHRoYXQgQ0FEaXNwbGF5TGluayByZXRh
aW5zIGl0cyB0YXJnZXQgKHNlbGYpLCBzbyBhIGNhbGwgdG8gLWludmFsaWRhdGUgaXMgbmVlZGVk
IG9uIHRlYXJkb3duLgogICAgICAgICBtX2Rpc3BsYXlMaW5rID0gW0NBRGlzcGxheUxpbmsgZGlz
cGxheUxpbmtXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGhhbmRsZURpc3BsYXlM
aW5rOildOwogICAgICAgICBbbV9kaXNwbGF5TGluayBhZGRUb1J1bkxvb3A6V2ViVGhyZWFkTlNS
dW5Mb29wKCkgZm9yTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZV07Ci0gICAgICAgIG1fZGlzcGxh
eUxpbmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gNjA7CisgICAgICAgIG1fZGlzcGxheUxp
bmsucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gRGlzcGxheUxpbmtGcmFtZXNQZXJTZWNvbmQ7
CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNzAsMTYgKzcyLDEyIEBAIC0gKHZvaWQp
ZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9pZClzZXRQcmVmZXJyZWRG
cmFtZXNQZXJTZWNvbmQ6KE5TSW50ZWdlcilwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQKLXsKLSAg
ICBtX2Rpc3BsYXlMaW5rLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1l
c1BlclNlY29uZDsKLX0KLQogLSAodm9pZCloYW5kbGVEaXNwbGF5TGluazooQ0FEaXNwbGF5TGlu
ayAqKXNlbmRlcgogewogICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgCisg
ICAgbV9tb25pdG9yLT5kaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKTsKIH0KIAogLSAodm9pZClz
ZXRQYXVzZWQ6KEJPT0wpcGF1c2VkCkBAIC0xMTYsNiArMTE0LDEyIEBAIHZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TOjpzdG9wKCkKICAgICBtX2hhbmRsZXIgPSBuaWw7CiB9CiAKK3ZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpkaXNwbGF5TGlua0NhbGxiYWNrRmlyZWQoKQorewor
ICAgIGRpc3BsYXlMaW5rRmlyZWQobV9jdXJyZW50VXBkYXRlKTsKKyAgICBtX2N1cnJlbnRVcGRh
dGUuZGlkVXBkYXRlKCk7Cit9CisKIGJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpzdGFy
dE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpCiB7CiAgICAgaWYgKG1fZGlzcGxheUxpbmtJc0FjdGl2
ZSkKQEAgLTEyOCw3ICsxMzIsMTAgQEAgYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0
YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKIAogICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5
TGluaywgc3RyZWFtIDw8ICJEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OnN0YXJ0Tm90aWZpY2F0
aW9uTWVjaGFuaXNtIC0gc3RhcnRpbmcgV2ViRGlzcGxheUxpbmtIYW5kbGVyIik7CiAgICAgW21f
aGFuZGxlciBzZXRQYXVzZWQ6Tk9dOworCisgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBEaXNw
bGF5TGlua0ZyYW1lc1BlclNlY29uZCB9OwogICAgIG1fZGlzcGxheUxpbmtJc0FjdGl2ZSA9IHRy
dWU7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcAppbmRleCBjNzQ1ODAwNjFlYzEzMWY2YTA3Njc5ZTY4Y2ZkN2IxNzY2
NTMwOWQyLi42YmNjZjk3NTYyNmQ1OGJjMDg0ODI5YjRjMDJkYzNjZmU2OWE2ZDczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtNjEsMTggKzYxLDMw
IEBAIHZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdG9wKCkKIHN0YXRpYyBD
VlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGlt
ZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdz
Kiwgdm9pZCogZGF0YSkKIHsKICAgICBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqIG1v
bml0b3IgPSBzdGF0aWNfY2FzdDxMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqPihkYXRh
KTsKLSAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAgbW9uaXRvci0+ZGlzcGxh
eUxpbmtDYWxsYmFja0ZpcmVkKCk7CiAgICAgcmV0dXJuIGtDVlJldHVyblN1Y2Nlc3M7CiB9CiAK
LXZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwYXRjaERpc3BsYXlEaWRS
ZWZyZXNoKCkKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlu
a0NhbGxiYWNrRmlyZWQoKQogewotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgZGlzcGxheUxpbmtGaXJlZCht
X2N1cnJlbnRVcGRhdGUpOworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKK30KKwor
dm9pZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BhdGNoRGlzcGxheURpZFJl
ZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVwZGF0ZSkKK3sKKyAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIGRpc3BsYXlVcGRhdGUsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0gewogICAgICAgICBpZiAobV9kaXNwbGF5TGluaykKLSAgICAgICAgICAg
IGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChkaXNw
bGF5VXBkYXRlKTsKICAgICB9KTsKIH0KIAorV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6bm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNw
bGF5TGluayhDVkRpc3BsYXlMaW5rUmVmIGRpc3BsYXlMaW5rKQoreworICAgIENWVGltZSByZWZy
ZXNoUGVyaW9kID0gQ1ZEaXNwbGF5TGlua0dldE5vbWluYWxPdXRwdXRWaWRlb1JlZnJlc2hQZXJp
b2QoZGlzcGxheUxpbmspOworICAgIHJldHVybiByb3VuZCgoZG91YmxlKXJlZnJlc2hQZXJpb2Qu
dGltZVNjYWxlIC8gKGRvdWJsZSlyZWZyZXNoUGVyaW9kLnRpbWVWYWx1ZSk7Cit9CisKIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiB7CiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rKSB7CkBAIC04Myw2ICs5NSw4IEBAIGJvb2wg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlz
bSgpCiAgICAgICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1NldE91dHB1dENhbGxiYWNrKG1fZGlz
cGxheUxpbmssIGRpc3BsYXlMaW5rQ2FsbGJhY2ssIHRoaXMpOwogICAgICAgICBpZiAoZXJyb3Ip
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0g
eyAwLCBub21pbmFsRnJhbWVzUGVyU2Vjb25kRnJvbURpc3BsYXlMaW5rKG1fZGlzcGxheUxpbmsp
IH07CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpIHsKQEAgLTkzLDYg
KzEwNyw3IEBAIGJvb2wgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlm
aWNhdGlvbk1lY2hhbmlzbSgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgPSB0cnVlOworICAgICAgICBtX2N1cnJlbnRV
cGRhdGUudXBkYXRlSW5kZXggPSAwOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDhhOGIyODBlNzY3YWI1YzFj
Y2VlYWRmNmFmYWFhY2FiZTgxNDI1MjIuLmQyNmIwMDg0MTE4MTk5MmZjZmQwYzZkZmIxZDE0YzZi
ZjRmZDQxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAg
LTQzLDE3ICs0MywyNSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+TGVnYWN5RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjKCk7CiAKKyAgICBjb25zdCBEaXNwbGF5VXBkYXRlJiBjdXJyZW50
VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VXBkYXRlOyB9CisKKyAgICB2b2lkIGRp
c3BsYXlMaW5rQ2FsbGJhY2tGaXJlZCgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IExlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICB2b2lk
IGRpc3BhdGNoRGlzcGxheURpZFJlZnJlc2goKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlz
cGxheURpZFJlZnJlc2goY29uc3QgRGlzcGxheVVwZGF0ZSYpIGZpbmFsOwogCiAgICAgdm9pZCBz
dG9wKCkgZmluYWw7CiAKICAgICBib29sIHN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmlu
YWw7CiAgICAgdm9pZCBzdG9wTm90aWZpY2F0aW9uTWVjaGFuaXNtKCkgZmluYWw7CiAKKyAgICBz
dGF0aWMgRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmRGcm9tRGlzcGxheUxp
bmsoQ1ZEaXNwbGF5TGlua1JlZik7CisKICAgICBDVkRpc3BsYXlMaW5rUmVmIG1fZGlzcGxheUxp
bmsgeyBudWxscHRyIH07CisgICAgCisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7
CiAgICAgYm9vbCBtX2Rpc3BsYXlMaW5rSXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlz
cGxheVJlZnJlc2hNb25pdG9yV2luLmNwcAppbmRleCAzYTIwYTYzNzZhNDkxMWNkYzdlOTg5ZWY4
MGQ2NWFkNzZiOGQ2MTY1Li44YjkxM2JjMzM0ZGQwODMxOTJmZTcyNzI5M2JmODk2NGM1ZDg5MTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxh
eVJlZnJlc2hNb25pdG9yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRGlzcGxheVJlZnJlc2hNb25pdG9yV2luLmNwcApAQCAtMjgsNiArMjgsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhwciBGcmFtZXNQZXJTZWNvbmQgRGVmYXVs
dEZyYW1lc1BlclNlY29uZCA9IDYwOworCiBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yV2lu
PiBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJlc2hNb25pdG9y
V2luKGRpc3BsYXlJRCkpOwpAQCAtMzUsOCArMzcsMTUgQEAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcldpbj4gRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpjcmVhdGUoUGxhdGZvcm1EaXNw
bGEKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yV2luOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW4o
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9y
KGRpc3BsYXlJRCkKLSAgICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5TGlua0ZpcmVkKQorICAgICwgbV90aW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmRpc3BsYXlMaW5rQ2Fs
bGJhY2tGaXJlZCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIERlZmF1bHRGcmFtZXNQZXJT
ZWNvbmQgfSkKK3sKK30KKwordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JXaW46OmRpc3BsYXlM
aW5rQ2FsbGJhY2tGaXJlZCgpCiB7CisgICAgZGlzcGxheUxpbmtGaXJlZChtX2N1cnJlbnRVcGRh
dGUpOworICAgIG1fY3VycmVudFVwZGF0ZS5kaWRVcGRhdGUoKTsKIH0KIAogYm9vbCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JXaW46OnN0YXJ0Tm90aWZpY2F0aW9uTWVjaGFuaXNtKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5UmVmcmVzaE1v
bml0b3JXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXNwbGF5
UmVmcmVzaE1vbml0b3JXaW4uaAppbmRleCBlZmU1NzZlMmY0YzQyMGY4OGViNmVkODY1Y2FmNmY4
YjEwZmIxYjYxLi4xNjA5MjBmYTZhZGM4NGRkN2NiOWNiNzRjOGUxNTZmMWM2YzRmNzIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlzcGxheVJlZnJl
c2hNb25pdG9yV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvcldpbi5oCkBAIC0zOSw4ICszOSwxMSBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOwogICAgIHZvaWQg
c3RvcE5vdGlmaWNhdGlvbk1lY2hhbmlzbSgpIGZpbmFsOworICAgIAorICAgIHZvaWQgZGlzcGxh
eUxpbmtDYWxsYmFja0ZpcmVkKCk7CiAKICAgICBSdW5Mb29wOjpUaW1lcjxEaXNwbGF5UmVmcmVz
aE1vbml0b3JXaW4+IG1fdGltZXI7CisgICAgRGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERp
c3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRv
ci5jcHAKaW5kZXggOGMyYTcwODQwMmMwZjM5OWU2Nzc1Zjg2NGE4YWQyMGM3YThmNzg4My4uNjll
ZDc1ZGI4MDJkYjk2NTg1MWMwNTNjM2FhNzk4NDg0YTUzMjQ5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmNwcApAQCAtMzcsMTAgKzM3LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCisvLyBGSVhNRTogVXNlIHRoZSBjb3JyZWN0IGZyYW1lIHJhdGUuCitjb25zdGV4cHIgV2Vi
Q29yZTo6RnJhbWVzUGVyU2Vjb25kIERlZmF1bHRGcmFtZXNQZXJTZWNvbmQgPSA2MDsKKwogVGhy
ZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3I6OlRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9y
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgQ2xpZW50JiBjbGllbnQpCiAg
ICAgOiBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQogICAgICwgbV9k
aXNwbGF5UmVmcmVzaFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRocmVhZGVkRGlzcGxh
eVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5UmVmcmVzaENhbGxiYWNrKQogICAgICwgbV9jbGllbnQo
JmNsaWVudCkKKyAgICAsIG1fY3VycmVudFVwZGF0ZSh7IDAsIERlZmF1bHRGcmFtZXNQZXJTZWNv
bmQgfSkKIHsKICNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQogICAgIG1fZGlzcGxheVJlZnJlc2hU
aW1lci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OkRpc3BsYXlSZWZyZXNoTW9u
aXRvclRpbWVyKTsKQEAgLTkwLDggKzk0LDEwIEBAIHZvaWQgVGhyZWFkZWREaXNwbGF5UmVmcmVz
aE1vbml0b3I6OmludmFsaWRhdGUoKQogICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxv
Y2soKSk7CiAgICAgICAgIHdhc1NjaGVkdWxlZCA9IGlzU2NoZWR1bGVkKCk7CiAgICAgfQotICAg
IGlmICh3YXNTY2hlZHVsZWQpCi0gICAgICAgIGRpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgaWYg
KHdhc1NjaGVkdWxlZCkgeworICAgICAgICBkaXNwbGF5RGlkUmVmcmVzaChtX2N1cnJlbnRVcGRh
dGUpOworICAgICAgICBtX2N1cnJlbnRVcGRhdGUuZGlkVXBkYXRlKCk7CisgICAgfQogICAgIG1f
Y2xpZW50ID0gbnVsbHB0cjsKIH0KIApAQCAtMTA2LDggKzExMiwxMCBAQCB2b2lkIFRocmVhZGVk
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5UmVmcmVzaENhbGxiYWNrKCkKICAgICAgICAg
ICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogICAgIH0KIAotICAgIGlmIChzaG91
bGRIYW5kbGVEaXNwbGF5UmVmcmVzaE5vdGlmaWNhdGlvbikKLSAgICAgICAgZGlzcGxheURpZFJl
ZnJlc2goKTsKKyAgICBpZiAoc2hvdWxkSGFuZGxlRGlzcGxheVJlZnJlc2hOb3RpZmljYXRpb24p
IHsKKyAgICAgICAgZGlzcGxheURpZFJlZnJlc2gobV9jdXJyZW50VXBkYXRlKTsKKyAgICAgICAg
bV9jdXJyZW50VXBkYXRlLmRpZFVwZGF0ZSgpOworICAgIH0KIAogICAgIC8vIFJldHJpZXZlIHRo
ZSBzY2hlZHVsZWQgc3RhdHVzIGZvciB0aGlzIERpc3BsYXlSZWZyZXNoTW9uaXRvci4KICAgICBi
b29sIGhhc0JlZW5SZXNjaGVkdWxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuaAppbmRleCBiNDlhOGIyZGJlZjA0OWE3ZTQ0MTNkMmU4MmRlOTUxZDI3N2NlNjM0Li5kYjI5
M2ZmZmM0YzFmM2NmNGFkMzIwYmEwODJhMDU3OWE3MmMzNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJl
YWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJl
c2hNb25pdG9yLmgKQEAgLTYzLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BsYXlS
ZWZyZXNoQ2FsbGJhY2soKTsKICAgICBSdW5Mb29wOjpUaW1lcjxUaHJlYWRlZERpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4gbV9kaXNwbGF5UmVmcmVzaFRpbWVyOwogICAgIENsaWVudCogbV9jbGllbnQ7
CisgICAgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9EaXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxp
bmsuY3BwCmluZGV4IGE0M2RmY2Q0NmQ1MWY0NDQ3ODJhZmQxNzdiYmFiNTFkMDI2YTY4ZGEuLjNk
MmJjNGUxMjM1ODkxNGU3MTU2NmZjOWE1NjY5OTZjODY5MWEzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcApAQCAtOTcsNiArOTcsOCBAQCB2b2lkIERp
c3BsYXlMaW5rOjphZGRPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERpc3Bs
YXlMaW5rT2JzZXJ2ZXJJRAogICAgICAgICBDVlJldHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtT
dGFydChtX2Rpc3BsYXlMaW5rKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCJDb3VsZCBub3Qgc3RhcnQgdGhlIGRpc3BsYXkgbGluazogJWQiLCBlcnJvcik7
CisKKyAgICAgICAgbV9jdXJyZW50VXBkYXRlID0geyAwLCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVz
UGVyU2Vjb25kIH07CiAgICAgfQogfQogCkBAIC0xNTIsMTIgKzE1NCwxNSBAQCB2b2lkIERpc3Bs
YXlMaW5rOjpub3RpZnlPYnNlcnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKCkKICAgICBtX2ZpcmVD
b3VudFdpdGhvdXRPYnNlcnZlcnMgPSAwOwogCiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDog
bV9vYnNlcnZlcnMua2V5cygpKSB7Ci0gICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlu
aywgc3RyZWFtIDw8ICJbVUkgXSBEaXNwbGF5TGluayBmb3IgZGlzcGxheSAiIDw8IG1fZGlzcGxh
eUlEIDw8ICIgc2VuZGluZyBmb3IgY29ubmVjdGlvbiAiIDw8IGNvbm5lY3Rpb24tPnVuaXF1ZUlE
KCkgPDwgIiBvbiBiYWNrZ3JvdW5kIHF1ZXVlICIgPDwgc2hvdWxkU2VuZElQQ09uQmFja2dyb3Vu
ZFF1ZXVlKTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwg
IltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiAoZGlz
cGxheSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIDw8ICIpIHVwZGF0
ZSAiIDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiIGNvbm5lY3Rpb24gIiA8PCBjb25uZWN0aW9uLT51
bmlxdWVJRCgpIDw8ICIgb24gYmFja2dyb3VuZCBxdWV1ZSAiIDw8IHNob3VsZFNlbmRJUENPbkJh
Y2tncm91bmRRdWV1ZSk7CisKICAgICAgICAgaWYgKHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRR
dWV1ZSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0
Y2hlcjo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCksIDApOworICAgICAgICAgICAg
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpEaXNwbGF5V2FzUmVm
cmVzaGVkKG1fZGlzcGxheUlELCBtX2N1cnJlbnRVcGRhdGUpLCAwKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlzcGxh
eVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCksIDApOworICAgICAgICAgICAgY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJ
RCwgbV9jdXJyZW50VXBkYXRlKSwgMCk7CiAgICAgfQorCisgICAgbV9jdXJyZW50VXBkYXRlLmRp
ZFVwZGF0ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggYWExYTBiN2IwNWY0NTJiYTUzZGM4ZDU2N2Zh
ZTU5ZTA5ZWUwZjczNy4uNTJjMzE5OWVmOGNkNjBmNDAyOGNlZDUwOGU4Yzc0MWMzOTgxODNkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlua09ic2VydmVySUQuaCIKICNpbmNsdWRlIDxDb3Jl
VmlkZW8vQ1ZEaXNwbGF5TGluay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJhbWVS
YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5VXBkYXRlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0xvY2suaD4KQEAgLTY5LDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJl
ZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0b3I8RGlzcGxheUxpbmtPYnNlcnZlcklEPj4gbV9v
YnNlcnZlcnM7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5SUQ7CiAg
ICAgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIG1fZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNv
bmQgeyAwIH07CisgICAgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSBtX2N1cnJlbnRVcGRhdGU7CiAg
ICAgdW5zaWduZWQgbV9maXJlQ291bnRXaXRob3V0T2JzZXJ2ZXJzIHsgMCB9OwogICAgIHN0YXRp
YyBib29sIHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRRdWV1ZTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA3
N2Q1ZjkzYzMxNjA1ZDBjZmRlMTdjZWQ4YTJkNzU1YjhmNjVlMGNjLi44NmY4ZjNkODEzYjY0MjFm
M2VkYTc3MmQxYTFkZDBjYTllNjE3YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogI2luY2x1
ZGUgIldlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlVcGRhdGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1doZWVsRXZlbnRU
ZXN0TW9uaXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0yODgsMTMgKzI4
OSwxMyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6bm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5
V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlECiB9CiAKICNpZiBIQVZFKENWRElTUExBWUxJ
TkspCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJl
c2hlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRp
c3BsYXlVcGRhdGUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgbm90
aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRpc3BsYXlJRCk7CiAKLSAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2Rpc3BsYXlJRF0oKSB7Ci0gICAgICAgIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5kaXNwbGF5V2FzVXBkYXRlZChk
aXNwbGF5SUQpOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbZGlzcGxheUlELCBkaXNw
bGF5VXBkYXRlXSgpIHsKKyAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxheVVwZGF0ZSk7
CiAgICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggNjcxYjI4ZGYzZTUxMGRlYTM1MDFkODAyOGI5
Nzg3MTg3NmE2NGEwZC4uYTEzMGQ0NDM1YzdjOWVjMDk3N2U5ZjE4MGFkODE2MmUzMjFiZWViMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citz
dHJ1Y3QgRGlzcGxheVVwZGF0ZTsKIGNsYXNzIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTsKIHVzaW5n
IFBsYXRmb3JtRGlzcGxheUlEID0gdWludDMyX3Q7CiB9CkBAIC0xMDcsNyArMTA4LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGlzcGxheVdhc1Jl
ZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CisgICAgdm9pZCBkaXNwbGF5V2Fz
UmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBXZWJDb3JlOjpEaXNw
bGF5VXBkYXRlJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluCmluZGV4IGNmNGY3NjY2NmNjNTM0MzFlOTliZWRlNWU4MjhhOGFh
ODdhMDNjYzguLjBiNWQyOTEyY2RhOTcxZjNlMTkxNWI4ZTJhZjBjNWY1MDA5ODEwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDYgQEAgbWVzc2FnZXMgLT4gRXZlbnRE
aXNwYXRjaGVyIHsKICAgICBHZXN0dXJlRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCBldmVudCkKICNlbmRpZgogI2lmIEhBVkUoQ1ZE
SVNQTEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCkK
KyAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgc3RydWN0IFdlYkNv
cmU6OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RGlzcGxheVJlZnJlc2hNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmgK
aW5kZXggNjg1NTUzODE4ZjRiYmZkZWMzZGMyNTkzOTMxMzU3ZjNkZDk5ZmFkOC4uYTRlYWU1Mjk5
N2UzYjUyNzE0MTg0ZWViODM1NzA1MjIyOTE5MzEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3Bs
YXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaApA
QCAtNTMsNiArNTMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcE5vdGlmaWNhdGlvbk1lY2hh
bmlzbSgpIGZpbmFsIHsgfQogCiAgICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YT4gbV9kcmF3aW5nQXJlYTsKKworICAgIFdlYkNvcmU6OkZyYW1lc1BlclNlY29uZCBtX3ByZWZl
cnJlZEZyYW1lc1BlclNlY29uZDsKKyAgICBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVu
dFVwZGF0ZTsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0
b3IubW0KaW5kZXggNzU5MmY1NjEwM2YyMGJjOWZiZTcxYWY1YjRkNDZiYTJjYzMzNzkwNy4uZGQ3
OTlkY2E0YWUzOWVjNGQ3OTA2OTEwMjY1YWRkN2NiYjljY2VlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yLm1tCkBAIC0zMiw5ICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAorY29uc3RleHByIEZyYW1lc1BlclNlY29uZCBEZWZhdWx0UHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kID0gNjA7CisKIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNo
TW9uaXRvcjo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlz
cGxheUlEIGRpc3BsYXlJRCwgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVh
KQogICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKICAgICAsIG1fZHJhd2lu
Z0FyZWEobWFrZVdlYWtQdHIoZHJhd2luZ0FyZWEpKQorICAgICwgbV9wcmVmZXJyZWRGcmFtZXNQ
ZXJTZWNvbmQoRGVmYXVsdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKKyAgICAsIG1fY3VycmVu
dFVwZGF0ZSh7IDAsIG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIH0pCiB7CiB9CiAKQEAgLTQ2
LDYgKzUwLDEyIEBAIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6flJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcigpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoRnJhbWVz
UGVyU2Vjb25kIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKIHsKKyAgICBpZiAocHJlZmVycmVk
RnJhbWVzUGVyU2Vjb25kID09IG1fcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3ByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1l
c1BlclNlY29uZDsKKyAgICBtX2N1cnJlbnRVcGRhdGUgPSB7IDAsIG1fcHJlZmVycmVkRnJhbWVz
UGVyU2Vjb25kIH07CisKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAgbV9kcmF3aW5n
QXJlYS0+c2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKHByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZCk7CiB9CkBAIC03Miw3ICs4Miw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJl
c2hNb25pdG9yOjpkaWRVcGRhdGVMYXllcnMoKQogICAgICAgICByZXR1cm47CiAKICAgICBzZXRJ
c1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKLSAgICBkaXNwbGF5RGlkUmVmcmVzaCgpOworICAg
IGRpc3BsYXlEaWRSZWZyZXNoKG1fY3VycmVudFVwZGF0ZSk7CisgICAgbV9jdXJyZW50VXBkYXRl
LmRpZFVwZGF0ZSgpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9u
aXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdp
bmdBcmVhKQpAQCAtODAsNCArOTEsNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcjo6dXBkYXRlRHJhd2luZ0FyZWEoUmVtb3RlTGF5ZXJUcmVlRHJhdwogICAgIG1f
ZHJhd2luZ0FyZWEgPSBtYWtlV2Vha1B0cihkcmF3aW5nQXJlYSk7CiB9CiAKLX0KK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAppbmRleCBmNGEy
NDdmNmU3NTQzZTg1Y2U0MGNhNzFjNDY4M2MyNGFkMTYxZGE5Li4wYjFhM2I3OTNhYzFlYTliM2Iz
ZjMxOGM5OTUyOTFmZDYxOWM5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNw
cApAQCAtNTYsMTIgKzU2LDEzIEBAIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6fkRpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYygpCiAgICAgQVNTRVJUKCFtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpOwog
fQogCi12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlkUmVm
cmVzaCgpCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGF0Y2hEaXNwbGF5RGlk
UmVmcmVzaChjb25zdCBEaXNwbGF5VXBkYXRlJiBkaXNwbGF5VXBkYXRlKQogeworICAgIC8vIEZJ
WE1FOiBUaGlzIHdpbGwgcGVydHVyYiBkaXNwbGF5VXBkYXRlLgogICAgIGlmICghbV9maXJzdENh
bGxiYWNrSW5DdXJyZW50UnVubG9vcCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKCk7CisgICAgRGlzcGxheVJl
ZnJlc2hNb25pdG9yOjpkaXNwYXRjaERpc3BsYXlEaWRSZWZyZXNoKGRpc3BsYXlVcGRhdGUpOwog
fQogCiBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RhcnROb3RpZmljYXRpb25NZWNo
YW5pc20oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmluZGV4IDJlNjVjNGMwMjhkNzI0
MGZmZTIzMWQ1MjExZTE5OGY1Y2JmZDNjYzEuLjk2MDRiODkwMzAzYjBhYWNlZGU1YTA2ZmVjNDI3
YTljMjFmYzA3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwogCi0gICAgdm9pZCBkaXNwYXRjaERp
c3BsYXlEaWRSZWZyZXNoKCkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlEaWRSZWZy
ZXNoKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUmKSBmaW5hbDsKIAogICAgIGJvb2wgc3Rh
cnROb3RpZmljYXRpb25NZWNoYW5pc20oKSBmaW5hbDsKICAgICB2b2lkIHN0b3BOb3RpZmljYXRp
b25NZWNoYW5pc20oKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA5Njg0MDgwNDQxZTA1N2M0NzNjZDJkMjcyZDhiMDhiMzIxZjQzZTc1Li5iMDY0ZjIy
N2NkNTJiNzUwZDZjM2FlNGMyZTRkMjA2ZGI2N2Y3MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xODk1LDExICsxODk1LDExIEBAIGJvb2wgV2ViUHJvY2Vz
czo6YXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBjb25zdAogfQogCiAjaWYgSEFWRShDVkRJU1BM
QVlMSU5LKQotdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRp
c3BsYXlJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBk
aXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBtX2V2ZW50RGlzcGF0Y2hlci0+bm90aWZ5U2Ny
b2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRpc3BsYXlJRCk7Ci0gICAgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNVcGRhdGVkKGRp
c3BsYXlJRCk7CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxheVVwZGF0ZSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDYzMWY3M2NmNDIy
MTNhYjhlOWE3MDUyOTI1NzIzZTk2Y2Q1ZGEwOC4uNjQ2ZTVlZDA4OTcxNjEzYWZiNDE1NDgwNzdm
ZTMxNDhiZDE4YWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05
NCw2ICs5NCw3IEBAIGNsYXNzIFVzZXJHZXN0dXJlVG9rZW47CiBlbnVtIGNsYXNzIEV2ZW50TWFr
ZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOwogCiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllcjsKK3N0cnVjdCBEaXNwbGF5VXBkYXRlOwogc3RydWN0IE1lc3NhZ2VQb3J0SWRlbnRpZmll
cjsKIHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKIHN0cnVjdCBNb2NrTWVkaWFEZXZp
Y2U7CkBAIC01MDcsNyArNTA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgSEFWRShDVkRJ
U1BMQVlMSU5LKQotICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5
SUQpOworICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQsIGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCAxMjJlNTQzYjJiYTg3YjgwYzRlZDYwNWIwZTQyMjNhNGQxN2ExMGQ2Li5hOTkyYTQ0NjM0
YzRlMTdmZWZjZGNiMzk0NjA2YWNmZDEwMzQ0MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTg4LDcgKzE4OCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAjZW5kaWYK
IAogI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQz
Ml90IGRpc3BsYXlJRCkKKyAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJ
RCwgc3RydWN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShNQUMpCg==
</data>
<flag name="review"
          id="444193"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>