<?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>235376</bug_id>
          
          <creation_ts>2022-01-19 12:48:30 -0800</creation_ts>
          <short_desc>[Cocoa] Accelerated filters are enabled by the wrong setting</short_desc>
          <delta_ts>2022-01-20 22:17:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=149424</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=73842</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=232831</see_also>
          <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>
          
          <blocked>231253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1832182</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-19 12:48:30 -0800</bug_when>
    <thetext>There has been a confusion about how CoreImage filters can be enabled. There are two settings/feature controls which have been used:

1. CoreImageAcceleratedFilterRenderEnabled
2. AcceleratedFiltersEnabled

The first was used to enable CoreImage filters which also requires to have accelerated filters. It is also linked with the mini-browser experimental feature &quot;CoreImage-Accelerated Filter Rendering&quot;. The use of it was mistakenly dropped in r286193 and AcceleratedFiltersEnabled has been used since then.

The second one was introduced by r102088 for the Chromium port back in 2011. There is nothing in WebKit enables this setting right now. And for Apple ports, I do not think there is any current plans for using IOSurfaces for software filters.

So I think to use the correct setting for enabling the CoreImage filters and to clean this area we need to do the following:

1. Delete the setting AcceleratedFiltersEnabled
2. Use CoreImageAcceleratedFilterRenderEnabled to enable CoreImage filters and to force using IOSurfaces for the intermediate filter images. This setting will be respected only if the filter chain can be rendered via CoreImage.
3. Fix the GTK unused parameter warning from FEColorMatrix::createApplier(), FEComponentTransfer::createApplier() and SourceGraphic::createApplier().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832190</commentid>
    <comment_count>1</comment_count>
      <attachid>449508</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-19 13:04:08 -0800</bug_when>
    <thetext>Created attachment 449508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832311</commentid>
    <comment_count>2</comment_count>
      <attachid>449539</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-19 18:11:39 -0800</bug_when>
    <thetext>Created attachment 449539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832381</commentid>
    <comment_count>3</comment_count>
      <attachid>449539</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-20 02:34:24 -0800</bug_when>
    <thetext>Comment on attachment 449539
Patch

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

&gt; Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:414
&gt;    webcoreOnChange: setNeedsRelayoutAllFrames

can we change the preference name to CoreImageAcceleratedFiltersEnabled or UseCoreImageForAcceleratedFilters? &quot;filter render&quot; is a weird term.

&gt; Source/WebCore/css/CSSFilterImageValue.cpp:118
&gt; +    auto renderingMode = renderer.page().acceleratedFilterRenderEnabled() ? RenderingMode::Accelerated : RenderingMode::Unaccelerated;

&quot;acceleratedFilterRender*ing*Enabled&quot; I think would read more correctly, but also it could be simplified as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832634</commentid>
    <comment_count>4</comment_count>
      <attachid>449626</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-20 17:24:05 -0800</bug_when>
    <thetext>Created attachment 449626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832640</commentid>
    <comment_count>5</comment_count>
      <attachid>449627</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-20 17:58:45 -0800</bug_when>
    <thetext>Created attachment 449627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832675</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-20 22:16:23 -0800</bug_when>
    <thetext>Committed r288352 (246258@main): &lt;https://commits.webkit.org/246258@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449627.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832676</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-20 22:17:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/87868182&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449508</attachid>
            <date>2022-01-19 13:04:08 -0800</date>
            <delta_ts>2022-01-20 17:23:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235376-20220119130407.patch</filename>
            <type>text/plain</type>
            <size>55655</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA5ZWRmYzI4YjZmZDUy
MTg5OGQ4YjdjMDRlZTY2ZmY3OTMzYzM5YS4uYzIxYWUyNDdkZDA3OThiNTM3YjY5NGFjOGQ3NmNl
MGZlYzc5YjhjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAyMi0wMS0xOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBDb3JlSW1hZ2UgZmls
dGVycyBhcmUgZW5hYmxlZCBieSB0aGUgd3Jvbmcgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1Mzc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIHRoZSBmb2xsb3dp
bmc6CisKKyAgICAgICAgMS4gRGVsZXRlIHRoZSBzZXR0aW5nIEFjY2VsZXJhdGVkRmlsdGVyc0Vu
YWJsZWQgc2luY2UgaXQgaGFzIG5vdCBiZWVuCisgICAgICAgICAgIGVuYWJsZWQgYnkgYW55IHBv
cnQuCisgICAgICAgIDIuIFVzZSBDb3JlSW1hZ2VBY2NlbGVyYXRlZEZpbHRlclJlbmRlckVuYWJs
ZWQgdG8gZW5hYmxlIENvcmVJbWFnZSAKKyAgICAgICAgICAgZmlsdGVycyBiZWNhdXNlIGl0IGlz
IGxpbmtlZCB0byB0aGUgZXhwZXJpbWVudGFsIGZlYXR1cmUgIkNvcmVJbWFnZS0KKyAgICAgICAg
ICAgQWNjZWxlcmF0ZWQgRmlsdGVyIFJlbmRlcmluZyIuCisgICAgICAgIDMuIEZpeCB0aGUgR1RL
IHBvcnQgdW51c2VkIHBhcmFtZXRlciB3YXJuaW5nIHdoaWNoIGNvbWVzIGZyb20gCisgICAgICAg
ICAgIEZFQ29sb3JNYXRyaXg6OmNyZWF0ZUFwcGxpZXIoKSwgRkVDb21wb25lbnRUcmFuc2Zlcjo6
Y3JlYXRlQXBwbGllcigpCisgICAgICAgICAgIGFuZCBTb3VyY2VHcmFwaGljOjpjcmVhdGVBcHBs
aWVyKCkuCisKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZSk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5kOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6Y3JlYXRlQXBwbGllciBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnJlc3VsdElzQWxwaGFJbWFnZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpzdXBwb3J0c0NvcmVJbWFnZVJl
bmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjcmVhdGVD
b3JlSW1hZ2VBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6
OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9y
TWF0cml4OjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlQ29yZUltYWdl
QXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb25l
bnRUcmFuc2Zlcjo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRUNvbXBvc2l0ZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGVBcHBsaWVyIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlz
cGxhY2VtZW50TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFj
ZW1lbnRNYXA6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGRURyb3BTaGFkb3c6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRURyb3BTaGFkb3c6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFRmxvb2Q6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGRUZsb29kOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZF
R2F1c3NpYW5CbHVyOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVMaWdodGluZzo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRU1lcmdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVNZXJnZTo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVN
b3JwaG9sb2d5OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVNb3JwaG9sb2d5OjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVPZmZzZXQ6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGRU9mZnNldDo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVGlsZTo6Y3Jl
YXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFVGlsZTo6Y3Jl
YXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVRpbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VHVyYnVsZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVR1cmJ1bGVuY2U6OmNyZWF0ZVNv
ZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRVR1cmJ1bGVuY2U6OmNy
ZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojpj
cmVhdGVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpjcmVhdGVD
b3JlSW1hZ2VBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpjcmVh
dGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6
OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhp
Yzo6Y3JlYXRlQ29yZUltYWdlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VHcmFwaGljOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlR3JhcGhpYzo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmg6CisgICAgICAgICog
cmVuZGVyaW5nL0NTU0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXI6OmNy
ZWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UpOgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVJbWFnZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZFSW1hZ2U6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpjcmVhdGUp
OgorCiAyMDIyLTAxLTE5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
TnVsbCBjaGVjayBtX3Byb2dyZXNzVHJhY2tlciBpbiBjbGVhclByb3Zpc2lvbmFsTG9hZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCmluZGV4IDZmYmZiNDRmNjRh
MzkyZmY3Njk3Y2JhYmNhMjFlMmQyYjg5NGYwM2QuLmE4ODgwNjFlMjI2NTFhNjE4NjdiMjM4MmMz
NWZjYmNkMGMyN2UyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJ
bWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5jcHAKQEAgLTExNSw4ICsxMTUsNyBAQCBSZWZQdHI8SW1hZ2U+IENTU0ZpbHRlckltYWdlVmFs
dWU6OmltYWdlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpegogICAgICAg
ICByZXR1cm4gJkltYWdlOjpudWxsSW1hZ2UoKTsKIAogICAgIC8vIFRyYW5zZm9ybSBJbWFnZSBp
bnRvIEltYWdlQnVmZmVyLgotICAgIC8vIEZJWE1FICgxNDk0MjQpOiBUaGlzIGJ1ZmZlciBzaG91
bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLgotICAgIGF1dG8gcmVuZGVy
aW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CisgICAgYXV0byByZW5kZXJp
bmdNb2RlID0gcmVuZGVyZXIuc2V0dGluZ3MoKS5jb3JlSW1hZ2VBY2NlbGVyYXRlZEZpbHRlclJl
bmRlckVuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZDsKICAgICBhdXRvIHNvdXJjZUltYWdlID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdDo6Tm8sIFJlbmRl
cmluZ1B1cnBvc2U6OkRPTSwgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVs
Rm9ybWF0OjpCR1JBOCwgcmVuZGVyZXIuaG9zdFdpbmRvdygpKTsKICAgICBpZiAoIXNvdXJjZUlt
YWdlKQogICAgICAgICByZXR1cm4gJkltYWdlOjpudWxsSW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbAppbmRleCAyYWU3MGNiMWRhODRlOGNhZDNlY2NjMGM5ZmZlZjQzNmY4ZTg5ZjYw
Li4yODFmODgwY2U3MGQ3OGZkMWRiMGFkNWVmOTJkMWE2Nzg3NTUxNGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCkBAIC0yOSwxMiArMjksNiBAQCBBY2NlbGVyYXRlZENvbXBvc2l0ZWRB
bmltYXRpb25zRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCi1B
Y2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkOgotICB0eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZToK
LSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogZmFsc2UKLQogQW5pbWF0ZWRJbWFnZURlYnVn
Q2FudmFzRHJhd2luZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5j
cHAKaW5kZXggNzZkZjhiMDhmNWNlMDhjMjhmZDIzZWFiZmU0MzA4MzNiYTI4OTY3Zi4uNDE4ZWMw
ZDcxMzI4YmRmOTFjNDVmMjI0NDQwNDdmMTgwMGQ0MDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCkBAIC01LDcgKzUs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jw
b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01
Miw3ICs1Miw3IEBAIGJvb2wgRkVCbGVuZDo6c2V0QmxlbmRNb2RlKEJsZW5kTW9kZSBtb2RlKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gRkVCbGVuZDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlx
dWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQmxlbmQ6OmNyZWF0ZVNvZnR3YXJlQXBwbGll
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUJs
ZW5kU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IDY0NDczMDFkNjc1MjdkZjRk
ZmRhN2VhZjIzNTQyYjE5NDJhYjM2Y2MuLjk3ZjBhOTQzNDE3MjFlNTBiY2ZhZjFhMWJmM2ZlZTlh
MDc2MGIzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oCkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZF
ZmZlY3RJbnB1dHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAyOyB9CiAgICAgCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmls
dGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFw
cGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBwbGF0Zm9ybUFwcGx5TkVPTih1bnNpZ25lZCBjaGFyKiBzcmNQaXhlbEFycmF5QSwgdW5zaWdu
ZWQgY2hhciogc3JjUGl4ZWxBcnJheUIsIHVuc2lnbmVkIGNoYXIqIGRzdFBpeGVsQXJyYXksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb2xvckFycmF5TGVuZ3RoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xv
ck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29sb3JNYXRyaXguY3BwCmluZGV4IDQ3NjFhYjg1Y2NkMjFlNzZhYjEwOWNmMTE2NTc1ODZiMjY5
ODYxMDEuLjVlZDhiZDU4ZmEzY2QyYTBlYmEzOTBlYjE1OTI5ZGE5MTQyMWZhNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bG9yTWF0cml4LmNwcApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHpl
IDxrcml0QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTk4LDI2ICs5OCwy
NSBAQCBWZWN0b3I8ZmxvYXQ+IEZFQ29sb3JNYXRyaXg6Om5vcm1hbGl6ZWRGbG9hdHMoY29uc3Qg
VmVjdG9yPGZsb2F0PiYgdmFsdWVzKQogICAgIHJldHVybiBub3JtYWxpemVkVmFsdWVzOwogfQog
Citib29sIEZFQ29sb3JNYXRyaXg6OnJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFn
ZVZlY3RvciYpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHlwZSA9PSBGRUNPTE9STUFUUklYX1RZ
UEVfTFVNSU5BTkNFVE9BTFBIQTsKK30KKwogI2lmIFVTRShDT1JFX0lNQUdFKQogYm9vbCBGRUNv
bG9yTWF0cml4OjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIEZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRl
cmluZygqdGhpcyk7CiB9Ci0jZW5kaWYKIAotYm9vbCBGRUNvbG9yTWF0cml4OjpyZXN1bHRJc0Fs
cGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29sb3JNYXRyaXg6OmNyZWF0ZUNvcmVJbWFnZUFwcGxp
ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGUgPT0gRkVDT0xPUk1BVFJJWF9UWVBFX0xV
TUlOQU5DRVRPQUxQSEE7CisgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxG
RUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllcj4oKnRoaXMpOwogfQorI2VuZGlmCiAKLXN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbG9yTWF0cml4OjpjcmVhdGVBcHBs
aWVyKGNvbnN0IEZpbHRlciYgZmlsdGVyKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdEFwcGxpZXI+IEZFQ29sb3JNYXRyaXg6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0
CiB7Ci0jaWYgVVNFKENPUkVfSU1BR0UpCi0gICAgaWYgKGZpbHRlci5yZW5kZXJpbmdNb2RlKCkg
PT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgIHJldHVybiBGaWx0ZXJFZmZl
Y3RBcHBsaWVyOjpjcmVhdGU8RkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXI+KCp0aGlzKTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZpbHRlcik7Ci0jZW5kaWYKICAgICByZXR1cm4gRmls
dGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFQ29sb3JNYXRyaXhTb2Z0d2FyZUFwcGxpZXI+KCp0
aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbG9yTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAppbmRleCA0NDRlNTdhODZmMjYyODMzNDkyY2JlNmU3
ZjJlZTAwMjliMzBlM2MzLi43NTEzMTY0NDQ1ZTUwYjc0YjAzMzQyYmRjNzNmZjM3M2M0Yzc5NTgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29sb3JNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29sb3JNYXRyaXguaApAQCAtNTUsMTMgKzU1LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgRkVDb2xvck1hdHJpeChDb2xvck1hdHJpeFR5cGUsIFZlY3RvcjxmbG9hdD4mJik7CiAK
KyAgICBib29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5w
dXRzKSBjb25zdCBvdmVycmlkZTsKKwogI2lmIFVTRShDT1JFX0lNQUdFKQogICAgIGJvb2wgc3Vw
cG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQ29yZUltYWdlQXBwbGllcigpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCi0gICAgYm9vbCByZXN1bHRJc0FscGhhSW1hZ2UoY29u
c3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0
ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6
OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmls
dGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRy
YW5zZmVyLmNwcAppbmRleCAxM2YxZTdlMTYyMzVmNzM0MjYzMzdjMGE1YmM5NGZjNGMzOWUyZGYx
Li5lYWI3YzQwY2I0YmIwMjU0ZjA2OTM2NjdmYmFkMzUyZDU1M2U2NmQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBE
aXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNTQsMTYgKzU0LDE1IEBAIGJvb2wgRkVDb21wb25lbnRUcmFuc2Zlcjo6
c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBGRUNvbXBv
bmVudFRyYW5zZmVyQ29yZUltYWdlQXBwbGllcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmco
KnRoaXMpOwogfQotI2VuZGlmCiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYgZmlsdGVy
KSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29tcG9uZW50
VHJhbnNmZXI6OmNyZWF0ZUNvcmVJbWFnZUFwcGxpZXIoKSBjb25zdAogewotI2lmIFVTRShDT1JF
X0lNQUdFKQotICAgIGlmIChmaWx0ZXIucmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRl
PEZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyPigqdGhpcyk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShmaWx0ZXIpOworICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpj
cmVhdGU8RkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXI+KCp0aGlzKTsKK30KICNl
bmRpZgorCitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb21wb25lbnRU
cmFuc2Zlcjo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKK3sKICAgICByZXR1cm4gRmls
dGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFQ29tcG9uZW50VHJhbnNmZXJTb2Z0d2FyZUFwcGxp
ZXI+KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAppbmRleCA5MjViZGYy
MjUxZDI2ZmM5MGY3OTE4MmU0NDU2YTk1MGEzYWMxZTEzLi5iYTQ0ZTgyNTY1ZWY1NWZkOGUxMTM1
NzBkZTk5ODI5NTUwYzg1N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaApAQCAtNjgs
OSArNjgsMTAgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShDT1JFX0lNQUdFKQogICAgIGJvb2wgc3Vw
cG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQ29yZUltYWdlQXBwbGllcigpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IDdkY2E2OTUyMzI1ZTVlNjIwOGU2NWUzZjk2
MjQ4Zjg2ZmZlNWUyYWMuLjRjM2I2NzA4ZTU3ZjgyNDRhYzIyYWJkMzRiZDUyZThhNDU0ZDEwMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb3NpdGUuY3BwCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA1
IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGly
ayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTEwNiw3ICsxMDYsNyBAQCBGbG9hdFJlY3QgRkVDb21wb3NpdGU6OmNhbGN1
bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1hZwogICAg
IH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29tcG9zaXRl
OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gRkVDb21wb3NpdGU6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUNvbXBvc2l0
ZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IGMzMDk2ZWZmZTNj
Mjc5ZjIxMjFlYjEyNWVjMDllMDAxNmI2NWNlODcuLjE5YjY4ZjRhZTlkMjA3NDBiNzcyNmMwODAx
YzFmNDlhYjdjMWIzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQu
b3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIHJlc3VsdElzVmFsaWRQcmVtdWx0aXBsaWVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV90eXBlICE9IEZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVUSUM7IH0KIAotICAg
IHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0
IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZl
Y3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVN
YXRyaXguY3BwCmluZGV4IDFkMjc0ODM1MzFjYjEwZDEyNjdmMWM0Mjc3MDcxNjIxODQ4NTE1MWYu
LmU2MWFjOGY5NTdiNDI3YTA2ODBmZTUzY2IzNDcxMmIyMWE0YzNmYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZv
bHZlTWF0cml4LmNwcApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmlj
IFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2No
dWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIFpvbHRhbiBIZXJj
emVnIDx6aGVyY3plZ0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMTks
NyArMTE5LDcgQEAgRmxvYXRSZWN0IEZFQ29udm9sdmVNYXRyaXg6OmNhbGN1bGF0ZUltYWdlUmVj
dChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGUKICAgICByZXR1cm4gZmlsdGVyLm1h
eEVmZmVjdFJlY3QocHJpbWl0aXZlU3VicmVnaW9uKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZUFwcGxpZXIoY29uc3Qg
RmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNv
bnZvbHZlTWF0cml4OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVy
biBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVDb252b2x2ZU1hdHJpeFNvZnR3YXJlQXBw
bGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCBlZTZiYzhmYWFhZmIw
ZTAxOTJhOGUxYTU5ZWVhMTYxZTNjNTM0NzM1Li4wNzU0NWI4NzQ4ZDFmZTljZDQ1YzAwMTdhNzIx
YWZkNGQ3OGZhNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtMyw3ICszLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgWm9sdGFuIEhlcmN6ZWcgPHpoZXJjemVnQHdlYmtpdC5vcmc+Ci0gKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UmVj
dCBjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0
b3ImIGlucHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0
ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdU
Rjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURp
c3BsYWNlbWVudE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAppbmRleCAxMTdjNTBhZjgwMmIzYmYyY2MwYjE1Njk0
Zjg5MDA3MmRlMjI5NzJiLi40OTA5OWI2Mzc2Mzk4NGE4MTYzOGJjYzdiOWE3ODE3ZmMwMjI1NWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RGlzcGxhY2VtZW50TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgRkVEaXNwbGFjZW1l
bnRNYXA6OnRyYW5zZm9ybUlucHV0c0NvbG9yU3BhY2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3Im
IGlucHV0CiAgICAgaW5wdXRzWzFdLT50cmFuc2Zvcm1Ub0NvbG9yU3BhY2Uob3BlcmF0aW5nQ29s
b3JTcGFjZSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZF
RGlzcGxhY2VtZW50TWFwOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0
ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxp
ZXI6OmNyZWF0ZTxGRURpc3BsYWNlbWVudE1hcFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURp
c3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4IDY1NTU4ZDQwM2NhMGFkMDQ4NTdmOWI4NDlkN2Zh
NGZmN2JhY2Y3MDMuLmQ4ZmNkZmRhMWRkNjMzNzUzOWE2YzA1MzNiNjQzMGQzMDA2Y2RlOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNw
bGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiByZXN1bHRDb2xvclNwYWNlKGNvbnN0IEZpbHRlcklt
YWdlVmVjdG9yJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmFuc2Zvcm1JbnB1dHNDb2xv
clNwYWNlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuY3BwCmluZGV4IDQ4YmFhYzA3OGI4OTZlODc1OTYzNjQyNDk3YmJkOTRjNGQxNzRkOGMuLmQz
MjkzMzNkNzkzNTg1Njc4MzY3ZDMzNDIwMmE2YjY2OWIxOTQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5j
cHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC03Miw3ICs3Miw3IEBAIEludE91dHNldHMgRkVEcm9wU2hhZG93OjpvdXRzZXRzKGNv
bnN0IEZpbHRlciYpIGNvbnN0CiAgICAgfTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdEFwcGxpZXI+IEZFRHJvcFNoYWRvdzo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBj
b25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFRHJvcFNoYWRvdzo6
Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0
QXBwbGllcjo6Y3JlYXRlPEZFRHJvcFNoYWRvd1NvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURy
b3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmgKaW5kZXggZTY5NjVkMjdiN2Y3Y2U1ZWQyZjI3YmNiZTk0MDBjYmE1N2JmNGM2
MS4uOGEwMzAzZjcwZDY4OGNlMTc2ZTczMTRhZWFlODM5MDRjZTBlZGU2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRv
dy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgSW50T3V0c2V0cyBvdXRzZXRz
KGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNv
ZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0
aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKaW5kZXggNWY0NWQ1M2I3NjlkMTU1Y2UzMjJk
YmRhNTYxMGE4ZWRlNjg5ZDY2Zi4uYzRjMWExZmY3YzdmMTliMzBhNWM2OGFlNzllOGM0MmQ5MTI0
MzU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUZsb29kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRmxvb2QuY3BwCkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVs
emUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjQsNyArNjQs
NyBAQCBGbG9hdFJlY3QgRkVGbG9vZDo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYg
ZmlsdGVyLCBjb25zdCBGaWx0ZXJJbWFnZVZlYwogICAgIHJldHVybiBmaWx0ZXIubWF4RWZmZWN0
UmVjdChwcmltaXRpdmVTdWJyZWdpb24pOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZm
ZWN0QXBwbGllcj4gRkVGbG9vZDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAor
c3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFRmxvb2Q6OmNyZWF0ZVNvZnR3
YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNy
ZWF0ZTxGRUZsb29kU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCmluZGV4IDIyZjllYzky
NTk0NGM2YzBlYWQ4MjhiMjViYWRiMmY3MWMyZjYxMTAuLjUzZDRjYzVmOWRmMTdhMTU5MzE4ODBm
OTVhYjdiY2RmN2FmMDBkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
LSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAg
RmxvYXRSZWN0IGNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJ
bWFnZVZlY3RvciYgaW5wdXRzLCBjb25zdCBGbG9hdFJlY3QmIHByaW1pdGl2ZVN1YnJlZ2lvbikg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50
YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCmluZGV4IDQwZjFhZDZkYWI3OTgxOGRkMjkwMjA3
ZWJkOGEwZTI3ODFkM2JjMGUuLjdhNTM2NzM2YjY4ZTJmODE5ZGRlYTZmNGQ2MWY5NmY0OTdiODZk
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCkBAIC01LDcgKzUsNyBAQAogICogQ29weXJpZ2h0
IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSwgUy5MLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMjEgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDIyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIEZFR2F1c3NpYW5CbHVyOjpyZXN1bHRJc0Fs
cGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3QKICAgICByZXR1
cm4gaW5wdXRzWzBdLT5pc0FscGhhSW1hZ2UoKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IEZFR2F1c3NpYW5CbHVyOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVHYXVzc2lh
bkJsdXI6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRl
ckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUdhdXNzaWFuQmx1clNvZnR3YXJlQXBwbGllcj4oKnRo
aXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDczZWU1ZTk0YWRkM2RlYjM4OTIzMWM2MmQx
YjIyMTFlYjg1ZmU5MjAuLjgwMTU0ODQ3MjRiYTc3MGViNGM5MDljMTczMTM2MmZhOWI1NTcxM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVH
YXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuY3BwCmluZGV4IGJjOTJkMzg0M2NkODg5ZTk1ZmU1MTliNDhmYWFlOWI4YzI3
ZDQ1YjkuLmViNDliNzVkNGViM2Q2NGNjMGNkYmUwZTczOGQwMjUyODZhN2I3OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0
aW5nLmNwcApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVy
c2l0eSBvZiBTemVnZWQKICAqIENvcHlyaWdodCAoQykgMjAxMCBab2x0YW4gSGVyY3plZwotICog
Q29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg3LDcgKzg3LDcgQEAgRmxv
YXRSZWN0IEZFTGlnaHRpbmc6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRl
ciwgY29uc3QgRmlsdGVySW1hZ2UKICAgICByZXR1cm4gZmlsdGVyLm1heEVmZmVjdFJlY3QocHJp
bWl0aXZlU3VicmVnaW9uKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFTGlnaHRpbmc6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUxpZ2h0aW5nOjpjcmVhdGVTb2Z0d2Fy
ZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVh
dGU8RkVMaWdodGluZ1NvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBj
YzhiNmRhMWU3ZGZmZTM3YTc0YjNkM2E4NTY1ZmVkMzJkZGMwOGRhLi4wYzA3M2JjMTNmOGNmMzY2
ZjljZjY2MWNiMjYzNDM5NjhlMmQyMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtMSw3ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBab2x0YW4gSGVyY3plZwotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC02NSw3ICs2NSw3IEBAIHByb3RlY3RlZDoKIAogICAgIEZsb2F0UmVjdCBjYWxjdWxh
dGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0
cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwog
CiAjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDUFUoQVJNX1RSQURJVElPTkFMKSAmJiBDT01QSUxFUihH
Q0NfQ09NUEFUSUJMRSkKICAgICBzdGF0aWMgaW50IGdldFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0
IGV4cG9uZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNZXJnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTWVyZ2UuY3BwCmluZGV4IDJkNmI0ZWNiOGQyNDQ4NGM4YWYxNTZlZjU0MTI2NjJk
ZDNmM2Q1NTMuLjFhMWUyOWQ0MzBlYTdhNmJmY2UwZDE5YzVjMzU5ZWNiN2RiZGIzNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdl
LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIEFw
cGxlIEluYy4gMjAyMSBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC00MCw3ICs0MCw3IEBAIEZFTWVyZ2U6OkZFTWVyZ2UodW5zaWduZWQgbnVtYmVyT2ZFZmZl
Y3RJbnB1dHMpCiB7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBG
RU1lcmdlOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9w
dHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVNZXJnZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFTWVyZ2VT
b2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKaW5kZXggYTMzOWZmZjc4NmEyMTEzNzcxMzI5
NzExZjZmNzgyYTc2NzU1NzU4ZC4uYjEzMWUzN2U1NjRlNjc4ZGUyMmFhNTUxMDY1YTA4ODcwYjZk
MGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHly
aWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0
IChDKSBBcHBsZSBJbmMuIDIwMjEgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFTWVyZ2Uo
dW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNv
ZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0
aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCmluZGV4IDQ1MmNhM2I5NWZj
ZDNmMmY4NjM4MmYzNjc2NzZmMmExNTI0MTkwZDQuLmNhNmU1MDUxNTVkYzI4MDhjMzFjYTQ1ZDFm
MTAxYzQ3NTlkNGQ4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHly
aWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdo
dCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgQXBwbGUgSW5jLiAyMDE3LTIwMjEgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtODAsNyArODAsNyBAQCBib29sIEZFTW9y
cGhvbG9neTo6cmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1
dHMpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0c1swXS0+aXNBbHBoYUltYWdlKCk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRU1vcnBob2xvZ3k6OmNyZWF0ZUFw
cGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBGRU1vcnBob2xvZ3k6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRU1vcnBob2xvZ3lTb2Z0d2Fy
ZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IGU0NTRjMzcxZTg0NGM1NmY3
MGYyMDkwNWVlMjE0NmRlMjJmOWQ2MzIuLjJmNmI2MjM4MTk2MGU0NzVlODlmNDY5ZTViNzc2MmRm
MmJjOWVhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
Ci0gKiBDb3B5cmlnaHQgKEMpIEFwcGxlIEluYy4gMjAyMSBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU9mZnNldC5jcHAKaW5kZXggYTMyOTkyOTZlNzVhZGRmM2IzMzE5YzAyYWVmZTk0NWIxMzkx
NjIzNi4uMzk1YTgyNmJlMDJkNzBiNjIzOTMxY2FhYzhlMGVjYjA0MzI3ODczZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5j
cHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRA
d2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtODIs
NyArODIsNyBAQCBib29sIEZFT2Zmc2V0OjpyZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVy
SW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3QKICAgICByZXR1cm4gaW5wdXRzWzBdLT5pc0FscGhh
SW1hZ2UoKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFT2Zm
c2V0OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVPZmZzZXQ6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRU9mZnNldFNv
ZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCmluZGV4IDYxN2Y4YzY5MmEzMTY2NTM3ZWFl
OWUwZmU1OTY5MWFkNzRiMjkwZDEuLmNiYTAwNmNlMmI4OWE3OWIzNDljZDRjYThkZjViNjIyOWM0
ZTVlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFT2Zmc2V0LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHJlc3Vs
dElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVB
cHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6
OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNw
cAppbmRleCA5MmI4MjcwZTRkYmY5MzRhZDYzNjQ0OGE2Y2U0ZDYwZTZmNDFkYTJmLi5lMzRmYmFi
MjY0NzliN2VmOGY3MWUwMzU4NzYzY2VlNDkwNWMyMjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCkBAIC0xLDcgKzEsNyBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbGV4IE1hdGhld3MgPHBvc3Nlc3NlZHBlbmd1
aW5ib2JAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3Jp
dEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00OCw3ICs0OCw3IEBAIGJv
b2wgRkVUaWxlOjpyZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlu
cHV0cykgY29uc3QKICAgICByZXR1cm4gaW5wdXRzWzBdLT5pc0FscGhhSW1hZ2UoKTsKIH0KIAot
c3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFVGlsZTo6Y3JlYXRlQXBwbGll
cihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFVGlsZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4g
RmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFVGlsZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVRpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVU
aWxlLmgKaW5kZXggMDBhZGQyOGE1NjIxYmJmYzU3NjMyNzMyOWM0YjY0NjEzYTAzYmMwOC4uODlm
YTMwZTQ4MjRlNjZhNjMxZTI0MTk2ZDU1NjEzMWI1YmUxZDVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCkBAIC0yLDcgKzIsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzcsNyArMzcsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCByZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1h
Z2VWZWN0b3ImIGlucHV0cykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBv
dmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRl
U29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0m
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50
YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAppbmRleCA4YTE1NTZh
NWJiZGI1NjllYmI1OTY5NDJhMzYzYzZlMDhlMzUzYmZkLi5kNDEyOTcyYTdlMmQwOTI0YmYwZWY0
NGM0NTIyNDkzZTkxNzY4YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC01LDcgKzUsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBIb2RvdmFuIDxyZW5pQGluZi51LXN6ZWdlZC5odT4K
ICAqIENvcHlyaWdodCAoQykgMjAxMSBHYWJvciBMb2tpIDxsb2tpQHdlYmtpdC5vcmc+Ci0gKiBD
b3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxLDcgKzEwMSw3IEBAIEZsb2F0UmVjdCBGRVR1
cmJ1bGVuY2U6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3Qg
RmlsdGVySW1hCiAgICAgcmV0dXJuIGZpbHRlci5tYXhFZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJl
Z2lvbik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRVR1cmJ1
bGVuY2U6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRVR1cmJ1bGVuY2U6OmNyZWF0ZVNvZnR3YXJlQXBwbGll
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRVR1
cmJ1bGVuY2VTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IGFh
YWViN2MyMzdjY2VhOTFmNTEzMTI2YzQ2ODU1ZWQyN2E5OWQ0NTkuLmU4MDg3YzMwMDJhNjY3OGYw
ZTczMTM5MDVkZGQ1NDgxM2U3M2RlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtNCw3ICs0LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBIb2RvdmFuIDxyZW5pQGluZi51LXN6ZWdlZC5odT4KLSAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRl
ckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9u
KSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCA4MjQ1MDE3ODJiYjAzN2JiNjYyNmI4Yzdi
NGUzZTU0MzVhYzNiZjIyLi40NTJlYmZhMTk0ZDBlNWVkMGE4YWNkNGMyYzRhYTkwMjU4YTMzN2Fj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBAIC04NSw2ICs4NSwxNiBAQCBGbG9hdFJlY3QgRmlsdGVy
RWZmZWN0OjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZp
bHRlckltYQogICAgIHJldHVybiBmaWx0ZXIuY2xpcFRvTWF4RWZmZWN0UmVjdChpbWFnZVJlY3Qs
IHByaW1pdGl2ZVN1YnJlZ2lvbik7CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJiBmaWx0ZXIp
IGNvbnN0Cit7CisgICAgaWYgKGZpbHRlci5yZW5kZXJpbmdNb2RlKCkgPT0gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQpIHsKKyNpZiBVU0UoQ09SRV9JTUFHRSkKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZUNvcmVJbWFnZUFwcGxpZXIoKTsKKyNlbmRpZgorICAgIH0KKyAgICByZXR1cm4gY3JlYXRl
U29mdHdhcmVBcHBsaWVyKCk7Cit9CisKIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1JbnB1
dHNDb2xvclNwYWNlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0CiB7CiAg
ICAgZm9yIChhdXRvJiBpbnB1dCA6IGlucHV0cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCmluZGV4IDcwZTNmZTVk
OGU3Y2MwODgxNWZhMjgzNDZjMjRkMjgxNGQyYWY3MWIuLmMzYzE2ODU4MzkwNGVjMjA0YTZlNmEx
MTRmZmJlOTY1MWQ3YmVmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaApAQCAtNzAsNyArNzAsMTMgQEAgcHJv
dGVjdGVkOgogICAgIAogICAgIHZvaWQgY29ycmVjdFByZW11bHRpcGxpZWRJbnB1dHMoY29uc3Qg
RmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0ID0gMDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3Jl
YXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdDsKKworI2lmIFVTRShDT1JFX0lNQUdFKQor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUNv
cmVJbWFnZUFwcGxpZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisjZW5kaWYKKworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3
YXJlQXBwbGllcigpIGNvbnN0ID0gMDsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHko
Y29uc3QgRmlsdGVyJiwgRmlsdGVySW1hZ2UmIGlucHV0LCBGaWx0ZXJSZXN1bHRzJikgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggODUxMzkzYTJkZjhhZjlmYzdhYWU4NzhiNTEyYmUy
MTE0ZjkwOTIwZi4uZmQyMzgyYjE2ZWFmNmE5MmEyZTE5YzM4ZjkyYjE3ZDYwYjJhNmVmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VB
bHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VBbHBoYS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgU291cmNlQWxwaGE6OlNvdXJjZUFscGhh
KGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSkKICAgICBzZXRPcGVyYXRp
bmdDb2xvclNwYWNlKGNvbG9yU3BhY2UpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZm
ZWN0QXBwbGllcj4gU291cmNlQWxwaGE6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29u
c3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VBbHBoYTo6Y3Jl
YXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBw
bGllcjo6Y3JlYXRlPFNvdXJjZUFscGhhU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFs
cGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFs
cGhhLmgKaW5kZXggOWY5YTkwNDExODVlYjJhOGRjZmZkMzgzMDFkN2ZlY2Q4MzdlZjQ4YS4uNTE3
MDQzZjQxMTc4YTBmZjZiNjM0ZTFiMTUzOWVmNDMwMmVhM2RlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaApAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0
QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDcgKzMzLDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3VyY2VBbHBoYShjb25zdCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UmKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXggNDhmZDQxOGMyOWJhNzYxMTVjZWY3YzIz
MDU4ODcwMWNiMGYyYzZiNS4uY2VlNmJlM2JlODUwYjkwOTVlYWU1MTkyMzIxNjU5NDRlODQ0ODcw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9T
b3VyY2VHcmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtNDEsMTUgKzQxLDE1IEBAIFNvdXJjZUdyYXBoaWM6OlNvdXJjZUdyYXBoaWMo
KQogewogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gU291cmNlR3Jh
cGhpYzo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImIGZpbHRlcikgY29uc3QKLXsKICNpZiBV
U0UoQ09SRV9JTUFHRSkKLSAgICAvLyBGSVhNRTogcmV0dXJuIFNvdXJjZUdyYXBoaWNDb3JlSW1h
Z2VBcHBsaWVyLgotICAgIGlmIChmaWx0ZXIucmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01v
ZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3Jl
YXRlPFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyPigqdGhpcyk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShmaWx0ZXIpOworc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+
IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZUNvcmVJbWFnZUFwcGxpZXIoKSBjb25zdAoreworICAgIHJl
dHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8U291cmNlR3JhcGhpY0NvcmVJbWFnZUFw
cGxpZXI+KCp0aGlzKTsKK30KICNlbmRpZgorCitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0
QXBwbGllcj4gU291cmNlR3JhcGhpYzo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKK3sK
ICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUdyYXBoaWNTb2Z0
d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAppbmRleCAyY2U0NWQ4ZWEz
ODg3NjgyOTU4NWIxZTE4MTdjYTY0ZmMwMDI5MDViLi5hYTRhZjI5Y2MwMTk4NzgwNmM1YzdhOGU5
NTVjYjE5YjJhM2QwMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaApAQCAtMzQsMTMgKzM0LDE0IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgU291cmNlR3JhcGhpYygpOwogCisgICAgdW5zaWduZWQgbnVt
YmVyT2ZFZmZlY3RJbnB1dHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKICNpZiBV
U0UoQ09SRV9JTUFHRSkKICAgICBib29sIHN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJF
ZmZlY3RBcHBsaWVyPiBjcmVhdGVDb3JlSW1hZ2VBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAotICAgIHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gMDsgfQotCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVy
cmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCmluZGV4IDUzM2I3
NDdiODAyMjI3YjM5ZmRhOTYyNmMyMmEzMGI5NmI1MTk3Y2UuLjZmZGFkMzM3Y2M2ZWUzYWZlNTA2
MjcwMTAzOTYwOGIyZGNiNDAzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIu
Y3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZlB0cjxDU1NGaWx0ZXI+IENTU0ZpbHRlcjo6Y3JlYXRl
KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGaWx0ZXJPcGVyYXRpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAjaWYgVVNFKENPUkVfSU1BR0UpCi0gICAgaWYgKCFmaWx0ZXItPnN1
cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkpCisgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVu
ZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgJiYgIWZpbHRlci0+c3VwcG9ydHNDb3JlSW1hZ2VSZW5k
ZXJpbmcoKSkKICAgICAgICAgZmlsdGVyLT5zZXRSZW5kZXJpbmdNb2RlKFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQpOwogI2VuZGlmCiAgICAgcmV0dXJuIGZpbHRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDA5NmQ1ZjE3NzIyN2ZjOWM4NmYyZjU0
YTYwNWU3NGQ1OTY3ZWRjNWMuLjZkOWIzNGE1ZjBlMGRiMmEwNzk4YzFhZDc0YjhhOTY0NjMxMjc4
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNTYxMSw3
ICs1NjExLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRmlsdGVyUGFpbnRpbmdTdHJhdGVn
eSgpCiAgICAgfQogICAgIAogICAgIGVuc3VyZUxheWVyRmlsdGVycygpOwotICAgIG1fZmlsdGVy
cy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwgcGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCksIHJl
bmRlcmVyKCkuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJp
bmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOworICAg
IG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwgcGFnZSgpLmRldmljZVNjYWxlRmFj
dG9yKCksIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5jb3JlSW1hZ2VBY2NlbGVyYXRlZEZpbHRlclJl
bmRlckVuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZCk7CiB9CiAKIEludE91dHNldHMgUmVuZGVyTGF5ZXI6OmZpbHRlck91
dHNldHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCAwMjQ5ZDgwMmVjZDVjZDEyZjY0OGMz
NWY1YjM5ZTIwNDBmNjU0ZjE2Li5iYjEzYzk1M2NmNGYxMzdmNjIxYzU5MTc1NzZkNmUxNzY1MmY5
ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlRmlsdGVyLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIGJvb2wgUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNv
bnN0IFJlbmRlCiAgICAgSW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKGZpbHRlckRhdGEt
PmRyYXdpbmdSZWdpb24uc2l6ZSgpLCBmaWx0ZXJTY2FsZSk7CiAKICAgICAvLyBTZXQgdGhlIHJl
bmRlcmluZyBtb2RlIGZyb20gdGhlIHBhZ2UncyBzZXR0aW5ncy4KLSAgICBhdXRvIHJlbmRlcmlu
Z01vZGUgPSByZW5kZXJlci5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSA/
IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZDsKKyAgICBhdXRvIHJlbmRlcmluZ01vZGUgPSByZW5kZXJlci5zZXR0aW5ncygpLmNvcmVJbWFn
ZUFjY2VsZXJhdGVkRmlsdGVyUmVuZGVyRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogCiAgICAgLy8gQ3JlYXRlIHRo
ZSBTVkdGaWx0ZXIgb2JqZWN0LgogICAgIGZpbHRlckRhdGEtPmJ1aWxkZXIgPSBtYWtlVW5pcXVl
PFNWR0ZpbHRlckJ1aWxkZXI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCmluZGV4IGRjM2QzM2VmM2FiNWViMDdlYmNkZDY2N2U5
ZGM3NWY5YWMzN2U0YzAuLjk1NTY1OTc4Yzg2NTM1N2VkM2NjZTkyMTYzNzQxODI5OWU3NTJmNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1h
Z2UuY3BwCkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMCBEaXJrIFNjaHVsemUgPGtyaXRA
d2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTE0LDcgKzExNCw3IEBAIGJv
b2wgRkVJbWFnZVNvZnR3YXJlQXBwbGllcjo6YXBwbHkoY29uc3QgRmlsdGVyJiBmaWx0ZXIsIGNv
bnN0IEZpbHRlckltYWdlVmVjdG9yCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUltYWdlOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVJbWFn
ZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZm
ZWN0QXBwbGllcjo6Y3JlYXRlPEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAppbmRl
eCAxZjdlODMyNjJiOWNiOTIzMGEzYTNjOWVjNTMxOWFhMTkzZGRlODE0Li5jMzMwMjY3ZTI0OWFi
NzhiMGM1YmU0NmVlNzlkYTBjZjY5ZWM0OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAxMCBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogCiAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZUlt
YWdlUmVjdChjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBj
b25zdCBGbG9hdFJlY3QmIHByaW1pdGl2ZVN1YnJlZ2lvbikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25z
dCBGaWx0ZXImKSBjb25zdCBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0
QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICBXVEY6
OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmls
dGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAppbmRleCA4NDc1ZWFhOTdhMjIyMzUz
YTMxNzM4OTZlNGVlMTczMWUwZmFkZDY4Li44ODIzMDllMDViNWU4OTcxYjRiNmE4YjQxMjUxYzg4
ZTQ0MWY0N2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZpbHRlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVmUHRyPFNWR0ZpbHRlcj4gU1ZHRmls
dGVyOjpjcmVhdGUoU1ZHRmlsdGVyRWxlbWVudCYgZmlsdGVyRWxlbWVudCwgU1ZHRmlsdGVyQnUK
ICAgICBmaWx0ZXItPnNldEV4cHJlc3Npb24oV1RGTW92ZShleHByZXNzaW9uKSk7CiAKICNpZiBV
U0UoQ09SRV9JTUFHRSkKLSAgICBpZiAoIWZpbHRlci0+c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJp
bmcoKSkKKyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRl
ZCAmJiAhZmlsdGVyLT5zdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpKQogICAgICAgICBmaWx0
ZXItPnNldFJlbmRlcmluZ01vZGUoUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAjZW5k
aWYKICAgICByZXR1cm4gZmlsdGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449539</attachid>
            <date>2022-01-19 18:11:39 -0800</date>
            <delta_ts>2022-01-20 17:24:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235376-20220119181138.patch</filename>
            <type>text/plain</type>
            <size>64842</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk4MzZmZTQ5ZGE2NGU3Yzg5NTg2NmNm
MmM3MTVlYjY2YTU0NTFlNjguLjVhYWQ1MTRlNTJhYTgxYTA5ODA1OWJhYWE5OGM2YWUxYzhlNWMx
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDEtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29yZUltYWdlIGZpbHRlcnMgYXJlIGVuYWJsZWQg
YnkgdGhlIHdyb25nIHNldHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERlbGV0ZSBFTkFCTEVfQ09SRV9JTUFHRV9BQ0NFTEVSQVRFRF9GSUxURVJf
UkVOREVSIGFuZCB1c2UgVVNFX0NPUkVfSU1BR0UKKyAgICAgICAgaW5zdGVhZCBzaW5jZSBDb3Jl
SW1hZ2UgaXMgb25seSB1c2VkIGZvciBmaWx0ZXJzIHJpZ2h0IG5vdy4gQmVzaWRlcyAKKyAgICAg
ICAgQ29yZUltYWdlIGZpbHRlcnMgYXJlIGVuYWJsZWQgYnkgdGhlIGZlYXR1cmUgY29udHJvbCBm
bGFnCisgICAgICAgIENvcmVJbWFnZUFjY2VsZXJhdGVkRmlsdGVyUmVuZGVyRW5hYmxlZC4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIyLTAxLTE5
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QWxsb3cgZXhwZXJpbWVudGFsIGZlYXR1cmUgbmFtZXMgdG8gYmUgaGlkZGVuIGluIFdlYktpdEFk
ZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUwOWVkZmMyOGI2ZmQ1MjE4OThkOGI3YzA0ZWU2NmZmNzkz
M2MzOWEuLmE4MDc1Mjk0ODNmZjk4MjkyZmFjYzFiNzYyNjhiNzYwMWQyNDk4MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMjEgQEAKKzIwMjItMDEtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29yZUltYWdlIGZpbHRlcnMgYXJlIGVuYWJsZWQgYnkg
dGhlIHdyb25nIHNldHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNTM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDEuIERl
bGV0ZSB0aGUgc2V0dGluZyBBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkIHNpbmNlIGl0IGhhcyBu
b3QgYmVlbgorICAgICAgICAgICBlbmFibGVkIGJ5IGFueSBwb3J0LgorICAgICAgICAyLiBVc2Ug
Q29yZUltYWdlQWNjZWxlcmF0ZWRGaWx0ZXJSZW5kZXJFbmFibGVkIHRvIGVuYWJsZSBDb3JlSW1h
Z2UgCisgICAgICAgICAgIGZpbHRlcnMgYmVjYXVzZSBpdCBpcyBsaW5rZWQgdG8gdGhlIGV4cGVy
aW1lbnRhbCBmZWF0dXJlICJDb3JlSW1hZ2UtCisgICAgICAgICAgIEFjY2VsZXJhdGVkIEZpbHRl
ciBSZW5kZXJpbmciLgorICAgICAgICAzLiBGaXggdGhlIEdUSyBwb3J0IHVudXNlZCBwYXJhbWV0
ZXIgd2FybmluZyB3aGljaCBjb21lcyBmcm9tIAorICAgICAgICAgICBGRUNvbG9yTWF0cml4Ojpj
cmVhdGVBcHBsaWVyKCksIEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZUFwcGxpZXIoKQorICAg
ICAgICAgICBhbmQgU291cmNlR3JhcGhpYzo6Y3JlYXRlQXBwbGllcigpLgorCisgICAgICAgICog
Y3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVy
SW1hZ2VWYWx1ZTo6aW1hZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjphY2NlbGVyYXRlZEZpbHRlclJlbmRlckVuYWJsZWQgY29uc3QpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFw
cGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25l
bnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVCbGVuZDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZFQmxlbmQ6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9y
TWF0cml4OjpyZXN1bHRJc0FscGhhSW1hZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b2xvck1hdHJpeDo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6Y3JlYXRlQ29yZUltYWdlQXBwbGllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6Y3JlYXRlQXBwbGllciBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OnN1
cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29t
cG9uZW50VHJhbnNmZXI6OmNyZWF0ZUNvcmVJbWFnZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZUFwcGxpZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OmNyZWF0ZVNv
ZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6Y3Jl
YXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb252b2x2ZU1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0
cml4OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b252b2x2ZU1hdHJpeDo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGRURpc3BsYWNlbWVudE1hcDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50TWFwOjpjcmVhdGVBcHBsaWVyIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlz
cGxhY2VtZW50TWFwLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURy
b3BTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpjcmVhdGVTb2Z0
d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpjcmVh
dGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVGbG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpjcmVhdGVTb2Z0d2Fy
ZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVGbG9vZDo6Y3JlYXRlQXBwbGll
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUZsb29kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlU29mdHdh
cmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpjcmVh
dGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmNyZWF0
ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpj
cmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTGlnaHRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVNZXJnZTo6Y3JlYXRlU29mdHdh
cmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTWVyZ2U6OmNyZWF0ZUFwcGxp
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNZXJnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9s
b2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6Y3JlYXRlQXBw
bGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
T2Zmc2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFT2Zmc2V0OjpjcmVhdGVTb2Z0d2FyZUFw
cGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OmNyZWF0ZUFwcGxpZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVP
ZmZzZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRVRpbGU6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpGRVRpbGU6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVUdXJidWxlbmNlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RkVUdXJidWxlbmNlOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlQXBwbGllciBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y3JlYXRlQ29yZUltYWdlQXBwbGllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OmNyZWF0ZUNvcmVJbWFnZUFwcGxpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OmNyZWF0ZUFw
cGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlR3JhcGhpYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3Vs
YXRlQ2xpcFJlY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmls
dGVyOjphcHBseVJlc291cmNlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OmNyZWF0ZVNvZnR3YXJlQXBw
bGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUltYWdlOjpjcmVhdGVBcHBsaWVyIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdl
Lmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZpbHRlcjo6Y3JlYXRlKToKKwogMjAyMi0wMS0xOSAgUm9iIEJ1aXMg
IDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIE51bGwgY2hlY2sgbV9wcm9ncmVzc1RyYWNr
ZXIgaW4gY2xlYXJQcm92aXNpb25hbExvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5k
ZXggOGJmNmI1ODZlNmY5ZWJkOGFmMzlmNzg2NzAxMDEyZGI0YzdiNzA4YS4uNzU5NTI1NDAyNDY2
NWEyNTExMzA4YjIyNjJmYTQ4OWMxOWZkNWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlh
bWwKQEAgLTQxNCw3ICs0MTQsNyBAQCBDb3JlSW1hZ2VBY2NlbGVyYXRlZEZpbHRlclJlbmRlckVu
YWJsZWQ6CiAgIHdlYmNvcmVPbkNoYW5nZTogc2V0TmVlZHNSZWxheW91dEFsbEZyYW1lcwogICBo
dW1hblJlYWRhYmxlTmFtZTogIkNvcmVJbWFnZS1BY2NlbGVyYXRlZCBGaWx0ZXIgUmVuZGVyaW5n
IgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBY2NlbGVyYXRlZCBDU1MgYW5kIFNWRyBm
aWx0ZXIgcmVuZGVyaW5nIHVzaW5nIENvcmVJbWFnZSIKLSAgY29uZGl0aW9uOiBFTkFCTEUoQ09S
RV9JTUFHRV9BQ0NFTEVSQVRFRF9GSUxURVJfUkVOREVSKQorICBjb25kaXRpb246IFVTRShDT1JF
X0lNQUdFKQogICBkZWZhdWx0VmFsdWU6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVs
dDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA3YWY0NjY2YTAx
NDU3OTgxNGNhYmQ5MTYwZDZkZDI2OTE3NzYxZDdiLi42OTUzNDJlYmFlMzUxNjQ4MjY1NTA3ZGYz
YzI4MzQyYjJkMjZmNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0x
NzEsMTAgKzE3MSw2IEBACiAjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMAogI2Vu
ZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09SRV9JTUFHRV9BQ0NFTEVSQVRFRF9GSUxURVJf
UkVOREVSKQotI2RlZmluZSBFTkFCTEVfQ09SRV9JTUFHRV9BQ0NFTEVSQVRFRF9GSUxURVJfUkVO
REVSIDEKLSNlbmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT01QT1NJVElORykKICNk
ZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCA2ZmJmYjQ0ZjY0YTM5MmZmNzY5N2NiYWJj
YTIxZTJkMmI4OTRmMDNkLi4yN2Q3N2EzNDQxZTRiY2VkY2Q5MzZhMjE0YmQ3MDQ2NTNjZWYzNWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC0xMTUs
OCArMTE1LDcgQEAgUmVmUHRyPEltYWdlPiBDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZShSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXoKICAgICAgICAgcmV0dXJuICZJbWFn
ZTo6bnVsbEltYWdlKCk7CiAKICAgICAvLyBUcmFuc2Zvcm0gSW1hZ2UgaW50byBJbWFnZUJ1ZmZl
ci4KLSAgICAvLyBGSVhNRSAoMTQ5NDI0KTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNv
bmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAgICBhdXRvIHJlbmRlcmluZ01vZGUgPSBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOworICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnBhZ2UoKS5hY2NlbGVyYXRlZEZpbHRlclJlbmRlckVuYWJsZWQoKSA/IFJlbmRlcmluZ01v
ZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKICAgICBhdXRv
IHNvdXJjZUltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBT
aG91bGRVc2VEaXNwbGF5TGlzdDo6Tm8sIFJlbmRlcmluZ1B1cnBvc2U6OkRPTSwgMSwgRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCwgcmVuZGVyZXIuaG9z
dFdpbmRvdygpKTsKICAgICBpZiAoIXNvdXJjZUltYWdlKQogICAgICAgICByZXR1cm4gJkltYWdl
OjpudWxsSW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDdiMjNiMjM3ZWNmNGU5MjBkZTY1
NmYwNmE1OWJmZjM1MzE4ZGYxODQuLjNiNTI1NDFmYzcwMWYwMjY1MDIyZDE1YmI2Mjg3NjcyMzBh
NzcxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzY1NCw2ICszNjU0LDE1IEBAIHZvaWQgUGFn
ZTo6cmVjb21wdXRlVGV4dEF1dG9TaXppbmdJbkFsbEZyYW1lcygpCiAKICNlbmRpZgogCitib29s
IFBhZ2U6OmFjY2VsZXJhdGVkRmlsdGVyUmVuZGVyRW5hYmxlZCgpIGNvbnN0Cit7CisjaWYgVVNF
KENPUkVfSU1BR0UpCisgICAgcmV0dXJuIHNldHRpbmdzKCkuY29yZUltYWdlQWNjZWxlcmF0ZWRG
aWx0ZXJSZW5kZXJFbmFibGVkKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCiBib29sIFBhZ2U6OnNob3VsZERpc2FibGVDb3JzRm9yUmVxdWVzdFRvKGNvbnN0IFVSTCYg
dXJsKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OmFueU9mKG1fY29yc0Rpc2FibGluZ1BhdHRl
cm5zLCBbJl0gKGNvbnN0IGF1dG8mIHBhdHRlcm4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTg0NDNk
ZTE0OTI2N2QxZTIzNzRhZDBiZDlmOWFhMjQzZmQzN2U0YS4uNmVmZWM2ZTVjMzI4Yjg4OWUxMWZh
ZGYzMmVhMjQyMDNkMjNhOGNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTQ5MCw2ICs0OTAsOCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWNvbXB1dGVUZXh0QXV0b1NpemluZ0lu
QWxsRnJhbWVzKCk7CiAjZW5kaWYKIAorICAgIGJvb2wgYWNjZWxlcmF0ZWRGaWx0ZXJSZW5kZXJF
bmFibGVkKCkgY29uc3Q7CisKICAgICBjb25zdCBGbG9hdEJveEV4dGVudCYgZnVsbHNjcmVlbklu
c2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbHNjcmVlbkluc2V0czsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0RnVsbHNjcmVlbkluc2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMmFlNzBjYjFkYTg0ZThjYWQzZWNjYzBj
OWZmZWY0MzZmOGU4OWY2MC4uMjgxZjg4MGNlNzBkNzhmZDFkYjBhZDVlZjkyZDFhNjc4NzU1MTRm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMjksMTIgKzI5LDYgQEAgQWNjZWxl
cmF0ZWRDb21wb3NpdGVkQW5pbWF0aW9uc0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRl
ZmF1bHQ6IHRydWUKIAotQWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZDoKLSAgdHlwZTogYm9vbAot
ICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEFu
aW1hdGVkSW1hZ2VEZWJ1Z0NhbnZhc0RyYXdpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBs
aWVyLmgKaW5kZXggNDAyZTZlYmEzNjJjN2Y3OGJkNTdiY2I2ZDM2MjFmY2EzMjc3N2QzMC4uYWU0
NTU3ZGYwODMzODg4NDBlOWIxZmQ5NmQ0OWMzMDUyZmE5MWJlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29sb3JNYXRyaXhDb3JlSW1h
Z2VBcHBsaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWlt
YWdlL0ZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpZiBVU0UoQ09SRV9JTUFHRSkKKwogI2ltcG9ydCAiRmlsdGVyRWZm
ZWN0QXBwbGllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwzICs0Niw1IEBAIHB1
YmxpYzoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShDT1JF
X0lNQUdFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRUcmFuc2ZlckNvcmVJ
bWFnZUFwcGxpZXIuaAppbmRleCA5OWM3NDZmNWZjNDhlOTYzOWYyNzVlNDRmNTdlOGU4ZmE0ZjUz
ZTljLi4wMjJiZmQ0ZTFkZGNmYzk4ZWUyNGQ2MDk0NGRlNTc5MDNlZjQ5YmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRU
cmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIuaApA
QCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIFVTRShDT1JFX0lNQUdFKQor
CiAjaW1wb3J0ICJGaWx0ZXJFZmZlY3RBcHBsaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTQ0LDMgKzQ2LDUgQEAgcHVibGljOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gVVNFKENPUkVfSU1BR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3VyY2VHcmFw
aGljQ29yZUltYWdlQXBwbGllci5oCmluZGV4IDUwOGY2NDg1OTJhMDViMmM2NzAyYjlmZTExM2Nj
MzEwMmVmYTI4NjkuLjZjMmRiMjViNTRmNTU4YWU3YjM2NzMyZDY3MTcyYWUyOGM4ZGJmM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3Vy
Y2VHcmFwaGljQ29yZUltYWdlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3VyY2VHcmFwaGljQ29yZUltYWdlQXBwbGllci5oCkBAIC0y
NSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgVVNFKENPUkVfSU1BR0UpCisKICNp
bXBvcnQgIkZpbHRlckVmZmVjdEFwcGxpZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDIsMyArNDQsNSBAQCBwdWJsaWM6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBVU0UoQ09SRV9JTUFHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCmluZGV4IDc2ZGY4YjA4ZjVjZTA4YzI4ZmQy
M2VhYmZlNDMwODMzYmEyODk2N2YuLjQxOGVjMGQ3MTMyOGJkZjkxYzQ1ZjIyNDQ0MDQ3ZjE4MDBk
NDA5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVCbGVuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcApAQCAtNSw3ICs1LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBE
aXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAo
QykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTIsNyArNTIsNyBAQCBib29sIEZFQmxlbmQ6OnNl
dEJsZW5kTW9kZShCbGVuZE1vZGUgbW9kZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQmxlbmQ6OmNyZWF0ZUFwcGxpZXIoY29u
c3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBG
RUJsZW5kOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0
ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVCbGVuZFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUJsZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuaAppbmRleCA2NDQ3MzAxZDY3NTI3ZGY0ZGZkYTdlYWYyMzU0MmIxOTQyYWIzNmNjLi45N2Yw
YTk0MzQxNzIxZTUwYmNmYWYxYTFiZjNmZWU5YTA3NjBiM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaApAQCAtMyw3ICszLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgog
ICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0
ZToKIAogICAgIHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gMjsgfQogICAgIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgcGxhdGZvcm1BcHBseU5FT04odW5zaWduZWQg
Y2hhciogc3JjUGl4ZWxBcnJheUEsIHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlCLCB1bnNp
Z25lZCBjaGFyKiBkc3RQaXhlbEFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgY29sb3JBcnJheUxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAppbmRleCA0NzYxYWI4
NWNjZDIxZTc2YWIxMDljZjExNjU3NTg2YjI2OTg2MTAxLi41ZWQ4YmQ1OGZhM2NkMmEwZWJhMzkw
ZWIxNTkyOWRhOTE0MjFmYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKQEAgLTMsNyArMyw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAq
IENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC05OCwyNiArOTgsMjUgQEAgVmVjdG9yPGZsb2F0PiBGRUNvbG9yTWF0
cml4Ojpub3JtYWxpemVkRmxvYXRzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlcykKICAgICBy
ZXR1cm4gbm9ybWFsaXplZFZhbHVlczsKIH0KIAorYm9vbCBGRUNvbG9yTWF0cml4OjpyZXN1bHRJ
c0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImKSBjb25zdAoreworICAgIHJldHVy
biBtX3R5cGUgPT0gRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQSEE7Cit9CisKICNp
ZiBVU0UoQ09SRV9JTUFHRSkKIGJvb2wgRkVDb2xvck1hdHJpeDo6c3VwcG9ydHNDb3JlSW1hZ2VS
ZW5kZXJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBGRUNvbG9yTWF0cml4Q29yZUltYWdlQXBw
bGllcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKnRoaXMpOwogfQotI2VuZGlmCiAKLWJv
b2wgRkVDb2xvck1hdHJpeDo6cmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVj
dG9yJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbG9y
TWF0cml4OjpjcmVhdGVDb3JlSW1hZ2VBcHBsaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90
eXBlID09IEZFQ09MT1JNQVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBOworICAgIHJldHVybiBG
aWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXI+
KCp0aGlzKTsKIH0KKyNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gRkVDb2xvck1hdHJpeDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImIGZpbHRlcikgY29u
c3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbG9yTWF0cml4Ojpj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewotI2lmIFVTRShDT1JFX0lNQUdFKQotICAg
IGlmIChmaWx0ZXIucmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVk
KQotICAgICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFQ29sb3JNYXRy
aXhDb3JlSW1hZ2VBcHBsaWVyPigqdGhpcyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShmaWx0
ZXIpOwotI2VuZGlmCiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUNv
bG9yTWF0cml4U29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKaW5k
ZXggNDQ0ZTU3YTg2ZjI2MjgzMzQ5MmNiZTZlN2YyZWUwMDI5YjMwZTNjMy4uYTFkMzFmYmU5ZTUz
ZmNkMzcyN2ZmMjZiMmU4ZTVmNzI5OGNlMjI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKQEAgLTIsNyAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NSwxMyAr
NTUsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRUNvbG9yTWF0cml4KENvbG9yTWF0cml4
VHlwZSwgVmVjdG9yPGZsb2F0PiYmKTsKIAorICAgIGJvb2wgcmVzdWx0SXNBbHBoYUltYWdlKGNv
bnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0IG92ZXJyaWRlOworCiAjaWYgVVNF
KENPUkVfSU1BR0UpCiAgICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0
IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVh
dGVDb3JlSW1hZ2VBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKLSAgICBi
b29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCmluZGV4IDEzZjFlN2UxNjIzNWY3
MzQyNjMzN2MwYTViYzk0ZmM0YzM5ZTJkZjEuLmVhYjdjNDBjYjRiYjAyNTRmMDY5MzY2N2ZiYWQz
NTJkNTUzZTY2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcApAQCAtNCw3ICs0
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NCwxNiArNTQsMTUgQEAg
Ym9vbCBGRUNvbXBvbmVudFRyYW5zZmVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyOjpz
dXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygqdGhpcyk7CiB9Ci0jZW5kaWYKIAotc3RkOjp1bmlx
dWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZUFw
cGxpZXIoY29uc3QgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlQ29yZUltYWdlQXBwbGll
cigpIGNvbnN0CiB7Ci0jaWYgVVNFKENPUkVfSU1BR0UpCi0gICAgaWYgKGZpbHRlci5yZW5kZXJp
bmdNb2RlKCkgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpCi0gICAgICAgIHJldHVybiBG
aWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFw
cGxpZXI+KCp0aGlzKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZpbHRlcik7CisgICAgcmV0
dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUNvbXBvbmVudFRyYW5zZmVyQ29yZUlt
YWdlQXBwbGllcj4oKnRoaXMpOworfQogI2VuZGlmCisKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJF
ZmZlY3RBcHBsaWVyPiBGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIo
KSBjb25zdAorewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVDb21w
b25lbnRUcmFuc2ZlclNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25l
bnRUcmFuc2Zlci5oCmluZGV4IDkyNWJkZjIyNTFkMjZmYzkwZjc5MTgyZTQ0NTZhOTUwYTNhYzFl
MTMuLjE5MmZkOWE3MDY4ODZiZDMzNDU0ODc2ZTNlMDNmNjYwZmUyMjcxYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFu
c2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtNjgsOSArNjgsMTAgQEAgcHJpdmF0ZToKIAogI2lmIFVTRShD
T1JFX0lNQUdFKQogICAgIGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRl
Q29yZUltYWdlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXIm
KSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVy
UmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IDdk
Y2E2OTUyMzI1ZTVlNjIwOGU2NWUzZjk2MjQ4Zjg2ZmZlNWUyYWMuLjRjM2I2NzA4ZTU3ZjgyNDRh
YzIyYWJkMzRiZDUyZThhNDU0ZDEwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCkBAIC00LDcgKzQsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwNiw3ICsxMDYsNyBAQCBGbG9h
dFJlY3QgRkVDb21wb3NpdGU6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRl
ciwgY29uc3QgRmlsdGVySW1hZwogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdEFwcGxpZXI+IEZFQ29tcG9zaXRlOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNv
bnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb21wb3NpdGU6OmNy
ZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFw
cGxpZXI6OmNyZWF0ZTxGRUNvbXBvc2l0ZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5oCmluZGV4IGMzMDk2ZWZmZTNjMjc5ZjIxMjFlYjEyNWVjMDllMDAxNmI2NWNlODcuLjE5
YjY4ZjRhZTlkMjA3NDBiNzcyNmMwODAxYzFmNDlhYjdjMWIzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKQEAg
LTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02
OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHJlc3VsdElzVmFsaWRQcmVtdWx0aXBs
aWVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90eXBlICE9IEZFQ09NUE9TSVRFX09QRVJB
VE9SX0FSSVRITUVUSUM7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCmluZGV4IDFkMjc0ODM1MzFjYjEwZDEy
NjdmMWM0Mjc3MDcxNjIxODQ4NTE1MWYuLmU2MWFjOGY5NTdiNDI3YTA2ODBmZTUzY2IzNDcxMmIy
MWE0YzNmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcApAQCAtNCw3ICs0LDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJp
Z2h0IChDKSAyMDEwIFpvbHRhbiBIZXJjemVnIDx6aGVyY3plZ0B3ZWJraXQub3JnPgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0xMTksNyArMTE5LDcgQEAgRmxvYXRSZWN0IEZFQ29udm9sdmVN
YXRyaXg6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmls
dGUKICAgICByZXR1cm4gZmlsdGVyLm1heEVmZmVjdFJlY3QocHJpbWl0aXZlU3VicmVnaW9uKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29udm9sdmVNYXRy
aXg6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxG
aWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGVTb2Z0d2FyZUFwcGxp
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVD
b252b2x2ZU1hdHJpeFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguaAppbmRleCBlZTZiYzhmYWFhZmIwZTAxOTJhOGUxYTU5ZWVhMTYxZTNjNTM0NzM1Li4wNzU0
NWI4NzQ4ZDFmZTljZDQ1YzAwMTdhNzIxYWZkNGQ3OGZhNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmlj
QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgWm9sdGFuIEhlcmN6ZWcgPHpoZXJj
emVnQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTcyLDcgKzcyLDcgQEAg
cHJpdmF0ZToKIAogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVy
JiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmlt
aXRpdmVTdWJyZWdpb24pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNv
ZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0
aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAppbmRleCAx
MTdjNTBhZjgwMmIzYmYyY2MwYjE1Njk0Zjg5MDA3MmRlMjI5NzJiLi40OTA5OWI2Mzc2Mzk4NGE4
MTYzOGJjYzdiOWE3ODE3ZmMwMjI1NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcApA
QCAtNCw3ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJr
aXQub3JnPgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEw
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04OSw3ICs4
OSw3IEBAIHZvaWQgRkVEaXNwbGFjZW1lbnRNYXA6OnRyYW5zZm9ybUlucHV0c0NvbG9yU3BhY2Uo
Y29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0CiAgICAgaW5wdXRzWzFdLT50cmFuc2Zvcm1U
b0NvbG9yU3BhY2Uob3BlcmF0aW5nQ29sb3JTcGFjZSgpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFRGlzcGxhY2VtZW50TWFwOjpjcmVhdGVBcHBsaWVyKGNv
bnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4g
RkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRURpc3BsYWNlbWVudE1hcFNvZnR3
YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4IDY1NTU4
ZDQwM2NhMGFkMDQ4NTdmOWI4NDlkN2ZhNGZmN2JhY2Y3MDMuLmQ4ZmNkZmRhMWRkNjMzNzUzOWE2
YzA1MzNiNjQzMGQzMDA2Y2RlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAgLTIsNyAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiByZXN1bHRD
b2xvclNwYWNlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFuc2Zvcm1JbnB1dHNDb2xvclNwYWNlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBp
bnB1dHMpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVj
dEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBw
bGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IDQ4YmFhYzA3OGI4OTZlODc1OTYz
NjQyNDk3YmJkOTRjNGQxNzRkOGMuLmQzMjkzMzNkNzkzNTg1Njc4MzY3ZDMzNDIwMmE2YjY2OWIx
OTQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03Miw3ICs3Miw3IEBAIEludE91dHNldHMg
RkVEcm9wU2hhZG93OjpvdXRzZXRzKGNvbnN0IEZpbHRlciYpIGNvbnN0CiAgICAgfTsKIH0KIAot
c3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFRHJvcFNoYWRvdzo6Y3JlYXRl
QXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVj
dEFwcGxpZXI+IEZFRHJvcFNoYWRvdzo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFRHJvcFNoYWRvd1NvZnR3
YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKaW5kZXggZTY5NjVkMjdiN2Y3Y2U1
ZWQyZjI3YmNiZTk0MDBjYmE1N2JmNGM2MS4uOGEwMzAzZjcwZDY4OGNlMTc2ZTczMTRhZWFlODM5
MDRjZTBlZGU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURyb3BTaGFkb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgog
CiAgICAgSW50T3V0c2V0cyBvdXRzZXRzKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKaW5k
ZXggNWY0NWQ1M2I3NjlkMTU1Y2UzMjJkYmRhNTYxMGE4ZWRlNjg5ZDY2Zi4uYzRjMWExZmY3Yzdm
MTliMzBhNWM2OGFlNzllOGM0MmQ5MTI0MzU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCkBAIC0zLDcgKzMsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHly
aWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNjQsNyArNjQsNyBAQCBGbG9hdFJlY3QgRkVGbG9vZDo6Y2FsY3VsYXRl
SW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBGaWx0ZXJJbWFnZVZlYwogICAg
IHJldHVybiBmaWx0ZXIubWF4RWZmZWN0UmVjdChwcmltaXRpdmVTdWJyZWdpb24pOwogfQogCi1z
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVGbG9vZDo6Y3JlYXRlQXBwbGll
cihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFRmxvb2Q6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUZsb29kU29mdHdhcmVBcHBsaWVyPigqdGhp
cyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFRmxvb2QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVGbG9vZC5oCmluZGV4IDIyZjllYzkyNTk0NGM2YzBlYWQ4MjhiMjViYWRiMmY3MWMyZjYxMTAu
LjUzZDRjYzVmOWRmMTdhMTU5MzE4ODBmOTVhYjdiY2RmN2FmMDBkMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCkBAIC0yLDcg
KzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTMsNyAr
NTMsNyBAQCBwcml2YXRlOgogCiAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZUltYWdlUmVjdChjb25z
dCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBjb25zdCBGbG9hdFJl
Y3QmIHByaW1pdGl2ZVN1YnJlZ2lvbikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBj
b25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4g
Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRT
dHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVw
cmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCmluZGV4
IDQwZjFhZDZkYWI3OTgxOGRkMjkwMjA3ZWJkOGEwZTI3ODFkM2JjMGUuLjdhNTM2NzM2YjY4ZTJm
ODE5ZGRlYTZmNGQ2MWY5NmY0OTdiODZkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCkBAIC01
LDcgKzUsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJr
aXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSwgUy5MLgogICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIEZF
R2F1c3NpYW5CbHVyOjpyZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3Im
IGlucHV0cykgY29uc3QKICAgICByZXR1cm4gaW5wdXRzWzBdLT5pc0FscGhhSW1hZ2UoKTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFR2F1c3NpYW5CbHVyOjpj
cmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gRkVHYXVzc2lhbkJsdXI6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUdhdXNzaWFu
Qmx1clNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4IDcz
ZWU1ZTk0YWRkM2RlYjM4OTIzMWM2MmQxYjIyMTFlYjg1ZmU5MjAuLjgwMTU0ODQ3MjRiYTc3MGVi
NGM5MDljMTczMTM2MmZhOWI1NTcxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTIsNyArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01Niw3ICs1Niw3
IEBAIHByaXZhdGU6CiAKICAgICBib29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJ
bWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0
IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVh
dGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNl
bnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCmluZGV4IGJjOTJkMzg0M2Nk
ODg5ZTk1ZmU1MTliNDhmYWFlOWI4YzI3ZDQ1YjkuLmViNDliNzVkNGViM2Q2NGNjMGNkYmUwZTcz
OGQwMjUyODZhN2I3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqIENvcHlyaWdodCAoQykg
MjAxMCBab2x0YW4gSGVyY3plZwotICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIyIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTg3LDcgKzg3LDcgQEAgRmxvYXRSZWN0IEZFTGlnaHRpbmc6OmNhbGN1bGF0ZUltYWdl
UmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1hZ2UKICAgICByZXR1cm4g
ZmlsdGVyLm1heEVmZmVjdFJlY3QocHJpbWl0aXZlU3VicmVnaW9uKTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFTGlnaHRpbmc6OmNyZWF0ZUFwcGxpZXIoY29u
c3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBG
RUxpZ2h0aW5nOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBG
aWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVMaWdodGluZ1NvZnR3YXJlQXBwbGllcj4oKnRo
aXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCBjYzhiNmRhMWU3ZGZmZTM3YTc0YjNkM2E4NTY1ZmVkMzJk
ZGMwOGRhLi4wYzA3M2JjMTNmOGNmMzY2ZjljZjY2MWNiMjYzNDM5NjhlMmQyMWRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRp
bmcuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0
eSBvZiBTemVnZWQKICAqIENvcHlyaWdodCAoQykgMjAxMCBab2x0YW4gSGVyY3plZwotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NSw3ICs2NSw3IEBAIHByb3RlY3RlZDoK
IAogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwgY29uc3Qg
RmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJy
ZWdpb24pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVj
dEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBw
bGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgQ1BVKEFSTV9ORU9OKSAmJiBDUFUoQVJNX1RS
QURJVElPTkFMKSAmJiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKICAgICBzdGF0aWMgaW50IGdl
dFBvd2VyQ29lZmZpY2llbnRzKGZsb2F0IGV4cG9uZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCmluZGV4IDJkNmI0ZWNi
OGQyNDQ4NGM4YWYxNTZlZjU0MTI2NjJkZDNmM2Q1NTMuLjFhMWUyOWQ0MzBlYTdhNmJmY2UwZDE5
YzVjMzU5ZWNiN2RiZGIzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1h
bm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+Ci0gKiBDb3B5cmlnaHQgKEMpIEFwcGxlIEluYy4gMjAyMSBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MCw3ICs0MCw3IEBAIEZFTWVyZ2U6OkZFTWVy
Z2UodW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMpCiB7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRU1lcmdlOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVNZXJnZTo6
Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0
QXBwbGllcjo6Y3JlYXRlPEZFTWVyZ2VTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKaW5k
ZXggYTMzOWZmZjc4NmEyMTEzNzcxMzI5NzExZjZmNzgyYTc2NzU1NzU4ZC4uYjEzMWUzN2U1NjRl
Njc4ZGUyMmFhNTUxMDY1YTA4ODcwYjZkMGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgKQEAgLTIsNyArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSBBcHBsZSBJbmMuIDIwMjEgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEZFTWVyZ2UodW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMpOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3ku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xv
Z3kuY3BwCmluZGV4IDQ1MmNhM2I5NWZjZDNmMmY4NjM4MmYzNjc2NzZmMmExNTI0MTkwZDQuLmNh
NmU1MDUxNTVkYzI4MDhjMzFjYTQ1ZDFmMTAxYzQ3NTlkNGQ4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5j
cHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRA
d2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgQXBwbGUgSW5jLiAy
MDE3LTIwMjEgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
ODAsNyArODAsNyBAQCBib29sIEZFTW9ycGhvbG9neTo6cmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0
IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0c1swXS0+
aXNBbHBoYUltYWdlKCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRU1vcnBob2xvZ3k6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRU1vcnBob2xvZ3k6OmNyZWF0ZVNvZnR3
YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNy
ZWF0ZTxGRU1vcnBob2xvZ3lTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5o
CmluZGV4IGU0NTRjMzcxZTg0NGM1NmY3MGYyMDkwNWVlMjE0NmRlMjJmOWQ2MzIuLjJmNmI2MjM4
MTk2MGU0NzVlODlmNDY5ZTViNzc2MmRmMmJjOWVhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtMiw3
ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFz
IFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIEFwcGxlIEluYy4gMjAy
MSBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NSw3ICs1
NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0
ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0
cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXBy
ZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKaW5kZXggYTMyOTkyOTZlNzVh
ZGRmM2IzMzE5YzAyYWVmZTk0NWIxMzkxNjIzNi4uMzk1YTgyNmJlMDJkNzBiNjIzOTMxY2FhYzhl
MGVjYjA0MzI3ODczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU9mZnNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtODIsNyArODIsNyBAQCBib29sIEZFT2Zmc2V0OjpyZXN1bHRJ
c0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3QKICAgICBy
ZXR1cm4gaW5wdXRzWzBdLT5pc0FscGhhSW1hZ2UoKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IEZFT2Zmc2V0OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVPZmZzZXQ6OmNy
ZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFw
cGxpZXI6OmNyZWF0ZTxGRU9mZnNldFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCmlu
ZGV4IDYxN2Y4YzY5MmEzMTY2NTM3ZWFlOWUwZmU1OTY5MWFkNzRiMjkwZDEuLmNiYTAwNmNlMmI4
OWE3OWIzNDljZDRjYThkZjViNjIyOWM0ZTVlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKQEAgLTIsNyArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJp
Y0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00OCw3ICs0OCw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZl
Y3RvciYgaW5wdXRzKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0
d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlv
bikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAppbmRleCA5MmI4MjcwZTRkYmY5MzRhZDYzNjQ0OGE2
Y2U0ZDYwZTZmNDFkYTJmLi5lMzRmYmFiMjY0NzliN2VmOGY3MWUwMzU4NzYzY2VlNDkwNWMyMjhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RVRpbGUuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbGV4
IE1hdGhld3MgPHBvc3Nlc3NlZHBlbmd1aW5ib2JAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChD
KSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC00OCw3ICs0OCw3IEBAIGJvb2wgRkVUaWxlOjpyZXN1bHRJc0FscGhhSW1hZ2UoY29u
c3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3QKICAgICByZXR1cm4gaW5wdXRzWzBd
LT5pc0FscGhhSW1hZ2UoKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFVGlsZTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlx
dWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFVGlsZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFVGls
ZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKaW5kZXggMDBhZGQyOGE1NjIxYmJmYzU3NjMy
NzMyOWM0YjY0NjEzYTAzYmMwOC4uODlmYTMwZTQ4MjRlNjZhNjMxZTI0MTk2ZDU1NjEzMWI1YmUx
ZDVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVRpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCByZXN1bHRJc0Fs
cGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGll
cihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0
U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxl
bmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJi
dWxlbmNlLmNwcAppbmRleCA4YTE1NTZhNWJiZGI1NjllYmI1OTY5NDJhMzYzYzZlMDhlMzUzYmZk
Li5kNDEyOTcyYTdlMmQwOTI0YmYwZWY0NGM0NTIyNDkzZTkxNzY4YTExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuY3BwCkBAIC01LDcgKzUsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6
ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBIb2RvdmFu
IDxyZW5pQGluZi51LXN6ZWdlZC5odT4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHYWJvciBMb2tp
IDxsb2tpQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxLDcg
KzEwMSw3IEBAIEZsb2F0UmVjdCBGRVR1cmJ1bGVuY2U6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25z
dCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1hCiAgICAgcmV0dXJuIGZpbHRlci5tYXhF
ZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJlZ2lvbik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBGRVR1cmJ1bGVuY2U6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVy
JikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRVR1cmJ1bGVu
Y2U6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVm
ZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRVR1cmJ1bGVuY2VTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVHVyYnVsZW5jZS5oCmluZGV4IGFhYWViN2MyMzdjY2VhOTFmNTEzMTI2YzQ2ODU1ZWQyN2E5
OWQ0NTkuLmU4MDg3YzMwMDJhNjY3OGYwZTczMTM5MDVkZGQ1NDgxM2U3M2RlMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1
bGVuY2UuaApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8
a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBIb2RvdmFuIDxy
ZW5pQGluZi51LXN6ZWdlZC5odT4KLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02Nyw3
ICs2Nyw3IEBAIHByaXZhdGU6CiAKICAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNv
bnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0
UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4
dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJS
ZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAppbmRleCA4
MjQ1MDE3ODJiYjAzN2JiNjYyNmI4YzdiNGUzZTU0MzVhYzNiZjIyLi40NTJlYmZhMTk0ZDBlNWVk
MGE4YWNkNGMyYzRhYTkwMjU4YTMzN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBAIC04NSw2ICs4
NSwxNiBAQCBGbG9hdFJlY3QgRmlsdGVyRWZmZWN0OjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3Qg
RmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZpbHRlckltYQogICAgIHJldHVybiBmaWx0ZXIuY2xpcFRv
TWF4RWZmZWN0UmVjdChpbWFnZVJlY3QsIHByaW1pdGl2ZVN1YnJlZ2lvbik7CiB9CiAKK3N0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUFwcGxp
ZXIoY29uc3QgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0Cit7CisgICAgaWYgKGZpbHRlci5yZW5kZXJp
bmdNb2RlKCkgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpIHsKKyNpZiBVU0UoQ09SRV9J
TUFHRSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNvcmVJbWFnZUFwcGxpZXIoKTsKKyNlbmRpZgor
ICAgIH0KKyAgICByZXR1cm4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCk7Cit9CisKIHZvaWQgRmls
dGVyRWZmZWN0Ojp0cmFuc2Zvcm1JbnB1dHNDb2xvclNwYWNlKGNvbnN0IEZpbHRlckltYWdlVmVj
dG9yJiBpbnB1dHMpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBpbnB1dCA6IGlucHV0cykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckVmZmVjdC5oCmluZGV4IDcwZTNmZTVkOGU3Y2MwODgxNWZhMjgzNDZjMjRkMjgxNGQyYWY3MWIu
LmMzYzE2ODU4MzkwNGVjMjA0YTZlNmExMTRmZmJlOTY1MWQ3YmVmMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3Qu
aApAQCAtNzAsNyArNzAsMTMgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZvaWQgY29ycmVjdFBy
ZW11bHRpcGxpZWRJbnB1dHMoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3Q7
CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVh
dGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0ID0gMDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdDsK
KworI2lmIFVTRShDT1JFX0lNQUdFKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUNvcmVJbWFnZUFwcGxpZXIoKSBjb25zdCB7IHJldHVybiBu
dWxscHRyOyB9CisjZW5kaWYKKworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0ID0gMDsKIAogICAgIFJl
ZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoY29uc3QgRmlsdGVyJiwgRmlsdGVySW1hZ2UmIGlucHV0
LCBGaWx0ZXJSZXN1bHRzJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggODUxMzkz
YTJkZjhhZjlmYzdhYWU4NzhiNTEyYmUyMTE0ZjkwOTIwZi4uZmQyMzgyYjE2ZWFmNmE5MmEyZTE5
YzM4ZjkyYjE3ZDYwYjJhNmVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAg
U291cmNlQWxwaGE6OlNvdXJjZUFscGhhKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29s
b3JTcGFjZSkKICAgICBzZXRPcGVyYXRpbmdDb2xvclNwYWNlKGNvbG9yU3BhY2UpOwogfQogCi1z
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gU291cmNlQWxwaGE6OmNyZWF0ZUFw
cGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBTb3VyY2VBbHBoYTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUFscGhhU29mdHdhcmVB
cHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKaW5kZXggOWY5YTkwNDExODVlYjJhOGRjZmZk
MzgzMDFkN2ZlY2Q4MzdlZjQ4YS4uNTE3MDQzZjQxMTc4YTBmZjZiNjM0ZTFiMTUzOWVmNDMwMmVh
M2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VBbHBoYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlQWxwaGEuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3Vy
Y2VBbHBoYShjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKTsKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0
cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXBy
ZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXgg
NDhmZDQxOGMyOWJhNzYxMTVjZWY3YzIzMDU4ODcwMWNiMGYyYzZiNS4uY2VlNmJlM2JlODUwYjkw
OTVlYWU1MTkyMzIxNjU5NDRlODQ0ODcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Vi
a2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDEsMTUgKzQxLDE1IEBAIFNvdXJj
ZUdyYXBoaWM6OlNvdXJjZUdyYXBoaWMoKQogewogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gU291cmNlR3JhcGhpYzo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXIm
IGZpbHRlcikgY29uc3QKLXsKICNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICAvLyBGSVhNRTogcmV0
dXJuIFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyLgotICAgIGlmIChmaWx0ZXIucmVuZGVy
aW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4g
RmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVy
PigqdGhpcyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShmaWx0ZXIpOworc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZUNvcmVJbWFnZUFw
cGxpZXIoKSBjb25zdAoreworICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8
U291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXI+KCp0aGlzKTsKK30KICNlbmRpZgorCitzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gU291cmNlR3JhcGhpYzo6Y3JlYXRlU29m
dHdhcmVBcHBsaWVyKCkgY29uc3QKK3sKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6
Y3JlYXRlPFNvdXJjZUdyYXBoaWNTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFw
aGljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuaAppbmRleCAyY2U0NWQ4ZWEzODg3NjgyOTU4NWIxZTE4MTdjYTY0ZmMwMDI5MDViLi4w
M2Y3MDNkMTI5MGM2MzlmODY0MjZkZGM3N2M1Y2M3NGU1NzZkYTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxleCBNYXRoZXdz
IDxwb3NzZXNzZWRwZW5ndWluYm9iQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOSBE
aXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzQsMTMgKzM0LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU291cmNlR3JhcGhpYygpOwog
CisgICAgdW5zaWduZWQgbnVtYmVyT2ZFZmZlY3RJbnB1dHMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAwOyB9CisKICNpZiBVU0UoQ09SRV9JTUFHRSkKICAgICBib29sIHN1cHBvcnRzQ29yZUlt
YWdlUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVDb3JlSW1hZ2VBcHBsaWVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5w
dXRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotCi0gICAgc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0
ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFt
JiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2Vu
dGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0
ZXIuY3BwCmluZGV4IDUzM2I3NDdiODAyMjI3YjM5ZmRhOTYyNmMyMmEzMGI5NmI1MTk3Y2UuLjZm
ZGFkMzM3Y2M2ZWUzYWZlNTA2MjcwMTAzOTYwOGIyZGNiNDAzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9DU1NGaWx0ZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZlB0cjxDU1NGaWx0ZXI+
IENTU0ZpbHRlcjo6Y3JlYXRlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGaWx0ZXJP
cGVyYXRpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAjaWYgVVNFKENPUkVfSU1BR0UpCi0g
ICAgaWYgKCFmaWx0ZXItPnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkpCisgICAgaWYgKHJl
bmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgJiYgIWZpbHRlci0+c3Vw
cG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSkKICAgICAgICAgZmlsdGVyLT5zZXRSZW5kZXJpbmdN
b2RlKFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogI2VuZGlmCiAgICAgcmV0dXJuIGZp
bHRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDA5NmQ1
ZjE3NzIyN2ZjOWM4NmYyZjU0YTYwNWU3NGQ1OTY3ZWRjNWMuLmE4Njc0MGVmY2I0OTJkZTU0NGJj
NmQ5ZDVjMmEyMmQ1OWFkNGM1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtNTYxMSw3ICs1NjExLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRmls
dGVyUGFpbnRpbmdTdHJhdGVneSgpCiAgICAgfQogICAgIAogICAgIGVuc3VyZUxheWVyRmlsdGVy
cygpOwotICAgIG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwgcGFnZSgpLmRldmlj
ZVNjYWxlRmFjdG9yKCksIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNF
bmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQpOworICAgIG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwgcGFn
ZSgpLmRldmljZVNjYWxlRmFjdG9yKCksIHJlbmRlcmVyKCkucGFnZSgpLmFjY2VsZXJhdGVkRmls
dGVyUmVuZGVyRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIH0KIAogSW50T3V0c2V0cyBSZW5kZXJMYXllcjo6Zmls
dGVyT3V0c2V0cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IDAyNDlkODAyZWNkNWNkMTJm
NjQ4YzM1ZjViMzllMjA0MGY2NTRmMTYuLjEyNzg5YmNlOGM4MTc0NDNhYzVjNGY0YjE5NDRmZDAz
OGNiNTRhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJl
ciwgY29uc3QgUmVuZGUKICAgICBJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoZmlsdGVy
RGF0YS0+ZHJhd2luZ1JlZ2lvbi5zaXplKCksIGZpbHRlclNjYWxlKTsKIAogICAgIC8vIFNldCB0
aGUgcmVuZGVyaW5nIG1vZGUgZnJvbSB0aGUgcGFnZSdzIHNldHRpbmdzLgotICAgIGF1dG8gcmVu
ZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2Vs
ZXJhdGVkOworICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnBhZ2UoKS5hY2NlbGVy
YXRlZEZpbHRlclJlbmRlckVuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDog
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKIAogICAgIC8vIENyZWF0ZSB0aGUgU1ZHRmls
dGVyIG9iamVjdC4KICAgICBmaWx0ZXJEYXRhLT5idWlsZGVyID0gbWFrZVVuaXF1ZTxTVkdGaWx0
ZXJCdWlsZGVyPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGRUltYWdlLmNwcAppbmRleCBkYzNkMzNlZjNhYjVlYjA3ZWJjZGQ2NjdlOWRjNzVmOWFj
MzdlNGMwLi45NTU2NTk3OGM4NjUzNTdlZDNjY2U5MjE2Mzc0MTgyOTllNzUyZjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcApA
QCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5v
cmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIEZFSW1h
Z2VTb2Z0d2FyZUFwcGxpZXI6OmFwcGx5KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBGaWx0
ZXJJbWFnZVZlY3RvcgogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gRkVJbWFnZTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBj
b25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFSW1hZ2U6OmNyZWF0
ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxp
ZXI6OmNyZWF0ZTxGRUltYWdlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKaW5kZXggMWY3ZTgz
MjYyYjljYjkyMzBhM2EzYzllYzUzMTlhYTE5M2RkZTgxNC4uYzMzMDI2N2UyNDlhYjc4YjBjNWJl
NDZlZTc5ZGEwY2Y2OWVjNDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1
IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgRGly
ayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTYy
LDcgKzYyLDcgQEAgcHJpdmF0ZToKIAogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVJbWFnZVJlY3Qo
Y29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgY29uc3QgRmxv
YXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVy
JikgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+
IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IGZpbmFsOwogCiAgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJl
c2VudGF0aW9uKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKaW5kZXggODQ3NWVhYTk3YTIyMjM1M2EzMTczODk2
ZTRlZTE3MzFlMGZhZGQ2OC4uODgyMzA5ZTA1YjVlODk3MWI0YjZhOGI0MTI1MWM4OGU0NDFmNDdi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmls
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0
ZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFJlZlB0cjxTVkdGaWx0ZXI+IFNWR0ZpbHRlcjo6Y3Jl
YXRlKFNWR0ZpbHRlckVsZW1lbnQmIGZpbHRlckVsZW1lbnQsIFNWR0ZpbHRlckJ1CiAgICAgZmls
dGVyLT5zZXRFeHByZXNzaW9uKFdURk1vdmUoZXhwcmVzc2lvbikpOwogCiAjaWYgVVNFKENPUkVf
SU1BR0UpCi0gICAgaWYgKCFmaWx0ZXItPnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkpCisg
ICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgJiYgIWZp
bHRlci0+c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSkKICAgICAgICAgZmlsdGVyLT5zZXRS
ZW5kZXJpbmdNb2RlKFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogI2VuZGlmCiAgICAg
cmV0dXJuIGZpbHRlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBiZThhNTQxOTU2OTNjMWQzNzljN2ZkODYyMzQzZDM4NmNhZjRmYmJlLi45NTli
YzBiMGFmODc0YWRmODk2YjhkNDFhNWQ2MzQxM2YyZTA3OGZiIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDEt
MTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29yZUlt
YWdlIGZpbHRlcnMgYXJlIGVuYWJsZWQgYnkgdGhlIHdyb25nIHNldHRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTM3NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgQ29yZUltYWdlQWNj
ZWxlcmF0ZWRGaWx0ZXJSZW5kZXJFbmFibGVkIGZvciBXS1RSIGFuZCBEUlQuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OlRlc3RPcHRp
b25zOjpkZWZhdWx0cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpkZWZhdWx0cyk6CisKIDIwMjItMDEtMTkg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI4ODE0Ny4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAppbmRleCBlOGM4ZGNlMjYxMDcyMWU4NzgzODk3MTEyZDgzZmM4MTk5MTA2OGU3Li4zYzgw
ZGE4ODRhNmM3NmYzMWNmYTFlNzVmODc5ODkxOTcxMjczNTBjIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuY3BwCkBAIC02OSw2ICs2OSw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVz
dE9wdGlvbnM6OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsgIkFsbG93c0lubGluZU1lZGlhUGxh
eWJhY2siLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3
aW5nIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQ29sb3JGaWx0ZXJFbmFibGVkIiwgdHJ1ZSB9
LAorICAgICAgICAgICAgeyAiQ29yZUltYWdlQWNjZWxlcmF0ZWRGaWx0ZXJSZW5kZXJFbmFibGVk
IiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCIs
IHRydWUgfSwKICAgICAgICAgICAgIHsgIkRPTVBhc3RlQWxsb3dlZCIsIHRydWUgfSwKICAgICAg
ICAgICAgIHsgIkRldmVsb3BlckV4dHJhc0VuYWJsZWQiLCB0cnVlIH0sCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuY3BwCmluZGV4IGY4MThhMGU2N2QyZDZiZjBkNWUyYzNkZTZjZmZh
YjAyNzE5MTdlYjAuLjQyODYwMjNkMDNhY2VmNGNhMmQxMWM4ZTJjNTM4OThkZWM4ZTkzYjEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCkBAIC03Miw2ICs3Miw5IEBAIGNv
bnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlvbnM6OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsg
IkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQiLCBjYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3NFbmFibGVkVmFsdWUgfSwKICAgICAgICAgICAgIHsgIkNhcHR1cmVWaWRlb0luVUlQcm9jZXNz
RW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJF
bmFibGVkIiwgZmFsc2UgfSwKKyNpZiBVU0UoQ09SRV9JTUFHRSkKKyAgICAgICAgICAgIHsgIkNv
cmVJbWFnZUFjY2VsZXJhdGVkRmlsdGVyUmVuZGVyRW5hYmxlZCIsIGZhbHNlIH0sCisjZW5kaWYK
ICAgICAgICAgICAgIHsgIkN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCIsIHRydWUgfSwKICAg
ICAgICAgICAgIHsgIkRPTVBhc3RlQWxsb3dlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkRh
dGFUcmFuc2Zlckl0ZW1zRW5hYmxlZCIsIHRydWUgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449626</attachid>
            <date>2022-01-20 17:24:05 -0800</date>
            <delta_ts>2022-01-20 18:19:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235376-20220120172404.patch</filename>
            <type>text/plain</type>
            <size>69830</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU2NWQxYzdhMjI4MTMxMmE5YTg4YzRi
MDFiMjJmZjA2MzExYzdiMDYuLmY2ZjZjNjY2MDI5OWQ1ZTY2NDAwNThjOWI3ZThmZmQ2MTVjZjBm
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDEtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBY2NlbGVyYXRlZCBmaWx0ZXJzIGFy
ZSBlbmFibGVkIGJ5IHRoZSB3cm9uZyBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUzNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEZWxldGUgRU5BQkxFX0NPUkVfSU1BR0VfQUNDRUxFUkFU
RURfRklMVEVSX1JFTkRFUiBhbmQgdXNlIFVTRV9DT1JFX0lNQUdFCisgICAgICAgIGluc3RlYWQg
c2luY2UgQ29yZUltYWdlIGlzIG9ubHkgdXNlZCBmb3IgZmlsdGVycyByaWdodCBub3cuIEJlc2lk
ZXMgCisgICAgICAgIENvcmVJbWFnZSBmaWx0ZXJzIHdpbGwgYmUgZW5hYmxlZCBieSB0aGUgaW50
ZXJuYWwgZmVhdHVyZSBjb250cm9sIGZsYWcKKyAgICAgICAgQWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbDoKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgor
CiAyMDIyLTAxLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gSW1wbGVtZW50IFRlbXBvcmFsLk5vdy5pbnN0YW50KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
NmEzMjhlMzU1NmFmZDBiZjg2NmYyMjc4Njk1MzcwMGFiYzZjZTY2Li44YTdlNjUwYmYyZWI1OWIx
NGMyMTg0NjJhOWJjZGZhZmI2NDU3YzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQwIEBACisy
MDIyLTAxLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gQWNjZWxlcmF0ZWQgZmlsdGVycyBhcmUgZW5hYmxlZCBieSB0aGUgd3Jvbmcgc2V0
dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
Mzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBkb2VzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMS4gRGVsZXRlIHRoZSBzZXR0
aW5nIEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgc2luY2UgaXQgaGFzIG5vdCBiZWVuCisgICAg
ICAgICAgIGVuYWJsZWQgYnkgYW55IHBvcnQuCisgICAgICAgIDIuIERlbGV0ZSBDb3JlSW1hZ2VB
Y2NlbGVyYXRlZEZpbHRlclJlbmRlckVuYWJsZWQgZnJvbSB0aGUgZXhwZXJpbWVudGFsCisgICAg
ICAgICAgIGZlYXR1cmVzIGxpc3QgYmVjYXVzZSBDb3JlSW1hZ2UgZmlsdGVycyBhcmUgbm90IHJl
YWR5IHRvIGJlIHJ1biBpbgorICAgICAgICAgICB0aGUgbGF5b3V0IHRlc3RzLgorICAgICAgICAz
LiBBZGQgQWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCBhcyBhbiBpbnRlcm5hbCBmZWF0dXJlIGFu
ZCB1c2UgaXQgdG8KKyAgICAgICAgICAgZW5hYmxlIENvcmVJbWFnZSBmaWx0ZXJzIGZvciBDb2Nv
YSBwb3J0cy4KKyAgICAgICAgICAgYW5kIFNvdXJjZUdyYXBoaWM6OmNyZWF0ZUFwcGxpZXIoKS4K
KyAgICAgICAgNC4gVXNlICJBY2NlbGVyYXRlZCIgaW5zdGVhZCBvZiB1c2luZyAiQ29yZUltYWdl
IiBpbiB0aGUgbWV0aG9kcyBvZiAKKyAgICAgICAgICAgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3Qu
IFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBtZXRob2RzIHdpbGwgYmUKKyAgICAgICAgICAg
Z3VhcmRlZCBieSAjaWYgVVNFKENPUkVfSU1BR0UpIGZvciBDb2NvYSBwb3J0cy4KKyAgICAgICAg
Ni4gU3BsaXQgdGhlIG1ldGhvZCBjcmVhdGVBcHBsaWVyKCkgdG8gdHdvIG1ldGhvZHM6IGNyZWF0
ZVNvZnR3YXJlQXBwbGllcigpCisgICAgICAgICAgIGFuZCBjcmVhdGVBY2NlbGVyYXRlZEFwcGxp
ZXIoKSBhbmQgbWFrZSBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUFwcGxpZXIoKQorICAgICAgICAgICBk
ZWNpZGUgd2hpY2ggb25lIHRvIGNhbGwuCisKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZSk6
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFjY2Vs
ZXJhdGVkRmlsdGVyc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxp
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhp
Y0NvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6OmNyZWF0ZUFwcGxpZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVC
bGVuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpyZXN1bHRJc0FscGhhSW1h
Z2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6c3VwcG9ydHNBY2Nl
bGVyYXRlZFJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4
OjpjcmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b2xvck1hdHJpeDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZFQ29sb3JNYXRyaXg6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmNyZWF0ZUFwcGxpZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xv
ck1hdHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25l
bnRUcmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZF
Q29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZUFjY2VsZXJhdGVkQXBwbGllciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6c3VwcG9ydHND
b3JlSW1hZ2VSZW5kZXJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVD
b21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZVNvZnR3YXJlQXBwbGll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGVBcHBs
aWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29udm9sdmVNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRGlzcGxhY2VtZW50TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRGlzcGxhY2VtZW50
TWFwOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVE
aXNwbGFjZW1lbnRNYXA6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRURyb3BTaGFkb3c6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFRmxvb2Q6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpGRUZsb29kOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZFR2F1c3NpYW5CbHVyOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGRU1lcmdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RkVNZXJnZTo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RkVNb3JwaG9sb2d5OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RkVPZmZzZXQ6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRU9mZnNldDo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVGls
ZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFVGls
ZTo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFVHVyYnVsZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRVR1cmJ1bGVuY2U6OmNy
ZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRVR1cmJ1bGVu
Y2U6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZm
ZWN0OjpjcmVhdGVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojpj
cmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckZ1
bmN0aW9uOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6Y3JlYXRlU29mdHdhcmVBcHBs
aWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjpjcmVhdGVBcHBsaWVy
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OnN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhp
Yzo6Y3JlYXRlQWNjZWxlcmF0ZWRBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNv
dXJjZUdyYXBoaWM6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VHcmFwaGljOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6c3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXI6OnN1cHBvcnRz
Q29yZUltYWdlUmVuZGVyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
Q1NTRmlsdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RkVJbWFnZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZFSW1hZ2U6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjplZmZlY3RzT2ZUeXBlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6OnN1cHBvcnRzQ29yZUlt
YWdlUmVuZGVyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGaWx0ZXIuaDoKKwogMjAyMi0wMS0yMCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGQgInByZXZpb3VzIGxpbmUgZW5kcyB3aXRo
IGEgbGluZSBicmVhayIgZmxhZyB0byBQcmV2aW91c0xpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKaW5kZXggOGJmNmI1ODZlNmY5ZWJkOGFmMzlmNzg2NzAxMDEyZGI0YzdiNzA4YS4uNWNk
NzIxNjZhZGM4OGQxNDJjOTk5ZDM3NzBmM2UyM2ExNjJiM2U2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwK
KysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKQEAgLTQwOSwyMCArNDA5LDYgQEAgQ29udGFjdFBpY2tlckFQSUVuYWJsZWQ6
CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUNvcmVJbWFnZUFjY2VsZXJh
dGVkRmlsdGVyUmVuZGVyRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICB3ZWJjb3JlT25DaGFuZ2U6
IHNldE5lZWRzUmVsYXlvdXRBbGxGcmFtZXMKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDb3JlSW1h
Z2UtQWNjZWxlcmF0ZWQgRmlsdGVyIFJlbmRlcmluZyIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiQWNjZWxlcmF0ZWQgQ1NTIGFuZCBTVkcgZmlsdGVyIHJlbmRlcmluZyB1c2luZyBDb3Jl
SW1hZ2UiCi0gIGNvbmRpdGlvbjogRU5BQkxFKENPUkVfSU1BR0VfQUNDRUxFUkFURURfRklMVEVS
X1JFTkRFUikKLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktpdExlZ2FjeToKLSAgICAgIGRlZmF1
bHQ6IGZhbHNlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3Jl
OgotICAgICAgZGVmYXVsdDogZmFsc2UKLQogQ29yZU1hdGhNTEVuYWJsZWQ6CiAgIHR5cGU6IGJv
b2wKICAgd2ViY29yZU9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0lu
dGVybmFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNJbnRlcm5hbC55YW1sCmluZGV4IDY2NzEwZjg0OWY5ZDFhYTZmZmMyZmE4OWRmZWI0ZjUyNDNj
OTI2NGYuLjZkNDZkNjM4NmVlNzYxODkzY2FhMDc1Nzc2N2NmYTU1NzQ2M2MwZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
SW50ZXJuYWwueWFtbApAQCAtMjYsNiArMjYsMjAgQEAKICMgVGhleSBtdXN0IGluY2x1ZGUgYSBo
dW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uLiBUaGlzIGlzCiAj
ICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBmcm9tIHRoZSBXZWJLaXQgY2xpZW50Lgog
CitBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkOgorICB0eXBlOiBib29sCisgIHdlYmNvcmVPbkNo
YW5nZTogc2V0TmVlZHNSZWxheW91dEFsbEZyYW1lcworICBodW1hblJlYWRhYmxlTmFtZTogIkFj
Y2VsZXJhdGVkIEZpbHRlciBSZW5kZXJpbmciCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkFjY2VsZXJhdGVkIENTUyBhbmQgU1ZHIGZpbHRlciByZW5kZXJpbmciCisgIGNvbmRpdGlvbjog
VVNFKENPUkVfSU1BR0UpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgbm90IHJl
bGV2ZW50IGZvciBXZWJLaXRMZWdhY3ksIHNvIHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIFdlYktp
dExlZ2FjeSBlbnRpcmVseS4KIEFsbG93Vmlld3BvcnRTaHJpbmtUb0ZpdENvbnRlbnQ6CiAgIHR5
cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA3YWY0NjY2YTAx
NDU3OTgxNGNhYmQ5MTYwZDZkZDI2OTE3NzYxZDdiLi42OTUzNDJlYmFlMzUxNjQ4MjY1NTA3ZGYz
YzI4MzQyYjJkMjZmNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0x
NzEsMTAgKzE3MSw2IEBACiAjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVfRVZFTlQgMAogI2Vu
ZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfQ09SRV9JTUFHRV9BQ0NFTEVSQVRFRF9GSUxURVJf
UkVOREVSKQotI2RlZmluZSBFTkFCTEVfQ09SRV9JTUFHRV9BQ0NFTEVSQVRFRF9GSUxURVJfUkVO
REVSIDEKLSNlbmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19DT01QT1NJVElORykKICNk
ZWZpbmUgRU5BQkxFX0NTU19DT01QT1NJVElORyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCA2ZmJmYjQ0ZjY0YTM5MmZmNzY5N2NiYWJj
YTIxZTJkMmI4OTRmMDNkLi42MzhmMjExZmU4ZTA5NGRkYjE0MjMwYzFhYTMxN2UyMTgxNDI2OTdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC0xMTUs
OCArMTE1LDcgQEAgUmVmUHRyPEltYWdlPiBDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZShSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXoKICAgICAgICAgcmV0dXJuICZJbWFn
ZTo6bnVsbEltYWdlKCk7CiAKICAgICAvLyBUcmFuc2Zvcm0gSW1hZ2UgaW50byBJbWFnZUJ1ZmZl
ci4KLSAgICAvLyBGSVhNRSAoMTQ5NDI0KTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNv
bmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAgICBhdXRvIHJlbmRlcmluZ01vZGUgPSBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOworICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnBhZ2UoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAgICAgYXV0byBzb3Vy
Y2VJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxk
VXNlRGlzcGxheUxpc3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3NlOjpET00sIDEsIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIHJlbmRlcmVyLmhvc3RXaW5k
b3coKSk7CiAgICAgaWYgKCFzb3VyY2VJbWFnZSkKICAgICAgICAgcmV0dXJuICZJbWFnZTo6bnVs
bEltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA3YjIzYjIzN2VjZjRlOTIwZGU2NTZmMDZh
NTliZmYzNTMxOGRmMTg0Li5jODgxYjI2YmEyOGRkNTg3ZTE3ZjhlYjM4OWQ0MjUwYjQwODkxZmY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTM2NTQsNiArMzY1NCwxNSBAQCB2b2lkIFBhZ2U6OnJl
Y29tcHV0ZVRleHRBdXRvU2l6aW5nSW5BbGxGcmFtZXMoKQogCiAjZW5kaWYKIAorYm9vbCBQYWdl
OjphY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBVU0UoQ09SRV9JTUFH
RSkKKyAgICByZXR1cm4gc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCk7Cisj
ZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBib29sIFBhZ2U6OnNob3VsZERp
c2FibGVDb3JzRm9yUmVxdWVzdFRvKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewogICAgIHJldHVy
biBXVEY6OmFueU9mKG1fY29yc0Rpc2FibGluZ1BhdHRlcm5zLCBbJl0gKGNvbnN0IGF1dG8mIHBh
dHRlcm4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTg0NDNkZTE0OTI2N2QxZTIzNzRhZDBiZDlmOWFh
MjQzZmQzN2U0YS4uYmU3ZjgxMzkwNDgyYWI5MTg1YjIwMTY4OWNkMjQ5MTY1ZTU1MWZkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTQ5MCw2ICs0OTAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZWNvbXB1dGVUZXh0QXV0b1NpemluZ0luQWxsRnJhbWVzKCk7CiAjZW5kaWYKIAor
ICAgIGJvb2wgYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpIGNvbnN0OworCiAgICAgY29uc3Qg
RmxvYXRCb3hFeHRlbnQmIGZ1bGxzY3JlZW5JbnNldHMoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxz
Y3JlZW5JbnNldHM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZ1bGxzY3JlZW5JbnNl
dHMoY29uc3QgRmxvYXRCb3hFeHRlbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmlu
ZGV4IDJhZTcwY2IxZGE4NGU4Y2FkM2VjY2MwYzlmZmVmNDM2ZjhlODlmNjAuLjI4MWY4ODBjZTcw
ZDc4ZmQxZGIwYWQ1ZWY5MmQxYTY3ODc1NTE0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKQEAgLTI5LDEyICsyOSw2IEBAIEFjY2VsZXJhdGVkQ29tcG9zaXRlZEFuaW1hdGlvbnNFbmFi
bGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiB0cnVlCiAKLUFjY2VsZXJhdGVkRmls
dGVyc0VuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYkNvcmU6
Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBBbmltYXRlZEltYWdlRGVidWdDYW52YXNEcmF3aW5n
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJ
bWFnZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFn
ZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllci5oCmluZGV4IDQwMmU2ZWJhMzYyYzdmNzhi
ZDU3YmNiNmQzNjIxZmNhMzI3NzdkMzAuLmFlNDU1N2RmMDgzMzg4ODQwZTliMWZkOTZkNDljMzA1
MmZhOTFiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
cmVpbWFnZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBw
bGllci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgVVNFKENPUkVf
SU1BR0UpCisKICNpbXBvcnQgIkZpbHRlckVmZmVjdEFwcGxpZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDQsMyArNDYsNSBAQCBwdWJsaWM6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoQ09SRV9JTUFHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRyYW5zZmVyQ29y
ZUltYWdlQXBwbGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWlt
YWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLmgKaW5kZXggOTljNzQ2ZjVm
YzQ4ZTk2MzlmMjc1ZTQ0ZjU3ZThlOGZhNGY1M2U5Yy4uMDIyYmZkNGUxZGRjZmM5OGVlMjRkNjA5
NDRkZTU3OTAzZWY0OWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29tcG9uZW50
VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpZiBVU0UoQ09SRV9JTUFHRSkKKwogI2ltcG9ydCAiRmlsdGVyRWZmZWN0QXBwbGll
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwzICs0Niw1IEBAIHB1YmxpYzoKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShDT1JFX0lNQUdFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL1Nv
dXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIuaAppbmRleCA1
MDhmNjQ4NTkyYTA1YjJjNjcwMmI5ZmUxMTNjYzMxMDJlZmEyODY5Li42YzJkYjI1YjU0ZjU1OGFl
N2IzNjczMmQ2NzE3MmFlMjhjOGRiZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3Jh
cGhpY0NvcmVJbWFnZUFwcGxpZXIuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2lmIFVTRShDT1JFX0lNQUdFKQorCiAjaW1wb3J0ICJGaWx0ZXJFZmZlY3RBcHBsaWVyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDMgKzQ0LDUgQEAgcHVibGljOgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPUkVfSU1BR0UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNw
cAppbmRleCA3NmRmOGIwOGY1Y2UwOGMyOGZkMjNlYWJmZTQzMDgzM2JhMjg5NjdmLi40MThlYzBk
NzEzMjhiZGY5MWM0NWYyMjQ0NDA0N2YxODAwZDQwOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKQEAgLTUsNyArNSw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBv
cmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTUy
LDcgKzUyLDcgQEAgYm9vbCBGRUJsZW5kOjpzZXRCbGVuZE1vZGUoQmxlbmRNb2RlIG1vZGUpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRUJsZW5kOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVCbGVuZDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFQmxl
bmRTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKaW5kZXggNjQ0NzMwMWQ2NzUyN2RmNGRm
ZGE3ZWFmMjM1NDJiMTk0MmFiMzZjYy4uOTdmMGE5NDM0MTcyMWU1MGJjZmFmMWExYmYzZmVlOWEw
NzYwYjNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmgKQEAgLTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3Rl
bXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBudW1iZXJPZkVm
ZmVjdElucHV0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDI7IH0KICAgICAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0
ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IHBsYXRmb3JtQXBwbHlORU9OKHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlBLCB1bnNpZ25l
ZCBjaGFyKiBzcmNQaXhlbEFycmF5QiwgdW5zaWduZWQgY2hhciogZHN0UGl4ZWxBcnJheSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbG9yQXJyYXlMZW5ndGgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b2xvck1hdHJpeC5jcHAKaW5kZXggNDc2MWFiODVjY2QyMWU3NmFiMTA5Y2YxMTY1NzU4NmIyNjk4
NjEwMS4uNWU5ZmM0ZTk3NWQ4ZDE1YzZjZTg2YWFhYjg4YTFkMmQ5ZDE3OTIzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29s
b3JNYXRyaXguY3BwCkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlk
ZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUg
PGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTgsMjYgKzk4LDMx
IEBAIFZlY3RvcjxmbG9hdD4gRkVDb2xvck1hdHJpeDo6bm9ybWFsaXplZEZsb2F0cyhjb25zdCBW
ZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpCiAgICAgcmV0dXJuIG5vcm1hbGl6ZWRWYWx1ZXM7CiB9CiAK
LSNpZiBVU0UoQ09SRV9JTUFHRSkKLWJvb2wgRkVDb2xvck1hdHJpeDo6c3VwcG9ydHNDb3JlSW1h
Z2VSZW5kZXJpbmcoKSBjb25zdAorYm9vbCBGRUNvbG9yTWF0cml4OjpyZXN1bHRJc0FscGhhSW1h
Z2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImKSBjb25zdAogewotICAgIHJldHVybiBGRUNvbG9y
TWF0cml4Q29yZUltYWdlQXBwbGllcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKnRoaXMp
OworICAgIHJldHVybiBtX3R5cGUgPT0gRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQ
SEE7CiB9Ci0jZW5kaWYKIAotYm9vbCBGRUNvbG9yTWF0cml4OjpyZXN1bHRJc0FscGhhSW1hZ2Uo
Y29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImKSBjb25zdAorYm9vbCBGRUNvbG9yTWF0cml4OjpzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90eXBlID09
IEZFQ09MT1JNQVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBOworI2lmIFVTRShDT1JFX0lNQUdF
KQorICAgIHJldHVybiBGRUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllcjo6c3VwcG9ydHNDb3Jl
SW1hZ2VSZW5kZXJpbmcoKnRoaXMpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29sb3JNYXRyaXg6
OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CitzdGQ6OnVuaXF1ZV9w
dHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb2xvck1hdHJpeDo6Y3JlYXRlQWNjZWxlcmF0ZWRB
cHBsaWVyKCkgY29uc3QKIHsKICNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICBpZiAoZmlsdGVyLnJl
bmRlcmluZ01vZGUoKSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAgICAgcmV0
dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUNvbG9yTWF0cml4Q29yZUltYWdlQXBw
bGllcj4oKnRoaXMpOworICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVD
b2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXI+KCp0aGlzKTsKICNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKGZpbHRlcik7CisgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKK30KKworc3RkOjp1bmlx
dWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29sb3JNYXRyaXg6OmNyZWF0ZVNvZnR3YXJl
QXBwbGllcigpIGNvbnN0Cit7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0
ZTxGRUNvbG9yTWF0cml4U29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmgKaW5kZXggNDQ0ZTU3YTg2ZjI2MjgzMzQ5MmNiZTZlN2YyZWUwMDI5YjMwZTNjMy4uMWJmMTJm
OTVmNGRkYTVlMTg4ZDJiNDAzMDBmYmE5NzkzYzI0N2M0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKQEAg
LTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01
NSwxMyArNTUsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGRUNvbG9yTWF0cml4KENvbG9y
TWF0cml4VHlwZSwgVmVjdG9yPGZsb2F0PiYmKTsKIAotI2lmIFVTRShDT1JFX0lNQUdFKQotICAg
IGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKLSNlbmRp
ZgotICAgIAogICAgIGJvb2wgcmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVj
dG9yJiBpbnB1dHMpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFjY2Vs
ZXJhdGVkQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRT
dHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRU
cmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuY3BwCmluZGV4IDEzZjFlN2UxNjIzNWY3MzQyNjMzN2MwYTViYzk0
ZmM0YzM5ZTJkZjEuLjBkNjFjZmI3MzBhYjAzMDBhYmQ1Y2M2Nzg0ZGM0MTRhMDc4ZGRjMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b25lbnRUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00OSwyMSArNDksMjYgQEAgRkVDb21wb25lbnRUcmFu
c2Zlcjo6RkVDb21wb25lbnRUcmFuc2Zlcihjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
JiByZWRGdW4KIHsKIH0KIAotI2lmIFVTRShDT1JFX0lNQUdFKQotYm9vbCBGRUNvbXBvbmVudFRy
YW5zZmVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0Citib29sIEZFQ29tcG9u
ZW50VHJhbnNmZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogeworI2lm
IFVTRShDT1JFX0lNQUdFKQogICAgIHJldHVybiBGRUNvbXBvbmVudFRyYW5zZmVyQ29yZUltYWdl
QXBwbGllcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKnRoaXMpOwotfQorI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKK30KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVj
dEFwcGxpZXI+IEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVy
JiBmaWx0ZXIpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVD
b21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlQWNjZWxlcmF0ZWRBcHBsaWVyKCkgY29uc3QKIHsKICNp
ZiBVU0UoQ09SRV9JTUFHRSkKLSAgICBpZiAoZmlsdGVyLnJlbmRlcmluZ01vZGUoKSA9PSBSZW5k
ZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKLSAgICAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxp
ZXI6OmNyZWF0ZTxGRUNvbXBvbmVudFRyYW5zZmVyQ29yZUltYWdlQXBwbGllcj4oKnRoaXMpOwor
ICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVDb21wb25lbnRUcmFuc2Zl
ckNvcmVJbWFnZUFwcGxpZXI+KCp0aGlzKTsKICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZpbHRl
cik7CisgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKK30KKworc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZVNvZnR3YXJlQXBw
bGllcigpIGNvbnN0Cit7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxG
RUNvbXBvbmVudFRyYW5zZmVyU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRU
cmFuc2Zlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvbmVudFRyYW5zZmVyLmgKaW5kZXggOTI1YmRmMjI1MWQyNmZjOTBmNzkxODJlNDQ1NmE5NTBh
M2FjMWUxMy4uODBiNDZjZWQ5YjAxN2UyZTE4ZWUyMzQwYmJiNDEwMDMzMzFiNzIwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvbmVudFRyYW5zZmVyLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NiwxMSArNjYsOSBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEZFQ29tcG9uZW50VHJhbnNmZXIoY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
biYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLCBj
b25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKIAotI2lmIFVTRShDT1JFX0lNQUdFKQotICAg
IGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKLSNlbmRp
ZgotCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxp
ZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFjY2VsZXJhdGVkQXBwbGllcigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0
d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlv
bikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5kZXggN2RjYTY5NTIzMjVlNWU2
MjA4ZTY1ZTNmOTYyNDhmODZmZmU1ZTJhYy4uNGMzYjY3MDhlNTdmODI0NGFjMjJhYmQzNGJkNTJl
OGE0NTRkMTAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAo
QykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA2LDcgKzEwNiw3IEBAIEZsb2F0UmVjdCBGRUNvbXBv
c2l0ZTo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBGaWx0
ZXJJbWFnCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4g
RkVDb21wb3NpdGU6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbXBvc2l0ZTo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRl
PEZFQ29tcG9zaXRlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKaW5kZXgg
YzMwOTZlZmZlM2MyNzlmMjEyMWViMTI1ZWMwOWUwMDE2YjY1Y2U4Ny4uMTliNjhmNGFlOWQyMDc0
MGI3NzI2YzA4MDFjMWY0OWFiN2MxYjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaApAQCAtMiw3ICsyLDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxl
cmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY5LDcgKzY5LDcgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgcmVzdWx0SXNWYWxpZFByZW11bHRpcGxpZWQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3R5cGUgIT0gRkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJ
QzsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFw
cGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6
VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZv
bHZlTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb252b2x2ZU1hdHJpeC5jcHAKaW5kZXggMWQyNzQ4MzUzMWNiMTBkMTI2N2YxYzQyNzcwNzE2
MjE4NDg1MTUxZi4uZTYxYWM4Zjk1N2I0MjdhMDY4MGZlNTNjYjM0NzEyYjIxYTRjM2ZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZv
bHZlTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Wm9sdGFuIEhlcmN6ZWcgPHpoZXJjemVnQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTExOSw3ICsxMTksNyBAQCBGbG9hdFJlY3QgRkVDb252b2x2ZU1hdHJpeDo6Y2FsY3Vs
YXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBGaWx0ZQogICAgIHJldHVy
biBmaWx0ZXIubWF4RWZmZWN0UmVjdChwcmltaXRpdmVTdWJyZWdpb24pOwogfQogCi1zdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlQXBw
bGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFw
cGxpZXI+IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUNvbnZvbHZlTWF0cml4
U29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCmluZGV4IGVl
NmJjOGZhYWFmYjBlMDE5MmE4ZTFhNTllZWExNjFlM2M1MzQ3MzUuLjA3NTQ1Yjg3NDhkMWZlOWNk
NDVjMDAxN2E3MjFhZmQ0ZDc4ZmE0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCkBAIC0zLDcg
KzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAxMCBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9y
Zz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogCiAg
ICAgRmxvYXRSZWN0IGNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0
ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBjb25zdCBGbG9hdFJlY3QmIHByaW1pdGl2ZVN1YnJlZ2lv
bikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwCmluZGV4IDExN2M1MGFmODAyYjNi
ZjJjYzBiMTU2OTRmODkwMDcyZGUyMjk3MmIuLjQ5MDk5YjYzNzYzOTg0YTgxNjM4YmNjN2I5YTc4
MTdmYzAyMjU1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwCkBAIC00LDcgKzQsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBG
RURpc3BsYWNlbWVudE1hcDo6dHJhbnNmb3JtSW5wdXRzQ29sb3JTcGFjZShjb25zdCBGaWx0ZXJJ
bWFnZVZlY3RvciYgaW5wdXQKICAgICBpbnB1dHNbMV0tPnRyYW5zZm9ybVRvQ29sb3JTcGFjZShv
cGVyYXRpbmdDb2xvclNwYWNlKCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0
QXBwbGllcj4gRkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikg
Y29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRURpc3BsYWNlbWVu
dE1hcDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVy
RWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFRGlzcGxhY2VtZW50TWFwU29mdHdhcmVBcHBsaWVyPigq
dGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5kZXggNjU1NThkNDAzY2EwYWQwNDg1
N2Y5Yjg0OWQ3ZmE0ZmY3YmFjZjcwMy4uZDhmY2RmZGExZGQ2MzM3NTM5YTZjMDUzM2I2NDMwZDMw
MDZjZGU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAtMiw3ICsyLDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0
ZToKICAgICBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIHJlc3VsdENvbG9yU3BhY2UoY29u
c3QgRmlsdGVySW1hZ2VWZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRyYW5zZm9y
bUlucHV0c0NvbG9yU3BhY2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3Jl
YXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
V1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFRHJvcFNoYWRvdy5jcHAKaW5kZXggNDhiYWFjMDc4Yjg5NmU4NzU5NjM2NDI0OTdiYmQ5NGM0
ZDE3NGQ4Yy4uZDMyOTMzM2Q3OTM1ODU2NzgzNjdkMzM0MjAyYTZiNjY5YjE5NDUxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFk
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTcyLDcgKzcyLDcgQEAgSW50T3V0c2V0cyBGRURyb3BTaGFkb3c6
Om91dHNldHMoY29uc3QgRmlsdGVyJikgY29uc3QKICAgICB9OwogfQogCi1zdGQ6OnVuaXF1ZV9w
dHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVEcm9wU2hhZG93OjpjcmVhdGVBcHBsaWVyKGNvbnN0
IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVE
cm9wU2hhZG93OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBG
aWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVEcm9wU2hhZG93U29mdHdhcmVBcHBsaWVyPigq
dGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCBlNjk2NWQyN2I3ZjdjZTVlZDJmMjdiY2JlOTQw
MGNiYTU3YmY0YzYxLi44YTAzMDNmNzBkNjg4Y2UxNzZlNzMxNGFlYWU4MzkwNGNlMGVkZTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJv
cFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEcm9wU2hhZG93LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBJbnRPdXRz
ZXRzIG91dHNldHMoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXIm
KSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVy
UmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcAppbmRleCA1ZjQ1ZDUzYjc2
OWQxNTVjZTMyMmRiZGE1NjEwYThlZGU2ODlkNjZmLi5jNGMxYTFmZjdjN2YxOWIzMGE1YzY4YWU3
OWU4YzQyZDkxMjQzNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKQEAgLTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5
IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAy
MiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC02NCw3ICs2NCw3IEBAIEZsb2F0UmVjdCBGRUZsb29kOjpjYWxjdWxhdGVJbWFnZVJlY3QoY29u
c3QgRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZpbHRlckltYWdlVmVjCiAgICAgcmV0dXJuIGZpbHRl
ci5tYXhFZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJlZ2lvbik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUZsb29kOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVGbG9vZDo6
Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0
QXBwbGllcjo6Y3JlYXRlPEZFRmxvb2RTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKaW5k
ZXggMjJmOWVjOTI1OTQ0YzZjMGVhZDgyOGIyNWJhZGIyZjcxYzJmNjExMC4uNTNkNGNjNWY5ZGYx
N2ExNTkzMTg4MGY5NWFiN2JjZGY3YWYwMGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKQEAgLTIsNyArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01Myw3ICs1Myw3IEBAIHByaXZh
dGU6CiAKICAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNv
bnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZl
U3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJF
ZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRl
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2Fy
ZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikg
Y29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggNDBmMWFkNmRhYjc5
ODE4ZGQyOTAyMDdlYmQ4YTBlMjc4MWQzYmMwZS4uN2E1MzY3MzZiNjhlMmY4MTlkZGVhNmY0ZDYx
Zjk2ZjQ5N2I4NmRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKQEAgLTUsNyArNSw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhLCBTLkwuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAyMSBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMjIgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTMxLDcgKzEzMSw3IEBAIGJvb2wgRkVHYXVzc2lhbkJsdXI6
OnJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25z
dAogICAgIHJldHVybiBpbnB1dHNbMF0tPmlzQWxwaGFJbWFnZSgpOwogfQogCi1zdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVHYXVzc2lhbkJsdXI6OmNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFR2F1c3NpYW5CbHVyU29mdHdhcmVB
cHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKaW5kZXggNzNlZTVlOTRhZGQzZGVi
Mzg5MjMxYzYyZDFiMjIxMWViODVmZTkyMC4uODAxNTQ4NDcyNGJhNzcwZWI0YzkwOWMxNzMxMzYy
ZmE5YjU1NzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgcmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBp
bnB1dHMpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVj
dEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBw
bGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKaW5kZXggYmM5MmQzODQzY2Q4ODllOTVmZTUxOWI0
OGZhYWU5YjhjMjdkNDViOS4uZWI0OWI3NWQ0ZWIzZDY0Y2MwY2RiZTBlNzM4ZDAyNTI4NmE3Yjc5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFpvbHRhbiBI
ZXJjemVnCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODcsNyAr
ODcsNyBAQCBGbG9hdFJlY3QgRkVMaWdodGluZzo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZp
bHRlciYgZmlsdGVyLCBjb25zdCBGaWx0ZXJJbWFnZQogICAgIHJldHVybiBmaWx0ZXIubWF4RWZm
ZWN0UmVjdChwcmltaXRpdmVTdWJyZWdpb24pOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gRkVMaWdodGluZzo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBj
b25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFTGlnaHRpbmc6OmNy
ZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFw
cGxpZXI6OmNyZWF0ZTxGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5oCmluZGV4IGNjOGI2ZGExZTdkZmZlMzdhNzRiM2QzYTg1NjVmZWQzMmRkYzA4ZGEuLjBjMDcz
YmMxM2Y4Y2YzNjZmOWNmNjYxY2IyNjM0Mzk2OGUyZDIxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC0xLDcg
KzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAog
ICogQ29weXJpZ2h0IChDKSAyMDEwIFpvbHRhbiBIZXJjemVnCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTY1LDcgKzY1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgRmxvYXRS
ZWN0IGNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZl
Y3RvciYgaW5wdXRzLCBjb25zdCBGbG9hdFJlY3QmIHByaW1pdGl2ZVN1YnJlZ2lvbikgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3Jl
YXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICNpZiBDUFUoQVJNX05FT04pICYmIENQVShBUk1fVFJBRElUSU9OQUwpICYm
IENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQogICAgIHN0YXRpYyBpbnQgZ2V0UG93ZXJDb2VmZmlj
aWVudHMoZmxvYXQgZXhwb25lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5kZXggMmQ2YjRlY2I4ZDI0NDg0YzhhZjE1
NmVmNTQxMjY2MmRkM2YzZDU1My4uMWExZTI5ZDQzMGVhN2E2YmZjZTBkMTljNWMzNTllY2I3ZGJk
YjM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHly
aWdodCAoQykgQXBwbGUgSW5jLiAyMDIxIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTQwLDcgKzQwLDcgQEAgRkVNZXJnZTo6RkVNZXJnZSh1bnNpZ25lZCBu
dW1iZXJPZkVmZmVjdElucHV0cykKIHsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVj
dEFwcGxpZXI+IEZFTWVyZ2U6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRU1lcmdlOjpjcmVhdGVTb2Z0d2Fy
ZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVh
dGU8RkVNZXJnZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAppbmRleCBhMzM5ZmZmNzg2
YTIxMTM3NzEzMjk3MTFmNmY3ODJhNzY3NTU3NThkLi5iMTMxZTM3ZTU2NGU2NzhkZTIyYWE1NTEw
NjVhMDg4NzBiNmQwYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTWVyZ2UuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0g
KiBDb3B5cmlnaHQgKEMpIEFwcGxlIEluYy4gMjAyMSBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgRkVNZXJnZSh1bnNpZ25lZCBudW1iZXJPZkVmZmVjdElucHV0cyk7CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXIm
KSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVy
UmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKaW5kZXgg
NDUyY2EzYjk1ZmNkM2YyZjg2MzgyZjM2NzY3NmYyYTE1MjQxOTBkNC4uY2E2ZTUwNTE1NWRjMjgw
OGMzMWNhNDVkMWYxMDFjNDc1OWQ0ZDhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcApAQCAtNCw3ICs0
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSBBcHBsZSBJbmMuIDIwMTctMjAyMSBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04MCw3ICs4MCw3IEBA
IGJvb2wgRkVNb3JwaG9sb2d5OjpyZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VW
ZWN0b3ImIGlucHV0cykgY29uc3QKICAgICByZXR1cm4gaW5wdXRzWzBdLT5pc0FscGhhSW1hZ2Uo
KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFTW9ycGhvbG9n
eTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IEZFTW9ycGhvbG9neTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFTW9ycGhv
bG9neVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKaW5kZXggZTQ1NGMz
NzFlODQ0YzU2ZjcwZjIwOTA1ZWUyMTQ2ZGUyMmY5ZDYzMi4uMmY2YjYyMzgxOTYwZTQ3NWU4OWY0
NjllNWI3NzYyZGYyYmM5ZWE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCkBAIC0yLDcgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNA
d2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgQXBwbGUgSW5jLiAyMDIxIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgcmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9y
JiBpbnB1dHMpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJl
QXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcAppbmRleCBhMzI5OTI5NmU3NWFkZGYzYjMzMTljMDJh
ZWZlOTQ1YjEzOTE2MjM2Li4zOTVhODI2YmUwMmQ3MGI2MjM5MzFjYWFjOGUwZWNiMDQzMjc4NzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
T2Zmc2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFT2Zmc2V0LmNwcApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmlj
IFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2No
dWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC04Miw3ICs4Miw3IEBAIGJvb2wgRkVPZmZzZXQ6OnJlc3VsdElzQWxwaGFJbWFnZShj
b25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdAogICAgIHJldHVybiBpbnB1dHNb
MF0tPmlzQWxwaGFJbWFnZSgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gRkVPZmZzZXQ6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRU9mZnNldDo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRl
PEZFT2Zmc2V0U29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKaW5kZXggNjE3ZjhjNjky
YTMxNjY1MzdlYWU5ZTBmZTU5NjkxYWQ3NGIyOTBkMS4uY2JhMDA2Y2UyYjg5YTc5YjM0OWNkNGNh
OGRmNWI2MjI5YzRlNWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgcmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVRpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVRpbGUuY3BwCmluZGV4IDkyYjgyNzBlNGRiZjkzNGFkNjM2NDQ4YTZjZTRkNjBlNmY0MWRh
MmYuLmUzNGZiYWIyNjQ3OWI3ZWY4ZjcxZTAzNTg3NjNjZWU0OTA1YzIyOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAg
LTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFsZXggTWF0aGV3cyA8cG9z
c2Vzc2VkcGVuZ3VpbmJvYkBnbWFpbC5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBT
Y2h1bHplIDxrcml0QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ4LDcg
KzQ4LDcgQEAgYm9vbCBGRVRpbGU6OnJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFn
ZVZlY3RvciYgaW5wdXRzKSBjb25zdAogICAgIHJldHVybiBpbnB1dHNbMF0tPmlzQWxwaGFJbWFn
ZSgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVUaWxlOjpj
cmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gRkVUaWxlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewog
ICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVUaWxlU29mdHdhcmVBcHBs
aWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVRpbGUuaAppbmRleCAwMGFkZDI4YTU2MjFiYmZjNTc2MzI3MzI5YzRiNjQ2MTNh
MDNiYzA4Li44OWZhMzBlNDgyNGU2NmE2MzFlMjQxOTZkNTU2MTMxYjViZTFkNWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKQEAg
LTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0z
Nyw3ICszNyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHJlc3VsdElzQWxwaGFJbWFnZShjb25z
dCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6
VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0
ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCmlu
ZGV4IDhhMTU1NmE1YmJkYjU2OWViYjU5Njk0MmEzNjNjNmUwOGUzNTNiZmQuLmQ0MTI5NzJhN2Uy
ZDA5MjRiZjBlZjQ0YzQ1MjI0OTNlOTE3NjhhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKQEAgLTUs
NyArNSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtp
dC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmVuYXRhIEhvZG92YW4gPHJlbmlAaW5mLnUt
c3plZ2VkLmh1PgogICogQ29weXJpZ2h0IChDKSAyMDExIEdhYm9yIExva2kgPGxva2lAd2Via2l0
Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDEsNyArMTAxLDcgQEAgRmxv
YXRSZWN0IEZFVHVyYnVsZW5jZTo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmls
dGVyLCBjb25zdCBGaWx0ZXJJbWEKICAgICByZXR1cm4gZmlsdGVyLm1heEVmZmVjdFJlY3QocHJp
bWl0aXZlU3VicmVnaW9uKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFVHVyYnVsZW5jZTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3Rk
Ojp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFVHVyYnVsZW5jZTo6Y3JlYXRlU29m
dHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6
Y3JlYXRlPEZFVHVyYnVsZW5jZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNl
LmgKaW5kZXggYWFhZWI3YzIzN2NjZWE5MWY1MTMxMjZjNDY4NTVlZDI3YTk5ZDQ1OS4uZTgwODdj
MzAwMmE2Njc4ZjBlNzMxMzkwNWRkZDU0ODEzZTczZGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBAIC00
LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmVuYXRhIEhvZG92YW4gPHJlbmlAaW5mLnUtc3pl
Z2VkLmh1PgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY3LDcgKzY3LDcgQEAgcHJp
dmF0ZToKIAogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwg
Y29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRp
dmVTdWJyZWdpb24pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3
YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9u
KSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmluZGV4IDgyNDUwMTc4MmJiMDM3
YmI2NjI2YjhjN2I0ZTNlNTQzNWFjM2JmMjIuLmNiOTNhMTlmZDg5YjBiMTUyOGNkYWIzYzZlMTIx
ZThjZDRjMTgxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTg1LDYgKzg1LDEzIEBAIEZsb2F0
UmVjdCBGaWx0ZXJFZmZlY3Q6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRl
ciwgY29uc3QgRmlsdGVySW1hCiAgICAgcmV0dXJuIGZpbHRlci5jbGlwVG9NYXhFZmZlY3RSZWN0
KGltYWdlUmVjdCwgcHJpbWl0aXZlU3VicmVnaW9uKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IEZpbHRlckVmZmVjdDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0
ZXImIGZpbHRlcikgY29uc3QKK3sKKyAgICBpZiAoZmlsdGVyLnJlbmRlcmluZ01vZGUoKSA9PSBS
ZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUFjY2VsZXJh
dGVkQXBwbGllcigpOworICAgIHJldHVybiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKTsKK30KKwog
dm9pZCBGaWx0ZXJFZmZlY3Q6OnRyYW5zZm9ybUlucHV0c0NvbG9yU3BhY2UoY29uc3QgRmlsdGVy
SW1hZ2VWZWN0b3ImIGlucHV0cykgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIGlucHV0IDogaW5w
dXRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggNzBlM2ZlNWQ4ZTdjYzA4ODE1ZmEyODM0NmMyNGQyODE0
ZDJhZjcxYi4uNzZjMzg2NzQxZDIxOTIzMjE1ZGEzOWZiZTZjNTA3MDMyYzMxYWM1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckVmZmVjdC5oCkBAIC03MCw3ICs3MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdm9pZCBj
b3JyZWN0UHJlbXVsdGlwbGllZElucHV0cyhjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRz
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QgPSAwOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0OworCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGll
cj4gY3JlYXRlQWNjZWxlcmF0ZWRBcHBsaWVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNv
ZnR3YXJlQXBwbGllcigpIGNvbnN0ID0gMDsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBw
bHkoY29uc3QgRmlsdGVyJiwgRmlsdGVySW1hZ2UmIGlucHV0LCBGaWx0ZXJSZXN1bHRzJikgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaAppbmRleCAyZjAzYWU1MTA4YmI3NDg0NzVhNjdmYjBk
NDk0MjlmMjhiNTYyM2UwLi5lOGY1MjZkODQzZGFhMDA3NGRiMzk0YTU3N2RkZDE2NWFjYmVjZjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJGdW5jdGlvbi5oCkBAIC05MywxMCArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEF0b21TdHJpbmcgc291cmNlR3JhcGhpY05hbWUoKSB7IHJldHVybiBmaWx0ZXJOYW1lKFR5
cGU6OlNvdXJjZUdyYXBoaWMpOyB9CiAgICAgQXRvbVN0cmluZyBmaWx0ZXJOYW1lKCkgY29uc3Qg
eyByZXR1cm4gZmlsdGVyTmFtZShtX2ZpbHRlclR5cGUpOyB9CiAKLSNpZiBVU0UoQ09SRV9JTUFH
RSkKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2Nl
bGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBS
ZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KGNvbnN0IEZpbHRlciYsIEZpbHRlckltYWdlJiwgRmls
dGVyUmVzdWx0cyYpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIEludE91dHNldHMg
b3V0c2V0cyhjb25zdCBGaWx0ZXImKSBjb25zdCB7IHJldHVybiB7IH07IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhh
LmNwcAppbmRleCA4NTEzOTNhMmRmOGFmOWZjN2FhZTg3OGI1MTJiZTIxMTRmOTA5MjBmLi5mZDIz
ODJiMTZlYWY2YTkyYTJlMTljMzhmOTJiMTdkNjBiMmE2ZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApA
QCAtMzgsNyArMzgsNyBAQCBTb3VyY2VBbHBoYTo6U291cmNlQWxwaGEoY29uc3QgRGVzdGluYXRp
b25Db2xvclNwYWNlJiBjb2xvclNwYWNlKQogICAgIHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoY29s
b3JTcGFjZSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3Vy
Y2VBbHBoYTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IFNvdXJjZUFscGhhOjpjcmVhdGVTb2Z0d2FyZUFwcGxp
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8U291
cmNlQWxwaGFTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaAppbmRleCA5Zjlh
OTA0MTE4NWViMmE4ZGNmZmQzODMwMWQ3ZmVjZDgzN2VmNDhhLi41MTcwNDNmNDExNzhhMGZmNmI2
MzRlMWIxNTM5ZWY0MzAyZWEzZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFNvdXJjZUFscGhhKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0
cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBo
aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VH
cmFwaGljLmNwcAppbmRleCA0OGZkNDE4YzI5YmE3NjExNWNlZjdjMjMwNTg4NzAxY2IwZjJjNmI1
Li5jMDlhMGYwYjFlYzkzMWE3YjhkOTgwN2MyMWY4Mzc4YjBiNzVmYmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsg
U2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSwx
NSArNDEsMjYgQEAgU291cmNlR3JhcGhpYzo6U291cmNlR3JhcGhpYygpCiB7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VHcmFwaGljOjpjcmVhdGVBcHBs
aWVyKGNvbnN0IEZpbHRlciYgZmlsdGVyKSBjb25zdAorYm9vbCBTb3VyY2VHcmFwaGljOjpzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKICNpZiBVU0UoQ09SRV9JTUFHRSkK
LSAgICAvLyBGSVhNRTogcmV0dXJuIFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyLgotICAg
IGlmIChmaWx0ZXIucmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVk
KQotICAgICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUdyYXBo
aWNDb3JlSW1hZ2VBcHBsaWVyPigqdGhpcyk7CisgICAgcmV0dXJuIHRydWU7CiAjZWxzZQotICAg
IFVOVVNFRF9QQVJBTShmaWx0ZXIpOworICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorfQorCitz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gU291cmNlR3JhcGhpYzo6Y3JlYXRl
QWNjZWxlcmF0ZWRBcHBsaWVyKCkgY29uc3QKK3sKKyNpZiBVU0UoQ09SRV9JTUFHRSkKKyAgICBy
ZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VB
cHBsaWVyPigqdGhpcyk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisK
K3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VHcmFwaGljOjpjcmVh
dGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAorewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBs
aWVyOjpjcmVhdGU8U291cmNlR3JhcGhpY1NvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJj
ZUdyYXBoaWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291
cmNlR3JhcGhpYy5oCmluZGV4IDJjZTQ1ZDhlYTM4ODc2ODI5NTg1YjFlMTgxN2NhNjRmYzAwMjkw
NWIuLmRlOTEzZmYyM2ZlMjRlZWNjNWE2YzY0ODI1MGNkNGQ0Mjk1MDA4NzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3Jh
cGhpYy5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbGV4IE1h
dGhld3MgPHBvc3Nlc3NlZHBlbmd1aW5ib2JAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEt
MjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0zNCwxMyArMzQsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTb3VyY2VHcmFwaGlj
KCk7CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICBib29sIHN1cHBvcnRzQ29yZUltYWdlUmVu
ZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotI2VuZGlmCi0KICAgICB1
bnNpZ25lZCBudW1iZXJPZkVmZmVjdElucHV0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7
IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBs
aWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNBY2Nl
bGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxG
aWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29m
dHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRp
b24pIGNvbnN0IG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9DU1NGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5j
cHAKaW5kZXggNTMzYjc0N2I4MDIyMjdiMzlmZGE5NjI2YzIyYTMwYjk2YjUxOTdjZS4uNjM2ZDgx
NDUxMWJmMzU3YTEyYmU1MWE1Yjg3YzQ1Mjc2NDc4ZmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NTU0ZpbHRlci5jcHAKQEAgLTUyLDEwICs1Miw5IEBAIFJlZlB0cjxDU1NGaWx0ZXI+IENT
U0ZpbHRlcjo6Y3JlYXRlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGaWx0ZXJPcGVy
YXRpCiAgICAgaWYgKCFmaWx0ZXItPmJ1aWxkRmlsdGVyRnVuY3Rpb25zKHJlbmRlcmVyLCBvcGVy
YXRpb25zLCB0YXJnZXRCb3VuZGluZ0JveCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0j
aWYgVVNFKENPUkVfSU1BR0UpCi0gICAgaWYgKCFmaWx0ZXItPnN1cHBvcnRzQ29yZUltYWdlUmVu
ZGVyaW5nKCkpCisgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQgJiYgIWZpbHRlci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKQogICAgICAg
ICBmaWx0ZXItPnNldFJlbmRlcmluZ01vZGUoUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7
Ci0jZW5kaWYKKwogICAgIHJldHVybiBmaWx0ZXI7CiB9CiAKQEAgLTMzNywyMCArMzM2LDE4IEBA
IEZpbHRlckVmZmVjdFZlY3RvciBDU1NGaWx0ZXI6OmVmZmVjdHNPZlR5cGUoRmlsdGVyRnVuY3Rp
b246OlR5cGUgZmlsdGVyVHlwZSkgY29uCiAgICAgcmV0dXJuIGVmZmVjdHM7CiB9CiAKLSNpZiBV
U0UoQ09SRV9JTUFHRSkKLWJvb2wgQ1NTRmlsdGVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmlu
ZygpIGNvbnN0Citib29sIENTU0ZpbHRlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0CiB7CiAgICAgaWYgKHJlbmRlcmluZ01vZGUoKSA9PSBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGZ1bmN0
aW9uIDogbV9mdW5jdGlvbnMpIHsKLSAgICAgICAgaWYgKCFmdW5jdGlvbi0+c3VwcG9ydHNDb3Jl
SW1hZ2VSZW5kZXJpbmcoKSkKKyAgICAgICAgaWYgKCFmdW5jdGlvbi0+c3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAg
IHJldHVybiB0cnVlOwogfQotI2VuZGlmCiAKIFJlZlB0cjxGaWx0ZXJJbWFnZT4gQ1NTRmlsdGVy
OjphcHBseShGaWx0ZXJJbWFnZSogc291cmNlSW1hZ2UsIEZpbHRlclJlc3VsdHMmIHJlc3VsdHMp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKaW5kZXggNTM3M2M4NTVkNDMyZDE4
YTU5NGQxODkzNzkyNzliNmYwNDMwY2YwZi4uNzc0NmZmNWUzMmQ5MGEzYjYwY2QxMDJkNWRlZTYz
YWIyMjY5MzRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaApAQCAtNTksOSAr
NTksNyBAQCBwcml2YXRlOgogICAgIAogICAgIGJvb2wgYnVpbGRGaWx0ZXJGdW5jdGlvbnMoUmVu
ZGVyRWxlbWVudCYsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldEJvdW5kaW5nQm94KTsKIAotI2lmIFVTRShDT1JFX0lNQUdFKQotICAgIGJvb2wgc3VwcG9y
dHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBmaW5hbDsKLSNlbmRpZgorICAgIGJvb2wgc3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IGZpbmFsOwogCiAgICAgV1RGOjpUZXh0
U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJl
cHJlc2VudGF0aW9uKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKaW5kZXggZDIxN2VlM2IzMjRkODQ3MzFmMmY2YzA4OGJiNzQxMDNmMjgxOTA0
My4uNTNiNjJjYzlkMGU0ZWYyMWJjNDQ0MmE1MDA5YjRlYWUxMjcwZWM3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01NjAzLDcgKzU2MDMsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjp1cGRhdGVGaWx0ZXJQYWludGluZ1N0cmF0ZWd5KCkKICAgICB9CiAgICAg
CiAgICAgZW5zdXJlTGF5ZXJGaWx0ZXJzKCk7Ci0gICAgbV9maWx0ZXJzLT5idWlsZEZpbHRlcihy
ZW5kZXJlcigpLCBwYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgcmVuZGVyZXIoKS5zZXR0aW5n
cygpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJh
dGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CisgICAgbV9maWx0ZXJzLT5idWls
ZEZpbHRlcihyZW5kZXJlcigpLCBwYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgcmVuZGVyZXIo
KS5wYWdlKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNj
ZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIH0KIAogSW50T3V0c2V0
cyBSZW5kZXJMYXllcjo6ZmlsdGVyT3V0c2V0cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4
IDAyNDlkODAyZWNkNWNkMTJmNjQ4YzM1ZjViMzllMjA0MGY2NTRmMTYuLjc4NjVhNTg1YTQ3ZWZk
ODI0NjE3NTFmOWZmYTlhMWQxYjFiMjcxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0xMjUsNyAr
MTI1LDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICBJbWFnZUJ1ZmZlcjo6c2l6ZU5l
ZWRzQ2xhbXBpbmcoZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbi5zaXplKCksIGZpbHRlclNjYWxl
KTsKIAogICAgIC8vIFNldCB0aGUgcmVuZGVyaW5nIG1vZGUgZnJvbSB0aGUgcGFnZSdzIHNldHRp
bmdzLgotICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxl
cmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOworICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnBhZ2UoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICAvLyBDcmVh
dGUgdGhlIFNWR0ZpbHRlciBvYmplY3QuCiAgICAgZmlsdGVyRGF0YS0+YnVpbGRlciA9IG1ha2VV
bmlxdWU8U1ZHRmlsdGVyQnVpbGRlcj4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKaW5kZXggZGMzZDMzZWYzYWI1ZWIwN2ViY2Rk
NjY3ZTlkYzc1ZjlhYzM3ZTRjMC4uOTU1NjU5NzhjODY1MzU3ZWQzY2NlOTIxNjM3NDE4Mjk5ZTc1
MmY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5jcHAKQEAgLTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2NodWx6ZSA8
a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMTQsNyArMTE0LDcg
QEAgYm9vbCBGRUltYWdlU29mdHdhcmVBcHBsaWVyOjphcHBseShjb25zdCBGaWx0ZXImIGZpbHRl
ciwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFSW1hZ2U6OmNyZWF0ZUFwcGxpZXIoY29u
c3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBG
RUltYWdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0
ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVJbWFnZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5o
CmluZGV4IDFmN2U4MzI2MmI5Y2I5MjMwYTNhM2M5ZWM1MzE5YWExOTNkZGU4MTQuLmMzMzAyNjdl
MjQ5YWI3OGIwYzViZTQ2ZWU3OWRhMGNmNjllYzQ5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKQEAgLTMsNyArMyw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHly
aWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDEwIERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAKICAgICBGbG9hdFJlY3QgY2FsY3Vs
YXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1
dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVy
KGNvbnN0IEZpbHRlciYpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJF
ZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBmaW5hbDsKIAogICAg
IFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0m
LCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCmluZGV4IDg0NzVlYWE5N2Ey
MjIzNTNhMzE3Mzg5NmU0ZWUxNzMxZTBmYWRkNjguLjk1ZjI0YTdkZDllNjRlZWQwNmI1OGI1Mjlh
ODUwMGRmOWE4Y2Y5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyLmNwcApAQCAtNDgsMTAgKzQ4LDkgQEAgUmVmUHRyPFNWR0ZpbHRlcj4g
U1ZHRmlsdGVyOjpjcmVhdGUoU1ZHRmlsdGVyRWxlbWVudCYgZmlsdGVyRWxlbWVudCwgU1ZHRmls
dGVyQnUKICAgICBBU1NFUlQoIWV4cHJlc3Npb24uaXNFbXB0eSgpKTsKICAgICBmaWx0ZXItPnNl
dEV4cHJlc3Npb24oV1RGTW92ZShleHByZXNzaW9uKSk7CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkK
LSAgICBpZiAoIWZpbHRlci0+c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSkKKyAgICBpZiAo
cmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCAmJiAhZmlsdGVyLT5z
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkpCiAgICAgICAgIGZpbHRlci0+c2V0UmVuZGVy
aW5nTW9kZShSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKLSNlbmRpZgorCiAgICAgcmV0
dXJuIGZpbHRlcjsKIH0KIApAQCAtODAsMjEgKzc5LDE5IEBAIEZsb2F0U2l6ZSBTVkdGaWx0ZXI6
OnJlc29sdmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJpbWl0aXZlVW5pdHMgPT0gU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5E
SU5HQk9YID8gc2l6ZSAqIG1fdGFyZ2V0Qm91bmRpbmdCb3guc2l6ZSgpIDogc2l6ZTsKIH0KIAot
I2lmIFVTRShDT1JFX0lNQUdFKQotYm9vbCBTVkdGaWx0ZXI6OnN1cHBvcnRzQ29yZUltYWdlUmVu
ZGVyaW5nKCkgY29uc3QKK2Jvb2wgU1ZHRmlsdGVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVy
aW5nKCkgY29uc3QKIHsKICAgICBpZiAocmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVCghbV9l
eHByZXNzaW9uLmlzRW1wdHkoKSk7CiAgICAgZm9yIChhdXRvJiB0ZXJtIDogbV9leHByZXNzaW9u
KSB7Ci0gICAgICAgIGlmICghdGVybS5lZmZlY3QtPnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5n
KCkpCisgICAgICAgIGlmICghdGVybS5lZmZlY3QtPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KLSNlbmRpZgogCiBGaWx0ZXJFZmZlY3RWZWN0b3IgU1ZHRmlsdGVyOjplZmZlY3RzT2ZU
eXBlKEZpbHRlckZ1bmN0aW9uOjpUeXBlIGZpbHRlclR5cGUpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4IGNiODIzYmFk
NDUzODFkZDg2NjgzNzg2YTM4ZGY2MTVkN2U3OWMzMzMuLjRlZTBmYjg3YWYxYzFhNDFkZWYxODZh
NTUzNDEyOGJhNjc4MGU5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9maWx0ZXJzL1NWR0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlci5oCkBAIC01NiwxMSArNTYsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2V0RXhwcmVzc2lvbihTVkdGaWx0ZXJFeHByZXNzaW9uJiYgZXhwcmVzc2lvbikgeyBtX2V4
cHJlc3Npb24gPSBXVEZNb3ZlKGV4cHJlc3Npb24pOyB9CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkK
LSAgICBib29sIHN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3QgZmluYWw7Ci0jZW5k
aWYKICAgICBGbG9hdFNpemUgcmVzb2x2ZWRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZp
bmFsOwogCisgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgZmlu
YWw7CisKICAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KGNvbnN0IEZpbHRlciYsIEZpbHRl
ckltYWdlJiBzb3VyY2VJbWFnZSwgRmlsdGVyUmVzdWx0cyYpIGZpbmFsOwogCiAgICAgSW50T3V0
c2V0cyBvdXRzZXRzKGNvbnN0IEZpbHRlciYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG91dHNldHMo
KTsgfQo=
</data>
<flag name="commit-queue"
          id="475777"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449627</attachid>
            <date>2022-01-20 17:58:45 -0800</date>
            <delta_ts>2022-01-20 22:16:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235376-20220120175844.patch</filename>
            <type>text/plain</type>
            <size>85373</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU2NWQxYzdhMjI4MTMxMmE5YTg4YzRi
MDFiMjJmZjA2MzExYzdiMDYuLmY2ZjZjNjY2MDI5OWQ1ZTY2NDAwNThjOWI3ZThmZmQ2MTVjZjBm
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDEtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBY2NlbGVyYXRlZCBmaWx0ZXJzIGFy
ZSBlbmFibGVkIGJ5IHRoZSB3cm9uZyBzZXR0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUzNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEZWxldGUgRU5BQkxFX0NPUkVfSU1BR0VfQUNDRUxFUkFU
RURfRklMVEVSX1JFTkRFUiBhbmQgdXNlIFVTRV9DT1JFX0lNQUdFCisgICAgICAgIGluc3RlYWQg
c2luY2UgQ29yZUltYWdlIGlzIG9ubHkgdXNlZCBmb3IgZmlsdGVycyByaWdodCBub3cuIEJlc2lk
ZXMgCisgICAgICAgIENvcmVJbWFnZSBmaWx0ZXJzIHdpbGwgYmUgZW5hYmxlZCBieSB0aGUgaW50
ZXJuYWwgZmVhdHVyZSBjb250cm9sIGZsYWcKKyAgICAgICAgQWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZC4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbDoKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgor
CiAyMDIyLTAxLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gSW1wbGVtZW50IFRlbXBvcmFsLk5vdy5pbnN0YW50KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
NmEzMjhlMzU1NmFmZDBiZjg2NmYyMjc4Njk1MzcwMGFiYzZjZTY2Li5jYTA2ZDUxN2ExZDQ3OWE3
ZWM2MjIxZmU5M2NjN2VkMGQxYjU5YjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQxIEBACisy
MDIyLTAxLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gQWNjZWxlcmF0ZWQgZmlsdGVycyBhcmUgZW5hYmxlZCBieSB0aGUgd3Jvbmcgc2V0
dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
Mzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBkb2VzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMS4gRGVsZXRlIHRoZSBzZXR0
aW5nIEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgc2luY2UgaXQgaGFzIG5vdCBiZWVuCisgICAg
ICAgICAgIGVuYWJsZWQgYnkgYW55IHBvcnQuCisgICAgICAgIDIuIERlbGV0ZSBDb3JlSW1hZ2VB
Y2NlbGVyYXRlZEZpbHRlclJlbmRlckVuYWJsZWQgZnJvbSB0aGUgZXhwZXJpbWVudGFsCisgICAg
ICAgICAgIGZlYXR1cmVzIGxpc3QgYmVjYXVzZSBDb3JlSW1hZ2UgZmlsdGVycyBhcmUgbm90IHJl
YWR5IHRvIGJlIHJ1biBpbgorICAgICAgICAgICB0aGUgbGF5b3V0IHRlc3RzLgorICAgICAgICAz
LiBBZGQgQWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCBhcyBhbiBpbnRlcm5hbCBmZWF0dXJlIGFu
ZCB1c2UgaXQgdG8KKyAgICAgICAgICAgZW5hYmxlIENvcmVJbWFnZSBmaWx0ZXJzIGZvciBDb2Nv
YSBwb3J0cy4KKyAgICAgICAgICAgYW5kIFNvdXJjZUdyYXBoaWM6OmNyZWF0ZUFwcGxpZXIoKS4K
KyAgICAgICAgNC4gVXNlICJBY2NlbGVyYXRlZCIgaW5zdGVhZCBvZiB1c2luZyAiQ29yZUltYWdl
IiBpbiB0aGUgbWV0aG9kcyBvZiAKKyAgICAgICAgICAgRmlsdGVyIGFuZCBGaWx0ZXJFZmZlY3Qu
IFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBtZXRob2RzIHdpbGwgYmUKKyAgICAgICAgICAg
Z3VhcmRlZCBieSAjaWYgVVNFKENPUkVfSU1BR0UpIGZvciBDb2NvYSBwb3J0cy4KKyAgICAgICAg
Ni4gU3BsaXQgdGhlIG1ldGhvZCBjcmVhdGVBcHBsaWVyKCkgdG8gdHdvIG1ldGhvZHM6IGNyZWF0
ZVNvZnR3YXJlQXBwbGllcigpCisgICAgICAgICAgIGFuZCBjcmVhdGVBY2NlbGVyYXRlZEFwcGxp
ZXIoKSBhbmQgbWFrZSBGaWx0ZXJFZmZlY3Q6OmNyZWF0ZUFwcGxpZXIoKQorICAgICAgICAgICBk
ZWNpZGUgd2hpY2ggb25lIHRvIGNhbGwuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3Mv
Q1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFn
ZVZhbHVlOjppbWFnZSk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRUcmFuc2Zl
ckNvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1h
Z2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6
Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQmxlbmQ6
OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVCbGVuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb2xvck1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4Ojpy
ZXN1bHRJc0FscGhhSW1hZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJp
eDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGRUNvbG9yTWF0cml4OjpjcmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVy
aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OmNy
ZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBv
bmVudFRyYW5zZmVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZUFjY2VsZXJhdGVkQXBwbGll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGVT
b2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb25lbnRUcmFu
c2Zlcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRy
YW5zZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6Y3JlYXRlU29mdHdhcmVBcHBs
aWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpjcmVhdGVBcHBsaWVy
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZv
bHZlTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29udm9sdmVNYXRyaXg6OmNyZWF0
ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0
cml4OjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZFRGlzcGxhY2VtZW50TWFwOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRN
YXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OmNyZWF0ZVNvZnR3YXJlQXBwbGll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6OmNyZWF0ZUFwcGxpZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRmxvb2Q6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZUFwcGxpZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVH
YXVzc2lhbkJsdXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGln
aHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OmNyZWF0ZUFwcGxp
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVMaWdodGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVNZXJnZTo6Y3JlYXRlQXBwbGllciBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpjcmVhdGVBcHBsaWVyIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhv
bG9neS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZzZXQ6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpGRU9mZnNldDo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZFVGlsZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZFVGlsZTo6Y3JlYXRlQXBwbGllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RVR1cmJ1bGVuY2U6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGRVR1cmJ1bGVuY2U6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0OjpjcmVhdGVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpjcmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpzdXBwb3J0c0NvcmVJbWFnZVJl
bmRlcmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6Y3Jl
YXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhh
OjpjcmVhdGVBcHBsaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBo
aWM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlR3JhcGhpYzo6Y3JlYXRlQWNjZWxlcmF0ZWRBcHBsaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjpjcmVhdGVBcHBsaWVyIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBo
aWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6c3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NG
aWx0ZXI6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVj
dHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5
UmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OmNyZWF0ZUFwcGxpZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAg
ICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Zp
bHRlcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oOgorCiAyMDIyLTAxLTIwICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFkZCAicHJl
dmlvdXMgbGluZSBlbmRzIHdpdGggYSBsaW5lIGJyZWFrIiBmbGFnIHRvIFByZXZpb3VzTGluZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA4YmY2YjU4NmU2ZjllYmQ4YWYzOWY3ODY3
MDEwMTJkYjRjN2I3MDhhLi41Y2Q3MjE2NmFkYzg4ZDE0MmM5OTlkMzc3MGYzZTIzYTE2MmIzZTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNDA5LDIwICs0MDksNiBAQCBDb250
YWN0UGlja2VyQVBJRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UK
IAotQ29yZUltYWdlQWNjZWxlcmF0ZWRGaWx0ZXJSZW5kZXJFbmFibGVkOgotICB0eXBlOiBib29s
Ci0gIHdlYmNvcmVPbkNoYW5nZTogc2V0TmVlZHNSZWxheW91dEFsbEZyYW1lcwotICBodW1hblJl
YWRhYmxlTmFtZTogIkNvcmVJbWFnZS1BY2NlbGVyYXRlZCBGaWx0ZXIgUmVuZGVyaW5nIgotICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBY2NlbGVyYXRlZCBDU1MgYW5kIFNWRyBmaWx0ZXIg
cmVuZGVyaW5nIHVzaW5nIENvcmVJbWFnZSIKLSAgY29uZGl0aW9uOiBFTkFCTEUoQ09SRV9JTUFH
RV9BQ0NFTEVSQVRFRF9GSUxURVJfUkVOREVSKQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0
TGVnYWN5OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJLaXQ6Ci0gICAgICBkZWZhdWx0
OiBmYWxzZQotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBDb3JlTWF0aE1M
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICB3ZWJjb3JlT25DaGFuZ2U6IHNldE5lZWRzUmVjYWxj
U3R5bGVJbkFsbEZyYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKaW5kZXggNjY3MTBmODQ5ZjlkMWFh
NmZmYzJmYTg5ZGZlYjRmNTI0M2M5MjY0Zi4uNmQ0NmQ2Mzg2ZWU3NjE4OTNjYWEwNzU3NzY3Y2Zh
NTU3NDYzYzBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC0yNiw2ICsyNiwyMCBAQAogIyBU
aGV5IG11c3QgaW5jbHVkZSBhIGh1bWFuUmVhZGFibGVOYW1lIGFuZCBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb24uIFRoaXMgaXMKICMgICB0aGUgdGV4dCBleHBvc2VkIHRvIHRoZSB1c2VyIGZyb20g
dGhlIFdlYktpdCBjbGllbnQuCiAKK0FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgd2ViY29yZU9uQ2hhbmdlOiBzZXROZWVkc1JlbGF5b3V0QWxsRnJhbWVzCisgIGh1
bWFuUmVhZGFibGVOYW1lOiAiQWNjZWxlcmF0ZWQgRmlsdGVyIFJlbmRlcmluZyIKKyAgaHVtYW5S
ZWFkYWJsZURlc2NyaXB0aW9uOiAiQWNjZWxlcmF0ZWQgQ1NTIGFuZCBTVkcgZmlsdGVyIHJlbmRl
cmluZyIKKyAgY29uZGl0aW9uOiBVU0UoQ09SRV9JTUFHRSkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogIyBG
SVhNRTogVGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYktpdExlZ2FjeSwgc28gc2hvdWxkIGJl
IGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgogQWxsb3dWaWV3cG9ydFNocmlu
a1RvRml0Q29udGVudDoKICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCmluZGV4IDdhZjQ2NjZhMDE0NTc5ODE0Y2FiZDkxNjBkNmRkMjY5MTc3NjFkN2IuLjY5NTM0
MmViYWUzNTE2NDgyNjU1MDdkZjNjMjgzNDJiMmQyNmY1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmgKQEAgLTE3MSwxMCArMTcxLDYgQEAKICNkZWZpbmUgRU5BQkxFX0NPTlRF
WFRfTUVOVV9FVkVOVCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9DT1JFX0lNQUdF
X0FDQ0VMRVJBVEVEX0ZJTFRFUl9SRU5ERVIpCi0jZGVmaW5lIEVOQUJMRV9DT1JFX0lNQUdFX0FD
Q0VMRVJBVEVEX0ZJTFRFUl9SRU5ERVIgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKQogI2RlZmluZSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HIDEKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZTUwMzcyZjZiZDVhMGFhYTEzMmMyYmUxZWNjMjk5OGE0
YjIyZjY5ZS4uY2Q1OGNkYjMyYzk0ODEwNzFhNDQ2NTk0ODY5YjQwY2E2MTA2OWJhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xNjA3LDYgKzE2MDcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3RBcHBsaWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlckVmZmVjdEdlb21ldHJ5LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdFZlY3Rvci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJGdW5jdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYjgyOWQxNGE0ZGM1YTU0Yjg0M2YzM2U0ZDdkOGU3MjI2NzI1Nzkz
My4uODk5OWEyZWExOTZlODU3OTAyMGIwMTNiNGY1MDdlNzU2Yzk1YWJjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQxLDE0
ICsyNDEsMTMgQEAKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250
cm9sTXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuaCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oICovOyB9OwogCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdC
b3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRp
b24uaCAqLzsgfTsKKwkJMDg0NEIwMUQxMjU1QjVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5lckxh
eW91dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0
NEIwMUQxMjU1RTVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5lckxheW91dC5oICovOyB9OwogCQkw
ODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAv
KiBGb250TWV0cmljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA4NTRCMDE1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1
NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKIAkJMDg1NEIwMTcxMjU1
RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDA1MTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmVUZXh0LmggKi87IH07CiAJCTA4NTRCMDE5MTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwODU0QjAwNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dC5oICovOyB9
OwogCQkwODU0QjAxQjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDA5MTI1NUU0
RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0UGF0aC5oICovOyB9OwogCQkwODU0QjAxRDEyNTVF
NEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNwYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDBCMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJT
VkdUU3Bhbi5oICovOyB9OwotCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAgLyogU1ZHQm91bmRp
bmdCb3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0
YXRpb24uaCAqLzsgfTsKLQkJMDg0NEIwMUQxMjU1QjVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5l
ckxheW91dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg0NEIwMUQxMjU1RTVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5lckxheW91dC5oICovOyB9Owog
CQkwODU0QjAxRjEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lRmxvd0JveC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMEQxMjU1RTRFNjAw
QjlDREQwIC8qIFNWR0lubGluZUZsb3dCb3guaCAqLzsgfTsKIAkJMDg1NEIwMjExMjU1RTRFNjAw
QjlDREQwIC8qIFNWR0lubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDBGMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVU
ZXh0Qm94LmggKi87IH07CiAJCTA4NTRCMDIzMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdSb290SW5s
aW5lQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
ODU0QjAxMTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5oICovOyB9OwpAQCAt
MTIzOSw4ICsxMjM4LDggQEAKIAkJNDM1OEU4ODExMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNo
YWRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1
OEU4N0YxMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRvdy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQzNThFODg2MTM2MEEzM0IwMEU0NzQ4
QyAvKiBTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg4MzEzNjBBMzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5oICovOyB9OwogCQk0MzY3MDhDMTEyRDlDQTRCMDAwNDQyMzQgLyogUmVu
ZGVyU1ZHQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQzNjcwODgyMTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdCbG9jay5oICovOyB9Owot
CQk0MzY3MDhDNDMzRjhDQTRDMTAwNDQyMzQgLyogUmVuZGVyU1ZHQ29udGFpbmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDc3NDEyRDlCQzRB
MDAwNDQyMzQgLyogUmVuZGVyU1ZHQ29udGFpbmVyLmggKi87IH07CiAJCTQzNjcwOEMzMTJEOUNB
NEIwMDA0NDIzNCAvKiBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODg0MTJEOUNBNEEwMDA0NDIzNCAv
KiBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaCAqLzsgfTsKKwkJNDM2NzA4QzQzM0Y4Q0E0QzEw
MDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA3NzQxMkQ5QkM0QTAwMDQ0MjM0IC8qIFJlbmRlclNW
R0NvbnRhaW5lci5oICovOyB9OwogCQk0MzY3MDhDNTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVy
U1ZHR3JhZGllbnRTdG9wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzY3MDg4NjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9w
LmggKi87IH07CiAJCTQzNjcwOEM3MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzNjcwODg4MTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaCAq
LzsgfTsKIAkJNDM2NzA4QzkxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0ltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDg4QTEyRDlD
QTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHSW1hZ2UuaCAqLzsgfTsKQEAgLTIzMjgsNiArMjMyNyw3
IEBACiAJCTcyNkQ1NkUyMjUzQUUyOEQwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjZENTZFMTI1M0FFMDQz
MDAwMkVGOTAgLyogUGxhdGZvcm1JbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcyNkQ1NkUzMjUzQUUzNjYwMDAyRUY5MCAvKiBOYXRpdmVJ
bWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVB
MzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI3QTdGM0EyNDA3OEI4NDAwNEQyOTMx
IC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQUIyM0UxRTU0NDAwOEQ3NDFDIC8qIEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTcyOEQ0NzkxMjc5QTQ4QjcwMEJBN0MwRSAvKiBGaWx0ZXJFZmZl
Y3RBcHBsaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MkExM0E5RjI3NEM1Q0M3MDBFMkE4OEUgLyogRmlsdGVyRWZmZWN0QXBwbGllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY3MjNE
NkE1MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMg
LyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJp
bmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOUQwNTMwMjUzMTQyNDMwMDQy
MjA5OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjIwMSwxMSArNjIwMSwxMyBAQAogCQkwODFFQkYzODBG
RDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGaWx0ZXJCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRmlsdGVyQnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODM0QjAwQzEyNDRFNEU2MDBCOUNERDAg
LyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDgzNEIwMEMxMjQ0RTVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5l
ckxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDb250
YWluZXJMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBMjBG
MDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBMzBGMDFBN0ZCMDAzNDI3
NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTQwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODQ0QjAxRDEyNTVF
NEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NDRCMDFEMTI1NUU1QTYxMEI4QUZEMSAvKiBTVkdDb250
YWluZXJMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ29udGFp
bmVyTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NDU2ODA3MTJCOTBE
QTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGb250TWV0cmljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0QjAw
MjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHSW5saW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjE2LDEwICs2MjE4LDYgQEAKIAkJMDg1
NEIwMDgxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHRQYXRoLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1RleHRQYXRoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDkxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRl
clNWR1RleHRQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNW
R1RleHRQYXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NTRCMDBCMTI1NUU0
RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUU3Bhbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdUU3Bhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
ODM0QjAwQzEyNDRFNEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdCb3VuZGluZ0JveENvbXB1
dGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDgzNEIwMEMxMjQ0RTVB
NjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5lckxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdDb250YWluZXJMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdCb3hD
b21wdXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdCb3VuZGlu
Z0JveENvbXB1dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4NDRCMDFE
MTI1NUU1QTYxMEI4QUZEMSAvKiBTVkdDb250YWluZXJMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ29udGFpbmVyTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4NTRCMDBDMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVGbG93Qm94
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0lubGluZUZsb3dC
b3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0QjAwRDEyNTVFNEU2MDBC
OUNERDAgLyogU1ZHSW5saW5lRmxvd0JveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdJbmxpbmVGbG93Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
NTRCMDBFMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0lubGluZVRleHRCb3guY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTAwMywxMiArOTAwMSwxMiBAQAogCQk0MzU4RTg4MjEz
NjBBMzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM1OEU4ODMxMzYwQTMzQjAwRTQ3NDhDIC8qIFNW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MzU4RTg4NDEzNjBBMzNCMDBFNDc0OEMgLyogU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzNjcwNzc0MTJEOUJDNEEwMDA0NDIzNCAvKiBSZW5kZXJT
VkdDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZH
Q29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNjcwODgxMTJEOUNB
NEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJTVkdCbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQzNjcwODgyMTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdCbG9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdCbG9jay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MzY3MDg4NDQyQTlBQzNCMTAwNDQyMzQgLyogUmVuZGVyU1ZH
Q29udGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
clNWR0NvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNjcwODgz
MTJEOUNBNEEwMDA0NDIzNCAvKiBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHQ29udGFpbmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM2NzA4ODQxMkQ5Q0E0QTAwMDQ0MjM0
IC8qIExlZ2FjeVJlbmRlclNWR0NvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdDb250YWluZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDM2NzA3NzQxMkQ5QkM0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0NvbnRhaW5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdDb250YWluZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDM2NzA4ODQ0MkE5QUMzQjEwMDQ0MjM0IC8q
IFJlbmRlclNWR0NvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW5kZXJTVkdDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MzY3MDg4NTEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0dyYWRpZW50U3Rv
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNjcwODg2MTJEOUNBNEEwMDA0
NDIzNCAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQzNjcwODg3MTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NDMyLDYg
KzM0NDMwLDcgQEAKIAkJCQk3MTJCRTQ4MzFGRTg2NUREMDAyMDMxQ0MgLyogRmlsbE1vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NUU3MkY4MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4QzkyNTFBMEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZl
Y3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOEQ0NzkxMjc5QTQ4QjcwMEJBN0MwRSAvKiBGaWx0
ZXJFZmZlY3RBcHBsaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjZDREUyMDI3NTk3MzUwMDBB
NDQ1QjIgLyogRmlsdGVyRWZmZWN0R2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNDY5
NjNEMjc1QzYxNDQwMEE5MTU2QSAvKiBGaWx0ZXJFZmZlY3RWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcyQjhCMDM1Mjc1MzQzODYwMEY3NTJBQSAvKiBGaWx0ZXJGdW5jdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zNjExNCw3ICszNjExMyw2IEBACiAJCQkJREY5QUZENzIxM0ZDMzFEODAw
MTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQzhCNUEzMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1MDUyNEY0MUI3MTJGRjYw
MDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3N0JBNTc2MjYwRkFERjYwMDcyRjE5RiAvKiBN
ZWRpYVBvc2l0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcw
MDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBB
MzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjEzNyw2
ICszNjEzNSw3IEBACiAJCQkJQ0VFRkNEN0ExOURCMzFGNzAwMzg3NkQ3IC8qIE1lZGlhUmVzb3Vy
Y2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFCRjlEQjNDMUQzOTczQUQwMDI2QUVCNyAv
KiBNZWRpYVNhbXBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUIxMjREOEQxRDM4MEI3MDAwRUNE
RkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I0NDEwRTEy
Nzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0RCRUFFQUQxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZP
YmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTdEMjc1RTFFQUM1Nzk4MDBCRjAxRTcgLyogTWVk
aWFTZWxlY3Rpb25PcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3N0JBNTc1MjYwRkE1RkUw
MDcyRjE5RiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCmluZGV4IDZmYmZiNDRmNjRhMzkyZmY3Njk3Y2Jh
YmNhMjFlMmQyYjg5NGYwM2QuLjYzOGYyMTFmZThlMDk0ZGRiMTQyMzBjMWFhMzE3ZTIxODE0MjY5
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKQEAgLTEx
NSw4ICsxMTUsNyBAQCBSZWZQdHI8SW1hZ2U+IENTU0ZpbHRlckltYWdlVmFsdWU6OmltYWdlKFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpegogICAgICAgICByZXR1cm4gJklt
YWdlOjpudWxsSW1hZ2UoKTsKIAogICAgIC8vIFRyYW5zZm9ybSBJbWFnZSBpbnRvIEltYWdlQnVm
ZmVyLgotICAgIC8vIEZJWE1FICgxNDk0MjQpOiBUaGlzIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVu
Y29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLgotICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IFJl
bmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CisgICAgYXV0byByZW5kZXJpbmdNb2RlID0gcmVu
ZGVyZXIucGFnZSgpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKICAgICBhdXRvIHNv
dXJjZUltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBTaG91
bGRVc2VEaXNwbGF5TGlzdDo6Tm8sIFJlbmRlcmluZ1B1cnBvc2U6OkRPTSwgMSwgRGVzdGluYXRp
b25Db2xvclNwYWNlOjpTUkdCKCksIFBpeGVsRm9ybWF0OjpCR1JBOCwgcmVuZGVyZXIuaG9zdFdp
bmRvdygpKTsKICAgICBpZiAoIXNvdXJjZUltYWdlKQogICAgICAgICByZXR1cm4gJkltYWdlOjpu
dWxsSW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDdiMjNiMjM3ZWNmNGU5MjBkZTY1NmYw
NmE1OWJmZjM1MzE4ZGYxODQuLmM4ODFiMjZiYTI4ZGQ1ODdlMTdmOGViMzg5ZDQyNTBiNDA4OTFm
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzY1NCw2ICszNjU0LDE1IEBAIHZvaWQgUGFnZTo6
cmVjb21wdXRlVGV4dEF1dG9TaXppbmdJbkFsbEZyYW1lcygpCiAKICNlbmRpZgogCitib29sIFBh
Z2U6OmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSBjb25zdAoreworI2lmIFVTRShDT1JFX0lN
QUdFKQorICAgIHJldHVybiBzZXR0aW5ncygpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKTsK
KyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGJvb2wgUGFnZTo6c2hvdWxk
RGlzYWJsZUNvcnNGb3JSZXF1ZXN0VG8oY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFdURjo6YW55T2YobV9jb3JzRGlzYWJsaW5nUGF0dGVybnMsIFsmXSAoY29uc3QgYXV0byYg
cGF0dGVybikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1ODQ0M2RlMTQ5MjY3ZDFlMjM3NGFkMGJkOWY5
YWEyNDNmZDM3ZTRhLi5iZTdmODEzOTA0ODJhYjkxODViMjAxNjg5Y2QyNDkxNjVlNTUxZmRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaApAQCAtNDkwLDYgKzQ5MCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlY29tcHV0ZVRleHRBdXRvU2l6aW5nSW5BbGxGcmFtZXMoKTsKICNlbmRpZgog
CisgICAgYm9vbCBhY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgY29uc3Q7CisKICAgICBjb25z
dCBGbG9hdEJveEV4dGVudCYgZnVsbHNjcmVlbkluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fZnVs
bHNjcmVlbkluc2V0czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RnVsbHNjcmVlbklu
c2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
aW5kZXggMmFlNzBjYjFkYTg0ZThjYWQzZWNjYzBjOWZmZWY0MzZmOGU4OWY2MC4uMjgxZjg4MGNl
NzBkNzhmZDFkYjBhZDVlZjkyZDFhNjc4NzU1MTRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtMjksMTIgKzI5LDYgQEAgQWNjZWxlcmF0ZWRDb21wb3NpdGVkQW5pbWF0aW9uc0Vu
YWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAotQWNjZWxlcmF0ZWRG
aWx0ZXJzRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViQ29y
ZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEFuaW1hdGVkSW1hZ2VEZWJ1Z0NhbnZhc0RyYXdp
bmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29y
ZUltYWdlQXBwbGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWlt
YWdlL0ZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyLmgKaW5kZXggNDAyZTZlYmEzNjJjN2Y3
OGJkNTdiY2I2ZDM2MjFmY2EzMjc3N2QzMC4uYWU0NTU3ZGYwODMzODg4NDBlOWIxZmQ5NmQ0OWMz
MDUyZmE5MWJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29yZWltYWdlL0ZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VB
cHBsaWVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBVU0UoQ09S
RV9JTUFHRSkKKwogI2ltcG9ydCAiRmlsdGVyRWZmZWN0QXBwbGllci5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00NCwzICs0Niw1IEBAIHB1YmxpYzoKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShDT1JFX0lNQUdFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJD
b3JlSW1hZ2VBcHBsaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3Jl
aW1hZ2UvRkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIuaAppbmRleCA5OWM3NDZm
NWZjNDhlOTYzOWYyNzVlNDRmNTdlOGU4ZmE0ZjUzZTljLi4wMjJiZmQ0ZTFkZGNmYzk4ZWUyNGQ2
MDk0NGRlNTc5MDNlZjQ5YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25l
bnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIFVTRShDT1JFX0lNQUdFKQorCiAjaW1wb3J0ICJGaWx0ZXJFZmZlY3RBcHBs
aWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDMgKzQ2LDUgQEAgcHVibGljOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPUkVfSU1BR0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2Uv
U291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3VyY2VHcmFwaGljQ29yZUltYWdlQXBwbGllci5oCmluZGV4
IDUwOGY2NDg1OTJhMDViMmM2NzAyYjlmZTExM2NjMzEwMmVmYTI4NjkuLjZjMmRiMjViNTRmNTU4
YWU3YjM2NzMyZDY3MTcyYWUyOGM4ZGJmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3VyY2VHcmFwaGljQ29yZUltYWdlQXBwbGllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3VyY2VH
cmFwaGljQ29yZUltYWdlQXBwbGllci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaWYgVVNFKENPUkVfSU1BR0UpCisKICNpbXBvcnQgIkZpbHRlckVmZmVjdEFwcGxpZXIu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsMyArNDQsNSBAQCBwdWJsaWM6CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoQ09SRV9JTUFHRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQu
Y3BwCmluZGV4IDc2ZGY4YjA4ZjVjZTA4YzI4ZmQyM2VhYmZlNDMwODMzYmEyODk2N2YuLjQxOGVj
MGQ3MTMyOGJkZjkxYzQ1ZjIyNDQ0MDQ3ZjE4MDBkNDA5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcApAQCAtNSw3ICs1
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29y
cG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NTIsNyArNTIsNyBAQCBib29sIEZFQmxlbmQ6OnNldEJsZW5kTW9kZShCbGVuZE1vZGUgbW9kZSkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFQmxlbmQ6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUJsZW5kOjpjcmVhdGVTb2Z0d2FyZUFwcGxp
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVC
bGVuZFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaAppbmRleCA2NDQ3MzAxZDY3NTI3ZGY0
ZGZkYTdlYWYyMzU0MmIxOTQyYWIzNmNjLi45N2YwYTk0MzQxNzIxZTUwYmNmYWYxYTFiZjNmZWU5
YTA3NjBiM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQmxlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQmxlbmQuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lz
dGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIG51bWJlck9m
RWZmZWN0SW5wdXRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMjsgfQogICAgIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZv
aWQgcGxhdGZvcm1BcHBseU5FT04odW5zaWduZWQgY2hhciogc3JjUGl4ZWxBcnJheUEsIHVuc2ln
bmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlCLCB1bnNpZ25lZCBjaGFyKiBkc3RQaXhlbEFycmF5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29sb3JBcnJheUxlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29s
b3JNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbG9yTWF0cml4LmNwcAppbmRleCA0NzYxYWI4NWNjZDIxZTc2YWIxMDljZjExNjU3NTg2YjI2
OTg2MTAxLi41ZTlmYzRlOTc1ZDhkMTVjNmNlODZhYWFiODhhMWQyZDlkMTc5MjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b2xvck1hdHJpeC5jcHAKQEAgLTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6
ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC05OCwyNiArOTgs
MzEgQEAgVmVjdG9yPGZsb2F0PiBGRUNvbG9yTWF0cml4Ojpub3JtYWxpemVkRmxvYXRzKGNvbnN0
IFZlY3RvcjxmbG9hdD4mIHZhbHVlcykKICAgICByZXR1cm4gbm9ybWFsaXplZFZhbHVlczsKIH0K
IAotI2lmIFVTRShDT1JFX0lNQUdFKQotYm9vbCBGRUNvbG9yTWF0cml4OjpzdXBwb3J0c0NvcmVJ
bWFnZVJlbmRlcmluZygpIGNvbnN0Citib29sIEZFQ29sb3JNYXRyaXg6OnJlc3VsdElzQWxwaGFJ
bWFnZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEZFQ29s
b3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygqdGhp
cyk7CisgICAgcmV0dXJuIG1fdHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9B
TFBIQTsKIH0KLSNlbmRpZgogCi1ib29sIEZFQ29sb3JNYXRyaXg6OnJlc3VsdElzQWxwaGFJbWFn
ZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYpIGNvbnN0Citib29sIEZFQ29sb3JNYXRyaXg6OnN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGUg
PT0gRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQSEE7CisjaWYgVVNFKENPUkVfSU1B
R0UpCisgICAgcmV0dXJuIEZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyOjpzdXBwb3J0c0Nv
cmVJbWFnZVJlbmRlcmluZygqdGhpcyk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb2xvck1hdHJp
eDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImIGZpbHRlcikgY29uc3QKK3N0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbG9yTWF0cml4OjpjcmVhdGVBY2NlbGVyYXRl
ZEFwcGxpZXIoKSBjb25zdAogewogI2lmIFVTRShDT1JFX0lNQUdFKQotICAgIGlmIChmaWx0ZXIu
cmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICBy
ZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VB
cHBsaWVyPigqdGhpcyk7CisgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxG
RUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllcj4oKnRoaXMpOwogI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oZmlsdGVyKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgorfQorCitzdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb2xvck1hdHJpeDo6Y3JlYXRlU29mdHdh
cmVBcHBsaWVyKCkgY29uc3QKK3sKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3Jl
YXRlPEZFQ29sb3JNYXRyaXhTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguaAppbmRleCA0NDRlNTdhODZmMjYyODMzNDkyY2JlNmU3ZjJlZTAwMjliMzBlM2MzLi4xYmYx
MmY5NWY0ZGRhNWUxODhkMmI0MDMwMGZiYTk3OTNjMjQ3YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaApA
QCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1
IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIy
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTU1LDEzICs1NSwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZFQ29sb3JNYXRyaXgoQ29s
b3JNYXRyaXhUeXBlLCBWZWN0b3I8ZmxvYXQ+JiYpOwogCi0jaWYgVVNFKENPUkVfSU1BR0UpCi0g
ICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOwotI2Vu
ZGlmCi0gICAgCiAgICAgYm9vbCByZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VW
ZWN0b3ImIGlucHV0cykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQWNj
ZWxlcmF0ZWRBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZp
bHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4
dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb25lbnRUcmFuc2Zlci5jcHAKaW5kZXggMTNmMWU3ZTE2MjM1ZjczNDI2MzM3YzBhNWJj
OTRmYzRjMzllMmRmMS4uMGQ2MWNmYjczMGFiMDMwMGFiZDVjYzY3ODRkYzQxNGEwNzhkZGMyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvbmVudFRyYW5zZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCkBAIC00LDcgKzQsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ5LDIxICs0OSwyNiBAQCBGRUNvbXBvbmVudFRy
YW5zZmVyOjpGRUNvbXBvbmVudFRyYW5zZmVyKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24mIHJlZEZ1bgogewogfQogCi0jaWYgVVNFKENPUkVfSU1BR0UpCi1ib29sIEZFQ29tcG9uZW50
VHJhbnNmZXI6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3QKK2Jvb2wgRkVDb21w
b25lbnRUcmFuc2Zlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7Cisj
aWYgVVNFKENPUkVfSU1BR0UpCiAgICAgcmV0dXJuIEZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1h
Z2VBcHBsaWVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygqdGhpcyk7Ci19CisjZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZm
ZWN0QXBwbGllcj4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0
ZXImIGZpbHRlcikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBG
RUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIoKSBjb25zdAogewog
I2lmIFVTRShDT1JFX0lNQUdFKQotICAgIGlmIChmaWx0ZXIucmVuZGVyaW5nTW9kZSgpID09IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBw
bGllcjo6Y3JlYXRlPEZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyPigqdGhpcyk7
CisgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRUNvbXBvbmVudFRyYW5z
ZmVyQ29yZUltYWdlQXBwbGllcj4oKnRoaXMpOwogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZmls
dGVyKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgorfQorCitzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlU29mdHdhcmVB
cHBsaWVyKCkgY29uc3QKK3sKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRl
PEZFQ29tcG9uZW50VHJhbnNmZXJTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVu
dFRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaAppbmRleCA5MjViZGYyMjUxZDI2ZmM5MGY3OTE4MmU0NDU2YTk1
MGEzYWMxZTEzLi44MGI0NmNlZDliMDE3ZTJlMThlZTIzNDBiYmI0MTAwMzMzMWI3MjA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY2LDExICs2Niw5IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgRkVDb21wb25lbnRUcmFuc2Zlcihjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uJiByZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMs
IGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmMpOwogCi0jaWYgVVNFKENPUkVfSU1BR0UpCi0g
ICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOwotI2Vu
ZGlmCi0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBw
bGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQWNjZWxlcmF0ZWRBcHBsaWVyKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNv
ZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0
aW9uKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAppbmRleCA3ZGNhNjk1MjMyNWU1
ZTYyMDhlNjVlM2Y5NjI0OGY4NmZmZTVlMmFjLi40YzNiNjcwOGU1N2Y4MjQ0YWMyMmFiZDM0YmQ1
MmU4YTQ1NGQxMDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDYsNyArMTA2LDcgQEAgRmxvYXRSZWN0IEZFQ29t
cG9zaXRlOjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZp
bHRlckltYWcKICAgICB9CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRUNvbXBvc2l0ZTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFQ29tcG9zaXRlOjpjcmVhdGVTb2Z0d2Fy
ZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVh
dGU8RkVDb21wb3NpdGVTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAppbmRl
eCBjMzA5NmVmZmUzYzI3OWYyMTIxZWIxMjVlYzA5ZTAwMTZiNjVjZTg3Li4xOWI2OGY0YWU5ZDIw
NzQwYjc3MjZjMDgwMWMxZjQ5YWI3YzFiM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCkBAIC0yLDcgKzIsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjksNyArNjksNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCByZXN1bHRJc1ZhbGlkUHJlbXVsdGlwbGllZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHlwZSAhPSBGRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1F
VElDOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRl
QXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oV1RG
OjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4LmNwcAppbmRleCAxZDI3NDgzNTMxY2IxMGQxMjY3ZjFjNDI3NzA3
MTYyMTg0ODUxNTFmLi5lNjFhYzhmOTU3YjQyN2EwNjgwZmU1M2NiMzQ3MTJiMjFhNGMzZmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAx
MCBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMTE5LDcgKzExOSw3IEBAIEZsb2F0UmVjdCBGRUNvbnZvbHZlTWF0cml4OjpjYWxj
dWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZpbHRlCiAgICAgcmV0
dXJuIGZpbHRlci5tYXhFZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJlZ2lvbik7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGVB
cHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0
QXBwbGllcj4gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QK
IHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPEZFQ29udm9sdmVNYXRy
aXhTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKaW5kZXgg
ZWU2YmM4ZmFhYWZiMGUwMTkyYThlMWE1OWVlYTE2MWUzYzUzNDczNS4uMDc1NDViODc0OGQxZmU5
Y2Q0NWMwMDE3YTcyMWFmZDRkNzhmYTQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmgKQEAgLTMs
NyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDEwIFpvbHRhbiBIZXJjemVnIDx6aGVyY3plZ0B3ZWJraXQu
b3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAK
ICAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZp
bHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVn
aW9uKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxp
ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggMTE3YzUwYWY4MDJi
M2JmMmNjMGIxNTY5NGY4OTAwNzJkZTIyOTcyYi4uNDkwOTliNjM3NjM5ODRhODE2MzhiY2M3Yjlh
NzgxN2ZjMDIyNTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTQsNyArNCw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtODksNyArODksNyBAQCB2b2lk
IEZFRGlzcGxhY2VtZW50TWFwOjp0cmFuc2Zvcm1JbnB1dHNDb2xvclNwYWNlKGNvbnN0IEZpbHRl
ckltYWdlVmVjdG9yJiBpbnB1dAogICAgIGlucHV0c1sxXS0+dHJhbnNmb3JtVG9Db2xvclNwYWNl
KG9wZXJhdGluZ0NvbG9yU3BhY2UoKSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZl
Y3RBcHBsaWVyPiBGRURpc3BsYWNlbWVudE1hcDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXIm
KSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFRGlzcGxhY2Vt
ZW50TWFwOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0
ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVEaXNwbGFjZW1lbnRNYXBTb2Z0d2FyZUFwcGxpZXI+
KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAppbmRleCA2NTU1OGQ0MDNjYTBhZDA0
ODU3ZjliODQ5ZDdmYTRmZjdiYWNmNzAzLi5kOGZjZGZkYTFkZDYzMzc1MzlhNmMwNTMzYjY0MzBk
MzAwNmNkZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCkBAIC0yLDcgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNA
d2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjEsNyArNjEsNyBAQCBwcml2
YXRlOgogICAgIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgcmVzdWx0Q29sb3JTcGFjZShj
b25zdCBGaWx0ZXJJbWFnZVZlY3RvciYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdHJhbnNm
b3JtSW5wdXRzQ29sb3JTcGFjZShjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEcm9wU2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93LmNwcAppbmRleCA0OGJhYWMwNzhiODk2ZTg3NTk2MzY0MjQ5N2JiZDk0
YzRkMTc0ZDhjLi5kMzI5MzMzZDc5MzU4NTY3ODM2N2QzMzQyMDJhNmI2NjliMTk0NTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNo
YWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURyb3BTaGFkb3cuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtNzIsNyArNzIsNyBAQCBJbnRPdXRzZXRzIEZFRHJvcFNoYWRv
dzo6b3V0c2V0cyhjb25zdCBGaWx0ZXImKSBjb25zdAogICAgIH07CiB9CiAKLXN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRURyb3BTaGFkb3c6OmNyZWF0ZUFwcGxpZXIoY29u
c3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBG
RURyb3BTaGFkb3c6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRURyb3BTaGFkb3dTb2Z0d2FyZUFwcGxpZXI+
KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEcm9wU2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oCmluZGV4IGU2OTY1ZDI3YjdmN2NlNWVkMmYyN2JjYmU5
NDAwY2JhNTdiZjRjNjEuLjhhMDMwM2Y3MGQ2ODhjZTE3NmU3MzE0YWVhZTgzOTA0Y2UwZWRlNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
cm9wU2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURyb3BTaGFkb3cuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAogICAgIEludE91
dHNldHMgb3V0c2V0cyhjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6
VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0
ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCmluZGV4IDVmNDVkNTNi
NzY5ZDE1NWNlMzIyZGJkYTU2MTBhOGVkZTY4OWQ2NmYuLmM0YzFhMWZmN2M3ZjE5YjMwYTVjNjhh
ZTc5ZThjNDJkOTEyNDM1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0y
MDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTY0LDcgKzY0LDcgQEAgRmxvYXRSZWN0IEZFRmxvb2Q6OmNhbGN1bGF0ZUltYWdlUmVjdChj
b25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1hZ2VWZWMKICAgICByZXR1cm4gZmls
dGVyLm1heEVmZmVjdFJlY3QocHJpbWl0aXZlU3VicmVnaW9uKTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFRmxvb2Q6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmls
dGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUZsb29k
OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZl
Y3RBcHBsaWVyOjpjcmVhdGU8RkVGbG9vZFNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29k
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApp
bmRleCAyMmY5ZWM5MjU5NDRjNmMwZWFkODI4YjI1YmFkYjJmNzFjMmY2MTEwLi41M2Q0Y2M1Zjlk
ZjE3YTE1OTMxODgwZjk1YWI3YmNkZjdhZjAwZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApAQCAtMiw3ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmlj
QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTUzLDcgKzUzLDcgQEAgcHJp
dmF0ZToKIAogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwg
Y29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRp
dmVTdWJyZWdpb24pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRl
ckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3
YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9u
KSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAppbmRleCA0MGYxYWQ2ZGFi
Nzk4MThkZDI5MDIwN2ViZDhhMGUyNzgxZDNiYzBlLi43YTUzNjczNmI2OGUyZjgxOWRkZWE2ZjRk
NjFmOTZmNDk3Yjg2ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcApAQCAtNSw3ICs1LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAq
IENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEsIFMuTC4KICAqIENvcHlyaWdodCAoQykgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxNS0yMDIxIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAyMiBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzEsNyArMTMxLDcgQEAgYm9vbCBGRUdhdXNzaWFuQmx1
cjo6cmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNv
bnN0CiAgICAgcmV0dXJuIGlucHV0c1swXS0+aXNBbHBoYUltYWdlKCk7CiB9CiAKLXN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlQXBwbGll
cihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxp
ZXI+IEZFR2F1c3NpYW5CbHVyOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAg
IHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVHYXVzc2lhbkJsdXJTb2Z0d2Fy
ZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAppbmRleCA3M2VlNWU5NGFkZDNk
ZWIzODkyMzFjNjJkMWIyMjExZWI4NWZlOTIwLi44MDE1NDg0NzI0YmE3NzBlYjRjOTA5YzE3MzEz
NjJmYTliNTU3MTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCByZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3Im
IGlucHV0cykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZm
ZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVB
cHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAppbmRleCBiYzkyZDM4NDNjZDg4OWU5NWZlNTE5
YjQ4ZmFhZTliOGMyN2Q0NWI5Li5lYjQ5Yjc1ZDRlYjNkNjRjYzBjZGJlMGU3MzhkMDI1Mjg2YTdi
NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVMaWdodGluZy5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgWm9sdGFu
IEhlcmN6ZWcKLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMiBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw3
ICs4Nyw3IEBAIEZsb2F0UmVjdCBGRUxpZ2h0aW5nOjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3Qg
RmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZpbHRlckltYWdlCiAgICAgcmV0dXJuIGZpbHRlci5tYXhF
ZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJlZ2lvbik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBGRUxpZ2h0aW5nOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVMaWdodGluZzo6
Y3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRmlsdGVyRWZmZWN0
QXBwbGllcjo6Y3JlYXRlPEZFTGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdo
dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0
aW5nLmgKaW5kZXggY2M4YjZkYTFlN2RmZmUzN2E3NGIzZDNhODU2NWZlZDMyZGRjMDhkYS4uMGMw
NzNiYzEzZjhjZjM2NmY5Y2Y2NjFjYjI2MzQzOTY4ZTJkMjFkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmgKQEAgLTEs
NyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2Vk
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgWm9sdGFuIEhlcmN6ZWcKLSAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsNyArNjUsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBGbG9h
dFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdl
VmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25z
dCBvdmVycmlkZTsKIAogI2lmIENQVShBUk1fTkVPTikgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkg
JiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCiAgICAgc3RhdGljIGludCBnZXRQb3dlckNvZWZm
aWNpZW50cyhmbG9hdCBleHBvbmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAppbmRleCAyZDZiNGVjYjhkMjQ0ODRjOGFm
MTU2ZWY1NDEyNjYyZGQzZjNkNTUzLi4xYTFlMjlkNDMwZWE3YTZiZmNlMGQxOWM1YzM1OWVjYjdk
YmRiMzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTWVyZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVNZXJnZS5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAq
IENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29w
eXJpZ2h0IChDKSBBcHBsZSBJbmMuIDIwMjEgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtNDAsNyArNDAsNyBAQCBGRU1lcmdlOjpGRU1lcmdlKHVuc2lnbmVk
IG51bWJlck9mRWZmZWN0SW5wdXRzKQogewogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZm
ZWN0QXBwbGllcj4gRkVNZXJnZTo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAor
c3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFTWVyZ2U6OmNyZWF0ZVNvZnR3
YXJlQXBwbGllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNy
ZWF0ZTxGRU1lcmdlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCmluZGV4IGEzMzlmZmY3
ODZhMjExMzc3MTMyOTcxMWY2Zjc4MmE3Njc1NTc1OGQuLmIxMzFlMzdlNTY0ZTY3OGRlMjJhYTU1
MTA2NWEwODg3MGI2ZDBjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
LSAqIENvcHlyaWdodCAoQykgQXBwbGUgSW5jLiAyMDIxIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBGRU1lcmdlKHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKTsKIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRl
ciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFdURjo6
VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0
ZXJSZXByZXNlbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAppbmRl
eCA0NTJjYTNiOTVmY2QzZjJmODYzODJmMzY3Njc2ZjJhMTUyNDE5MGQ0Li5jYTZlNTA1MTU1ZGMy
ODA4YzMxY2E0NWQxZjEwMWM0NzU5ZDRkOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC00LDcg
KzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+
CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIEFwcGxlIEluYy4gMjAxNy0yMDIxIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTgwLDcgKzgwLDcg
QEAgYm9vbCBGRU1vcnBob2xvZ3k6OnJlc3VsdElzQWxwaGFJbWFnZShjb25zdCBGaWx0ZXJJbWFn
ZVZlY3RvciYgaW5wdXRzKSBjb25zdAogICAgIHJldHVybiBpbnB1dHNbMF0tPmlzQWxwaGFJbWFn
ZSgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVNb3JwaG9s
b2d5OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVNb3JwaG9sb2d5OjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIo
KSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVNb3Jw
aG9sb2d5U29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAppbmRleCBlNDU0
YzM3MWU4NDRjNTZmNzBmMjA5MDVlZTIxNDZkZTIyZjlkNjMyLi4yZjZiNjIzODE5NjBlNDc1ZTg5
ZjQ2OWU1Yjc3NjJkZjJiYzllYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTIsNyArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJp
Y0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSBBcHBsZSBJbmMuIDIwMjEgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCByZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0
b3ImIGlucHV0cykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVy
RWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdh
cmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24p
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCmluZGV4IGEzMjk5Mjk2ZTc1YWRkZjNiMzMxOWMw
MmFlZmU5NDViMTM5MTYyMzYuLjM5NWE4MjZiZTAyZDcwYjYyMzkzMWNhYWM4ZTBlY2IwNDMyNzg3
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA1IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBT
Y2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBGRU9mZnNldDo6cmVzdWx0SXNBbHBoYUltYWdl
KGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0
c1swXS0+aXNBbHBoYUltYWdlKCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RB
cHBsaWVyPiBGRU9mZnNldDo6Y3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3Rk
Ojp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFT2Zmc2V0OjpjcmVhdGVTb2Z0d2Fy
ZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVh
dGU8RkVPZmZzZXRTb2Z0d2FyZUFwcGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAppbmRleCA2MTdmOGM2
OTJhMzE2NjUzN2VhZTllMGZlNTk2OTFhZDc0YjI5MGQxLi5jYmEwMDZjZTJiODlhNzliMzQ5Y2Q0
Y2E4ZGY1YjYyMjljNGU1ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFu
bkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCByZXN1bHRJc0FscGhhSW1hZ2UoY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0
cykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVy
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFVGlsZS5jcHAKaW5kZXggOTJiODI3MGU0ZGJmOTM0YWQ2MzY0NDhhNmNlNGQ2MGU2ZjQx
ZGEyZi4uZTM0ZmJhYjI2NDc5YjdlZjhmNzFlMDM1ODc2M2NlZTQ5MDVjMjI4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcApA
QCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxleCBNYXRoZXdzIDxw
b3NzZXNzZWRwZW5ndWluYm9iQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJr
IFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDgs
NyArNDgsNyBAQCBib29sIEZFVGlsZTo6cmVzdWx0SXNBbHBoYUltYWdlKGNvbnN0IEZpbHRlcklt
YWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0c1swXS0+aXNBbHBoYUlt
YWdlKCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRVRpbGU6
OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBGRVRpbGU6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6OmNyZWF0ZTxGRVRpbGVTb2Z0d2FyZUFw
cGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oCmluZGV4IDAwYWRkMjhhNTYyMWJiZmM1NzYzMjczMjljNGI2NDYx
M2EwM2JjMDguLjg5ZmEzMGU0ODI0ZTY2YTYzMWUyNDE5NmQ1NTYxMzFiNWJlMWQ1ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaApA
QCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1
IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIy
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcmVzdWx0SXNBbHBoYUltYWdlKGNv
bnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmls
dGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFw
cGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RG
OjpUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZp
bHRlclJlcHJlc2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAK
aW5kZXggOGExNTU2YTViYmRiNTY5ZWJiNTk2OTQyYTM2M2M2ZTA4ZTM1M2JmZC4uZDQxMjk3MmE3
ZTJkMDkyNGJmMGVmNDRjNDUyMjQ5M2U5MTc2OGExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcApAQCAt
NSw3ICs1LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Vi
a2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMCBSZW5hdGEgSG9kb3ZhbiA8cmVuaUBpbmYu
dS1zemVnZWQuaHU+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR2Fib3IgTG9raSA8bG9raUB3ZWJr
aXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwMSw3ICsxMDEsNyBAQCBG
bG9hdFJlY3QgRkVUdXJidWxlbmNlOjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiBm
aWx0ZXIsIGNvbnN0IEZpbHRlckltYQogICAgIHJldHVybiBmaWx0ZXIubWF4RWZmZWN0UmVjdChw
cmltaXRpdmVTdWJyZWdpb24pOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBw
bGllcj4gRkVUdXJidWxlbmNlOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0Citz
dGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVUdXJidWxlbmNlOjpjcmVhdGVT
b2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVy
OjpjcmVhdGU8RkVUdXJidWxlbmNlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5j
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVu
Y2UuaAppbmRleCBhYWFlYjdjMjM3Y2NlYTkxZjUxMzEyNmM0Njg1NWVkMjdhOTlkNDU5Li5lODA4
N2MzMDAyYTY2NzhmMGU3MzEzOTA1ZGRkNTQ4MTNlNzNkZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKQEAg
LTQsNyArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMCBSZW5hdGEgSG9kb3ZhbiA8cmVuaUBpbmYudS1z
emVnZWQuaHU+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjcsNyArNjcsNyBAQCBw
cml2YXRlOgogCiAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXIm
LCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBjb25zdCBGbG9hdFJlY3QmIHByaW1p
dGl2ZVN1YnJlZ2lvbikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQXBwbGllcihjb25zdCBGaWx0ZXImKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29m
dHdhcmVBcHBsaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRp
b24pIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggODI0NTAxNzgyYmIw
MzdiYjY2MjZiOGM3YjRlM2U1NDM1YWMzYmYyMi4uY2I5M2ExOWZkODliMGIxNTI4Y2RhYjNjNmUx
MjFlOGNkNGMxODEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtODUsNiArODUsMTMgQEAgRmxv
YXRSZWN0IEZpbHRlckVmZmVjdDo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmls
dGVyLCBjb25zdCBGaWx0ZXJJbWEKICAgICByZXR1cm4gZmlsdGVyLmNsaXBUb01heEVmZmVjdFJl
Y3QoaW1hZ2VSZWN0LCBwcmltaXRpdmVTdWJyZWdpb24pOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8
RmlsdGVyRWZmZWN0QXBwbGllcj4gRmlsdGVyRWZmZWN0OjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZp
bHRlciYgZmlsdGVyKSBjb25zdAoreworICAgIGlmIChmaWx0ZXIucmVuZGVyaW5nTW9kZSgpID09
IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQorICAgICAgICByZXR1cm4gY3JlYXRlQWNjZWxl
cmF0ZWRBcHBsaWVyKCk7CisgICAgcmV0dXJuIGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpOworfQor
CiB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtSW5wdXRzQ29sb3JTcGFjZShjb25zdCBGaWx0
ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdAogewogICAgIGZvciAoYXV0byYgaW5wdXQgOiBp
bnB1dHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlckVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuaAppbmRleCA3MGUzZmU1ZDhlN2NjMDg4MTVmYTI4MzQ2YzI0ZDI4
MTRkMmFmNzFiLi4yZmQxNTMzNDg1ZmE3MTVhYzVhZDg5MWI3MjIzNDQ1OTE3N2Y2MjM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVm
ZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmgKQEAgLTIzLDYgKzIzLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
RGVzdGluYXRpb25Db2xvclNwYWNlLmgiCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0QXBwbGllci5o
IgogI2luY2x1ZGUgIkZpbHRlckZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiRmlsdGVySW1hZ2VWZWN0
b3IuaCIKIApAQCAtMzMsNyArMzQsNiBAQCBjbGFzcyBUZXh0U3RyZWFtOwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBGaWx0ZXI7Ci1jbGFzcyBGaWx0ZXJFZmZlY3RBcHBsaWVyOwogY2xh
c3MgRmlsdGVyRWZmZWN0R2VvbWV0cnk7CiBjbGFzcyBGaWx0ZXJSZXN1bHRzOwogCkBAIC03MCw3
ICs3MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdm9pZCBjb3JyZWN0UHJlbXVsdGlwbGll
ZElucHV0cyhjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIo
Y29uc3QgRmlsdGVyJikgY29uc3QgPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZl
Y3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNvbnN0OworCisgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlQWNjZWxlcmF0
ZWRBcHBsaWVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNv
bnN0ID0gMDsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoY29uc3QgRmlsdGVyJiwg
RmlsdGVySW1hZ2UmIGlucHV0LCBGaWx0ZXJSZXN1bHRzJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVu
Y3Rpb24uaAppbmRleCAyZjAzYWU1MTA4YmI3NDg0NzVhNjdmYjBkNDk0MjlmMjhiNTYyM2UwLi5l
OGY1MjZkODQzZGFhMDA3NGRiMzk0YTU3N2RkZDE2NWFjYmVjZjkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlv
bi5oCkBAIC05MywxMCArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEF0b21TdHJpbmcgc291
cmNlR3JhcGhpY05hbWUoKSB7IHJldHVybiBmaWx0ZXJOYW1lKFR5cGU6OlNvdXJjZUdyYXBoaWMp
OyB9CiAgICAgQXRvbVN0cmluZyBmaWx0ZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gZmlsdGVyTmFt
ZShtX2ZpbHRlclR5cGUpOyB9CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
I2VuZGlmCi0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVySW1hZ2U+
IGFwcGx5KGNvbnN0IEZpbHRlciYsIEZpbHRlckltYWdlJiwgRmlsdGVyUmVzdWx0cyYpIHsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIEludE91dHNldHMgb3V0c2V0cyhjb25zdCBGaWx0
ZXImKSBjb25zdCB7IHJldHVybiB7IH07IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCA4NTEzOTNh
MmRmOGFmOWZjN2FhZTg3OGI1MTJiZTIxMTRmOTA5MjBmLi5mZDIzODJiMTZlYWY2YTkyYTJlMTlj
MzhmOTJiMTdkNjBiMmE2ZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMzgsNyArMzgsNyBAQCBT
b3VyY2VBbHBoYTo6U291cmNlQWxwaGEoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xv
clNwYWNlKQogICAgIHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoY29sb3JTcGFjZSk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VBbHBoYTo6Y3JlYXRlQXBw
bGllcihjb25zdCBGaWx0ZXImKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFw
cGxpZXI+IFNvdXJjZUFscGhhOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAg
IHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8U291cmNlQWxwaGFTb2Z0d2FyZUFw
cGxpZXI+KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaAppbmRleCA5ZjlhOTA0MTE4NWViMmE4ZGNmZmQz
ODMwMWQ3ZmVjZDgzN2VmNDhhLi41MTcwNDNmNDExNzhhMGZmNmI2MzRlMWIxNTM5ZWY0MzAyZWEz
ZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUFscGhhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJj
ZUFscGhhKGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYpOwogCi0gICAgc3RkOjp1bmlxdWVf
cHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IGNy
ZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV1RGOjpUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJl
c2VudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA0
OGZkNDE4YzI5YmE3NjExNWNlZjdjMjMwNTg4NzAxY2IwZjJjNmI1Li5jMDlhMGYwYjFlYzkzMWE3
YjhkOTgwN2MyMWY4Mzc4YjBiNzVmYmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJr
aXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSwxNSArNDEsMjYgQEAgU291cmNl
R3JhcGhpYzo6U291cmNlR3JhcGhpYygpCiB7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJF
ZmZlY3RBcHBsaWVyPiBTb3VyY2VHcmFwaGljOjpjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYg
ZmlsdGVyKSBjb25zdAorYm9vbCBTb3VyY2VHcmFwaGljOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVu
ZGVyaW5nKCkgY29uc3QKIHsKICNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICAvLyBGSVhNRTogcmV0
dXJuIFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyLgotICAgIGlmIChmaWx0ZXIucmVuZGVy
aW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4g
RmlsdGVyRWZmZWN0QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVy
PigqdGhpcyk7CisgICAgcmV0dXJuIHRydWU7CiAjZWxzZQotICAgIFVOVVNFRF9QQVJBTShmaWx0
ZXIpOworICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorfQorCitzdGQ6OnVuaXF1ZV9wdHI8Rmls
dGVyRWZmZWN0QXBwbGllcj4gU291cmNlR3JhcGhpYzo6Y3JlYXRlQWNjZWxlcmF0ZWRBcHBsaWVy
KCkgY29uc3QKK3sKKyNpZiBVU0UoQ09SRV9JTUFHRSkKKyAgICByZXR1cm4gRmlsdGVyRWZmZWN0
QXBwbGllcjo6Y3JlYXRlPFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyPigqdGhpcyk7Cisj
ZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK3N0ZDo6dW5pcXVlX3B0cjxG
aWx0ZXJFZmZlY3RBcHBsaWVyPiBTb3VyY2VHcmFwaGljOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIo
KSBjb25zdAorewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8U291cmNl
R3JhcGhpY1NvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCmluZGV4
IDJjZTQ1ZDhlYTM4ODc2ODI5NTg1YjFlMTgxN2NhNjRmYzAwMjkwNWIuLmRlOTEzZmYyM2ZlMjRl
ZWNjNWE2YzY0ODI1MGNkNGQ0Mjk1MDA4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbGV4IE1hdGhld3MgPHBvc3Nlc3NlZHBl
bmd1aW5ib2JAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsgU2NodWx6ZSA8
a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNCwxMyArMzQsMTEg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTb3VyY2VHcmFwaGljKCk7CiAKLSNpZiBVU0UoQ09S
RV9JTUFHRSkKLSAgICBib29sIHN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotI2VuZGlmCi0KICAgICB1bnNpZ25lZCBudW1iZXJPZkVm
ZmVjdElucHV0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYp
IGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBjcmVhdGVBY2NlbGVyYXRlZEFwcGxpZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBsaWVyKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IG92ZXJyaWRl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKaW5kZXggNTMzYjc0N2I4
MDIyMjdiMzlmZGE5NjI2YzIyYTMwYjk2YjUxOTdjZS4uNjM2ZDgxNDUxMWJmMzU3YTEyYmU1MWE1
Yjg3YzQ1Mjc2NDc4ZmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAK
QEAgLTUyLDEwICs1Miw5IEBAIFJlZlB0cjxDU1NGaWx0ZXI+IENTU0ZpbHRlcjo6Y3JlYXRlKFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBGaWx0ZXJPcGVyYXRpCiAgICAgaWYgKCFmaWx0
ZXItPmJ1aWxkRmlsdGVyRnVuY3Rpb25zKHJlbmRlcmVyLCBvcGVyYXRpb25zLCB0YXJnZXRCb3Vu
ZGluZ0JveCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0jaWYgVVNFKENPUkVfSU1BR0Up
Ci0gICAgaWYgKCFmaWx0ZXItPnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkpCisgICAgaWYg
KHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgJiYgIWZpbHRlci0+
c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKQogICAgICAgICBmaWx0ZXItPnNldFJlbmRl
cmluZ01vZGUoUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7Ci0jZW5kaWYKKwogICAgIHJl
dHVybiBmaWx0ZXI7CiB9CiAKQEAgLTMzNywyMCArMzM2LDE4IEBAIEZpbHRlckVmZmVjdFZlY3Rv
ciBDU1NGaWx0ZXI6OmVmZmVjdHNPZlR5cGUoRmlsdGVyRnVuY3Rpb246OlR5cGUgZmlsdGVyVHlw
ZSkgY29uCiAgICAgcmV0dXJuIGVmZmVjdHM7CiB9CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkKLWJv
b2wgQ1NTRmlsdGVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0Citib29sIENT
U0ZpbHRlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgaWYg
KHJlbmRlcmluZ01vZGUoKSA9PSBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogbV9mdW5jdGlvbnMp
IHsKLSAgICAgICAgaWYgKCFmdW5jdGlvbi0+c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSkK
KyAgICAgICAgaWYgKCFmdW5jdGlvbi0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQot
I2VuZGlmCiAKIFJlZlB0cjxGaWx0ZXJJbWFnZT4gQ1NTRmlsdGVyOjphcHBseShGaWx0ZXJJbWFn
ZSogc291cmNlSW1hZ2UsIEZpbHRlclJlc3VsdHMmIHJlc3VsdHMpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ1NTRmlsdGVyLmgKaW5kZXggNTM3M2M4NTVkNDMyZDE4YTU5NGQxODkzNzkyNzliNmYw
NDMwY2YwZi4uNzc0NmZmNWUzMmQ5MGEzYjYwY2QxMDJkNWRlZTYzYWIyMjY5MzRiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaApAQCAtNTksOSArNTksNyBAQCBwcml2YXRlOgog
ICAgIAogICAgIGJvb2wgYnVpbGRGaWx0ZXJGdW5jdGlvbnMoUmVuZGVyRWxlbWVudCYsIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94KTsK
IAotI2lmIFVTRShDT1JFX0lNQUdFKQotICAgIGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJp
bmcoKSBjb25zdCBmaW5hbDsKLSNlbmRpZgorICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZygpIGNvbnN0IGZpbmFsOwogCiAgICAgV1RGOjpUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFdURjo6VGV4dFN0cmVhbSYsIEZpbHRlclJlcHJlc2VudGF0aW9uKSBjb25z
dCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
ZDIxN2VlM2IzMjRkODQ3MzFmMmY2YzA4OGJiNzQxMDNmMjgxOTA0My4uNTNiNjJjYzlkMGU0ZWYy
MWJjNDQ0MmE1MDA5YjRlYWUxMjcwZWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC01NjAzLDcgKzU2MDMsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVGaWx0ZXJQYWludGluZ1N0cmF0ZWd5KCkKICAgICB9CiAgICAgCiAgICAgZW5zdXJlTGF5ZXJG
aWx0ZXJzKCk7Ci0gICAgbV9maWx0ZXJzLT5idWlsZEZpbHRlcihyZW5kZXJlcigpLCBwYWdlKCku
ZGV2aWNlU2NhbGVGYWN0b3IoKSwgcmVuZGVyZXIoKS5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmls
dGVyc0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZCk7CisgICAgbV9maWx0ZXJzLT5idWlsZEZpbHRlcihyZW5kZXJlcigp
LCBwYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgcmVuZGVyZXIoKS5wYWdlKCkuYWNjZWxlcmF0
ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIH0KIAogSW50T3V0c2V0cyBSZW5kZXJMYXllcjo6Zmls
dGVyT3V0c2V0cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IDAyNDlkODAyZWNkNWNkMTJm
NjQ4YzM1ZjViMzllMjA0MGY2NTRmMTYuLjc4NjVhNTg1YTQ3ZWZkODI0NjE3NTFmOWZmYTlhMWQx
YjFiMjcxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJl
ciwgY29uc3QgUmVuZGUKICAgICBJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoZmlsdGVy
RGF0YS0+ZHJhd2luZ1JlZ2lvbi5zaXplKCksIGZpbHRlclNjYWxlKTsKIAogICAgIC8vIFNldCB0
aGUgcmVuZGVyaW5nIG1vZGUgZnJvbSB0aGUgcGFnZSdzIHNldHRpbmdzLgotICAgIGF1dG8gcmVu
ZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2Vs
ZXJhdGVkOworICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnBhZ2UoKS5hY2NlbGVy
YXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRl
cmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICAvLyBDcmVhdGUgdGhlIFNWR0ZpbHRlciBv
YmplY3QuCiAgICAgZmlsdGVyRGF0YS0+YnVpbGRlciA9IG1ha2VVbmlxdWU8U1ZHRmlsdGVyQnVp
bGRlcj4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZFSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RkVJbWFnZS5jcHAKaW5kZXggZGMzZDMzZWYzYWI1ZWIwN2ViY2RkNjY3ZTlkYzc1ZjlhYzM3ZTRj
MC4uOTU1NjU5NzhjODY1MzU3ZWQzY2NlOTIxNjM3NDE4Mjk5ZTc1MmY0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKQEAgLTMs
NyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMTQsNyArMTE0LDcgQEAgYm9vbCBGRUltYWdlU29m
dHdhcmVBcHBsaWVyOjphcHBseShjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1h
Z2VWZWN0b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVm
ZmVjdEFwcGxpZXI+IEZFSW1hZ2U6OmNyZWF0ZUFwcGxpZXIoY29uc3QgRmlsdGVyJikgY29uc3QK
K3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUltYWdlOjpjcmVhdGVTb2Z0
d2FyZUFwcGxpZXIoKSBjb25zdAogewogICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpj
cmVhdGU8RkVJbWFnZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCmluZGV4IDFmN2U4MzI2MmI5
Y2I5MjMwYTNhM2M5ZWM1MzE5YWExOTNkZGU4MTQuLmMzMzAyNjdlMjQ5YWI3OGIwYzViZTQ2ZWU3
OWRhMGNmNjllYzQ5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGRUltYWdlLmgKQEAgLTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmlj
IFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2No
dWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02Miw3ICs2
Miw3IEBAIHByaXZhdGU6CiAKICAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0
IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVj
dCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVBcHBsaWVyKGNvbnN0IEZpbHRlciYpIGNv
bnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVh
dGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBmaW5hbDsKIAogICAgIFdURjo6VGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRh
dGlvbikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
ZmlsdGVycy9TVkdGaWx0ZXIuY3BwCmluZGV4IDg0NzVlYWE5N2EyMjIzNTNhMzE3Mzg5NmU0ZWUx
NzMxZTBmYWRkNjguLjk1ZjI0YTdkZDllNjRlZWQwNmI1OGI1MjlhODUwMGRmOWE4Y2Y5NjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNw
cApAQCAtNDgsMTAgKzQ4LDkgQEAgUmVmUHRyPFNWR0ZpbHRlcj4gU1ZHRmlsdGVyOjpjcmVhdGUo
U1ZHRmlsdGVyRWxlbWVudCYgZmlsdGVyRWxlbWVudCwgU1ZHRmlsdGVyQnUKICAgICBBU1NFUlQo
IWV4cHJlc3Npb24uaXNFbXB0eSgpKTsKICAgICBmaWx0ZXItPnNldEV4cHJlc3Npb24oV1RGTW92
ZShleHByZXNzaW9uKSk7CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICBpZiAoIWZpbHRlci0+
c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSkKKyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBS
ZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCAmJiAhZmlsdGVyLT5zdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nKCkpCiAgICAgICAgIGZpbHRlci0+c2V0UmVuZGVyaW5nTW9kZShSZW5kZXJpbmdN
b2RlOjpVbmFjY2VsZXJhdGVkKTsKLSNlbmRpZgorCiAgICAgcmV0dXJuIGZpbHRlcjsKIH0KIApA
QCAtODAsMjEgKzc5LDE5IEBAIEZsb2F0U2l6ZSBTVkdGaWx0ZXI6OnJlc29sdmVkU2l6ZShjb25z
dCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdHMgPT0g
U1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YID8gc2l6ZSAqIG1f
dGFyZ2V0Qm91bmRpbmdCb3guc2l6ZSgpIDogc2l6ZTsKIH0KIAotI2lmIFVTRShDT1JFX0lNQUdF
KQotYm9vbCBTVkdGaWx0ZXI6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3QKK2Jv
b2wgU1ZHRmlsdGVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKICAg
ICBpZiAocmVuZGVyaW5nTW9kZSgpID09IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVCghbV9leHByZXNzaW9uLmlzRW1wdHko
KSk7CiAgICAgZm9yIChhdXRvJiB0ZXJtIDogbV9leHByZXNzaW9uKSB7Ci0gICAgICAgIGlmICgh
dGVybS5lZmZlY3QtPnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkpCisgICAgICAgIGlmICgh
dGVybS5lZmZlY3QtPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiBG
aWx0ZXJFZmZlY3RWZWN0b3IgU1ZHRmlsdGVyOjplZmZlY3RzT2ZUeXBlKEZpbHRlckZ1bmN0aW9u
OjpUeXBlIGZpbHRlclR5cGUpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4IGNiODIzYmFkNDUzODFkZDg2NjgzNzg2YTM4
ZGY2MTVkN2U3OWMzMzMuLjRlZTBmYjg3YWYxYzFhNDFkZWYxODZhNTUzNDEyOGJhNjc4MGU5Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5o
CkBAIC01NiwxMSArNTYsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0RXhwcmVzc2lvbihT
VkdGaWx0ZXJFeHByZXNzaW9uJiYgZXhwcmVzc2lvbikgeyBtX2V4cHJlc3Npb24gPSBXVEZNb3Zl
KGV4cHJlc3Npb24pOyB9CiAKLSNpZiBVU0UoQ09SRV9JTUFHRSkKLSAgICBib29sIHN1cHBvcnRz
Q29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3QgZmluYWw7Ci0jZW5kaWYKICAgICBGbG9hdFNpemUg
cmVzb2x2ZWRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwogCisgICAgYm9vbCBz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgZmluYWw7CisKICAgICBSZWZQdHI8
RmlsdGVySW1hZ2U+IGFwcGx5KGNvbnN0IEZpbHRlciYsIEZpbHRlckltYWdlJiBzb3VyY2VJbWFn
ZSwgRmlsdGVyUmVzdWx0cyYpIGZpbmFsOwogCiAgICAgSW50T3V0c2V0cyBvdXRzZXRzKGNvbnN0
IEZpbHRlciYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG91dHNldHMoKTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>