<?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>221156</bug_id>
          
          <creation_ts>2021-01-29 14:01:38 -0800</creation_ts>
          <short_desc>[macOS] Remove support for image controls</short_desc>
          <delta_ts>2021-01-30 10:48:13 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1723875</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-29 14:01:38 -0800</bug_when>
    <thetext>Remove support for image controls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723926</commentid>
    <comment_count>1</comment_count>
      <attachid>418780</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-29 16:04:31 -0800</bug_when>
    <thetext>Created attachment 418780
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723938</commentid>
    <comment_count>2</comment_count>
      <attachid>418780</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-01-29 16:19:20 -0800</bug_when>
    <thetext>Comment on attachment 418780
For EWS

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:100
&gt; -@property (nonatomic, setter=_setImageControlsEnabled:) BOOL _imageControlsEnabled WK_API_AVAILABLE(macos(10.12));
&gt; +@property (nonatomic, setter=_setImageControlsEnabled:) BOOL _imageControlsEnabled WK_API_DEPRECATED(&quot;Image controls are no longer supported&quot;, macos(10.12, WK_MAC_TBA));

Don&apos;t we have pretty strong evidence that we can just delete this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723954</commentid>
    <comment_count>3</comment_count>
      <attachid>418780</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-29 16:50:27 -0800</bug_when>
    <thetext>Comment on attachment 418780
For EWS

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:100
&gt;&gt; +@property (nonatomic, setter=_setImageControlsEnabled:) BOOL _imageControlsEnabled WK_API_DEPRECATED(&quot;Image controls are no longer supported&quot;, macos(10.12, WK_MAC_TBA));
&gt; 
&gt; Don&apos;t we have pretty strong evidence that we can just delete this?

Ah, so after some more digging, it looks like Mail actually turns on this SPI for some of their web views, but then never attempts to set the corresponding attribute (x-webkit-imagemenu) on any image elements. When using web inspector to manually add the attribute, I&apos;m able to get a button to show up when hovering over images, but it doesn&apos;t have any effect.

As such, it seems that use of this SPI by Mail was unintentional, so while we can&apos;t remove the SPI quite yet, marking it as deprecated is probably a good first step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723998</commentid>
    <comment_count>4</comment_count>
      <attachid>418803</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-29 19:44:41 -0800</bug_when>
    <thetext>Created attachment 418803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724013</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-29 21:27:38 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 418803 to WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724033</commentid>
    <comment_count>6</comment_count>
      <attachid>418815</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-30 08:31:09 -0800</bug_when>
    <thetext>Created attachment 418815
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724043</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-30 10:47:49 -0800</bug_when>
    <thetext>Committed r272117: &lt;https://trac.webkit.org/changeset/272117&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418815.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724044</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-30 10:48:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/73794193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418780</attachid>
            <date>2021-01-29 16:04:31 -0800</date>
            <delta_ts>2021-01-29 18:50:35 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-221156-20210129160430.patch</filename>
            <type>text/plain</type>
            <size>88177</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE1Y2RiMmEyYWZkMGRlNDFkM2RlNzk2
MWU5MzVkODk5NDhlYWJjMjUuLjYyZmJlZjM4Y2M4NWYwZWQ1MTUyNWI5M2JmMmM1OGE3Y2JmMDUz
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBSZW1vdmUgc3VwcG9ydCBmb3Ig
aW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSB0aGlzIHVudXNlZCBXZWJLaXQgc2V0dGluZy4KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMS0wMS0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIGZvbnQtc3Ry
ZXRjaCBpcyBub3QgYXBwbGllZCB0byBzeXN0ZW0tdWkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZWFiOTk1YTg0
ZDg2MmJlNjFhNDIxNzY1ZGUyMzdiZTM4MDkxY2NmLi5mYjhmNjBmYzRhMmM1Nzc0MWY5ODYxYThm
MmVlMTUzMTkxYTVmM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjEtMDEtMjkg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBSZW1vdmUgc3VwcG9ydCBmb3IgaW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciB0aGUgbWFjT1Mt
b25seSAiaW1hZ2UgY29udHJvbHMiIGNvZGVwYXRoLiBUaGlzIFNQSSB3YXMgaW50ZW5kZWQgdG8g
YmUgdXNlZCBieSBNYWlsIHllYXJzIGFnbywKKyAgICAgICAgYnV0IHdhcyBzdXBlcnNlZGVkIGJ5
IGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIGluIE1haWw7IHRoaXMgV2ViS2l0IGZ1bmN0aW9uYWxp
dHkgaGFzIHNpbmNlIGJlZW4gdW51c2VkLgorCisgICAgICAgIEluIGEgc3Vic2VxdWVudCBwYXRj
aCwgYSBzbWFsbCBzdWJzZXQgb2YgdGhlIGluZnJhc3RydWN0dXJlIGZvciBsYXlpbmcgb3V0IGFu
ZCByZW5kZXJpbmcgaW1hZ2UgY29udHJvbHMgd2lsbAorICAgICAgICByZXR1cm4gdW5kZXIgYSBk
aWZmZXJlbnQgbmFtZSwgaW4gc3VwcG9ydCBvZiB0aGUgaW1hZ2UgZXh0cmFjdGlvbiBhY2Nlc3Np
YmlsaXR5IGZlYXR1cmUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoK
KyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNQbHVnaW5F
bGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KworICAgICAgICBBZGRpdGlvbmFsbHkgcmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBgd2Via2l0aW1h
Z2VtZW51YCBET00gYXR0cmlidXRlLCB3aGljaCB3YXMgb25seSByZXNwZWN0ZWQgaWYgdGhlIChu
b3ctCisgICAgICAgIHJlbW92ZWQpIFNQSSBwcmVmZXJlbmNlIHdhcyBzZXQuCisKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp1cGRhdGVJbWFnZUNvbnRyb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnRyeUNyZWF0ZUltYWdlQ29u
dHJvbHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6ZGVz
dHJveUltYWdlQ29udHJvbHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdl
RWxlbWVudDo6aGFzSW1hZ2VDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDoKKworICAgICAgICBB
ZGRpdGlvbmFsbHkgcmVtb3ZlIGBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWRgIGFuZCB0
aGUgYXNzb2NpYXRlZCBoZWxwZXIgbWV0aG9kIGBoYXNTaGFkb3dDb250cm9scygpYCBvbgorICAg
ICAgICBgSFRNTEltYWdlRWxlbWVudGAuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVs
ZW1lbnQ6Omhhc1NoYWRvd0NvbnRyb2xzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1s
L3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGh0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVudC5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVt
ZW50TWFjLmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwv
c2hhZG93L21hYy9pbWFnZUNvbnRyb2xzTWFjLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6
aW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xzTWVudSk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9UaGVtZVR5cGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAg
ICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWU6OmFkanVzdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW1hZ2VDb250cm9sc0J1dHRvblNpemUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmltYWdlQ29udHJvbHNCdXR0b25Q
b3NpdGlvbk9mZnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cGFpbnRJbWFnZUNvbnRyb2xzQnV0dG9uKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6aW1hZ2VDb250cm9sc1N0
eWxlU2hlZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnNlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludEltYWdlQ29udHJvbHNCdXR0b24pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmltYWdlQ29udHJvbHNCdXR0
b25TaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjppbWFnZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25PZmZzZXQgY29uc3QpOiBEZWxldGVkLgorCisg
ICAgICAgIFJlbW92ZSB0aGVzZSB0d28gbWV0aG9kcywgd2hpY2ggd2VyZSBvbmx5IHVzZWQgdG8g
cmVuZGVyIHRoZSBub3ctcmVtb3ZlZCBpbWFnZSBjb250cm9scyBidXR0b24uCisKKyAgICAgICAg
KiBzdHlsZS9Vc2VyQWdlbnRTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXNl
ckFnZW50U3R5bGU6OmVuc3VyZURlZmF1bHRTdHlsZVNoZWV0c0ZvckVsZW1lbnQpOgorICAgICAg
ICAqIHN0eWxlL1VzZXJBZ2VudFN0eWxlLmg6CisKIDIwMjEtMDEtMjkgIEZ1amlpIEhpcm9ub3Jp
ICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBHcmFw
aGljc0NvbnRleHRHTDo6RGVzdGluYXRpb24gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNTFmNDJm
NmQxOGFjNjVmNmRjNTJlZWNlZGRlZTBmYjAzNWU1NWE2Li44MjhkMzQxOTRmNTQzMjUyNGNlNzAx
ZTQ1NGJiZTA4MDc1NmQ5NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAxLTI5
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNP
U10gUmVtb3ZlIHN1cHBvcnQgZm9yIGltYWdlIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExNTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZWF2ZSB0aGUgZXhpc3RpbmcgU1BJIGltcGxl
bWVudGVkIGZvciBiaW5hcnkgY29tcGF0YWJpbGl0eSwgYnV0IG1ha2UgdGhlbSBlbXB0eSBzdHVi
cyBhbmQgYWRkaXRpb25hbGx5IG1hcmsKKyAgICAgICAgdGhlIHByb3BlcnR5IG9uIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYXMgZGVwcmVjYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRJbWFnZUNvbnRy
b2xzRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0SW1hZ2VDb250cm9sc0VuYWJs
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX2ltYWdlQ29udHJvbHNFbmFibGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3NldEltYWdlQ29udHJvbHNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKwogMjAyMS0wMS0yOSAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBj
b20uYXBwbGUucHJpdmF0ZS5zZWN1cmVqaXQgZW50aXRsZW1lbnQgZm9yIEpJVENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA1ZjNmMTFlN2NkMGUyZjMwNjRkMmJhNWNiZjgxNDg5
YjRiMGEzYjRmLi42M2M3NjI2ZDA1NjFkNGMzZTY3MDY5ZTk3YjU3ZTA3M2QxMTMxMjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDEtMjkgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBS
ZW1vdmUgc3VwcG9ydCBmb3IgaW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm4gdGhlc2UgbGVnYWN5IFdlYktpdCBTUEkgbWV0
aG9kcyBpbnRvIGVtcHR5IHN0dWJzLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAg
ICAgICAoLVtXZWJQcmVmZXJlbmNlcyBpbWFnZUNvbnRyb2xzRW5hYmxlZF0pOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBzZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDpdKToKKwogMjAyMS0wMS0y
NiAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjc2
NDEpOiBXZWJLaXREZXZlbG9wZXJFeHRyYXMgcHJlZmVyZW5jZSBoYXMgbm8gZWZmZWN0IGZvciBX
ZWJLaXRMZWdhY3kgY2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA1OTgzYTcyZGRjNWQ0OGE5ZDA3MmU5NjFjZTgx
MjhhMDJkYjFhMzMxLi4wNTIwYzZjOWQ5M2U2ZjU2NmZhY2YyMGUwODc0NWNmYjdjMGM3NTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbApAQCAtOTAyLDE3ICs5MDIsNiBAQCBIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQ6CiAgICAg
V2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUltYWdlQ29udHJvbHNFbmFibGVkOgot
ICB0eXBlOiBib29sCi0gIGNvbmRpdGlvbjogRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gIGRl
ZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAg
IFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1
bHQ6IGZhbHNlCi0KIEluYWN0aXZlTWVkaWFDYXB0dXJlU3RlYW1SZXByb21wdEludGVydmFsSW5N
aW51dGVzOgogICB0eXBlOiBkb3VibGUKICAgd2ViY29yZUJpbmRpbmc6IG5vbmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDUyYzEwZjU1
MWM3ZWE5ZmM2ZGIzNzM5OGJiMTNlM2ExZjM5ZmIzZWEuLmQ3ZWU5NmRjYTdiZGM0M2E0ZWQ2ZWEz
MDFkMTA0MDE0MzMwNDAwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtMTAzOCw3ICsxMDM4LDYgQEAgJChQUk9KRUNUX0RJUikvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1s
L3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4KICQoUFJPSkVDVF9ESVIpL2h0bWwvcGFyc2VyL2Ny
ZWF0ZS1odG1sLWVudGl0eS10YWJsZQotJChQUk9KRUNUX0RJUikvaHRtbC9zaGFkb3cvbWFjL2lt
YWdlQ29udHJvbHNNYWMuY3NzCiAkKFBST0pFQ1RfRElSKS9odG1sL3NoYWRvdy9tZXRlckVsZW1l
bnRTaGFkb3cuY3NzCiAkKFBST0pFQ1RfRElSKS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggNjY3OWM2ODRkZWFmNWEwZDlmMzlkMDgwNzk5ODUyMmEzZmVh
NjFjMS4uYWQ3OWMwMmI5YjI2ZjBjMjRhMTQ3ZGQ1MDI2YWNlYTQ5MGZmN2EzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTExLDcgKzE1MTEsNiBAQCBVU0VSX0FHRU5UX1NU
WUxFX1NIRUVUUyA9IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9wbHVnSW5zLmNzcyBcCiAgICAgJChX
ZWJDb3JlKS9jc3MvcXVpcmtzLmNzcyBcCiAgICAgJChXZWJDb3JlKS9jc3Mvc3ZnLmNzcyBcCi0g
ICAgJChXZWJDb3JlKS9odG1sL3NoYWRvdy9tYWMvaW1hZ2VDb250cm9sc01hYy5jc3MgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9zaGFkb3cvbWV0ZXJFbGVtZW50U2hhZG93LmNzcyBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3NzIFwK
ICMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGM3YjIzMGIzOGRhZTAzNzQyMTdjNDBmYzMw
ZWE3ZjU5OGM3MjI0ODIuLmQyYjM0MjM2MjU1YTQxN2YzYWExNjM2NWUxMDNiYjdjMTIyMDcyNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTYyLDEwICsxNjIsNyBAQCBlZGl0aW5nL21h
Yy9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gQG5vLXVuaWZ5CiBlZGl0aW5nL21hYy9UZXh0
VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbQogZmlsZWFwaS9GaWxlQ29jb2EubW0KIGhpc3Rvcnkv
bWFjL0hpc3RvcnlJdGVtTWFjLm1tCi1odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQuY3BwCiBodG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAotaHRtbC9z
aGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAotaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKIGluc3BlY3Rvci9tYWMvUGFnZURl
YnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9h
ZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNhNmM5NTZjZWFlMjVm
MDMzODgxNmJkOTc5MDExNTY3YTYzMzcwYWQuLjkwNTc5MDA3ZDlhNzEwNjQ0Nzk1MjIzNGY1MDk3
MjMyZWYwMTNlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTcyOSw3ICs3MjksNiBAQAogCQkyRDA2MjE1MjFEQTYzQUEyMDBB
N0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDA2MjE0NzFEQTYzQTc5MDBBN0ZCMjYgLyog
V2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgKi87IH07CiAJCTJEMEI0QUFCMThEQTFDQ0Qw
MDQzNERFMSAvKiBJT1N1cmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEMEI0QUE5MThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDIyODMwMzIz
QTg0NzA3MDAzNjRCN0UgLyogQ3Vyc29yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1h
Yy5tbSAqLzsgfTsKLQkJMkQyNTM5NjMxOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJvbHNC
dXR0b25FbGVtZW50TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDI1Mzk2MTE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVs
ZW1lbnRNYWMuaCAqLzsgfTsKIAkJMkQyOTM4NkIyMzVGNkI2OTAwQzdGM0IyIC8qIEV4Y2VwdGlv
bkRldGFpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEMjkzODY5MjM1RjZCNjgwMEM3RjNCMiAvKiBFeGNlcHRpb25EZXRhaWxzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQyOUVDQzYxOTJFQ0M4
MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOUVDQzIxOTJFQ0M4MzAwOTg0Qjc4
IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMjlFQ0M4MTkyRUNDODMwMDk4NEI3OCAvKiBE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUNDNDE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNDAyLDggKzE0MDEsNiBAQAogCQk1MDgxRTNFMDNDRkY4MEMxNkVG
OEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZyYWdtZW50ZWRG
bG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhD
Q0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRnJhZ21lbnRlZEZsb3cuaCAqLzsgfTsKIAkJ
NTEwMTg0NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAv
KiBDYWNoZWRQYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJNTEwMTkyRDIxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEwMTkyRDAxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5o
ICovOyB9OwotCQk1MTAxOTJENjE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTAxOTJENDE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi87
IH07CiAJCTUxMDU4QURCMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA1OEFENzFENjc5MjU3
MDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuY3BwICovOyB9OwogCQk1MTA1OEFEQzFENjc5MkMxMDA5
QTUzOEMgLyogTW9ja0dhbWVwYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMDU4QUQ4MUQ2NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMDU4QURE
MUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDU4QUQ5MUQ2NzkyNTcwMDlBNTM4
QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCAqLzsgfTsKQEAgLTcwODksOCArNzA4Niw2IEBA
CiAJCTJEMEI0QUFBMThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJT1N1cmZhY2UubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEMTkzMjE3MURBNjRFMTkwMEE1NEEwOCAvKiBXZWJLaXRNZWRpYUtl
eUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdE1lZGlhS2V5
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQxOTMyMTgxREE2NEUxOTAw
QTU0QTA4IC8qIFdlYktpdE1lZGlhS2V5RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYktpdE1lZGlhS2V5RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
RDI1Mzk2MDE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDI1Mzk2
MTE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOTM4NjkyMzVGNkI2ODAwQzdG
M0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXhjZXB0aW9uRGV0YWlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI5
RUNDMTE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjlFQ0MyMTkyRUND
ODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDk3LDExICs4NDkyLDYgQEAKIAkJNTA4Q0NBNEUx
M0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZyYWdtZW50ZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZyYWdtZW50ZWRGbG93LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hl
ZFBhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUGFnZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAxODQ2ODBCMDg2MDJBMDA0QTgyNUYgLyog
Q2FjaGVkUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNo
ZWRQYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTEwMTkyQ0YxOEI2QjlB
QjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTAxOTJEMDE4QjZCOUFCMDA3RkM3QTEg
LyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTAxOTJEMzE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
Q29udHJvbHNSb290RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUx
MDE5MkQ0MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMDE5MkQ4MThCN0Q3QUIwMDdGQzdBMSAv
KiBpbWFnZUNvbnRyb2xzTWFjLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gaW1hZ2VD
b250cm9sc01hYy5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDMxMDVFMUJB
OEUwOTAwMDMzMjlDMCAvKiBJREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMzEwNUYxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRh
dGFiYXNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJE
YXRhYmFzZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNThB
RDcxRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tHYW1lcGFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE5MzI3LDcgKzE5MzE3LDYgQEAKIAkJNDE1MEY5RUQxMkI2RTA5OTAwMDhDODYw
IC8qIHNoYWRvdyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJNTFDNEFBNTExOEIyODM1NzAwN0JGRTlCIC8qIG1hYyAqLywKIAkJCQk3QzFFOTcyNTFBOUY5
ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmNwcCAqLywKIAkJCQk3QzFFOTcy
NjFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmggKi8sCiAJCQkJRTU4
QjQ1QjgyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovLApAQCAt
MTkzNDMsOCArMTkzMzIsNiBAQAogCQkJCUU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggKi8sCiAJCQkJQTdDOUFCRjYxMzU3QTNCRjAwRjU1
MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmNwcCAqLywKIAkJCQlBN0M5QUJGNzEzNTdBM0JG
MDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLywKLQkJCQk1MTAxOTJEMzE4QjZC
OUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcCAqLywKLQkJCQk1MTAx
OTJENDE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi8sCiAJ
CQkJNDE3MjUzQTgxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQuY3BwICovLAogCQkJCTQxNzI1M0E5MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmggKi8sCiAJCQkJRTRFMjQzODIxREFC
OTUzRTAwQzI2RTRCIC8qIG1ldGVyRWxlbWVudFNoYWRvdy5jc3MgKi8sCkBAIC0yMDY2NCwxOCAr
MjA2NTEsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKLQkJNTFDNEFBNTExOEIyODM1NzAwN0JGRTlCIC8qIG1hYyAqLyA9IHsKLQkJCWlzYSA9
IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJMkQyNTM5NjAxOENFN0Y2MjAwMjcwMjIy
IC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCAqLywKLQkJCQkyRDI1Mzk2MTE4
Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCAqLywKLQkJ
CQk1MTAxOTJEODE4QjdEN0FCMDA3RkM3QTEgLyogaW1hZ2VDb250cm9sc01hYy5jc3MgKi8sCi0J
CQkJNTEwMTkyQ0YxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1h
Yy5jcHAgKi8sCi0JCQkJNTEwMTkyRDAxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNS
b290RWxlbWVudE1hYy5oICovLAotCQkJKTsKLQkJCXBhdGggPSBtYWM7Ci0JCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwotCQl9OwogCQk1MUVDQzNFNDIwMDU4MzFGMDA0ODNFQUUgLyogbWVzc2Fn
ZXBvcnRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIx
OTE0LDggKzIxODg5LDggQEAKIAkJCQk0NDU3NzVFNDIwNDcyRjczMDA4RENFNUQgLyogTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovLAogCQkJCTQ0NTc3NUU5MjA0NzMwM0IwMDhEQ0U1
RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tICovLAogCQkJCTE0MDI2NDVEMEFG
REMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tICovLAotCQkJCUNEOEFDQThDMUQyMzk3MTkw
MEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLm1tICovLAogCQkJCUNEOEFDQThEMUQyMzk3
MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggKi8sCisJCQkJQ0Q4QUNBOEMxRDIz
OTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsubW0gKi8sCiAJCQkJOTM1MDBGMzEx
M0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi8sCiAJCQkJNTJGNTJF
MTAxNEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovLAogCQkJCTRC
MjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLApAQCAtMjc0MDYs
OSArMjczODEsOSBAQAogCQkJCUNCQjZCMkQyMUNCN0FERDAwMDlFREUxQSAvKiBMaW5rUHJlbG9h
ZFJlc291cmNlQ2xpZW50cy5oICovLAogCQkJCTUxQUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAvKiBM
b2FkZXJTdHJhdGVneS5jcHAgKi8sCiAJCQkJNTFFNjgyMEYxNjM4NzMwMjAwM0JCRjNDIC8qIExv
YWRlclN0cmF0ZWd5LmggKi8sCisJCQkJRTQ3RkM4QTEyNUI4NEQ3MTAwNTQ5NUZDIC8qIExvYWRT
Y2hlZHVsaW5nTW9kZS5oICovLAogCQkJCTg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBMb2Fk
VGltaW5nLmNwcCAqLywKIAkJCQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogTG9hZFRpbWlu
Zy5oICovLAotCQkJCUU0N0ZDOEExMjVCODRENzEwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01v
ZGUuaCAqLywKIAkJCQlDRUVGQ0Q3NzE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAgKi8sCiAJCQkJQ0VFRkNENzgxOURCMzFGNzAwMzg3NkQ3IC8qIE1lZGlhUmVzb3Vy
Y2VMb2FkZXIuaCAqLywKIAkJCQk1MkYxMDg2MjE2MkI2RDgyMDA5QUM4MUUgLyogTWl4ZWRDb250
ZW50Q2hlY2tlci5jcHAgKi8sCkBAIC0zMjU0MSw5ICszMjUxNiw2IEBACiAJCQkJNzI3QTdGM0Ey
NDA3OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJBMTBEOTEwQjM4MThCRDAwMDk5QUE0IC8qIEltYWdlQnVmZmVyUGlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRTIxREQyMTgzNDQ0QTAwRTY2RjU1IC8qIEltYWdlQnVm
ZmVyVXRpbGl0aWVzQ0cuaCBpbiBIZWFkZXJzICovLAotCQkJCTJEMjUzOTYzMThDRTdGNjIwMDI3
MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNTEwMTkyRDYxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNTEwMTkyRDIxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3OTc5MUEwRDZCOUQw
QzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxOUZFQTgxRjU3
Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxOUZF
QUUxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJzICov
LApAQCAtMzM2NDUsNiArMzM2MTcsNyBAQAogCQkJCTk3NTlFOTQ5MTRFRjFENDkwMDI2QTJERCAv
KiBMb2FkYWJsZVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3MzIwQURCQTVE
RTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUU2
ODIxMDE2Mzg3MzAyMDAzQkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAor
CQkJCUU0N0ZDOEEzMjVCODRENzIwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJy
ZW50R3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzQzREU2QjIyQUI0QjhB
MDAxNTI3RDkgLyogTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTM0MzQyLDcgKzM0MzE1LDYgQEAKIAkJCQk0MzY3MDhENTEyRDlDQTRCMDAwNDQyMzQgLyog
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQz
NjcwOEQ3MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MzY3MDhEOTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVz
b3VyY2VMaW5lYXJHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDExNEZFMzIyNUJFQkQx
OTAwOUQ5RjIwIC8qIFJUQ1J0Y3BQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3
MDhEQjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzNjcwOEREMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4REYxMkQ5Q0E0QjAwMDQ0MjM0IC8q
IFJlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQ1Niw2ICsz
NDQyOCw3IEBACiAJCQkJMDc4RTA5NDIxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5RTZFQzkyNTY2RDI3ODAw
MkI1MDEwIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5MjQxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMTRGRTMyMjVCRUJEMTkwMDlEOUYyMCAvKiBSVENS
dGNwUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyREU0QjgyMTkyODVDMDAwNzVG
M0E3IC8qIFJUQ1J0cENhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUUyQzQzNjMx
QkNFRTMyQjAwMDFFMkJDIC8qIFJUQ1J0cFJlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNDOEIzNTI1NTJGMjdEMDBFNjUwNTUgLyogUlRDUnRwUmVjZWl2ZXJXaXRoVHJhbnNmb3JtLmgg
aW4gSGVhZGVycyAqLywKQEAgLTM0OTU3LDcgKzM0OTMwLDYgQEAKIAkJCQk3MUE1N0RGMjE1NEJF
MjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUU0N0ZDOEEzMjVCODRENzIwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2lu
dExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDBhNzQ5ODVjODYxZGM4
ODU5OTdhY2NkMWM5YjI4NDA2YmJkZThlMTcuLjFjYzJjODIyOGUwOGY2ZmZlNjZiNzc2NGZjNmEw
NTZkM2E0NmE1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaApAQCAtNjA1LDExICs2MDUsNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJsZXNzQXR0YWNobWVudDsKICAgICAgICAgYnJl
YWs7CiAjZW5kaWYKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBjYXNlIEltYWdl
Q29udHJvbHNCdXR0b25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlt
YWdlQ29udHJvbHNCdXR0b247Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCiAjaWYgRU5BQkxFKEFQ
UExFX1BBWSkKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKICAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBcHBsZVBheUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dGllcy5qc29uCmluZGV4IDk1NDhlZjY3YmNmYjZiZGE2MjFmNzFjMmM5NjllNjA1ZGViYTA4NTYu
LjQ1ZWMzY2E5MGI3YmI0ZDA0ZDc1YzM5ZmJmMDg3ZWQ2Y2U1ZTc4YTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtNDUzOCw3ICs0NTM4LDYgQEAKICAgICAgICAgICAg
ICAgICAiY29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IiLAogICAgICAgICAgICAg
ICAgICJkaXNjcmV0ZS1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IiLAogICAgICAgICAgICAgICAg
ICJyYXRpbmctbGV2ZWwtaW5kaWNhdG9yIiwKLSAgICAgICAgICAgICAgICAiaW1hZ2UtY29udHJv
bHMtYnV0dG9uIiwKICAgICAgICAgICAgICAgICAiLWFwcGxlLXBheS1idXR0b24iLAogICAgICAg
ICAgICAgICAgICJ0ZXh0YXJlYSIsCiAgICAgICAgICAgICAgICAgImF0dGFjaG1lbnQiLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBhZDczNTdmZmVhODQ2ZGYyMjkz
NTRkMmNiYTBlMTUwMTc3YTEyYjljLi5mOGYyNWZhOTc1ZjU4M2U0ZWI3ZWRhMTliODI5ZTM4MzU1
MTU3ZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtODU4LDkg
Kzg1OCw2IEBAIHJlbGV2YW5jeS1sZXZlbC1pbmRpY2F0b3IKIGNvbnRpbnVvdXMtY2FwYWNpdHkt
bGV2ZWwtaW5kaWNhdG9yCiBkaXNjcmV0ZS1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IKIHJhdGlu
Zy1sZXZlbC1pbmRpY2F0b3IKLSNpZiBkZWZpbmVkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAm
JiBFTkFCTEVfU0VSVklDRV9DT05UUk9MUwotaW1hZ2UtY29udHJvbHMtYnV0dG9uCi0jZW5kaWYK
ICNpZiBkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVkpICYmIEVOQUJMRV9BUFBMRV9QQVkKIC1hcHBs
ZS1wYXktYnV0dG9uCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDMyMmFlZTYwYTAxMWM0ZGFkMjY4
N2I5MzdiZTc3OTMxMTMzNDNiMmEuLjUwOWUwZWI2ZTM2ZWVjNWI4ZTc1M2Y2M2YwYjEwYzZiZGI4
NjMwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjA2LDEwICsyMDYsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0NoYXJhY3RlckRhdGFOb2RlKCkgY29uc3QgeyByZXR1cm4gaGFzTm9kZUZsYWcoTm9kZUZs
YWc6OklzQ2hhcmFjdGVyRGF0YSk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGcmFtZU93bmVyRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGx1Z2lu
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0gICAgdmlydHVhbCBib29sIGlzSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAogICAgIGJvb2wg
aXNEb2N1bWVudE5vZGUoKSBjb25zdCB7IHJldHVybiBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SXNE
b2N1bWVudE5vZGUpOyB9CiAgICAgYm9vbCBpc1RyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGhh
c05vZGVGbGFnKE5vZGVGbGFnOjpJc0RvY3VtZW50Tm9kZSkgfHwgaGFzTm9kZUZsYWcoTm9kZUZs
YWc6OklzU2hhZG93Um9vdCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4KaW5kZXggMWJlMDQ1ZWQxMzZiZDcwYmJmMDUzMzYwZWQ2ZjNhNDA4NGY1NjE4Yi4uMGNm
ZWJiYjc0ZGVlY2EzZjEwODc2YWU2N2ZlMGUwNDc0OWNmZTE1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTQyOCw3ICs0MjgsNiBAQCBhdXRvY2FwaXRh
bGl6ZQogb253ZWJraXRjdXJyZW50cGxheWJhY2t0YXJnZXRpc3dpcmVsZXNzY2hhbmdlZAogb253
ZWJraXRwbGF5YmFja3RhcmdldGF2YWlsYWJpbGl0eWNoYW5nZWQKIG9ud2Via2l0cHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQKLXgtd2Via2l0LWltYWdlbWVudQogd2Via2l0LXBsYXlzaW5saW5lCiB4
LXdlYmtpdC1haXJwbGF5CiB4LXdlYmtpdC13aXJlbGVzc3ZpZGVvcGxheWJhY2tkaXNhYmxlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggMDIyMWI0ZTdkODJi
YmI3OWM4MzUwNmMzYzI3NDYyZWRlZGNiYjExMC4uZDAzMGFmZDUxYjhiNTU1ZjQ5OTU3Mzg4MTQw
MDRjNDNlMmU2YzBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CkBAIC02MCwxMCArNjAsNiBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0jaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCi0jaW5jbHVkZSAiSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmgiCi0jZW5kaWYK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRN
TEltYWdlRWxlbWVudCk7CkBAIC03Nyw3ICs3Myw2IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJ
bWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
CiAgICAgLCBtX2Zvcm1TZXRCeVBhcnNlcihtYWtlV2Vha1B0cihmb3JtKSkKICAgICAsIG1fY29t
cG9zaXRlT3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIpCiAgICAgLCBtX2lt
YWdlRGV2aWNlUGl4ZWxSYXRpbygxLjBmKQotICAgICwgbV9leHBlcmltZW50YWxJbWFnZU1lbnVF
bmFibGVkKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGltZ1RhZykpOwogICAgIHNl
dEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwpAQCAtMjgxLDExICsyNzYsNiBAQCB2
b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5k
TW9kZTo6Tm9ybWFsOwogICAgICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRv
cih2YWx1ZSwgbV9jb21wb3NpdGVPcGVyYXRvciwgYmxlbmRPcCkpCiAgICAgICAgICAgICBtX2Nv
bXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7Ci0jaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgfSBlbHNlIGlmIChuYW1lID09IHdlYmtpdGltYWdl
bWVudUF0dHIpIHsKLSAgICAgICAgbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkID0gIXZh
bHVlLmlzTnVsbCgpOwotICAgICAgICB1cGRhdGVJbWFnZUNvbnRyb2xzKCk7Ci0jZW5kaWYKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gbG9hZGluZ0F0dHIpIHsKICAgICAgICAgLy8gTm8gYWN0aW9u
IG5lZWRlZCBmb3IgZWFnZXIgdG8gbGF6eSB0cmFuc2l0aW9uLgogICAgICAgICBpZiAoIWhhc0xh
enlMb2FkYWJsZUF0dHJpYnV0ZVZhbHVlKHZhbHVlKSkKQEAgLTM1NCwxMCArMzQ0LDYgQEAgdm9p
ZCBIVE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogICAgIGlmIChtX2ltYWdl
TG9hZGVyLT5oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAot
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHVwZGF0ZUltYWdlQ29udHJvbHMoKTsK
LSNlbmRpZgotCiAgICAgYXV0byYgcmVuZGVySW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4o
KnJlbmRlcmVyKCkpOwogICAgIFJlbmRlckltYWdlUmVzb3VyY2UmIHJlbmRlckltYWdlUmVzb3Vy
Y2UgPSByZW5kZXJJbWFnZS5pbWFnZVJlc291cmNlKCk7CiAgICAgaWYgKHJlbmRlckltYWdlUmVz
b3VyY2UuY2FjaGVkSW1hZ2UoKSkKQEAgLTcyMyw3NiArNzA5LDYgQEAgY29uc3QgU3RyaW5nJiBI
VE1MSW1hZ2VFbGVtZW50OjphdHRhY2htZW50SWRlbnRpZmllcigpIGNvbnN0CiAKICNlbmRpZiAv
LyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCi12b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnVwZGF0ZUltYWdlQ29udHJvbHMoKQotewotICAg
IC8vIElmIHRoaXMgaW1hZ2UgZWxlbWVudCBpcyBpbnNpZGUgYSBzaGFkb3cgdHJlZSB0aGVuIGl0
IGlzIHBhcnQgb2YgYW4gaW1hZ2UgY29udHJvbC4KLSAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFkb2N1bWVudCgpLnNldHRpbmdzKCkuaW1hZ2VD
b250cm9sc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYm9vbCBoYXNDb250cm9s
cyA9IGhhc0ltYWdlQ29udHJvbHMoKTsKLSAgICBpZiAoIW1fZXhwZXJpbWVudGFsSW1hZ2VNZW51
RW5hYmxlZCAmJiBoYXNDb250cm9scykKLSAgICAgICAgZGVzdHJveUltYWdlQ29udHJvbHMoKTsK
LSAgICBlbHNlIGlmIChtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQgJiYgIWhhc0NvbnRy
b2xzKQotICAgICAgICB0cnlDcmVhdGVJbWFnZUNvbnRyb2xzKCk7Ci19Ci0KLXZvaWQgSFRNTElt
YWdlRWxlbWVudDo6dHJ5Q3JlYXRlSW1hZ2VDb250cm9scygpCi17Ci0gICAgQVNTRVJUKG1fZXhw
ZXJpbWVudGFsSW1hZ2VNZW51RW5hYmxlZCk7Ci0gICAgQVNTRVJUKCFoYXNJbWFnZUNvbnRyb2xz
KCkpOwotCi0gICAgYXV0byBpbWFnZUNvbnRyb2xzID0gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
Ojp0cnlDcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgaWYgKCFpbWFnZUNvbnRyb2xzKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQo
KmltYWdlQ29udHJvbHMpOwotCi0gICAgYXV0byogcmVuZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsK
LSAgICBpZiAoIXJlbmRlck9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZG93bmNhc3Q8
UmVuZGVySW1hZ2U+KCpyZW5kZXJPYmplY3QpLnNldEhhc1NoYWRvd0NvbnRyb2xzKHRydWUpOwot
fQotCi12b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRlc3Ryb3lJbWFnZUNvbnRyb2xzKCkKLXsKLSAg
ICBhdXRvIHNoYWRvd1Jvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7Ci0gICAgaWYgKCFzaGFk
b3dSb290KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoUmVmUHRyPE5vZGU+IG5vZGUgPSBz
aGFkb3dSb290LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04obm9kZS0+aXNJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoKSk7Ci0gICAgICAg
IHNoYWRvd1Jvb3QtPnJlbW92ZUNoaWxkKCpub2RlKTsKLSAgICB9Ci0KLSAgICBhdXRvKiByZW5k
ZXJPYmplY3QgPSByZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyT2JqZWN0KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlck9iamVjdCkuc2V0SGFz
U2hhZG93Q29udHJvbHMoZmFsc2UpOwotfQotCi1ib29sIEhUTUxJbWFnZUVsZW1lbnQ6Omhhc0lt
YWdlQ29udHJvbHMoKSBjb25zdAotewotICAgIGlmIChhdXRvIHNoYWRvd1Jvb3QgPSB1c2VyQWdl
bnRTaGFkb3dSb290KCkpIHsKLSAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBzaGFkb3dSb290
LT5maXJzdENoaWxkKCk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KCFub2RlIHx8IG5vZGUtPmlzSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCkpOwotICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSFRNTElt
YWdlRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gaGFzU2hhZG93Um9vdFBhcmVudChjaGlsZCkgJiYgSFRNTEVs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOwotfQotI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIC8vIEZJ
WE1FOiBXZSBzaG91bGQgZmluZCBhIGJldHRlciBwbGFjZSBmb3IgdGhlIHRvdWNoIGNhbGxvdXQg
bG9naWMuIFNlZSByZGFyOi8vcHJvYmxlbS80ODkzNzc2Ny4KIGJvb2wgSFRNTEltYWdlRWxlbWVu
dDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaAppbmRleCA4NTRjNTUwM2E2MTgyYjZjNzVlMWMxYWM2ZDIxMjMwZmNkZjNk
ODgyLi44M2Y2Y2VjZTcyNjM3NzEyODEzMjVkMDE4NjZiNjlhNmM1ZTkyODUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTExLDggKzExMSw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIGNvbnN0IEF0b21TdHJpbmcmIGltYWdlU291cmNlVVJMKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGhhc1NoYWRvd0NvbnRyb2xzKCkgY29uc3QgeyByZXR1
cm4gbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkOyB9CiAgICAgCiAgICAgSFRNTFBpY3R1
cmVFbGVtZW50KiBwaWN0dXJlRWxlbWVudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UGljdHVyZUVs
ZW1lbnQoSFRNTFBpY3R1cmVFbGVtZW50Kik7CkBAIC0xODUsMTQgKzE4Myw2IEBAIHByaXZhdGU6
CiAKICAgICBmbG9hdCBlZmZlY3RpdmVJbWFnZURldmljZVBpeGVsUmF0aW8oKSBjb25zdDsKIAot
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgdXBkYXRlSW1hZ2VDb250cm9s
cygpOwotICAgIHZvaWQgdHJ5Q3JlYXRlSW1hZ2VDb250cm9scygpOwotICAgIHZvaWQgZGVzdHJv
eUltYWdlQ29udHJvbHMoKTsKLSAgICBib29sIGhhc0ltYWdlQ29udHJvbHMoKSBjb25zdDsKLSAg
ICBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJy
aWRlOwotI2VuZGlmCi0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SFRNTEltYWdlTG9hZGVyPiBtX2lt
YWdlTG9hZGVyOwogICAgIFdlYWtQdHI8SFRNTEZvcm1FbGVtZW50PiBtX2Zvcm07CiAgICAgV2Vh
a1B0cjxIVE1MRm9ybUVsZW1lbnQ+IG1fZm9ybVNldEJ5UGFyc2VyOwpAQCAtMjAyLDcgKzE5Miw2
IEBAIHByaXZhdGU6CiAgICAgQXRvbVN0cmluZyBtX2N1cnJlbnRTcmM7CiAgICAgQXRvbVN0cmlu
ZyBtX3BhcnNlZFVzZW1hcDsKICAgICBmbG9hdCBtX2ltYWdlRGV2aWNlUGl4ZWxSYXRpbzsKLSAg
ICBib29sIG1fZXhwZXJpbWVudGFsSW1hZ2VNZW51RW5hYmxlZDsKICAgICBib29sIG1faGFkTmFt
ZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgeyBmYWxzZSB9OyAvLyBGSVhNRTogV2Ugb25seSBuZWVk
IHRoaXMgYmVjYXVzZSBwYXJzZUF0dHJpYnV0ZSgpIGNhbid0IHNlZSB0aGUgb2xkIHZhbHVlLgog
ICAgIGJvb2wgbV9pc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyIHsgZmFsc2UgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3ZmZkZTg1NmI5NTEzZjNmZmI1
ZTY5ZTVjNDU5YTU3NTU0Y2IzM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RF
bGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50Lmgi
Ci0KLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKEltYWdlQ29udHJvbHNSb290RWxlbWVudCk7Ci0KLSNpZiAhUExBVEZPUk0oTUFD
KQotUmVmPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
OjptYXliZUNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KGRvY3VtZW50KSk7Ci19Ci0jZW5kaWYKLQot
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50OjpJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50KQotICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRv
Y3VtZW50KQotewotfQotCi1JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6On5JbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnQoKSA9IGRlZmF1bHQ7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTQxMGE0OWQzNGYwNDEyNmNlZmRhNjQwMmU2NGI0OTkzNmNkYWNiMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQotCi0jaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLQotY2xhc3MgSW1hZ2VDb250cm9s
c1Jvb3RFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKLSAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEltYWdlQ29udHJvbHNSb290RWxlbWVudCk7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCk7Ci0KLSAgICBzdGF0aWMgUmVmUHRyPEltYWdl
Q29udHJvbHNSb290RWxlbWVudD4gdHJ5Q3JlYXRlKERvY3VtZW50Jik7Ci0KLXByb3RlY3RlZDoK
LSAgICBleHBsaWNpdCBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoRG9jdW1lbnQmKTsKLQotcHJp
dmF0ZToKLSAgICBib29sIGlzSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg0ZWM2M2ZiMWJhNzQ4ZTNkZjlhOWM3
NjQzZmFlZTdmN2JlNDE5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW1hZ2VDb250cm9sc0J1dHRvbkVs
ZW1lbnRNYWMuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi0jaW5jbHVkZSAi
Q29udGV4dE1lbnVDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZVNlbGVjdGlv
bi5oIgotI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgotI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5j
bHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMpOwotCi1j
bGFzcyBSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uIGZpbmFsIDogcHVibGljIFJlbmRlckJsb2Nr
RmxvdyB7Ci0gICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTkxJTkUoUmVuZGVySW1hZ2VDb250
cm9sc0J1dHRvbik7Ci1wdWJsaWM6Ci0gICAgUmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbihIVE1M
RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZpcnR1YWwgflJlbmRlckltYWdlQ29udHJv
bHNCdXR0b24oKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIG92
ZXJyaWRlOwotICAgIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlTG9naWNhbEhl
aWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCkgY29u
c3Qgb3ZlcnJpZGU7Ci0KLSAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIlJlbmRlckltYWdlQ29udHJvbHNCdXR0b24iOyB9Ci19OwotCi1SZW5kZXJJ
bWFnZUNvbnRyb2xzQnV0dG9uOjpSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uKEhUTUxFbGVtZW50
JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQsIFdURk1vdmUoc3R5bGUpKQotewotfQotCi1SZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9u
Ojp+UmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbigpID0gZGVmYXVsdDsKLQotdm9pZCBSZW5kZXJJ
bWFnZUNvbnRyb2xzQnV0dG9uOjp1cGRhdGVMb2dpY2FsV2lkdGgoKQotewotICAgIFJlbmRlckJv
eDo6dXBkYXRlTG9naWNhbFdpZHRoKCk7Ci0KLSAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IHRoZW1l
KCkuaW1hZ2VDb250cm9sc0J1dHRvblNpemUoKnRoaXMpOwotICAgIHNldExvZ2ljYWxXaWR0aChp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZnJhbWVTaXplLndpZHRoKCkgOiBmcmFtZVNpemUu
aGVpZ2h0KCkpOwotfQotCi1SZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBS
ZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uOjpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCkgY29uc3QKLXsKLSAgICBhdXRv
IGNvbXB1dGVkVmFsdWVzID0gUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChsb2dpY2Fs
SGVpZ2h0LCBsb2dpY2FsVG9wKTsKLSAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IHRoZW1lKCkuaW1h
Z2VDb250cm9sc0J1dHRvblNpemUoKnRoaXMpOwotICAgIGNvbXB1dGVkVmFsdWVzLm1fZXh0ZW50
ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGZyYW1lU2l6ZS5oZWlnaHQoKSA6IGZyYW1l
U2l6ZS53aWR0aCgpOwotICAgIHJldHVybiBjb21wdXRlZFZhbHVlczsKLX0KLQotSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWM6OkltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKERvY3Vt
ZW50JiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBk
b2N1bWVudCkKLXsKLX0KLQotSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6On5JbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudE1hYygpID0gZGVmYXVsdDsKLQotUmVmUHRyPEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjPiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6dHJ5Q3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzQnV0dG9uTmFtZSgieC13
ZWJraXQtaW1hZ2UtY29udHJvbHMtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotCi0gICAgYXV0byBidXR0b24gPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNC
dXR0b25FbGVtZW50TWFjKGRvY3VtZW50KSk7Ci0gICAgYnV0dG9uLT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCB4V2Via2l0SW1hZ2VDb250
cm9sc0J1dHRvbk5hbWUpOwotCi0gICAgSW50U2l6ZSBwb3NpdGlvbk9mZnNldCA9IFJlbmRlclRo
ZW1lOjpzaW5nbGV0b24oKS5pbWFnZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25PZmZzZXQoKTsKLSAg
ICBidXR0b24tPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlUb3AsIHBvc2l0aW9u
T2Zmc2V0LmhlaWdodCgpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsKLQotICAgIC8vIEZJWE1FOiBX
aHkgaXMgcmlnaHQ6IDBweCBvZmYgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIHBhcmVudD8KLSAgICBi
dXR0b24tPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlSaWdodCwgcG9zaXRpb25P
ZmZzZXQud2lkdGgoKSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7Ci0KLSAgICByZXR1cm4gV1RGTW92
ZShidXR0b24pOwotfQotCi12b2lkIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKLXsKLSAgICBpZiAoZXZlbnQudHlwZSgpID09
IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50KSB7Ci0gICAgICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUg
PSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgICAgIGlmICghZnJhbWUpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwotICAgICAg
ICBpZiAoIXBhZ2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgcGFnZS0+Y29udGV4
dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KGV2ZW50KTsKLSAgICAgICAg
ZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKLX0KLQotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKLXsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2VDb250cm9sc0J1
dHRvbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTljMTAyZDZhMTg4YTU3
MDZkOGZiNDhlMzFhYzYwNTZiOGQzMjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKLQot
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjIGZpbmFsIDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjKTsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYygpOwotCi0gICAgc3RhdGljIFJlZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYz4gdHJ5Q3JlYXRlKERvY3VtZW50Jik7Ci0KLXByaXZhdGU6Ci0gICAgSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMoRG9jdW1lbnQmKTsKLQotICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYpIG92ZXJyaWRlOwotICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGlzSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhYTQ1NDljMTNjODc1
MTc1NTBiM2Y3MWYzODQ5NzgyYjZkMGI4OWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWMuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi0jaW5j
bHVkZSAiSFRNTEVsZW1lbnQuaCIKLSNpbmNsdWRlICJJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYy5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgotI2luY2x1ZGUgIlJlbmRlcklt
YWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMpOwotCi1jbGFzcyBSZW5kZXJJbWFn
ZUNvbnRyb2xzIGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7Ci0gICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTkxJTkUoUmVuZGVySW1hZ2VDb250cm9scyk7Ci1wdWJsaWM6Ci0gICAg
UmVuZGVySW1hZ2VDb250cm9scyhIVE1MRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZp
cnR1YWwgflJlbmRlckltYWdlQ29udHJvbHMoKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHVwZGF0
ZUxvZ2ljYWxXaWR0aCgpIG92ZXJyaWRlOwotICAgIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVl
cyBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVu
aXQgbG9naWNhbFRvcCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlckltYWdlQ29udHJvbHMiOyB9Ci19
OwotCi1SZW5kZXJJbWFnZUNvbnRyb2xzOjpSZW5kZXJJbWFnZUNvbnRyb2xzKEhUTUxFbGVtZW50
JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQsIFdURk1vdmUoc3R5bGUpKQotewotfQotCi1SZW5kZXJJbWFnZUNvbnRyb2xzOjp+UmVu
ZGVySW1hZ2VDb250cm9scygpID0gZGVmYXVsdDsKLQotdm9pZCBSZW5kZXJJbWFnZUNvbnRyb2xz
Ojp1cGRhdGVMb2dpY2FsV2lkdGgoKQotewotICAgIFJlbmRlckJveDo6dXBkYXRlTG9naWNhbFdp
ZHRoKCk7Ci0KLSAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlciA9IGVsZW1lbnQoKS0+c2hhZG93
SG9zdCgpLT5yZW5kZXJlcigpOwotICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIHNldExvZ2ljYWxXaWR0aChkb3duY2FzdDxSZW5kZXJJ
bWFnZT4oKnJlbmRlcmVyKS5sb2dpY2FsV2lkdGgoKSk7Ci19Ci0KLVJlbmRlckJveDo6TG9naWNh
bEV4dGVudENvbXB1dGVkVmFsdWVzIFJlbmRlckltYWdlQ29udHJvbHM6OmNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBj
b25zdAotewotICAgIGF1dG8gY29tcHV0ZWRWYWx1ZXMgPSBSZW5kZXJCb3g6OmNvbXB1dGVMb2dp
Y2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxUb3ApOwotICAgIFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyID0gZWxlbWVudCgpLT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCk7Ci0gICAgaWYg
KCFpczxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVkVmFs
dWVzOwotCi0gICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBkb3duY2FzdDxSZW5kZXJJbWFn
ZT4oKnJlbmRlcmVyKS5sb2dpY2FsSGVpZ2h0KCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkVmFsdWVz
OwotfQotCi1SZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQ6OnRyeUNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgaWYgKCFkb2N1
bWVudC5wYWdlKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9s
c05hbWUoIngtd2Via2l0LWltYWdlLWNvbnRyb2xzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotCi0gICAgUmVmPEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYz4gY29udHJv
bHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhkb2N1bWVudCkp
OwotICAgIGNvbnRyb2xzLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6Y2xhc3NBdHRyLCB4V2Via2l0SW1hZ2VDb250cm9sc05hbWUpOwotCi0gICAgaWYgKFJl
ZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYz4gYnV0dG9uID0gSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWM6OnRyeUNyZWF0ZShkb2N1bWVudCkpCi0gICAgICAgIGNvbnRyb2xz
LT5hcHBlbmRDaGlsZCgqYnV0dG9uKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKGNvbnRyb2xzKTsK
LX0KLQotSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpJbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
KGRvY3VtZW50KQotewotfQotCi1JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6On5JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMoKSA9IGRlZmF1bHQ7Ci0KLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQotewotICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZUNvbnRyb2xzPigqdGhpcywgV1RGTW92ZShz
dHlsZSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2IwMmI0MDI0M2YxYjcwYzBkZjE0OThiNmQxZmY3MmRlYTgwY2QyNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlICJJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEltYWdlQ29udHJvbHNS
b290RWxlbWVudE1hYyBmaW5hbCA6IHB1YmxpYyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQgewot
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKTsK
LSAgICBmcmllbmQgY2xhc3MgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50OwotcHVibGljOgotICAg
IHZpcnR1YWwgfkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYygpOwotCi1wcml2YXRlOgotICAg
IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhEb2N1bWVudCYpOwotCi0gICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL2ltYWdlQ29udHJvbHNNYWMuY3NzIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL2ltYWdlQ29udHJvbHNNYWMuY3NzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjM5M2RhYzdjM2FlNzQ5OWY4ZTBlNmEwYjA1YWUwYzc1
NWNjNGJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9pbWFnZUNvbnRyb2xzTWFjLmNzcworKysgL2Rl
di9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZiBkZWZpbmVkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAmJiBFTkFCTEVfU0VSVklDRV9DT05UUk9MUwotCi0ueC13
ZWJraXQtaW1hZ2UtY29udHJvbHMgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLngt
d2Via2l0LWltYWdlLWNvbnRyb2xzLWJ1dHRvbiB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwot
Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbWFnZS1jb250cm9scy1idXR0b247Ci0KLSAgICB0
cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzOwotICAgIG9wYWNpdHk6IDA7Ci19Ci0KLS54LXdlYmtp
dC1pbWFnZS1jb250cm9sczpob3ZlciAueC13ZWJraXQtaW1hZ2UtY29udHJvbHMtYnV0dG9uIHsK
LSAgICBvcGFjaXR5OiAxLjA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IGVmOWYzNjdlOTkzNWVhZTM0NTMzYWNiYjE0
ZjAwYWUxNThiN2E4Y2QuLjRhZWQ3MWU3ZWQxZTA0NjM1ZWQxN2E1NjE5ZDVkOGU3MTBlODA0MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAg
LTEzNSwyMSArMTM1LDYgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0
TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRNZW51UHJvdmlkZXImIHAKICAgICBzaG93Q29udGV4
dE1lbnUoZXZlbnQpOwogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLXN0YXRp
YyBJbWFnZSogaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZShOb2RlJiBub2RlKQotewotICAgIGF1
dG8qIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwotICAgIGlmICghaXM8UmVuZGVySW1hZ2U+
KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgYXV0byogaW1hZ2UgPSBk
b3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFnZSgpOwotICAgIGlmICgh
aW1hZ2UgfHwgaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIGltYWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRlcmVyKTsKLX0KLQotI2Vu
ZGlmCi0KIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVy
OjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoIWlzPE1v
dXNlRXZlbnQ+KGV2ZW50KSkKQEAgLTE3MCwxNiArMTU1LDYgQEAgc3RkOjp1bmlxdWVfcHRyPENv
bnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUo
RXZlbnQKIAogICAgIG1fY29udGV4dCA9IENvbnRleHRNZW51Q29udGV4dChyZXN1bHQpOwogCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgaWYgKG5vZGUuaXNJbWFnZUNvbnRyb2xz
QnV0dG9uRWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGltYWdlRnJvbUlt
YWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCi0gICAgICAgICAg
ICBtX2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGltYWdlKTsKLQotICAgICAgICAvLyBGSVhN
RTogSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0aGVuIHdlIHNob3VsZG4ndCB0cnkgdG8g
c2hvdyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3IgaXQuCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSNlbmRpZgotCiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8Q29udGV4dE1lbnU+
KCk7CiB9CiAKQEAgLTE0OTcsMTcgKzE0NzIsNiBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgY2xpYwog
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi12b2lkIENvbnRleHRN
ZW51Q29udHJvbGxlcjo6c2hvd0ltYWdlQ29udHJvbHNNZW51KEV2ZW50JiBldmVudCkKLXsKLSAg
ICBjbGVhckNvbnRleHRNZW51KCk7Ci0gICAgaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7
Ci0gICAgbV9jbGllbnQuc2hvd0NvbnRleHRNZW51KCk7Ci19Ci0KLSNlbmRpZgotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IDg5OGQwYmViZGI4
NjcxYjBmOGQ0NmZiOGIxZDZlZjQzZDAxZGI4MWEuLjQwNDc5MzU4ZmZiN2UyZmU1MjM1YjY4NDgz
ODA1ZDg0YzI5MGQ2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuaApAQCAtNjYsMTAgKzY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd0NvbnRleHRN
ZW51QXQoRnJhbWUmLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0ltYWdlQ29udHJvbHNNZW51
KEV2ZW50Jik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4
dE1lbnU+IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmKTsKICAgICB2b2lkIHNob3dDb250
ZXh0TWVudShFdmVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhl
bWVUeXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmNwcAppbmRl
eCBjZGIyYjEyYmI5M2U2ZWE2ZGJhYjAxODBkODgxMGQwMzY5NzMzNGFhLi5kOTg5N2UzODNkMjQ3
ZTJiM2VmZmFjOGIyZmEyMzRhYTg3NTQ1YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaGVtZVR5cGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVt
ZVR5cGVzLmNwcApAQCAtOTAsOSArOTAsNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBDb250cm9sUGFydCBjb250cm9sUGFydCkKICAgICBjYXNlIENvbnRpbnVvdXND
YXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDogdHMgPDwgImNvbnRpbnVvdXMtY2FwYWNpdHktbGV2
ZWwtaW5kaWNhdG9yLXBhcnQiOyBicmVhazsKICAgICBjYXNlIERpc2NyZXRlQ2FwYWNpdHlMZXZl
bEluZGljYXRvclBhcnQ6IHRzIDw8ICJkaXNjcmV0ZS1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3It
cGFydCI7IGJyZWFrOwogICAgIGNhc2UgUmF0aW5nTGV2ZWxJbmRpY2F0b3JQYXJ0OiB0cyA8PCAi
cmF0aW5nLWxldmVsLWluZGljYXRvci1wYXJ0IjsgYnJlYWs7Ci0jaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCi0gICAgY2FzZSBJbWFnZUNvbnRyb2xzQnV0dG9uUGFydDogdHMgPDwgImltYWdl
LWNvbnRyb2xzLWJ1dHRvbi1wYXJ0IjsgYnJlYWs7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVf
UEFZKQogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25QYXJ0OiB0cyA8PCAiYXBwbGUtcGF5LWJ1dHRv
bi1wYXJ0IjsgYnJlYWs7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaApp
bmRleCBjMjg3NWUzYjRhZmJjZDgzMzkyZjMwNDY2ZTA3YmIyNjliNjg0YzhmLi40ZTQ0MDU1ZWIz
Y2I4ZjVhZDMyM2JjOWE4NTdkNzRjM2Y1ZTE5ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhl
bWVUeXBlcy5oCkBAIC05MCw5ICs5MCw2IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIENvbnRp
bnVvdXNDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydCwKICAgICBEaXNjcmV0ZUNhcGFjaXR5TGV2
ZWxJbmRpY2F0b3JQYXJ0LAogICAgIFJhdGluZ0xldmVsSW5kaWNhdG9yUGFydCwKLSNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBJbWFnZUNvbnRyb2xzQnV0dG9uUGFydCwKLSNlbmRp
ZgogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgQXBwbGVQYXlCdXR0b25QYXJ0LAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCAwZTFkYjQwZjE0
Yzk3ZTc1NDEzMjI2ZjE1YTRjZDQ5YjhmMDE0MDcxLi4yOTkzZGU5MDUwNjdiMmE0MTkxNjNiZTgz
YjgxMGE4ZTBkMmUzMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAKQEAgLTE0MSw4ICsxNDEsNiBAQCBSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2UoRWxlbWVudCYg
ZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSwgU3R5bGVJbWFnZSogc3R5bAogICAgICwgbV9p
bWFnZURldmljZVBpeGVsUmF0aW8oaW1hZ2VEZXZpY2VQaXhlbFJhdGlvKQogewogICAgIHVwZGF0
ZUFsdFRleHQoKTsKLSAgICBpZiAoaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCkpCi0gICAg
ICAgIG1faGFzU2hhZG93Q29udHJvbHMgPSBkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50PihlbGVt
ZW50KS5oYXNTaGFkb3dDb250cm9scygpOwogfQogCiBSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2Uo
RG9jdW1lbnQmIGRvY3VtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlLCBTdHlsZUltYWdlKiBzdHls
ZUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggOGMx
OTcwMjA3YzAzMWJiNDBmM2Y0YTk5YzA3M2JhNzQyZTIxODViNS4uMjhjODdiYmU3MTgyY2FkNDZl
YmFmN2UwNmE4YTAxZjkwNmRlZTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwCkBAIC0yNTUsMTAgKzI1NSw2IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0
eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QKICAg
ICBjYXNlIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQ6CiAgICAgY2FzZSBSYXRp
bmdMZXZlbEluZGljYXRvclBhcnQ6CiAgICAgICAgIHJldHVybiBhZGp1c3RNZXRlclN0eWxlKHN0
eWxlLCBlbGVtZW50KTsKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBjYXNlIElt
YWdlQ29udHJvbHNCdXR0b25QYXJ0OgotICAgICAgICBicmVhazsKLSNlbmRpZgogICAgIGNhc2Ug
Q2Fwc0xvY2tJbmRpY2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4gYWRqdXN0Q2Fwc0xvY2tJbmRp
Y2F0b3JTdHlsZShzdHlsZSwgZWxlbWVudCk7CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKQEAgLTQx
NSwxMCArNDExLDYgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVyQm94JiBi
b3gsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnMKICAgICAgICAgcmV0dXJuIHBh
aW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBhcnQoYm94LCBwYWludEluZm8sIGludGVn
cmFsU25hcHBlZFJlY3QpOwogICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uUGFydDoK
ICAgICAgICAgcmV0dXJuIHBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uKGJveCwgcGFpbnRJ
bmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
LSAgICBjYXNlIEltYWdlQ29udHJvbHNCdXR0b25QYXJ0OgotICAgICAgICByZXR1cm4gcGFpbnRJ
bWFnZUNvbnRyb2xzQnV0dG9uKGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsK
LSNlbmRpZgogICAgIGNhc2UgQ2Fwc0xvY2tJbmRpY2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4g
cGFpbnRDYXBzTG9ja0luZGljYXRvcihib3gsIHBhaW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVj
dCk7CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKQEAgLTQ4MSw5ICs0NzMsNiBAQCBib29sIFJlbmRl
clRoZW1lOjpwYWludEJvcmRlck9ubHkoY29uc3QgUmVuZGVyQm94JiBib3gsIGNvbnN0IFBhaW50
SW5mbyYgcGFpbnRJbgogICAgIGNhc2UgU2VhcmNoRmllbGREZWNvcmF0aW9uUGFydDoKICAgICBj
YXNlIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0OgogICAgIGNhc2UgU2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uUGFydDoKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBj
YXNlIEltYWdlQ29udHJvbHNCdXR0b25QYXJ0OgotI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpAQCAtNTU1LDkgKzU0NCw2IEBAIHZvaWQgUmVuZGVyVGhlbWU6OnBh
aW50RGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyQm94JiBib3gsIGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJCiAgICAgY2FzZSBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0OgogICAgIGNhc2UgU2VhcmNo
RmllbGRSZXN1bHRzRGVjb3JhdGlvblBhcnQ6CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25QYXJ0OgotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VD
b250cm9sc0J1dHRvblBhcnQ6Ci0jZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDYwOGUwZTkz
NzgzODBlYjg4ZTY4MWZkY2U4MWM5MTg0ZTNmZmIxYzkuLjc0ZDZmZDlkY2RjZTdjNzYzMGYwNGY2
NWM3ZDFkMDYwNDc3ZGFkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
CkBAIC05NCw5ICs5NCw2IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgdmlydHVhbCBTdHJpbmcgZXh0cmFGdWxsU2NyZWVuU3R5bGVTaGVldCgpIHsgcmV0dXJuIFN0
cmluZygpOyB9CiAjZW5kaWYKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICB2aXJ0
dWFsIFN0cmluZyBpbWFnZUNvbnRyb2xzU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIFN0cmlu
ZygpOyB9Ci0jZW5kaWYKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBTdHJpbmcg
ZGF0YUxpc3RTdHlsZVNoZWV0KCkgY29uc3Q7CiAjZW5kaWYKQEAgLTI0OCwxMSArMjQ1LDYgQEAg
cHVibGljOgogICAgIGVudW0gRmlsZVVwbG9hZERlY29yYXRpb25zIHsgU2luZ2xlRmlsZSwgTXVs
dGlwbGVGaWxlcyB9OwogICAgIHZpcnR1YWwgdm9pZCBwYWludEZpbGVVcGxvYWRJY29uRGVjb3Jh
dGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiAvKmlucHV0UmVuZGVyZXIqLywgY29uc3QgUmVuZGVy
T2JqZWN0JiAvKmJ1dHRvblJlbmRlcmVyKi8sIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmLCBJY29uKiwgRmlsZVVwbG9hZERlY29yYXRpb25zKSB7IH0KIAotI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwgSW50U2l6ZSBpbWFnZUNvbnRyb2xzQnV0dG9uU2l6
ZShjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KLSAgICB2
aXJ0dWFsIEludFNpemUgaW1hZ2VDb250cm9sc0J1dHRvblBvc2l0aW9uT2Zmc2V0KCkgY29uc3Qg
eyByZXR1cm4gSW50U2l6ZSgpOyB9Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCiAgICAgdmlydHVhbCBMYXlvdXRTaXplIGF0dGFjaG1lbnRJbnRyaW5zaWNTaXplKGNv
bnN0IFJlbmRlckF0dGFjaG1lbnQmKSBjb25zdCB7IHJldHVybiBMYXlvdXRTaXplKCk7IH0KICAg
ICB2aXJ0dWFsIGludCBhdHRhY2htZW50QmFzZWxpbmUoY29uc3QgUmVuZGVyQXR0YWNobWVudCYp
IGNvbnN0IHsgcmV0dXJuIC0xOyB9CkBAIC00MDYsMTAgKzM5OCw2IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUcmFjayhjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhRnVsbFNjcmVlblZvbHVtZVNs
aWRlclRodW1iKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
LSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRJbWFnZUNvbnRyb2xzQnV0dG9uKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9
Ci0jZW5kaWYKLQogcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRl
cmVyKGNvbnN0IFJlbmRlckJveCYsIENvbnRyb2xTdGF0ZXMmKSBjb25zdDsKICAgICBDb250cm9s
U3RhdGVzOjpTdGF0ZXMgZXh0cmFjdENvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5k
ZXJPYmplY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKaW5kZXggMDdlZjViZGZlYmEyNjRhNTE3MmE4ZmE2ZDlhZjI2YzMxOTg0YjA4Ni4uNjExZGNl
ZGMxMjAwYmY0YWFkNTIzMGMwMWQzOWY4ODYxM2M5MjFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTExMiwxMCArMTEyLDYgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgbWVkaWFDb250cm9sc0Jhc2U2NFN0cmluZ0Zvckljb25OYW1lQW5kVHlwZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCi0gICAgU3RyaW5nIGltYWdlQ29udHJvbHNTdHlsZVNoZWV0KCkgY29u
c3QgZmluYWw7Ci0jZW5kaWYKLQogICAgIGJvb2wgcGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVy
T2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAgICAg
dm9pZCBhZGp1c3RUZXh0RmllbGRTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBj
b25zdCBmaW5hbDsKIApAQCAtMjIyLDE0ICsyMTgsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IElu
dFNpemUqIHByb2dyZXNzQmFyU2l6ZXMoKSBjb25zdDsKICAgICBjb25zdCBpbnQqIHByb2dyZXNz
QmFyTWFyZ2lucyhOU0NvbnRyb2xTaXplKSBjb25zdDsKIAotI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQotICAgIGJvb2wgcGFpbnRJbWFnZUNvbnRyb2xzQnV0dG9uKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKLSAgICBJbnRT
aXplIGltYWdlQ29udHJvbHNCdXR0b25TaXplKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0IGZp
bmFsOwotICAgIEludFNpemUgaW1hZ2VDb250cm9sc0J1dHRvblBvc2l0aW9uT2Zmc2V0KCkgY29u
c3QgZmluYWw7Ci0KLSAgICBOU1NlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsICpzZXJ2aWNlc1Jv
bGxvdmVyQnV0dG9uQ2VsbCgpIGNvbnN0OwotI2VuZGlmCi0KICAgICBtdXRhYmxlIFJldGFpblB0
cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cEJ1dHRvbjsKICAgICBtdXRhYmxlIFJldGFpblB0
cjxOU1NlYXJjaEZpZWxkQ2VsbD4gbV9zZWFyY2g7CiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNN
ZW51PiBtX3NlYXJjaE1lbnVUZW1wbGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQppbmRleCA3NGFmMDI4MWUxMjdlNDJmNGFiNDFkODNhODE0NWEzOGI0Nzkz
MzQ4Li4xYjU5NDVjYmMzZmMzZTM4ODEzMTYzZjhlNTJjM2ZjOTVlNTY4NGZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC04OSwxOSArODksMTAgQEAK
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBnbyBpbnRvIGFuIFNQSS5oIGZpbGUgaW4gdGhlIHNwaSBk
aXJlY3RvcnkuCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFwcEtpdC9B
cHBLaXREZWZpbmVzX1ByaXZhdGUuaD4KLSNpbXBvcnQgPEFwcEtpdC9OU1NlcnZpY2VzUm9sbG92
ZXJCdXR0b25DZWxsLmg+CiAjZWxzZQogI2RlZmluZSBBUFBLSVRfUFJJVkFURV9DTEFTUwotQGlu
dGVyZmFjZSBOU1NlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsIDogTlNCdXR0b25DZWxsCi1AZW5k
CiAjZW5kaWYKIAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGdvIGludG8gYW4gU1BJLmggZmlsZSBp
biB0aGUgc3BpIGRpcmVjdG9yeS4KLUBpbnRlcmZhY2UgTlNTZXJ2aWNlc1JvbGxvdmVyQnV0dG9u
Q2VsbCAoKQotKyAoTlNTZXJ2aWNlc1JvbGxvdmVyQnV0dG9uQ2VsbCAqKXNlcnZpY2VSb2xsb3Zl
ckJ1dHRvbkNlbGxGb3JTdHlsZTooTlNTaGFyaW5nU2VydmljZVBpY2tlclN0eWxlKXN0eWxlOwot
LSAoTlNSZWN0KXJlY3RGb3JCb3VuZHM6KE5TUmVjdClib3VuZHMgcHJlZmVycmVkRWRnZTooTlNS
ZWN0RWRnZSlwcmVmZXJyZWRFZGdlOwotQGVuZAotCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBnbyBpbnRvIGFuIFNQSS5oIGZpbGUg
aW4gdGhlIHNwaSBkaXJlY3RvcnkuCkBAIC0zNjAsMTUgKzM1MSw2IEBAIFN0cmluZyBSZW5kZXJU
aGVtZU1hYzo6bWVkaWFDb250cm9sc0Jhc2U2NFN0cmluZ0Zvckljb25OYW1lQW5kVHlwZShjb25z
dCBTdHJpbmcmCiAgICAgcmV0dXJuIFtbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6W2J1
bmRsZSBwYXRoRm9yUmVzb3VyY2U6aWNvbk5hbWUgb2ZUeXBlOmljb25UeXBlIGluRGlyZWN0b3J5
OmRpcmVjdG9yeV1dIGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXTsKIH0KIAotI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi1TdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmltYWdl
Q29udHJvbHNTdHlsZVNoZWV0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gU3RyaW5nKGltYWdlQ29u
dHJvbHNNYWNVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YoaW1hZ2VDb250cm9sc01hY1VzZXJB
Z2VudFN0eWxlU2hlZXQpKTsKLX0KLQotI2VuZGlmCi0KIENvbG9yIFJlbmRlclRoZW1lTWFjOjpw
bGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CkBAIC0yMjc1LDU2ICsyMjU3LDYgQEAgU3RyaW5nIFJl
bmRlclRoZW1lTWFjOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBGaWxlTGlzdCogZmlsZUxp
c3QsIGNvbnN0IEZvbnQKICAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0
ZShzdHJUb1RydW5jYXRlLCB3aWR0aCwgZm9udCk7CiB9CiAKLSNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKLU5TU2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwqIFJlbmRlclRoZW1lTWFjOjpz
ZXJ2aWNlc1JvbGxvdmVyQnV0dG9uQ2VsbCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3NlcnZpY2Vz
Um9sbG92ZXJCdXR0b24pIHsKLSAgICAgICAgbV9zZXJ2aWNlc1JvbGxvdmVyQnV0dG9uID0gW05T
U2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwgc2VydmljZVJvbGxvdmVyQnV0dG9uQ2VsbEZvclN0
eWxlOk5TU2hhcmluZ1NlcnZpY2VQaWNrZXJTdHlsZVJvbGxvdmVyXTsKLSAgICAgICAgW21fc2Vy
dmljZXNSb2xsb3ZlckJ1dHRvbiBzZXRCZXplbFN0eWxlOk5TQmV6ZWxTdHlsZVJvdW5kZWREaXNj
bG9zdXJlXTsKLSAgICAgICAgW21fc2VydmljZXNSb2xsb3ZlckJ1dHRvbiBzZXRCdXR0b25UeXBl
Ok5TQnV0dG9uVHlwZVB1c2hPblB1c2hPZmZdOwotICAgICAgICBbbV9zZXJ2aWNlc1JvbGxvdmVy
QnV0dG9uIHNldEltYWdlUG9zaXRpb246TlNJbWFnZU9ubHldOwotICAgICAgICBbbV9zZXJ2aWNl
c1JvbGxvdmVyQnV0dG9uIHNldFN0YXRlOk5PXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9zZXJ2
aWNlc1JvbGxvdmVyQnV0dG9uLmdldCgpOwotfQotCi1ib29sIFJlbmRlclRoZW1lTWFjOjpwYWlu
dEltYWdlQ29udHJvbHNCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3Qg
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCi17Ci0gICAgaWYgKHBh
aW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpCbG9ja0JhY2tncm91bmQpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgTlNTZXJ2aWNlc1JvbGxvdmVyQnV0dG9uQ2VsbCAqY2VsbCA9IHNl
cnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsKCk7Ci0KLSAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0Nv
bnRleHQgbG9jYWxDb250ZXh0KHBhaW50SW5mby5jb250ZXh0KCkpOwotICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihwYWludEluZm8uY29udGV4dCgpKTsKLQotICAgIHBh
aW50SW5mby5jb250ZXh0KCkudHJhbnNsYXRlKHJlY3QubG9jYXRpb24oKSk7Ci0KLSAgICBJbnRS
ZWN0IGlubmVyRnJhbWUoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpOwotICAgIFtjZWxsIGRyYXdX
aXRoRnJhbWU6aW5uZXJGcmFtZSBpblZpZXc6ZG9jdW1lbnRWaWV3Rm9yKHJlbmRlcmVyKV07Ci0g
ICAgW2NlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1J
bnRTaXplIFJlbmRlclRoZW1lTWFjOjppbWFnZUNvbnRyb2xzQnV0dG9uU2l6ZShjb25zdCBSZW5k
ZXJPYmplY3QmKSBjb25zdAotewotICAgIHJldHVybiBJbnRTaXplKHNlcnZpY2VzUm9sbG92ZXJC
dXR0b25DZWxsKCkuY2VsbFNpemUpOwotfQotCi1JbnRTaXplIFJlbmRlclRoZW1lTWFjOjppbWFn
ZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25PZmZzZXQoKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBD
dXJyZW50bHkgdGhlIG9mZnNldHMgd2lsbCBhbHdheXMgYmUgdGhlIHNhbWUgbm8gbWF0dGVyIHdo
YXQgaW1hZ2UgcmVjdCB5b3UgdHJ5IHdpdGguCi0gICAgLy8gVGhpcyBtYXkgbm90IGFsd2F5cyBi
ZSB0cnVlIGluIHRoZSBmdXR1cmUuCi0gICAgc3RhdGljIGNvbnN0IGludCBkdW1teURpbWVuc2lv
biA9IDEwMDsKLSAgICBJbnRSZWN0IGR1bW15SW1hZ2VSZWN0KDAsIDAsIGR1bW15RGltZW5zaW9u
LCBkdW1teURpbWVuc2lvbik7Ci0gICAgTlNSZWN0IGJvdW5kcyA9IFtzZXJ2aWNlc1JvbGxvdmVy
QnV0dG9uQ2VsbCgpIHJlY3RGb3JCb3VuZHM6ZHVtbXlJbWFnZVJlY3QgcHJlZmVycmVkRWRnZTpO
U01pbllFZGdlXTsKLQotICAgIHJldHVybiBJbnRTaXplKGR1bW15RGltZW5zaW9uIC0gYm91bmRz
Lm9yaWdpbi54LCBib3VuZHMub3JpZ2luLnkpOwotfQotI2VuZGlmCi0KICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQogY29uc3QgQ0dGbG9hdCBhdHRhY2htZW50SWNvblNpemUgPSA0ODsK
IGNvbnN0IENHRmxvYXQgYXR0YWNobWVudEljb25CYWNrZ3JvdW5kUGFkZGluZyA9IDY7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Vc2VyQWdlbnRTdHlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9Vc2VyQWdlbnRTdHlsZS5jcHAKaW5kZXggM2E0YjYwM2MyYjFmNzExYTg3
Y2Q5NjRkM2UyNjk5N2E2NjFiNmMyYy4uZWE2ODY4MDcxOTU4ZDRmMDQxMzg1NmRkYTEzZDg2YzVk
M2FjZTYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvVXNlckFnZW50U3R5bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmNwcApAQCAtNzUs
NyArNzUsNiBAQCBTdHlsZVNoZWV0Q29udGVudHMqIFVzZXJBZ2VudFN0eWxlOjptYXRoTUxTdHls
ZVNoZWV0OwogU3R5bGVTaGVldENvbnRlbnRzKiBVc2VyQWdlbnRTdHlsZTo6bWVkaWFDb250cm9s
c1N0eWxlU2hlZXQ7CiBTdHlsZVNoZWV0Q29udGVudHMqIFVzZXJBZ2VudFN0eWxlOjpmdWxsc2Ny
ZWVuU3R5bGVTaGVldDsKIFN0eWxlU2hlZXRDb250ZW50cyogVXNlckFnZW50U3R5bGU6OnBsdWdJ
bnNTdHlsZVNoZWV0OwotU3R5bGVTaGVldENvbnRlbnRzKiBVc2VyQWdlbnRTdHlsZTo6aW1hZ2VD
b250cm9sc1N0eWxlU2hlZXQ7CiBTdHlsZVNoZWV0Q29udGVudHMqIFVzZXJBZ2VudFN0eWxlOjpt
ZWRpYVF1ZXJ5U3R5bGVTaGVldDsKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIFN0eWxl
U2hlZXRDb250ZW50cyogVXNlckFnZW50U3R5bGU6OmRhdGFMaXN0U3R5bGVTaGVldDsKQEAgLTE4
NiwxNSArMTg1LDYgQEAgdm9pZCBVc2VyQWdlbnRTdHlsZTo6ZW5zdXJlRGVmYXVsdFN0eWxlU2hl
ZXRzRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQotICAgICAgICBlbHNlIGlmIChpczxIVE1MRGl2RWxlbWVudD4oZWxlbWVudCkgJiYgZWxl
bWVudC5pc0ltYWdlQ29udHJvbHNSb290RWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBpZiAoIWlt
YWdlQ29udHJvbHNTdHlsZVNoZWV0KSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGltYWdlQ29u
dHJvbHNSdWxlcyA9IFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5pbWFnZUNvbnRyb2xzU3R5bGVT
aGVldCgpOwotICAgICAgICAgICAgICAgIGltYWdlQ29udHJvbHNTdHlsZVNoZWV0ID0gcGFyc2VV
QVNoZWV0KGltYWdlQ29udHJvbHNSdWxlcyk7Ci0gICAgICAgICAgICAgICAgYWRkVG9EZWZhdWx0
U3R5bGUoKmltYWdlQ29udHJvbHNTdHlsZVNoZWV0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogI2lmIEVOQUJMRShEQVRBTElT
VF9FTEVNRU5UKQogICAgICAgICBlbHNlIGlmICghZGF0YUxpc3RTdHlsZVNoZWV0ICYmIGlzPEhU
TUxEYXRhTGlzdEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgICAgICBkYXRhTGlzdFN0eWxl
U2hlZXQgPSBwYXJzZVVBU2hlZXQoUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmRhdGFMaXN0U3R5
bGVTaGVldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Vc2VyQWdlbnRTdHlsZS5oCmluZGV4IGZjZDRk
OTgyNzQ2YzZmOGY4YWQzMDY0NzE4NzE0OGJhNzYyMDJkN2MuLmU2ZjBhYWE1NGMxZTMwNjliZjdj
NDI2ZmQ3YmEyMDI3MGM2ZWMyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Vz
ZXJBZ2VudFN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvVXNlckFnZW50U3R5bGUu
aApAQCAtNDYsNyArNDYsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50
cyogbWVkaWFDb250cm9sc1N0eWxlU2hlZXQ7CiAgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50
cyogZnVsbHNjcmVlblN0eWxlU2hlZXQ7CiAgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyog
cGx1Z0luc1N0eWxlU2hlZXQ7Ci0gICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogaW1hZ2VD
b250cm9sc1N0eWxlU2hlZXQ7CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgc3Rh
dGljIFN0eWxlU2hlZXRDb250ZW50cyogZGF0YUxpc3RTdHlsZVNoZWV0OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5
d29yZENvbXBsZXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU0tleXdvcmRDb21wbGV0aW9ucy5qcwppbmRleCAzNzY1ZDlhMGM1YzU4M2QyODg3
ZmQ0MmQ3ZjFhMDhiM2VjMjkyZDZhLi40OGJjNGJmOGIyMGMwNmIzYzdlNTllZjI5NGJlNjFlODFj
YzJiYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ1NTS2V5d29yZENvbXBsZXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMKQEAgLTg0NSw3
ICs4NDUsNyBAQCBXSS5DU1NLZXl3b3JkQ29tcGxldGlvbnMuX3Byb3BlcnR5S2V5d29yZE1hcCA9
IHsKICAgICAgICAgImVhc2UiLCAibGluZWFyIiwgImVhc2UtaW4iLCAiZWFzZS1vdXQiLCAiZWFz
ZS1pbi1vdXQiLCAic3RlcC1zdGFydCIsICJzdGVwLWVuZCIsICJzdGVwcygpIiwgImN1YmljLWJl
emllcigpIiwgInNwcmluZygpIiwKICAgICBdLAogICAgICItd2Via2l0LWFwcGVhcmFuY2UiOiBb
Ci0gICAgICAgICJub25lIiwgImNoZWNrYm94IiwgInJhZGlvIiwgInB1c2gtYnV0dG9uIiwgInNx
dWFyZS1idXR0b24iLCAiYnV0dG9uIiwgImJ1dHRvbi1iZXZlbCIsICJkZWZhdWx0LWJ1dHRvbiIs
ICJpbm5lci1zcGluLWJ1dHRvbiIsICJsaXN0Ym94IiwgImxpc3RpdGVtIiwgIm1lZGlhLWNvbnRy
b2xzLWJhY2tncm91bmQiLCAibWVkaWEtY29udHJvbHMtZGFyay1iYXItYmFja2dyb3VuZCIsICJt
ZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJhY2tncm91bmQiLCAibWVkaWEtY29udHJvbHMtbGln
aHQtYmFyLWJhY2tncm91bmQiLCAibWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXkiLCAibWVkaWEt
ZW50ZXItZnVsbHNjcmVlbi1idXR0b24iLCAibWVkaWEtZXhpdC1mdWxsc2NyZWVuLWJ1dHRvbiIs
ICJtZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiLCAibWVkaWEtZnVsbHNjcmVlbi12b2x1
bWUtc2xpZGVyLXRodW1iIiwgIm1lZGlhLW11dGUtYnV0dG9uIiwgIm1lZGlhLW92ZXJsYXktcGxh
eS1idXR0b24iLCAibWVkaWEtcGxheS1idXR0b24iLCAibWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1l
LWJ1dHRvbiIsICJtZWRpYS1yZXdpbmQtYnV0dG9uIiwgIm1lZGlhLXNlZWstYmFjay1idXR0b24i
LCAibWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsICJtZWRpYS1zbGlkZXIiLCAibWVkaWEtc2xp
ZGVydGh1bWIiLCAibWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheSIsICJtZWRpYS10b2dnbGUt
Y2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsICJtZWRpYS12b2x1bWUtc2xpZGVyIiwgIm1lZGlhLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyIiwgIm1lZGlhLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24i
LCAibWVkaWEtdm9sdW1lLXNsaWRlcnRodW1iIiwgIm1lbnVsaXN0IiwgIm1lbnVsaXN0LWJ1dHRv
biIsICJtZW51bGlzdC10ZXh0IiwgIm1lbnVsaXN0LXRleHRmaWVsZCIsICJtZXRlciIsICJwcm9n
cmVzcy1iYXIiLCAicHJvZ3Jlc3MtYmFyLXZhbHVlIiwgInNsaWRlci1ob3Jpem9udGFsIiwgInNs
aWRlci12ZXJ0aWNhbCIsICJzbGlkZXJ0aHVtYi1ob3Jpem9udGFsIiwgInNsaWRlcnRodW1iLXZl
cnRpY2FsIiwgImNhcmV0IiwgInNlYXJjaGZpZWxkIiwgInNlYXJjaGZpZWxkLWRlY29yYXRpb24i
LCAic2VhcmNoZmllbGQtcmVzdWx0cy1kZWNvcmF0aW9uIiwgInNlYXJjaGZpZWxkLXJlc3VsdHMt
YnV0dG9uIiwgInNlYXJjaGZpZWxkLWNhbmNlbC1idXR0b24iLCAic25hcHNob3R0ZWQtcGx1Z2lu
LW92ZXJsYXkiLCAidGV4dGZpZWxkIiwgInJlbGV2YW5jeS1sZXZlbC1pbmRpY2F0b3IiLCAiY29u
dGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IiLCAiZGlzY3JldGUtY2FwYWNpdHktbGV2
ZWwtaW5kaWNhdG9yIiwgInJhdGluZy1sZXZlbC1pbmRpY2F0b3IiLCAiaW1hZ2UtY29udHJvbHMt
YnV0dG9uIiwgIi1hcHBsZS1wYXktYnV0dG9uIiwgInRleHRhcmVhIiwgImF0dGFjaG1lbnQiLCAi
Ym9yZGVybGVzcy1hdHRhY2htZW50IiwgImNhcHMtbG9jay1pbmRpY2F0b3IiLAorICAgICAgICAi
bm9uZSIsICJjaGVja2JveCIsICJyYWRpbyIsICJwdXNoLWJ1dHRvbiIsICJzcXVhcmUtYnV0dG9u
IiwgImJ1dHRvbiIsICJidXR0b24tYmV2ZWwiLCAiZGVmYXVsdC1idXR0b24iLCAiaW5uZXItc3Bp
bi1idXR0b24iLCAibGlzdGJveCIsICJsaXN0aXRlbSIsICJtZWRpYS1jb250cm9scy1iYWNrZ3Jv
dW5kIiwgIm1lZGlhLWNvbnRyb2xzLWRhcmstYmFyLWJhY2tncm91bmQiLCAibWVkaWEtY29udHJv
bHMtZnVsbHNjcmVlbi1iYWNrZ3JvdW5kIiwgIm1lZGlhLWNvbnRyb2xzLWxpZ2h0LWJhci1iYWNr
Z3JvdW5kIiwgIm1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5IiwgIm1lZGlhLWVudGVyLWZ1bGxz
Y3JlZW4tYnV0dG9uIiwgIm1lZGlhLWV4aXQtZnVsbHNjcmVlbi1idXR0b24iLCAibWVkaWEtZnVs
bHNjcmVlbi12b2x1bWUtc2xpZGVyIiwgIm1lZGlhLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlci10
aHVtYiIsICJtZWRpYS1tdXRlLWJ1dHRvbiIsICJtZWRpYS1vdmVybGF5LXBsYXktYnV0dG9uIiwg
Im1lZGlhLXBsYXktYnV0dG9uIiwgIm1lZGlhLXJldHVybi10by1yZWFsdGltZS1idXR0b24iLCAi
bWVkaWEtcmV3aW5kLWJ1dHRvbiIsICJtZWRpYS1zZWVrLWJhY2stYnV0dG9uIiwgIm1lZGlhLXNl
ZWstZm9yd2FyZC1idXR0b24iLCAibWVkaWEtc2xpZGVyIiwgIm1lZGlhLXNsaWRlcnRodW1iIiwg
Im1lZGlhLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkiLCAibWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0
aW9ucy1idXR0b24iLCAibWVkaWEtdm9sdW1lLXNsaWRlciIsICJtZWRpYS12b2x1bWUtc2xpZGVy
LWNvbnRhaW5lciIsICJtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIiwgIm1lZGlhLXZv
bHVtZS1zbGlkZXJ0aHVtYiIsICJtZW51bGlzdCIsICJtZW51bGlzdC1idXR0b24iLCAibWVudWxp
c3QtdGV4dCIsICJtZW51bGlzdC10ZXh0ZmllbGQiLCAibWV0ZXIiLCAicHJvZ3Jlc3MtYmFyIiwg
InByb2dyZXNzLWJhci12YWx1ZSIsICJzbGlkZXItaG9yaXpvbnRhbCIsICJzbGlkZXItdmVydGlj
YWwiLCAic2xpZGVydGh1bWItaG9yaXpvbnRhbCIsICJzbGlkZXJ0aHVtYi12ZXJ0aWNhbCIsICJj
YXJldCIsICJzZWFyY2hmaWVsZCIsICJzZWFyY2hmaWVsZC1kZWNvcmF0aW9uIiwgInNlYXJjaGZp
ZWxkLXJlc3VsdHMtZGVjb3JhdGlvbiIsICJzZWFyY2hmaWVsZC1yZXN1bHRzLWJ1dHRvbiIsICJz
ZWFyY2hmaWVsZC1jYW5jZWwtYnV0dG9uIiwgInNuYXBzaG90dGVkLXBsdWdpbi1vdmVybGF5Iiwg
InRleHRmaWVsZCIsICJyZWxldmFuY3ktbGV2ZWwtaW5kaWNhdG9yIiwgImNvbnRpbnVvdXMtY2Fw
YWNpdHktbGV2ZWwtaW5kaWNhdG9yIiwgImRpc2NyZXRlLWNhcGFjaXR5LWxldmVsLWluZGljYXRv
ciIsICJyYXRpbmctbGV2ZWwtaW5kaWNhdG9yIiwgIi1hcHBsZS1wYXktYnV0dG9uIiwgInRleHRh
cmVhIiwgImF0dGFjaG1lbnQiLCAiYm9yZGVybGVzcy1hdHRhY2htZW50IiwgImNhcHMtbG9jay1p
bmRpY2F0b3IiLAogICAgIF0sCiAgICAgIi13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eSI6IFsK
ICAgICAgICAgImhpZGRlbiIsICJ2aXNpYmxlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggOGYxNGYxODk0NWEyMmQ4NDVmZjUyNDIz
MTZhNmVjNGM3NTVlZWE4Yy4uMDE3Y2RkNDJlOWYzZWY5MDZjNDY3ZTkxYTlmMmJlZTMzMjYwMDc4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAKQEAgLTE0MzUsMTQgKzE0MzUsMTUgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2VydmljZUNv
bnRyb2xzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVy
biB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXJ2aWNlQ29udHJvbHNFbmFibGVkKCk7CiB9CiAK
LXZvaWQgV0tQcmVmZXJlbmNlc1NldEltYWdlQ29udHJvbHNFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldElt
YWdlQ29udHJvbHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+c2V0SW1hZ2VDb250cm9sc0VuYWJsZWQoZW5hYmxlZCk7CisgICAg
Ly8gSW1hZ2UgY29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCiB9CiAKLWJvb2wgV0tQ
cmVmZXJlbmNlc0dldEltYWdlQ29udHJvbHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCitib29sIFdLUHJlZmVyZW5jZXNHZXRJbWFnZUNvbnRyb2xzRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5pbWFn
ZUNvbnRyb2xzRW5hYmxlZCgpOworICAgIC8vIEltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIg
c3VwcG9ydGVkLgorICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0
R2FtZXBhZHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5h
YmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IDgxNmVmNjY0ZjQ4YWZhYzY1NWMzOWZkOTAwNWM3NjU0YWZkMTU3ZDIuLjczMDM2Zjcy
ZTE4M2VmOTNkODhlOGNmNWE5NjU0NzQyMDY0N2M1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDY3LDcgKzQ2Nyw2IEBAIC0gKHZv
aWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYp
cGFnZUNvbmZpZ3VyYXRpb24KICNpZiBQTEFURk9STShNQUMpCiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnByZWZlcmVuY2VzKCktPnNldFNob3dzVVJMc0luVG9vbFRpcHNFbmFibGVkKCEhW19jb25m
aWd1cmF0aW9uIF9zaG93c1VSTHNJblRvb2xUaXBzXSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnByZWZlcmVuY2VzKCktPnNldFNlcnZpY2VDb250cm9sc0VuYWJsZWQoISFbX2NvbmZpZ3VyYXRp
b24gX3NlcnZpY2VDb250cm9sc0VuYWJsZWRdKTsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJl
ZmVyZW5jZXMoKS0+c2V0SW1hZ2VDb250cm9sc0VuYWJsZWQoISFbX2NvbmZpZ3VyYXRpb24gX2lt
YWdlQ29udHJvbHNFbmFibGVkXSk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5j
ZXMoKS0+c2V0VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeShjb252ZXJ0VXNlckludGVyZmFj
ZURpcmVjdGlvblBvbGljeShbX2NvbmZpZ3VyYXRpb24gdXNlckludGVyZmFjZURpcmVjdGlvblBv
bGljeV0pKTsKICAgICAvLyBXZSBhcmUgaW4gdGhlIFZpZXcncyBpbml0aWFsaXphdGlvbiByb3V0
aW5lLCBzbyBvdXIgY2xpZW50IGhhc24ndCBoYWQgdGltZSB0byBzZXQgb3VyIHVzZXIgaW50ZXJm
YWNlIGRpcmVjdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggZGIwMTYwNTMyMmRmNTZm
MWUzZTA2MzFkOGQ5NDg2NWFhMTU2N2U0ZC4uNWRhMmZmNjlhMjBkNzRhODJlMDIwMjEzZmE0ZTZi
NWFlOTFlZDhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE1OCw3ICsxNTgsNiBAQCBA
aW1wbGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB7CiAgICAgV0tSZXRhaW5QdHI8
V0tQYWdlR3JvdXBSZWY+IF9wYWdlR3JvdXA7CiAgICAgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlw
czsKICAgICBCT09MIF9zZXJ2aWNlQ29udHJvbHNFbmFibGVkOwotICAgIEJPT0wgX2ltYWdlQ29u
dHJvbHNFbmFibGVkOwogICAgIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250
cm9sc01hbmFnZXI7CiAjZW5kaWYKICAgICBCT09MIF93YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlk
TW92ZVRvV2luZG93OwpAQCAtMjI2LDcgKzIyNSw2IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAg
ICAgX3Jlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbiA9IE5POwogICAgIF9zaG93c1VSTHNJblRvb2xU
aXBzID0gTk87CiAgICAgX3NlcnZpY2VDb250cm9sc0VuYWJsZWQgPSBOTzsKLSAgICBfaW1hZ2VD
b250cm9sc0VuYWJsZWQgPSBOTzsKICAgICBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0Nv
bnRyb2xzTWFuYWdlciA9IE5POwogI2VuZGlmCiAgICAgX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdE
aWRNb3ZlVG9XaW5kb3cgPSBZRVM7CkBAIC00MTksNyArNDE3LDYgQEAgLSAoaWQpY29weVdpdGha
b25lOihOU1pvbmUgKil6b25lCiAgICAgY29uZmlndXJhdGlvbi0+X3VzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kgPSBzZWxmLT5fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTsKICAgICBj
b25maWd1cmF0aW9uLT5fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNlbGYtPl9zaG93c1VSTHNJblRv
b2xUaXBzOwogICAgIGNvbmZpZ3VyYXRpb24tPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkID0gc2Vs
Zi0+X3NlcnZpY2VDb250cm9sc0VuYWJsZWQ7Ci0gICAgY29uZmlndXJhdGlvbi0+X2ltYWdlQ29u
dHJvbHNFbmFibGVkID0gc2VsZi0+X2ltYWdlQ29udHJvbHNFbmFibGVkOwogICAgIGNvbmZpZ3Vy
YXRpb24tPl9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyID0gc2Vs
Zi0+X3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI7CiAgICAgY29u
ZmlndXJhdGlvbi0+X3BhZ2VHcm91cCA9IHNlbGYuX3BhZ2VHcm91cDsKICNlbmRpZgpAQCAtMTA3
NSwxMiArMTA3MiwxMyBAQCAtICh2b2lkKV9zZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkOihCT09M
KXNlcnZpY2VDb250cm9sc0VuYWJsZWQKIAogLSAoQk9PTClfaW1hZ2VDb250cm9sc0VuYWJsZWQK
IHsKLSAgICByZXR1cm4gX2ltYWdlQ29udHJvbHNFbmFibGVkOworICAgIC8vIEltYWdlIGNvbnRy
b2xzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLgorICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9p
ZClfc2V0SW1hZ2VDb250cm9sc0VuYWJsZWQ6KEJPT0wpaW1hZ2VDb250cm9sc0VuYWJsZWQKIHsK
LSAgICBfaW1hZ2VDb250cm9sc0VuYWJsZWQgPSBpbWFnZUNvbnRyb2xzRW5hYmxlZDsKKyAgICAv
LyBJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KIH0KIAogLSAoQk9PTClf
cmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Q
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaAppbmRleCA1NGI4ZmUzNDY1M2JkNGFkNmQ5NzZkMmE1Yzg4NmYz
YTFlYzcxZDc4Li43MWRlOTMxNjMyMzY0YTNiZTIwNzQ2YTRhZmExYzMxYzA0YWNmMDUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtOTcsNyArOTcsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogI2Vsc2UKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93
c1VSTHNJblRvb2xUaXBzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9z
ZXJ2aWNlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9P
TCBfaW1hZ2VDb250cm9sc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJsZWQ6KSBC
T09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSW1hZ2UgY29udHJv
bHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RCQSkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9u
Rm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldENQVUxpbWl0Oikg
ZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UGFnZUdyb3VwOikgV0tQYWdl
R3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCmluZGV4IGVjNjkwMmI4M2I2OGQ1MWE4M2EwNzEyMTFlMDY0YWFjZWJl
OWQzZjMuLjEzNTIwOTNkZmU5NGVjODQwYjU1NzM4NTM2OGEyNjFmMWNkMzEyODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaApAQCAtMTYxLDcgKzE2MSw2IEBACiAjZGVmaW5lIFdlYktpdE1lZGlhU291
cmNlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZWRpYVNvdXJjZUVuYWJsZWQiCiAjZGVm
aW5lIFdlYktpdFNvdXJjZUJ1ZmZlckNoYW5nZVR5cGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFNvdXJjZUJ1ZmZlckNoYW5nZVR5cGVFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTaG91bGRD
b252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weVByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG91bGRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSIKLSNkZWZpbmUgV2ViS2l0SW1hZ2VDb250cm9sc0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SW1hZ2VDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdEdhbWVwYWRzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRHYW1lcGFkc0VuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdFNlcnZpY2VDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0U2VydmljZUNvbnRyb2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TWVkaWFLZXlzU3RvcmFn
ZURpcmVjdG9yeUtleSBAIldlYktpdE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBk
ZmVkZjQ2ODhmNzRmMWUxOTY1MDkwZjViMmYwMDgxOWYzN2RlZTFlLi5iM2M4ZmNhZjNlODc2NWUy
MGFlMzAzNGU3NjQ2Yzg2NDI4NDUyMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTI0NDAsMTIgKzI0NDAsMTQgQEAgLSAo
dm9pZClzZXRTb3VyY2VCdWZmZXJDaGFuZ2VUeXBlRW5hYmxlZDooQk9PTCllbmFibGVkCiAKIC0g
KEJPT0wpaW1hZ2VDb250cm9sc0VuYWJsZWQKIHsKLSAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1
ZUZvcktleTpXZWJLaXRJbWFnZUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXldOworICAgIC8v
IEltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLgorICAgIHJldHVybiBOTzsK
IH0KIAogLSAodm9pZClzZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0g
ICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktleTpXZWJLaXRJbWFnZUNvbnRyb2xz
RW5hYmxlZFByZWZlcmVuY2VLZXldOworICAgIC8vIEltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25n
ZXIgc3VwcG9ydGVkLgorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKIH0KIAogLSAoQk9PTClz
ZXJ2aWNlQ29udHJvbHNFbmFibGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTM1ODk3ZGM2ODJkNmExODk2ZGFiODk4MDg1
M2RjMDJkNGM1NjRlNS4uMjY0YTc3MGMxMjVkNWY4ZDNmOTA1ZDg0NzY5NmU2NzhmNTc3YmNhYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAxLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gUmVtb3ZlIHN1cHBvcnQgZm9yIGlt
YWdlIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjExNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgdGhlIG9ubHkgbGF5b3V0IHRlc3QgZm9yIGltYWdlIGNvbnRyb2xzLCBhbG9u
ZyB3aXRoIGFsbCBhc3NvY2lhdGVkIHRlc3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogZmFz
dC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9nbGliL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9pbWFnZXMvaW1hZ2VzL2lt
YWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy1tb2phdmUvZmFzdC9pbWFnZXMvaW1hZ2Ut
Y29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2ltYWdl
cy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fp
cm8vZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorCiAyMDIxLTAxLTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgZm9udC1zdHJldGNoIGlzIG5vdCBhcHBsaWVkIHRvIHN5c3RlbS11aQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyZDQ5MjZlZWU1NTBkZDdhNDJjOTBkZTRjMTY0
NTEzYmRmZGE0ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotCWludGVybmFscy5zZXR0aW5ncy5zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZCh0cnVlKTsKLQot
PC9zY3JpcHQ+Ci08Ym9keT4KLTxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5qcGci
IHgtd2Via2l0LWltYWdlbWVudT4KLTwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2Zhc3QvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
ZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OWI3NWQ3NmEwNDhhYjQwMTViZTAyYWU2Njc0N2EyYjg1MTJk
ZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAg
ICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMCwwKSBzaXplIDI1NngyNTYKLSAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvaW1hZ2VzL2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9pbWFnZXMvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTliNzVkNzZhMDQ4YWI0MDE1YmUwMmFlNjY3NDdhMmI4NTEyZGRiZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZmFzdC9pbWFnZXMvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVySW1h
Z2Uge0lNR30gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9m
YXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWI3NWQ3NmEwNDhhYjQwMTViZTAy
YWU2Njc0N2EyYjg1MTJkZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2ltYWdlcy9pbWFnZS1jb250
cm9scy1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMjU2eDI1Ngot
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW9qYXZlL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xz
LWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tb2phdmUvZmFz
dC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNjdiYmI0ODlmNGU1ZGJlMGIzNDQ1ODQ2ZTIzMDdkYjljMTQxMWNk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1tb2phdmUvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAot
ICAgICAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2Ci0gICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWxheWVyIGF0ICg4LDgpIHNpemUgMjU2
eDI1NgotICBSZW5kZXJJbWFnZUNvbnRyb2xzIHtESVZ9IGF0ICgwLDApIHNpemUgMjU2eDI1Ngot
bGF5ZXIgYXQgKDIyOSwxNCkgc2l6ZSAyOXgyNgotICBSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9u
IHtESVZ9IGF0ICgyMjEsNikgc2l6ZSAyOXgyNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkNjEzZjczZmU2ZjNhZjJmYTBiMTZhMDAyYzUwMTgwOTFmZTEy
MGI3Li5lZGVmZDQ1MTkwODIzODZjOTAzMjA0Y2ZmYjIyNTU1N2M2ZmExODA5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE2Myw5ICsyMTYzLDYgQEAg
d2Via2l0Lm9yZy9iLzIxNTgxNyBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzX3N1Yl9yZWMKIAogd2Via2l0Lm9yZy9iLzIxOTQ0OCBbIERlYnVnIF0g
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvcmVuZGVyaW5nL211bHRpc2FtcGxlLWNvcnJ1cHRpb24u
aHRtbCBbIFNraXAgXQogCi0jIDxyZGFyOi8vNjQ5NDc2NjY+IFsgQmlnU3VyKyBdIGZhc3QvaW1h
Z2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWwgCi1bIEJpZ1N1cisgXSBmYXN0L2ltYWdlcy9p
bWFnZS1jb250cm9scy1iYXNpYy5odG1sIFsgRmFpbHVyZSBdCi0KICMgPHJkYXI6Ly9wcm9ibGVt
LzYwNzgwMzk4PiBSRUdSRVNTSU9OOiAoMjU4NzI5PykgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJzb2NrZXRzL29wZW5pbmctaGFuZHNoYWtlLzAwMy5odG1sIGlzIGZhaWxpbmcu
CiBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMv
b3BlbmluZy1oYW5kc2hha2UvMDAzLmh0bWwgWyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9pbWFnZS1j
b250cm9scy1iYXNpYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg2ZDg4YTZlOThlYTdhMDhkNjgzOTczMzgxNTA1ODM5MjgyMDFiMzQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDExICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9
IGF0ICgwLDApIHNpemUgMjU2eDI1NgotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCi1sYXllciBhdCAoOCw4KSBzaXplIDI1NngyNTYKLSAgUmVuZGVySW1hZ2VDb250
cm9scyB7RElWfSBhdCAoMCwwKSBzaXplIDI1NngyNTYKLWxheWVyIGF0ICgyMzEsMTQpIHNpemUg
Mjd4MjYKLSAgUmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbiB7RElWfSBhdCAoMjIzLDYpIHNpemUg
Mjd4MjYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGY3
YzQ4NjRhYTYwZWNlYjM4NDBmMWE3MmE1OWU2YzkzYjRhYmQ3NC4uMTMxOGFmZTE2ZmVkZTcxNGI5
YjRjMmIzYmM5NjE0ZDVhNmM3OGE5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI4MDksNyArMjgwOSw2IEBAIGZhc3QvaGlzdG9yeS9oaXN0b3J5LXN1
YmZyYW1lLXdpdGgtbmFtZS5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvbG9jYXRpb24tcmVw
bGFjZS1oYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvaGlzdG9yeS9zYXZlcy1zdGF0ZS1hZnRlci1m
cmFnbWVudC1uYXYuaHRtbCBbIFNraXAgXQogCi1mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1i
YXNpYy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwNTE2IFsgRGVidWcgXSBmYXN0
L2ltYWdlcy9sYXJnZS1zaXplLWltYWdlLWNyYXNoLmh0bWwgWyBTa2lwIF0gICMgQ3Jhc2hpbmcK
IGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS13aXRoLWFubm90YXRpb25zLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGZhc3QvaW1hZ2VzL3N1cHBvcnQtYnJva2VuLWltYWdlLWRlbGVnYXRlLmh0
bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTliNzVkNzZhMDQ4YWI0
MDE1YmUwMmFlNjY3NDdhMmI4NTEyZGRiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9mYXN0L2ltYWdl
cy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3
ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNp
emUgMjU2eDI1NgotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCg==
</data>
<flag name="review"
          id="436844"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="436865"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418803</attachid>
            <date>2021-01-29 19:44:41 -0800</date>
            <delta_ts>2021-01-29 21:27:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221156-20210129194440.patch</filename>
            <type>text/plain</type>
            <size>90354</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE1Y2RiMmEyYWZkMGRlNDFkM2RlNzk2
MWU5MzVkODk5NDhlYWJjMjUuLjVjYTA4MWY5YmQ5MTMyNmFmYjcwZDA2ZWZmYWJmMDQyMjUyYzAx
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBSZW1vdmUgc3VwcG9ydCBmb3Ig
aW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAg
ICAgUmVtb3ZlIHRoaXMgdW51c2VkIFdlYktpdCBzZXR0aW5nLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDIxLTAxLTI5ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgZm9udC1zdHJldGNo
IGlzIG5vdCBhcHBsaWVkIHRvIHN5c3RlbS11aQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFlYWI5OTVhODRkODYy
YmU2MWE0MjE3NjVkZTIzN2JlMzgwOTFjY2YuLmJlNzkwYjA2Y2JiN2YwM2U4NTA0MmNjYTc5ZTk4
MDhiMTgzNjM3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMS0wMS0yOSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFJl
bW92ZSBzdXBwb3J0IGZvciBpbWFnZSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
IEhvcnRvbi4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgdGhlIG1hY09TLW9ubHkgImlt
YWdlIGNvbnRyb2xzIiBjb2RlcGF0aC4gVGhpcyBTUEkgd2FzIGludGVuZGVkIHRvIGJlIHVzZWQg
YnkgTWFpbCB5ZWFycyBhZ28sCisgICAgICAgIGJ1dCB3YXMgc3VwZXJzZWRlZCBieSBhIGN1c3Rv
bSBpbXBsZW1lbnRhdGlvbiBpbiBNYWlsOyB0aGlzIFdlYktpdCBmdW5jdGlvbmFsaXR5IGhhcyBz
aW5jZSBiZWVuIHVudXNlZC4KKworICAgICAgICBJbiBhIHN1YnNlcXVlbnQgcGF0Y2gsIGEgc21h
bGwgc3Vic2V0IG9mIHRoZSBpbmZyYXN0cnVjdHVyZSBmb3IgbGF5aW5nIG91dCBhbmQgcmVuZGVy
aW5nIGltYWdlIGNvbnRyb2xzIHdpbGwKKyAgICAgICAgcmV0dXJuIHVuZGVyIGEgZGlmZmVyZW50
IG5hbWUsIGluIHN1cHBvcnQgb2YgdGhlIGltYWdlIGV4dHJhY3Rpb24gYWNjZXNzaWJpbGl0eSBm
ZWF0dXJlLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0aWVzLmpzb246CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAg
ICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzUGx1Z2luRWxlbWVudCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0ltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisKKyAgICAg
ICAgQWRkaXRpb25hbGx5IHJlbW92ZSBzdXBwb3J0IGZvciB0aGUgYHdlYmtpdGltYWdlbWVudWAg
RE9NIGF0dHJpYnV0ZSwgd2hpY2ggd2FzIG9ubHkgcmVzcGVjdGVkIGlmIHRoZSAobm93LQorICAg
ICAgICByZW1vdmVkKSBTUEkgcHJlZmVyZW5jZSB3YXMgc2V0LgorCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6dXBkYXRlSW1hZ2VDb250cm9scyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp0cnlDcmVhdGVJbWFnZUNvbnRyb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmRlc3Ryb3lJbWFn
ZUNvbnRyb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6
Omhhc0ltYWdlQ29udHJvbHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEltYWdlRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisKKyAgICAgICAgQWRkaXRpb25h
bGx5IHJlbW92ZSBgbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkYCBhbmQgdGhlIGFzc29j
aWF0ZWQgaGVscGVyIG1ldGhvZCBgaGFzU2hhZG93Q29udHJvbHMoKWAgb24KKyAgICAgICAgYEhU
TUxJbWFnZUVsZW1lbnRgLgorCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojpo
YXNTaGFkb3dDb250cm9scyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cv
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL3No
YWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5o
OiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnRNYWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9t
YWMvaW1hZ2VDb250cm9sc01hYy5jc3M6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlRnJv
bUltYWdlRWxlbWVudE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01lbnUpOiBEZWxldGVkLgorICAgICAgICAq
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWVU
eXBlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9UaGVtZVR5cGVzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpSZW5kZXJJbWFnZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjphZGp1c3RTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW1h
Z2VDb250cm9sc1N0eWxlU2hlZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWU6OmltYWdlQ29udHJvbHNCdXR0b25TaXplIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppbWFnZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25P
ZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBh
aW50SW1hZ2VDb250cm9sc0J1dHRvbik6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmltYWdlQ29udHJvbHNTdHlsZVNoZWV0
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpzZXJ2
aWNlc1JvbGxvdmVyQnV0dG9uQ2VsbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRJbWFnZUNvbnRyb2xzQnV0dG9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjppbWFnZUNvbnRyb2xzQnV0dG9uU2l6ZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6aW1hZ2VD
b250cm9sc0J1dHRvblBvc2l0aW9uT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBS
ZW1vdmUgdGhlc2UgdHdvIG1ldGhvZHMsIHdoaWNoIHdlcmUgb25seSB1c2VkIHRvIHJlbmRlciB0
aGUgbm93LXJlbW92ZWQgaW1hZ2UgY29udHJvbHMgYnV0dG9uLgorCisgICAgICAgICogc3R5bGUv
VXNlckFnZW50U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVzZXJBZ2VudFN0
eWxlOjplbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KToKKyAgICAgICAgKiBzdHls
ZS9Vc2VyQWdlbnRTdHlsZS5oOgorCiAyMDIxLTAxLTI5ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgR3JhcGhpY3NDb250
ZXh0R0w6OkRlc3RpbmF0aW9uIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTUxZjQyZjZkMThhYzY1
ZjZkYzUyZWVjZWRkZWUwZmIwMzVlNTVhNi4uNzkzMWIwYTI3YzQ2Y2Y1YzEwZjgzYzU1NDBkODdm
MGI2NjM4ODEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMS0yOSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFJlbW92
ZSBzdXBwb3J0IGZvciBpbWFnZSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhv
cnRvbi4KKworICAgICAgICBMZWF2ZSB0aGUgZXhpc3RpbmcgU1BJIGltcGxlbWVudGVkIGZvciBi
aW5hcnkgY29tcGF0YWJpbGl0eSwgYnV0IG1ha2UgdGhlbSBlbXB0eSBzdHVicyBhbmQgYWRkaXRp
b25hbGx5IG1hcmsKKyAgICAgICAgdGhlIHByb3BlcnR5IG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYXMgZGVwcmVjYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRJbWFnZUNvbnRyb2xzRW5hYmxlZCk6
CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0SW1hZ2VDb250cm9sc0VuYWJsZWQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGluaXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBjb3B5
V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX2ltYWdlQ29u
dHJvbHNFbmFibGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldElt
YWdlQ29udHJvbHNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKwogMjAyMS0wMS0yOSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBjb20uYXBwbGUucHJp
dmF0ZS5zZWN1cmVqaXQgZW50aXRsZW1lbnQgZm9yIEpJVENhZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwppbmRleCA1ZjNmMTFlN2NkMGUyZjMwNjRkMmJhNWNiZjgxNDg5YjRiMGEzYjRmLi43
ZTVlZTQ0MjNmYzQ2OTVlNDg2MjU3M2IyZGY3OWIwZmVlOTg5YTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDEtMjkgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBSZW1vdmUgc3VwcG9y
dCBmb3IgaW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisK
KyAgICAgICAgVHVybiB0aGVzZSBsZWdhY3kgV2ViS2l0IFNQSSBtZXRob2RzIGludG8gZW1wdHkg
c3R1YnMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIGltYWdlQ29udHJvbHNFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IHNldEltYWdlQ29udHJvbHNFbmFibGVkOl0pOgorCiAyMDIxLTAxLTI2ICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2NzY0MSk6IFdlYktpdERldmVs
b3BlckV4dHJhcyBwcmVmZXJlbmNlIGhhcyBubyBlZmZlY3QgZm9yIFdlYktpdExlZ2FjeSBjbGll
bnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXMueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
cy55YW1sCmluZGV4IDU5ODNhNzJkZGM1ZDQ4YTlkMDcyZTk2MWNlODEyOGEwMmRiMWEzMzEuLjA1
MjBjNmM5ZDkzZTZmNTY2ZmFjZjIwZTA4NzQ1Y2ZiN2MwYzc1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC05MDIsMTcg
KzkwMiw2IEBAIEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAg
ZGVmYXVsdDogZmFsc2UKIAotSW1hZ2VDb250cm9sc0VuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAg
Y29uZGl0aW9uOiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgZGVmYXVsdFZhbHVlOgotICAg
IFdlYktpdExlZ2FjeToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViS2l0OgotICAgICAg
ZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3JlOgotICAgICAgZGVmYXVsdDogZmFsc2UKLQogSW5h
Y3RpdmVNZWRpYUNhcHR1cmVTdGVhbVJlcHJvbXB0SW50ZXJ2YWxJbk1pbnV0ZXM6CiAgIHR5cGU6
IGRvdWJsZQogICB3ZWJjb3JlQmluZGluZzogbm9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNTJjMTBmNTUxYzdlYTlmYzZkYjM3Mzk4
YmIxM2UzYTFmMzlmYjNlYS4uZDdlZTk2ZGNhN2JkYzQzYTRlZDZlYTMwMWQxMDQwMTQzMzA0MDBl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0xMDM4LDcgKzEwMzgsNiBAQCAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvcGFyc2VyL0hUTUxFbnRp
dHlOYW1lcy5pbgogJChQUk9KRUNUX0RJUikvaHRtbC9wYXJzZXIvY3JlYXRlLWh0bWwtZW50aXR5
LXRhYmxlCi0kKFBST0pFQ1RfRElSKS9odG1sL3NoYWRvdy9tYWMvaW1hZ2VDb250cm9sc01hYy5j
c3MKICQoUFJPSkVDVF9ESVIpL2h0bWwvc2hhZG93L21ldGVyRWxlbWVudFNoYWRvdy5jc3MKICQo
UFJPSkVDVF9ESVIpL2h0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCA2Njc5YzY4NGRlYWY1YTBkOWYzOWQwODA3OTk4NTIyYTNmZWE2MWMxLi5hZDc5YzAyYjli
MjZmMGMyNGExNDdkZDUwMjZhY2VhNDkwZmY3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTE1MTEsNyArMTUxMSw2IEBAIFVTRVJfQUdFTlRfU1RZTEVfU0hFRVRTID0gXAog
ICAgICQoV2ViQ29yZSkvY3NzL3BsdWdJbnMuY3NzIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9xdWly
a3MuY3NzIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9zdmcuY3NzIFwKLSAgICAkKFdlYkNvcmUpL2h0
bWwvc2hhZG93L21hYy9pbWFnZUNvbnRyb2xzTWFjLmNzcyBcCiAgICAgJChXZWJDb3JlKS9odG1s
L3NoYWRvdy9tZXRlckVsZW1lbnRTaGFkb3cuY3NzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
cGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jc3MgXAogIwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKaW5kZXggYzdiMjMwYjM4ZGFlMDM3NDIxN2M0MGZjMzBlYTdmNTk4YzcyMjQ4Mi4u
ZDJiMzQyMzYyNTVhNDE3ZjNhYTE2MzY1ZTEwM2JiN2MxMjIwNzI0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC0xNjIsMTAgKzE2Miw3IEBAIGVkaXRpbmcvbWFjL1RleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZS5tbSBAbm8tdW5pZnkKIGVkaXRpbmcvbWFjL1RleHRVbmRvSW5zZXJ0aW9uTWFy
a3VwTWFjLm1tCiBmaWxlYXBpL0ZpbGVDb2NvYS5tbQogaGlzdG9yeS9tYWMvSGlzdG9yeUl0ZW1N
YWMubW0KLWh0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAKIGh0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCi1odG1sL3NoYWRvdy9tYWMvSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCi1odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9s
c1Jvb3RFbGVtZW50TWFjLmNwcAogaW5zcGVjdG9yL21hYy9QYWdlRGVidWdnZXJNYWMubW0KIGxv
YWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCiBsb2FkZXIvYXJjaGl2ZS9jZi9M
ZWdhY3lXZWJBcmNoaXZlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2E2Yzk1NmNlYWUyNWYwMzM4ODE2YmQ5NzkwMTE1
NjdhNjMzNzBhZC4uOTA1NzkwMDdkOWE3MTA2NDQ3OTUyMjM0ZjUwOTcyMzJlZjAxM2VlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNzI5LDcgKzcyOSw2IEBACiAJCTJEMDYyMTUyMURBNjNBQTIwMEE3RkIyNiAvKiBXZWJLaXRN
ZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEMDYyMTQ3MURBNjNBNzkwMEE3RkIyNiAvKiBXZWJLaXRNZWRpYUtleU5l
ZWRlZEV2ZW50LmNwcCAqLzsgfTsKIAkJMkQwQjRBQUIxOERBMUNDRDAwNDM0REUxIC8qIElPU3Vy
ZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQw
QjRBQTkxOERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMjI4MzAzMjNBODQ3MDcwMDM2NEI3RSAv
KiBDdXJzb3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovOyB9OwotCQky
RDI1Mzk2MzE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjUzOTYx
MThDRTdGNjIwMDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oICovOyB9
OwogCQkyRDI5Mzg2QjIzNUY2QjY5MDBDN0YzQjIgLyogRXhjZXB0aW9uRGV0YWlscy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOTM4NjkyMzVGNkI2
ODAwQzdGM0IyIC8qIEV4Y2VwdGlvbkRldGFpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDI5RUNDNjE5MkVDQzgzMDA5ODRCNzggLyogRGlz
cGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUNDMjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJl
c2hNb25pdG9yQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMkQyOUVDQzgxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEMjlFQ0M0MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTE0MDIsOCArMTQwMSw2IEBACiAJCTUwODFFM0UwM0NGRjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUwODFFM0UxM0QwMjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDhD
Q0E0RjEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRnJhZ21lbnRlZEZsb3cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTREMTNDRjEwNkIwMDMx
NTFGMyAvKiBSZW5kZXJGcmFnbWVudGVkRmxvdy5oICovOyB9OwogCQk1MTAxODQ2OTBCMDg2MDJB
MDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTAxOTJE
MjE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxOTJEMDE4QjZCOUFC
MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggKi87IH07Ci0JCTUxMDE5
MkQ2MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5MkQ0MThCNkI5Qjcw
MDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCAqLzsgfTsKIAkJNTEwNThBREIx
RDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDU4QUQ3MUQ2NzkyNTcwMDlBNTM4QyAvKiBNb2Nr
R2FtZXBhZC5jcHAgKi87IH07CiAJCTUxMDU4QURDMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2Ft
ZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
NThBRDgxRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwNThBREQxRDY3OTJDMTAwOUE1MzhD
IC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwNThBRDkxRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFk
UHJvdmlkZXIuY3BwICovOyB9OwpAQCAtNzA4OSw4ICs3MDg2LDYgQEAKIAkJMkQwQjRBQUExOERB
MUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IElPU3VyZmFjZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQxOTMyMTcxREE2NEUxOTAwQTU0QTA4IC8qIFdlYktpdE1lZGlhS2V5RXJyb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TWVkaWFLZXlFcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDE5MzIxODFEQTY0RTE5MDBBNTRBMDggLyogV2ViS2l0
TWVkaWFLZXlFcnJvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0TWVkaWFLZXlF
cnJvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEMjUzOTYwMThDRTdGNjIw
MDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEMjUzOTYxMThDRTdGNjIwMDI3MDIy
MiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDI5Mzg2OTIzNUY2QjY4MDBDN0YzQjIgLyogRXhjZXB0aW9u
RGV0YWlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25EZXRh
aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjlFQ0MxMTkyRUNDODMwMDk4
NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOUVDQzIxOTJFQ0M4MzAwOTg0Qjc4IC8qIERp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTg0OTcsMTEgKzg0OTIsNiBAQAogCQk1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMg
LyogUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRQYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMDE4NDY4MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFBhZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTAxOTJDRjE4QjZCOUFCMDA3RkM3QTEgLyogSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTUxMDE5MkQwMThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUx
MDE5MkQzMThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTEwMTkyRDQxOEI2QjlCNzAw
N0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTEwMTkyRDgxOEI3RDdBQjAwN0ZDN0ExIC8qIGltYWdlQ29udHJvbHNN
YWMuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBpbWFnZUNvbnRyb2xzTWFjLmNzczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMzEwNUUxQkE4RTA5MDAwMzMyOUMwIC8q
IElEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTAzMTA1RjFCQThFMDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkRhdGFiYXNlSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1OEFENzFENjc5MjU3MDA5QTUz
OEMgLyogTW9ja0dhbWVwYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTW9ja0dhbWVwYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkzMjcs
NyArMTkzMTcsNiBAQAogCQk0MTUwRjlFRDEyQjZFMDk5MDAwOEM4NjAgLyogc2hhZG93ICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1MUM0QUE1MTE4QjI4
MzU3MDA3QkZFOUIgLyogbWFjICovLAogCQkJCTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBB
dXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICovLAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBG
QiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuaCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5
OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi8sCkBAIC0xOTM0Myw4ICsxOTMzMiw2
IEBACiAJCQkJRTVGMDZBRUQyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQuaCAqLywKIAkJCQlBN0M5QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01h
cmtlckNvbnRyb2wuY3BwICovLAogCQkJCUE3QzlBQkY3MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRh
aWxzTWFya2VyQ29udHJvbC5oICovLAotCQkJCTUxMDE5MkQzMThCNkI5QjcwMDdGQzdBMSAvKiBJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwICovLAotCQkJCTUxMDE5MkQ0MThCNkI5QjcwMDdG
QzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCAqLywKIAkJCQk0MTcyNTNBODEzNTRC
QkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAg
Ki8sCiAJCQkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQuaCAqLywKIAkJCQlFNEUyNDM4MjFEQUI5NTNFMDBDMjZFNEIgLyog
bWV0ZXJFbGVtZW50U2hhZG93LmNzcyAqLywKQEAgLTIwNjY0LDE4ICsyMDY1MSw2IEBACiAJCQlw
YXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1MUM0QUE1
MTE4QjI4MzU3MDA3QkZFOUIgLyogbWFjICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQlj
aGlsZHJlbiA9ICgKLQkJCQkyRDI1Mzk2MDE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuY3BwICovLAotCQkJCTJEMjUzOTYxMThDRTdGNjIwMDI3MDIyMiAv
KiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oICovLAotCQkJCTUxMDE5MkQ4MThCN0Q3
QUIwMDdGQzdBMSAvKiBpbWFnZUNvbnRyb2xzTWFjLmNzcyAqLywKLQkJCQk1MTAxOTJDRjE4QjZC
OUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCAqLywKLQkJCQk1
MTAxOTJEMDE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmgg
Ki8sCi0JCQkpOwotCQkJcGF0aCA9IG1hYzsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0J
CX07CiAJCTUxRUNDM0U0MjAwNTgzMUYwMDQ4M0VBRSAvKiBtZXNzYWdlcG9ydHMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjE5MTQsOCArMjE4ODksOCBA
QAogCQkJCTQ0NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlLmggKi8sCiAJCQkJNDQ1Nzc1RTkyMDQ3MzAzQjAwOERDRTVEIC8qIExvY2FsRGVmYXVs
dFN5c3RlbUFwcGVhcmFuY2UubW0gKi8sCiAJCQkJMTQwMjY0NUQwQUZEQzE5QjAwNTkxOUUyIC8q
IExvZ2dpbmdNYWMubW0gKi8sCi0JCQkJQ0Q4QUNBOEMxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlh
UmVtb3RlU29mdExpbmsubW0gKi8sCiAJCQkJQ0Q4QUNBOEQxRDIzOTcxOTAwRUNDNTlFIC8qIE1l
ZGlhUmVtb3RlU29mdExpbmsuaCAqLywKKwkJCQlDRDhBQ0E4QzFEMjM5NzE5MDBFQ0M1OUUgLyog
TWVkaWFSZW1vdGVTb2Z0TGluay5tbSAqLywKIAkJCQk5MzUwMEYzMTEzRkRFM0JFMDA5OUVDMjQg
LyogTlNTY3JvbGxlckltcERldGFpbHMuaCAqLywKIAkJCQk1MkY1MkUxMDE0QTAxMzRGMDBBQ0Mz
OTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gKi8sCiAJCQkJNEIyNzA5ODEwQUYyRTVFMDAw
NjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gKi8sCkBAIC0yNzQwNiw5ICsyNzM4MSw5IEBACiAJ
CQkJQ0JCNkIyRDIxQ0I3QUREMDAwOUVERTFBIC8qIExpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRz
LmggKi8sCiAJCQkJNTFBQkY2NEMxNjM5MkUyODAwMTMyQTdBIC8qIExvYWRlclN0cmF0ZWd5LmNw
cCAqLywKIAkJCQk1MUU2ODIwRjE2Mzg3MzAyMDAzQkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCAq
LywKKwkJCQlFNDdGQzhBMTI1Qjg0RDcxMDA1NDk1RkMgLyogTG9hZFNjaGVkdWxpbmdNb2RlLmgg
Ki8sCiAJCQkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICovLAog
CQkJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggKi8sCi0JCQkJRTQ3
RkM4QTEyNUI4NEQ3MTAwNTQ5NUZDIC8qIExvYWRTY2hlZHVsaW5nTW9kZS5oICovLAogCQkJCUNF
RUZDRDc3MTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJ
CQlDRUVGQ0Q3ODE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAog
CQkJCTUyRjEwODYyMTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNwcCAq
LywKQEAgLTMyNTQxLDkgKzMyNTE2LDYgQEAKIAkJCQk3MjdBN0YzQTI0MDc4Qjg0MDA0RDI5MzEg
LyogSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEx
MEQ5MTBCMzgxOEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXJQaXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDNFMjFERDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMkQyNTM5NjMxOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTAxOTJENjE4QjZC
OUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQk1MTAxOTJEMjE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzc5NzkxQTBENkI5RDBDMDAzODUxQjkgLyogSW1h
Z2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyog
SW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5RkVBRTFGNTc0QjZEMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY0NSw2ICsz
MzYxNyw3IEBACiAJCQkJOTc1OUU5NDkxNEVGMUQ0OTAwMjZBMkREIC8qIExvYWRhYmxlVGV4dFRy
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczMjBBREJBNURFMDBBNDU1NEQgLyogTG9h
ZGVyTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTY4MjEwMTYzODczMDIwMDNC
QkYzQyAvKiBMb2FkZXJTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3RkM4QTMyNUI4
NEQ3MjAwNTQ5NUZDIC8qIExvYWRTY2hlZHVsaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIExvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDNDNERTZCMjJBQjRCOEEwMDE1MjdEOSAvKiBMb2Nh
bEN1cnJlbnRUcmFpdENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMzQzNDIsNyArMzQz
MTUsNiBAQAogCQkJCTQzNjcwOEQ1MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlclByaW1pdGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4RDcxMkQ5Q0E0QjAw
MDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQzNjcwOEQ5MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTE0RkUzMjI1QkVCRDE5MDA5RDlGMjAgLyogUlRD
UnRjcFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOERCMTJEOUNBNEIwMDA0
NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2
NzA4REQxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlTWFza2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MzY3MDhERjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDU2LDYgKzM0NDI4LDcgQEAKIAkJCQkw
NzhFMDk0MjE3RDE2RTFDMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlFNkVDOTI1NjZEMjc4MDAyQjUwMTAgLyogUlRDUGVl
ckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkyNDE3
RDE0RDFDMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDExNEZFMzIyNUJFQkQxOTAwOUQ5RjIwIC8qIFJUQ1J0Y3BQYXJhbWV0ZXJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTJERTRCODIxOTI4NUMwMDA3NUYzQTcgLyogUlRDUnRwQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJDNDM2MzFCQ0VFMzJCMDAwMUUyQkMg
LyogUlRDUnRwUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0M4QjM1MjU1MkYyN0Qw
MEU2NTA1NSAvKiBSVENSdHBSZWNlaXZlcldpdGhUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLApA
QCAtMzQ5NTcsNyArMzQ5MzAsNiBAQAogCQkJCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBT
VkdQYXRoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4ODBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHUGF0dGVybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDRB
MURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3RkM4
QTMyNUI4NEQ3MjAwNTQ5NUZDIC8qIExvYWRTY2hlZHVsaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBOEMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvaW50TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBOEYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWdv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggMGE3NDk4NWM4NjFkYzg4NTk5N2FjY2QxYzliMjg0
MDZiYmRlOGUxNy4uMWNjMmM4MjI4ZTA4ZjZmZmU2NmI3NzY0ZmM2YTA1NmQzYTQ2YTU3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC02
MDUsMTEgKzYwNSw2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUJvcmRlcmxlc3NBdHRhY2htZW50OwogICAgICAgICBicmVhazsKICNlbmRpZgotI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9sc0J1dHRvblBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW1hZ2VDb250cm9sc0J1dHRv
bjsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogICAgIGNh
c2UgQXBwbGVQYXlCdXR0b25QYXJ0OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUFwcGxlUGF5QnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5kZXgg
OTU0OGVmNjdiY2ZiNmJkYTYyMWY3MWMyYzk2OWU2MDVkZWJhMDg1Ni4uNDVlYzNjYTkwYjdiYjRk
MDRkNzVjMzlmYmYwODdlZDZjZTVlNzhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGll
cy5qc29uCkBAIC00NTM4LDcgKzQ1MzgsNiBAQAogICAgICAgICAgICAgICAgICJjb250aW51b3Vz
LWNhcGFjaXR5LWxldmVsLWluZGljYXRvciIsCiAgICAgICAgICAgICAgICAgImRpc2NyZXRlLWNh
cGFjaXR5LWxldmVsLWluZGljYXRvciIsCiAgICAgICAgICAgICAgICAgInJhdGluZy1sZXZlbC1p
bmRpY2F0b3IiLAotICAgICAgICAgICAgICAgICJpbWFnZS1jb250cm9scy1idXR0b24iLAogICAg
ICAgICAgICAgICAgICItYXBwbGUtcGF5LWJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgInRleHRh
cmVhIiwKICAgICAgICAgICAgICAgICAiYXR0YWNobWVudCIsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCmluZGV4IGFkNzM1N2ZmZWE4NDZkZjIyOTM1NGQyY2JhMGUxNTAxNzdh
MTJiOWMuLmY4ZjI1ZmE5NzVmNTgzZTRlYjdlZGExOWI4MjllMzgzNTUxNTdlODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04NTgsOSArODU4LDYgQEAgcmVsZXZh
bmN5LWxldmVsLWluZGljYXRvcgogY29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IK
IGRpc2NyZXRlLWNhcGFjaXR5LWxldmVsLWluZGljYXRvcgogcmF0aW5nLWxldmVsLWluZGljYXRv
cgotI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTCi1pbWFnZS1jb250cm9scy1idXR0b24KLSNlbmRpZgogI2lmIGRlZmluZWQoRU5B
QkxFX0FQUExFX1BBWSkgJiYgRU5BQkxFX0FQUExFX1BBWQogLWFwcGxlLXBheS1idXR0b24KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggMzIyYWVlNjBhMDExYzRkYWQyNjg3YjkzN2JlNzc5MzExMzM0
M2IyYS4uNTA5ZTBlYjZlMzZlZWM1YjhlNzUzZjYzZjBiMTBjNmJkYjg2MzBkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCkBAIC0yMDYsMTAgKzIwNiw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2hhcmFjdGVyRGF0
YU5vZGUoKSBjb25zdCB7IHJldHVybiBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SXNDaGFyYWN0ZXJE
YXRhKTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lT3duZXJFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5FbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICB2aXJ0
dWFsIGJvb2wgaXNJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgogCiAgICAgYm9vbCBpc0RvY3VtZW50Tm9kZSgp
IGNvbnN0IHsgcmV0dXJuIGhhc05vZGVGbGFnKE5vZGVGbGFnOjpJc0RvY3VtZW50Tm9kZSk7IH0K
ICAgICBib29sIGlzVHJlZVNjb3BlKCkgY29uc3QgeyByZXR1cm4gaGFzTm9kZUZsYWcoTm9kZUZs
YWc6OklzRG9jdW1lbnROb2RlKSB8fCBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SXNTaGFkb3dSb290
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCAxYmUw
NDVlZDEzNmJkNzBiYmYwNTMzNjBlZDZmM2E0MDg0ZjU2MThiLi4wY2ZlYmJiNzRkZWVjYTNmMTA4
NzZhZTY3ZmUwZTA0NzQ5Y2ZlMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgpAQCAtNDI4LDcgKzQyOCw2IEBAIGF1dG9jYXBpdGFsaXplCiBvbndlYmtpdGN1
cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkCiBvbndlYmtpdHBsYXliYWNrdGFy
Z2V0YXZhaWxhYmlsaXR5Y2hhbmdlZAogb253ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZAot
eC13ZWJraXQtaW1hZ2VtZW51CiB3ZWJraXQtcGxheXNpbmxpbmUKIHgtd2Via2l0LWFpcnBsYXkK
IHgtd2Via2l0LXdpcmVsZXNzdmlkZW9wbGF5YmFja2Rpc2FibGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCAwMjIxYjRlN2Q4MmJiYjc5YzgzNTA2YzNjMjc0
NjJlZGVkY2JiMTEwLi5kMDMwYWZkNTFiOGI1NTVmNDk5NTczODgxNDAwNGM0M2UyZTZjMGYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTYwLDEwICs2MCw2
IEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSNpbmNs
dWRlICJJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MSW1hZ2VFbGVtZW50KTsK
QEAgLTc3LDcgKzczLDYgQEAgSFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fZm9ybVNl
dEJ5UGFyc2VyKG1ha2VXZWFrUHRyKGZvcm0pKQogICAgICwgbV9jb21wb3NpdGVPcGVyYXRvcihD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcikKICAgICAsIG1faW1hZ2VEZXZpY2VQaXhlbFJh
dGlvKDEuMGYpCi0gICAgLCBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQoZmFsc2UpCiB7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaW1nVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVS
ZXNvbHZlQ2FsbGJhY2tzKCk7CkBAIC0yODEsMTEgKzI3Niw2IEBAIHZvaWQgSFRNTEltYWdlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluCiAgICAgICAgIEJsZW5kTW9kZSBibGVuZE9wID0gQmxlbmRNb2RlOjpOb3JtYWw7CiAg
ICAgICAgIGlmICghcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKHZhbHVlLCBtX2NvbXBv
c2l0ZU9wZXJhdG9yLCBibGVuZE9wKSkKICAgICAgICAgICAgIG1fY29tcG9zaXRlT3BlcmF0b3Ig
PSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjsKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05U
Uk9MUykKLSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gd2Via2l0aW1hZ2VtZW51QXR0cikgewotICAg
ICAgICBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQgPSAhdmFsdWUuaXNOdWxsKCk7Ci0g
ICAgICAgIHVwZGF0ZUltYWdlQ29udHJvbHMoKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBsb2FkaW5nQXR0cikgewogICAgICAgICAvLyBObyBhY3Rpb24gbmVlZGVkIGZvciBlYWdl
ciB0byBsYXp5IHRyYW5zaXRpb24uCiAgICAgICAgIGlmICghaGFzTGF6eUxvYWRhYmxlQXR0cmli
dXRlVmFsdWUodmFsdWUpKQpAQCAtMzU0LDEwICszNDQsNiBAQCB2b2lkIEhUTUxJbWFnZUVsZW1l
bnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCiAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmhhc1BlbmRp
bmdCZWZvcmVMb2FkRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi0gICAgdXBkYXRlSW1hZ2VDb250cm9scygpOwotI2VuZGlmCi0KICAgICBh
dXRvJiByZW5kZXJJbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIoKSk7CiAg
ICAgUmVuZGVySW1hZ2VSZXNvdXJjZSYgcmVuZGVySW1hZ2VSZXNvdXJjZSA9IHJlbmRlckltYWdl
LmltYWdlUmVzb3VyY2UoKTsKICAgICBpZiAocmVuZGVySW1hZ2VSZXNvdXJjZS5jYWNoZWRJbWFn
ZSgpKQpAQCAtNzIzLDc2ICs3MDksNiBAQCBjb25zdCBTdHJpbmcmIEhUTUxJbWFnZUVsZW1lbnQ6
OmF0dGFjaG1lbnRJZGVudGlmaWVyKCkgY29uc3QKIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLXZvaWQgSFRNTElt
YWdlRWxlbWVudDo6dXBkYXRlSW1hZ2VDb250cm9scygpCi17Ci0gICAgLy8gSWYgdGhpcyBpbWFn
ZSBlbGVtZW50IGlzIGluc2lkZSBhIHNoYWRvdyB0cmVlIHRoZW4gaXQgaXMgcGFydCBvZiBhbiBp
bWFnZSBjb250cm9sLgotICAgIGlmIChpc0luU2hhZG93VHJlZSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5pbWFnZUNvbnRyb2xzRW5hYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBib29sIGhhc0NvbnRyb2xzID0gaGFzSW1hZ2VDb250
cm9scygpOwotICAgIGlmICghbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkICYmIGhhc0Nv
bnRyb2xzKQotICAgICAgICBkZXN0cm95SW1hZ2VDb250cm9scygpOwotICAgIGVsc2UgaWYgKG1f
ZXhwZXJpbWVudGFsSW1hZ2VNZW51RW5hYmxlZCAmJiAhaGFzQ29udHJvbHMpCi0gICAgICAgIHRy
eUNyZWF0ZUltYWdlQ29udHJvbHMoKTsKLX0KLQotdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojp0cnlD
cmVhdGVJbWFnZUNvbnRyb2xzKCkKLXsKLSAgICBBU1NFUlQobV9leHBlcmltZW50YWxJbWFnZU1l
bnVFbmFibGVkKTsKLSAgICBBU1NFUlQoIWhhc0ltYWdlQ29udHJvbHMoKSk7Ci0KLSAgICBhdXRv
IGltYWdlQ29udHJvbHMgPSBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZShkb2N1
bWVudCgpKTsKLSAgICBpZiAoIWltYWdlQ29udHJvbHMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZCgqaW1hZ2VDb250cm9scyk7
Ci0KLSAgICBhdXRvKiByZW5kZXJPYmplY3QgPSByZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVy
T2JqZWN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJl
bmRlck9iamVjdCkuc2V0SGFzU2hhZG93Q29udHJvbHModHJ1ZSk7Ci19Ci0KLXZvaWQgSFRNTElt
YWdlRWxlbWVudDo6ZGVzdHJveUltYWdlQ29udHJvbHMoKQotewotICAgIGF1dG8gc2hhZG93Um9v
dCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKLSAgICBpZiAoIXNoYWRvd1Jvb3QpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8Tm9kZT4gbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0
Q2hpbGQoKSkgewotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihub2Rl
LT5pc0ltYWdlQ29udHJvbHNSb290RWxlbWVudCgpKTsKLSAgICAgICAgc2hhZG93Um9vdC0+cmVt
b3ZlQ2hpbGQoKm5vZGUpOwotICAgIH0KLQotICAgIGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRl
cmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJPYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRv
d25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyT2JqZWN0KS5zZXRIYXNTaGFkb3dDb250cm9scyhm
YWxzZSk7Ci19Ci0KLWJvb2wgSFRNTEltYWdlRWxlbWVudDo6aGFzSW1hZ2VDb250cm9scygpIGNv
bnN0Ci17Ci0gICAgaWYgKGF1dG8gc2hhZG93Um9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkg
ewotICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKTsK
LSAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgbm9kZS0+
aXNJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoKSk7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAg
IH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBIVE1MSW1hZ2VFbGVtZW50OjpjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAotewotICAgIHJl
dHVybiBoYXNTaGFkb3dSb290UGFyZW50KGNoaWxkKSAmJiBIVE1MRWxlbWVudDo6Y2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjaGlsZCk7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogLy8gRklYTUU6IFdlIHNob3VsZCBm
aW5kIGEgYmV0dGVyIHBsYWNlIGZvciB0aGUgdG91Y2ggY2FsbG91dCBsb2dpYy4gU2VlIHJkYXI6
Ly9wcm9ibGVtLzQ4OTM3NzY3LgogYm9vbCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWxsUmVzcG9uZFRv
TW91c2VDbGlja0V2ZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmlu
ZGV4IDg1NGM1NTAzYTYxODJiNmM3NWUxYzFhYzZkMjEyMzBmY2RmM2Q4ODIuLjgzZjZjZWNlNzI2
Mzc3MTI4MTMyNWQwMTg2NmI2OWE2YzVlOTI4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5oCkBAIC0xMTEsOCArMTExLDYgQEAgcHVibGljOgogICAgIGJvb2wgY2FuQ29u
dGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgY29uc3QgQXRvbVN0cmluZyYgaW1hZ2VTb3VyY2VVUkwoKSBjb25zdCBvdmVycmlkZTsKLQot
ICAgIGJvb2wgaGFzU2hhZG93Q29udHJvbHMoKSBjb25zdCB7IHJldHVybiBtX2V4cGVyaW1lbnRh
bEltYWdlTWVudUVuYWJsZWQ7IH0KICAgICAKICAgICBIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1
cmVFbGVtZW50KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQaWN0dXJlRWxlbWVudChIVE1MUGljdHVy
ZUVsZW1lbnQqKTsKQEAgLTE4NSwxNCArMTgzLDYgQEAgcHJpdmF0ZToKIAogICAgIGZsb2F0IGVm
ZmVjdGl2ZUltYWdlRGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi0gICAgdm9pZCB1cGRhdGVJbWFnZUNvbnRyb2xzKCk7Ci0gICAgdm9pZCB0
cnlDcmVhdGVJbWFnZUNvbnRyb2xzKCk7Ci0gICAgdm9pZCBkZXN0cm95SW1hZ2VDb250cm9scygp
OwotICAgIGJvb2wgaGFzSW1hZ2VDb250cm9scygpIGNvbnN0OwotICAgIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKLQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxIVE1MSW1hZ2VMb2FkZXI+IG1faW1hZ2VMb2FkZXI7CiAgICAg
V2Vha1B0cjxIVE1MRm9ybUVsZW1lbnQ+IG1fZm9ybTsKICAgICBXZWFrUHRyPEhUTUxGb3JtRWxl
bWVudD4gbV9mb3JtU2V0QnlQYXJzZXI7CkBAIC0yMDIsNyArMTkyLDYgQEAgcHJpdmF0ZToKICAg
ICBBdG9tU3RyaW5nIG1fY3VycmVudFNyYzsKICAgICBBdG9tU3RyaW5nIG1fcGFyc2VkVXNlbWFw
OwogICAgIGZsb2F0IG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvOwotICAgIGJvb2wgbV9leHBlcmlt
ZW50YWxJbWFnZU1lbnVFbmFibGVkOwogICAgIGJvb2wgbV9oYWROYW1lQmVmb3JlQXR0cmlidXRl
Q2hhbmdlZCB7IGZhbHNlIH07IC8vIEZJWE1FOiBXZSBvbmx5IG5lZWQgdGhpcyBiZWNhdXNlIHBh
cnNlQXR0cmlidXRlKCkgY2FuJ3Qgc2VlIHRoZSBvbGQgdmFsdWUuCiAgICAgYm9vbCBtX2lzRHJv
cHBlZEltYWdlUGxhY2Vob2xkZXIgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDdmZmRlODU2Yjk1MTNmM2ZmYjVlNjllNWM0NTlhNTc1NTRj
YjMzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCIKLQotI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQotCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50KTsKLQotI2lmICFQTEFURk9STShNQUMpCi1SZWY8SW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6Om1heWJlQ3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQoZG9jdW1lbnQpKTsKLX0KLSNlbmRpZgotCi1JbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQ6OkltYWdlQ29udHJvbHNSb290RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCi0g
ICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCi17Ci19Ci0K
LUltYWdlQ29udHJvbHNSb290RWxlbWVudDo6fkltYWdlQ29udHJvbHNSb290RWxlbWVudCgpID0g
ZGVmYXVsdDsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9J
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0lt
YWdlQ29udHJvbHNSb290RWxlbWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
NDEwYTQ5ZDM0ZjA0MTI2Y2VmZGE2NDAyZTY0YjQ5OTM2Y2RhY2IzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCi0KLSNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIERvY3VtZW50OwotCi1jbGFzcyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQgOiBw
dWJsaWMgSFRNTERpdkVsZW1lbnQgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50KTsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnQoKTsKLQotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50PiB0cnlDcmVhdGUoRG9jdW1lbnQmKTsKLQotcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IElt
YWdlQ29udHJvbHNSb290RWxlbWVudChEb2N1bWVudCYpOwotCi1wcml2YXRlOgotICAgIGJvb2wg
aXNJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1ODRlYzYzZmIxYmE3NDhlM2RmOWE5Yzc2NDNmYWVlN2Y3YmU0MTkw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIgotCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLSNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAi
SFRNTERpdkVsZW1lbnQuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxv
Y2tGbG93LmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYyk7Ci0KLWNsYXNzIFJlbmRlckltYWdl
Q29udHJvbHNCdXR0b24gZmluYWwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKLSAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uKTsKLXB1
YmxpYzoKLSAgICBSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uKEhUTUxFbGVtZW50JiwgUmVuZGVy
U3R5bGUmJik7Ci0gICAgdmlydHVhbCB+UmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbigpOwotCi1w
cml2YXRlOgotICAgIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgb3ZlcnJpZGU7Ci0gICAgTG9n
aWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQg
bG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBvdmVycmlkZTsKLQot
ICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVu
ZGVySW1hZ2VDb250cm9sc0J1dHRvbiI7IH0KLX07Ci0KLVJlbmRlckltYWdlQ29udHJvbHNCdXR0
b246OlJlbmRlckltYWdlQ29udHJvbHNCdXR0b24oSFRNTEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRl
clN0eWxlJiYgc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGTW92ZShz
dHlsZSkpCi17Ci19Ci0KLVJlbmRlckltYWdlQ29udHJvbHNCdXR0b246On5SZW5kZXJJbWFnZUNv
bnRyb2xzQnV0dG9uKCkgPSBkZWZhdWx0OwotCi12b2lkIFJlbmRlckltYWdlQ29udHJvbHNCdXR0
b246OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCi17Ci0gICAgUmVuZGVyQm94Ojp1cGRhdGVMb2dpY2Fs
V2lkdGgoKTsKLQotICAgIEludFNpemUgZnJhbWVTaXplID0gdGhlbWUoKS5pbWFnZUNvbnRyb2xz
QnV0dG9uU2l6ZSgqdGhpcyk7Ci0gICAgc2V0TG9naWNhbFdpZHRoKGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyBmcmFtZVNpemUud2lkdGgoKSA6IGZyYW1lU2l6ZS5oZWlnaHQoKSk7Ci19Ci0K
LVJlbmRlckJveDo6TG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIFJlbmRlckltYWdlQ29udHJv
bHNCdXR0b246OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwg
TGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdAotewotICAgIGF1dG8gY29tcHV0ZWRWYWx1ZXMg
PSBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxU
b3ApOwotICAgIEludFNpemUgZnJhbWVTaXplID0gdGhlbWUoKS5pbWFnZUNvbnRyb2xzQnV0dG9u
U2l6ZSgqdGhpcyk7Ci0gICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gZnJhbWVTaXplLmhlaWdodCgpIDogZnJhbWVTaXplLndpZHRoKCk7Ci0g
ICAgcmV0dXJuIGNvbXB1dGVkVmFsdWVzOwotfQotCi1JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYzo6SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQot
ICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQotewotfQot
Ci1JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6fkltYWdlQ29udHJvbHNCdXR0b25FbGVt
ZW50TWFjKCkgPSBkZWZhdWx0OwotCi1SZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWM+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjp0cnlDcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQotewotICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4LXdlYmtpdC1pbWFnZS1jb250
cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0KLSAgICBh
dXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMo
ZG9jdW1lbnQpKTsKLSAgICBidXR0b24tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJraXRJbWFnZUNvbnRyb2xzQnV0dG9uTmFtZSk7
Ci0KLSAgICBJbnRTaXplIHBvc2l0aW9uT2Zmc2V0ID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigp
LmltYWdlQ29udHJvbHNCdXR0b25Qb3NpdGlvbk9mZnNldCgpOwotICAgIGJ1dHRvbi0+c2V0SW5s
aW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwgcG9zaXRpb25PZmZzZXQuaGVpZ2h0KCks
IENTU1VuaXRUeXBlOjpDU1NfUFgpOwotCi0gICAgLy8gRklYTUU6IFdoeSBpcyByaWdodDogMHB4
IG9mZiB0aGUgcmlnaHQgZWRnZSBvZiB0aGUgcGFyZW50PwotICAgIGJ1dHRvbi0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVJpZ2h0LCBwb3NpdGlvbk9mZnNldC53aWR0aCgpLCBD
U1NVbml0VHlwZTo6Q1NTX1BYKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKGJ1dHRvbik7Ci19Ci0K
LXZvaWQgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQmIGV2ZW50KQotewotICAgIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNs
aWNrRXZlbnQpIHsKLSAgICAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCkuZnJh
bWUoKTsKLSAgICAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7Ci0gICAgICAgIGlmICghcGFnZSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS5zaG93SW1hZ2VDb250cm9sc01lbnUoZXZlbnQpOwotICAgICAgICBldmVudC5zZXREZWZhdWx0
SGFuZGxlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSFRNTERpdkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwotfQotCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQotewotICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uPigqdGhpcywgV1RG
TW92ZShzdHlsZSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxOWMxMDJkNmExODhhNTcwNmQ4ZmI0OGUzMWFjNjA1
NmI4ZDMyM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgotCi0jaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewotICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMpOwotcHVi
bGljOgotICAgIHZpcnR1YWwgfkltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKCk7Ci0KLSAg
ICBzdGF0aWMgUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiB0cnlDcmVhdGUo
RG9jdW1lbnQmKTsKLQotcHJpdmF0ZToKLSAgICBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
YyhEb2N1bWVudCYpOwotCi0gICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Jikgb3Zl
cnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKLQot
ICAgIGJvb2wgaXNJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FhNDU0OWMxM2M4NzUxNzU1MGIzZjcxZjM4NDk3
ODJiNmQwYjg5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
TWFjLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5o
IgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLSNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyQmxvY2tGbG93LmgiCi0jaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYyk7Ci0KLWNsYXNzIFJlbmRlckltYWdlQ29udHJvbHMgZmluYWwg
OiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lO
TElORShSZW5kZXJJbWFnZUNvbnRyb2xzKTsKLXB1YmxpYzoKLSAgICBSZW5kZXJJbWFnZUNvbnRy
b2xzKEhUTUxFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgdmlydHVhbCB+UmVuZGVySW1h
Z2VDb250cm9scygpOwotCi1wcml2YXRlOgotICAgIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkg
b3ZlcnJpZGU7Ci0gICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBj
b25zdCBvdmVycmlkZTsKLQotICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiUmVuZGVySW1hZ2VDb250cm9scyI7IH0KLX07Ci0KLVJlbmRlckltYWdl
Q29udHJvbHM6OlJlbmRlckltYWdlQ29udHJvbHMoSFRNTEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRl
clN0eWxlJiYgc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGTW92ZShz
dHlsZSkpCi17Ci19Ci0KLVJlbmRlckltYWdlQ29udHJvbHM6On5SZW5kZXJJbWFnZUNvbnRyb2xz
KCkgPSBkZWZhdWx0OwotCi12b2lkIFJlbmRlckltYWdlQ29udHJvbHM6OnVwZGF0ZUxvZ2ljYWxX
aWR0aCgpCi17Ci0gICAgUmVuZGVyQm94Ojp1cGRhdGVMb2dpY2FsV2lkdGgoKTsKLQotICAgIFJl
bmRlckVsZW1lbnQqIHJlbmRlcmVyID0gZWxlbWVudCgpLT5zaGFkb3dIb3N0KCktPnJlbmRlcmVy
KCk7Ci0gICAgaWYgKCFpczxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgc2V0TG9naWNhbFdpZHRoKGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIp
LmxvZ2ljYWxXaWR0aCgpKTsKLX0KLQotUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRW
YWx1ZXMgUmVuZGVySW1hZ2VDb250cm9sczo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0Ci17Ci0gICAgYXV0
byBjb21wdXRlZFZhbHVlcyA9IFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQobG9naWNh
bEhlaWdodCwgbG9naWNhbFRvcCk7Ci0gICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBlbGVt
ZW50KCktPnNoYWRvd0hvc3QoKS0+cmVuZGVyZXIoKTsKLSAgICBpZiAoIWlzPFJlbmRlckltYWdl
PigqcmVuZGVyZXIpKQotICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZXM7Ci0KLSAgICBjb21w
dXRlZFZhbHVlcy5tX2V4dGVudCA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmxv
Z2ljYWxIZWlnaHQoKTsKLSAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZXM7Ci19Ci0KLVJlZlB0cjxJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudDo6dHJ5Q3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQt
aW1hZ2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0KLSAg
ICBSZWY8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpu
ZXcgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7Ci0gICAgY29udHJvbHMt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIs
IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSk7Ci0KLSAgICBpZiAoUmVmUHRyPEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjPiBidXR0b24gPSBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yzo6dHJ5Q3JlYXRlKGRvY3VtZW50KSkKLSAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKCpi
dXR0b24pOwotCi0gICAgcmV0dXJuIFdURk1vdmUoY29udHJvbHMpOwotfQotCi1JbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnRNYWM6OkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhEb2N1bWVudCYg
ZG9jdW1lbnQpCi0gICAgOiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoZG9jdW1lbnQpCi17Ci19
Ci0KLUltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6fkltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYygpID0gZGVmYXVsdDsKLQotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlckltYWdlQ29udHJvbHM+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
YjAyYjQwMjQzZjFiNzBjMGRmMTQ5OGI2ZDFmZjcyZGVhODBjZDI2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkltYWdlQ29u
dHJvbHNSb290RWxlbWVudC5oIgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjIGZp
bmFsIDogcHVibGljIEltYWdlQ29udHJvbHNSb290RWxlbWVudCB7Ci0gICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMpOwotICAgIGZyaWVuZCBjbGFz
cyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjKCk7Ci0KLXByaXZhdGU6Ci0gICAgSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50TWFjKERvY3VtZW50Jik7Ci0KLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvaW1hZ2VDb250cm9sc01hYy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvaW1hZ2VDb250cm9sc01hYy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFiMzkzZGFjN2MzYWU3NDk5ZjhlMGU2YTBiMDVhZTBjNzU1Y2M0YmUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL2ltYWdlQ29udHJvbHNNYWMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNDUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09O
VFJPTFMpICYmIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTCi0KLS54LXdlYmtpdC1pbWFnZS1jb250
cm9scyB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0ueC13ZWJraXQtaW1hZ2UtY29u
dHJvbHMtYnV0dG9uIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0KLSAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IGltYWdlLWNvbnRyb2xzLWJ1dHRvbjsKLQotICAgIHRyYW5zaXRpb246IG9wYWNp
dHkgMC4yNXM7Ci0gICAgb3BhY2l0eTogMDsKLX0KLQotLngtd2Via2l0LWltYWdlLWNvbnRyb2xz
OmhvdmVyIC54LXdlYmtpdC1pbWFnZS1jb250cm9scy1idXR0b24gewotICAgIG9wYWNpdHk6IDEu
MDsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAKaW5kZXggZWY5ZjM2N2U5OTM1ZWFlMzQ1MzNhY2JiMTRmMDBhZTE1OGI3YThjZC4u
NGFlZDcxZTdlZDFlMDQ2MzVlZDE3YTU2MTlkNWQ4ZTcxMGU4MDQyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtMTM1LDIxICsxMzUsNiBA
QCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVu
dCwgQ29udGV4dE1lbnVQcm92aWRlciYgcAogICAgIHNob3dDb250ZXh0TWVudShldmVudCk7CiB9
CiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLQotc3RhdGljIEltYWdlKiBpbWFnZUZy
b21JbWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCi17Ci0gICAgYXV0byogcmVuZGVyZXIgPSBu
b2RlLnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRlcklt
YWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7Ci0gICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+
ZXJyb3JPY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gaW1h
Z2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwotfQotCi0jZW5kaWYKLQogc3RkOjp1bmlx
dWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29u
dGV4dE1lbnUoRXZlbnQmIGV2ZW50KQogewogICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQp
KQpAQCAtMTcwLDE2ICsxNTUsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRl
eHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogCiAgICAgbV9j
b250ZXh0ID0gQ29udGV4dE1lbnVDb250ZXh0KHJlc3VsdCk7CiAKLSNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKLSAgICBpZiAobm9kZS5pc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgq
cmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkKLSAgICAgICAgICAgIG1fY29udGV4dC5zZXRD
b250cm9sbGVkSW1hZ2UoaW1hZ2UpOwotCi0gICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBjb3VsZG4n
dCBnZXQgdGhlIGltYWdlIHRoZW4gd2Ugc2hvdWxkbid0IHRyeSB0byBzaG93IHRoZSBpbWFnZSBj
b250cm9scyBtZW51IGZvciBpdC4KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotI2Vu
ZGlmCi0KICAgICByZXR1cm4gbWFrZVVuaXF1ZTxDb250ZXh0TWVudT4oKTsKIH0KIApAQCAtMTQ5
NywxNyArMTQ3Miw2IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1l
bnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAKICNlbmRpZgogCi0jaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpz
aG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmIGV2ZW50KQotewotICAgIGNsZWFyQ29udGV4dE1l
bnUoKTsKLSAgICBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKLSAgICBtX2NsaWVudC5z
aG93Q29udGV4dE1lbnUoKTsKLX0KLQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250cm9sbGVyLmgKaW5kZXggODk4ZDBiZWJkYjg2NzFiMGY4ZDQ2ZmI4YjFk
NmVmNDNkMDFkYjgxYS4uNDA0NzkzNThmZmI3ZTJmZTUyMzViNjg0ODM4MDVkODRjMjkwZDY5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCkBAIC02Niwx
MCArNjYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnVBdChGcmFtZSYsIGNv
bnN0IEludFBvaW50JiBjbGlja1BvaW50KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCi0gICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmKTsKLSNlbmRp
ZgotCiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVh
dGVDb250ZXh0TWVudShFdmVudCYpOwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuY3BwCmluZGV4IGNkYjJiMTJiYjkzZTZl
YTZkYmFiMDE4MGQ4ODEwZDAzNjk3MzM0YWEuLmQ5ODk3ZTM4M2QyNDdlMmIzZWZmYWM4YjJmYTIz
NGFhODc1NDVjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlw
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuY3BwCkBAIC05
MCw5ICs5MCw2IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbnRy
b2xQYXJ0IGNvbnRyb2xQYXJ0KQogICAgIGNhc2UgQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRp
Y2F0b3JQYXJ0OiB0cyA8PCAiY29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3ItcGFy
dCI7IGJyZWFrOwogICAgIGNhc2UgRGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDog
dHMgPDwgImRpc2NyZXRlLWNhcGFjaXR5LWxldmVsLWluZGljYXRvci1wYXJ0IjsgYnJlYWs7CiAg
ICAgY2FzZSBSYXRpbmdMZXZlbEluZGljYXRvclBhcnQ6IHRzIDw8ICJyYXRpbmctbGV2ZWwtaW5k
aWNhdG9yLXBhcnQiOyBicmVhazsKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBj
YXNlIEltYWdlQ29udHJvbHNCdXR0b25QYXJ0OiB0cyA8PCAiaW1hZ2UtY29udHJvbHMtYnV0dG9u
LXBhcnQiOyBicmVhazsKLSNlbmRpZgogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgY2FzZSBB
cHBsZVBheUJ1dHRvblBhcnQ6IHRzIDw8ICJhcHBsZS1wYXktYnV0dG9uLXBhcnQiOyBicmVhazsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCmluZGV4IGMyODc1ZTNiNGFm
YmNkODMzOTJmMzA0NjZlMDdiYjI2OWI2ODRjOGYuLjRlNDQwNTVlYjNjYjhmNWFkMzIzYmM5YTg1
N2Q3NGMzZjVlMTllYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1l
VHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKQEAgLTkw
LDkgKzkwLDYgQEAgZW51bSBDb250cm9sUGFydCB7CiAgICAgQ29udGludW91c0NhcGFjaXR5TGV2
ZWxJbmRpY2F0b3JQYXJ0LAogICAgIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQs
CiAgICAgUmF0aW5nTGV2ZWxJbmRpY2F0b3JQYXJ0LAotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQotICAgIEltYWdlQ29udHJvbHNCdXR0b25QYXJ0LAotI2VuZGlmCiAjaWYgRU5BQkxFKEFQ
UExFX1BBWSkKICAgICBBcHBsZVBheUJ1dHRvblBhcnQsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDBlMWRiNDBmMTRjOTdlNzU0MTMyMjZmMTVh
NGNkNDliOGYwMTQwNzEuLjI5OTNkZTkwNTA2N2IyYTQxOTE2M2JlODNiODEwYThlMGQyZTMzOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMTQxLDggKzE0
MSw2IEBAIFJlbmRlckltYWdlOjpSZW5kZXJJbWFnZShFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJT
dHlsZSYmIHN0eWxlLCBTdHlsZUltYWdlKiBzdHlsCiAgICAgLCBtX2ltYWdlRGV2aWNlUGl4ZWxS
YXRpbyhpbWFnZURldmljZVBpeGVsUmF0aW8pCiB7CiAgICAgdXBkYXRlQWx0VGV4dCgpOwotICAg
IGlmIChpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KSkKLSAgICAgICAgbV9oYXNTaGFkb3dD
b250cm9scyA9IGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQpLmhhc1NoYWRvd0Nv
bnRyb2xzKCk7CiB9CiAKIFJlbmRlckltYWdlOjpSZW5kZXJJbWFnZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlbmRlclN0eWxlJiYgc3R5bGUsIFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA4YzE5NzAyMDdjMDMxYmI0MGYz
ZjRhOTljMDczYmE3NDJlMjE4NWI1Li4yOGM4N2JiZTcxODJjYWQ0NmViYWY3ZTA2YThhMDFmOTA2
ZGVlMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTI1
NSwxMCArMjU1LDYgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUoUmVuZGVyU3R5bGUm
IHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdAogICAgIGNhc2UgRGlzY3JldGVD
YXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDoKICAgICBjYXNlIFJhdGluZ0xldmVsSW5kaWNhdG9y
UGFydDoKICAgICAgICAgcmV0dXJuIGFkanVzdE1ldGVyU3R5bGUoc3R5bGUsIGVsZW1lbnQpOwot
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9sc0J1dHRv
blBhcnQ6Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRv
clBhcnQ6CiAgICAgICAgIHJldHVybiBhZGp1c3RDYXBzTG9ja0luZGljYXRvclN0eWxlKHN0eWxl
LCBlbGVtZW50KTsKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNDE1LDEwICs0MTEsNiBAQCBi
b29sIFJlbmRlclRoZW1lOjpwYWludChjb25zdCBSZW5kZXJCb3gmIGJveCwgQ29udHJvbFN0YXRl
cyYgY29udHJvbFN0YXRlcywgY29ucwogICAgICAgICByZXR1cm4gcGFpbnRTZWFyY2hGaWVsZFJl
c3VsdHNEZWNvcmF0aW9uUGFydChib3gsIHBhaW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7
CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0OgogICAgICAgICByZXR1cm4g
cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oYm94LCBwYWludEluZm8sIGludGVncmFsU25h
cHBlZFJlY3QpOwotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VD
b250cm9sc0J1dHRvblBhcnQ6Ci0gICAgICAgIHJldHVybiBwYWludEltYWdlQ29udHJvbHNCdXR0
b24oYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBlZFJlY3QpOwotI2VuZGlmCiAgICAgY2Fz
ZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6CiAgICAgICAgIHJldHVybiBwYWludENhcHNMb2NrSW5k
aWNhdG9yKGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKICNpZiBFTkFCTEUo
QVBQTEVfUEFZKQpAQCAtNDgxLDkgKzQ3Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50Qm9y
ZGVyT25seShjb25zdCBSZW5kZXJCb3gmIGJveCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluCiAg
ICAgY2FzZSBTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0OgogICAgIGNhc2UgU2VhcmNoRmllbGRS
ZXN1bHRzRGVjb3JhdGlvblBhcnQ6CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25Q
YXJ0OgotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9s
c0J1dHRvblBhcnQ6Ci0jZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
CkBAIC01NTUsOSArNTQ0LDYgQEAgdm9pZCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyhj
b25zdCBSZW5kZXJCb3gmIGJveCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEkKICAgICBjYXNlIFNl
YXJjaEZpZWxkRGVjb3JhdGlvblBhcnQ6CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNEZWNv
cmF0aW9uUGFydDoKICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0jaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgY2FzZSBJbWFnZUNvbnRyb2xzQnV0dG9uUGFy
dDoKLSNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggNjA4ZTBlOTM3ODM4MGViODhlNjgxZmRj
ZTgxYzkxODRlM2ZmYjFjOS4uNzRkNmZkOWRjZGNlN2M3NjMwZjA0ZjY1YzdkMWQwNjA0NzdkYWQy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTk0LDkgKzk0LDYg
QEAgcHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFN0cmlu
ZyBleHRyYUZ1bGxTY3JlZW5TdHlsZVNoZWV0KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KICNlbmRp
ZgotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwgU3RyaW5nIGltYWdl
Q29udHJvbHNTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KLSNlbmRpZgog
I2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIFN0cmluZyBkYXRhTGlzdFN0eWxlU2hl
ZXQoKSBjb25zdDsKICNlbmRpZgpAQCAtMjQ4LDExICsyNDUsNiBAQCBwdWJsaWM6CiAgICAgZW51
bSBGaWxlVXBsb2FkRGVjb3JhdGlvbnMgeyBTaW5nbGVGaWxlLCBNdWx0aXBsZUZpbGVzIH07CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5k
ZXJPYmplY3QmIC8qaW5wdXRSZW5kZXJlciovLCBjb25zdCBSZW5kZXJPYmplY3QmIC8qYnV0dG9u
UmVuZGVyZXIqLywgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYsIEljb24qLCBGaWxl
VXBsb2FkRGVjb3JhdGlvbnMpIHsgfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0g
ICAgdmlydHVhbCBJbnRTaXplIGltYWdlQ29udHJvbHNCdXR0b25TaXplKGNvbnN0IFJlbmRlck9i
amVjdCYpIGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQotICAgIHZpcnR1YWwgSW50U2l6ZSBp
bWFnZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25PZmZzZXQoKSBjb25zdCB7IHJldHVybiBJbnRTaXpl
KCk7IH0KLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2aXJ0
dWFsIExheW91dFNpemUgYXR0YWNobWVudEludHJpbnNpY1NpemUoY29uc3QgUmVuZGVyQXR0YWNo
bWVudCYpIGNvbnN0IHsgcmV0dXJuIExheW91dFNpemUoKTsgfQogICAgIHZpcnR1YWwgaW50IGF0
dGFjaG1lbnRCYXNlbGluZShjb25zdCBSZW5kZXJBdHRhY2htZW50JikgY29uc3QgeyByZXR1cm4g
LTE7IH0KQEAgLTQwNiwxMCArMzk4LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBw
YWludE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBib29sIHBhaW50TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWIoY29uc3Qg
UmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJu
IHRydWU7IH0KIAotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwgYm9v
bCBwYWludEltYWdlQ29udHJvbHNCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KLSNlbmRpZgotCiBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVDb250cm9sU3RhdGVzRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVy
Qm94JiwgQ29udHJvbFN0YXRlcyYpIGNvbnN0OwogICAgIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBl
eHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCAwN2VmNWJk
ZmViYTI2NGE1MTcyYThmYTZkOWFmMjZjMzE5ODRiMDg2Li42MTFkY2VkYzEyMDBiZjRhYWQ1MjMw
YzAxZDM5Zjg4NjEzYzkyMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaApAQCAtMTEyLDEwICsxMTIsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtZWRpYUNv
bnRyb2xzQmFzZTY0U3RyaW5nRm9ySWNvbk5hbWVBbmRUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
LSAgICBTdHJpbmcgaW1hZ2VDb250cm9sc1N0eWxlU2hlZXQoKSBjb25zdCBmaW5hbDsKLSNlbmRp
ZgotCiAgICAgYm9vbCBwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGFkanVzdFRleHRG
aWVsZFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IGZpbmFsOwogCkBA
IC0yMjIsMTQgKzIxOCw2IEBAIHByaXZhdGU6CiAgICAgY29uc3QgSW50U2l6ZSogcHJvZ3Jlc3NC
YXJTaXplcygpIGNvbnN0OwogICAgIGNvbnN0IGludCogcHJvZ3Jlc3NCYXJNYXJnaW5zKE5TQ29u
dHJvbFNpemUpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgYm9v
bCBwYWludEltYWdlQ29udHJvbHNCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwotICAgIEludFNpemUgaW1hZ2VDb250cm9s
c0J1dHRvblNpemUoY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3QgZmluYWw7Ci0gICAgSW50U2l6
ZSBpbWFnZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25PZmZzZXQoKSBjb25zdCBmaW5hbDsKLQotICAg
IE5TU2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwgKnNlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxs
KCkgY29uc3Q7Ci0jZW5kaWYKLQogICAgIG11dGFibGUgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25D
ZWxsPiBtX3BvcHVwQnV0dG9uOwogICAgIG11dGFibGUgUmV0YWluUHRyPE5TU2VhcmNoRmllbGRD
ZWxsPiBtX3NlYXJjaDsKICAgICBtdXRhYmxlIFJldGFpblB0cjxOU01lbnU+IG1fc2VhcmNoTWVu
dVRlbXBsYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmlu
ZGV4IDc0YWYwMjgxZTEyN2U0MmY0YWI0MWQ4M2E4MTQ1YTM4YjQ3OTMzNDguLjFiNTk0NWNiYzNm
YzNlMzg4MTMxNjNmOGU1MmMzZmM5NWU1Njg0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTg5LDE5ICs4OSwxMCBAQAogLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGdvIGludG8gYW4gU1BJLmggZmlsZSBpbiB0aGUgc3BpIGRpcmVjdG9yeS4KICNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdERlZmluZXNfUHJp
dmF0ZS5oPgotI2ltcG9ydCA8QXBwS2l0L05TU2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwuaD4K
ICNlbHNlCiAjZGVmaW5lIEFQUEtJVF9QUklWQVRFX0NMQVNTCi1AaW50ZXJmYWNlIE5TU2Vydmlj
ZXNSb2xsb3ZlckJ1dHRvbkNlbGwgOiBOU0J1dHRvbkNlbGwKLUBlbmQKICNlbmRpZgogCi0vLyBG
SVhNRTogVGhpcyBzaG91bGQgZ28gaW50byBhbiBTUEkuaCBmaWxlIGluIHRoZSBzcGkgZGlyZWN0
b3J5LgotQGludGVyZmFjZSBOU1NlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsICgpCi0rIChOU1Nl
cnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsICopc2VydmljZVJvbGxvdmVyQnV0dG9uQ2VsbEZvclN0
eWxlOihOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU3R5bGUpc3R5bGU7Ci0tIChOU1JlY3QpcmVjdEZv
ckJvdW5kczooTlNSZWN0KWJvdW5kcyBwcmVmZXJyZWRFZGdlOihOU1JlY3RFZGdlKXByZWZlcnJl
ZEVkZ2U7Ci1AZW5kCi0KICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKIAogLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGdvIGludG8gYW4gU1BJLmggZmlsZSBpbiB0aGUgc3BpIGRpcmVj
dG9yeS4KQEAgLTM2MCwxNSArMzUxLDYgQEAgU3RyaW5nIFJlbmRlclRoZW1lTWFjOjptZWRpYUNv
bnRyb2xzQmFzZTY0U3RyaW5nRm9ySWNvbk5hbWVBbmRUeXBlKGNvbnN0IFN0cmluZyYKICAgICBy
ZXR1cm4gW1tOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNv
dXJjZTppY29uTmFtZSBvZlR5cGU6aWNvblR5cGUgaW5EaXJlY3Rvcnk6ZGlyZWN0b3J5XV0gYmFz
ZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdOwogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCi0KLVN0cmluZyBSZW5kZXJUaGVtZU1hYzo6aW1hZ2VDb250cm9sc1N0eWxlU2hl
ZXQoKSBjb25zdAotewotICAgIHJldHVybiBTdHJpbmcoaW1hZ2VDb250cm9sc01hY1VzZXJBZ2Vu
dFN0eWxlU2hlZXQsIHNpemVvZihpbWFnZUNvbnRyb2xzTWFjVXNlckFnZW50U3R5bGVTaGVldCkp
OwotfQotCi0jZW5kaWYKLQogQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRp
b25zKSBjb25zdAogewogICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBl
YXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVh
cmFuY2UpKTsKQEAgLTIyNzUsNTYgKzIyNTcsNiBAQCBTdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmZp
bGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IEZpbGVMaXN0KiBmaWxlTGlzdCwgY29uc3QgRm9udAog
ICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0clRvVHJ1bmNhdGUs
IHdpZHRoLCBmb250KTsKIH0KIAotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotTlNTZXJ2
aWNlc1JvbGxvdmVyQnV0dG9uQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNlcnZpY2VzUm9sbG92ZXJC
dXR0b25DZWxsKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2VydmljZXNSb2xsb3ZlckJ1dHRvbikg
ewotICAgICAgICBtX3NlcnZpY2VzUm9sbG92ZXJCdXR0b24gPSBbTlNTZXJ2aWNlc1JvbGxvdmVy
QnV0dG9uQ2VsbCBzZXJ2aWNlUm9sbG92ZXJCdXR0b25DZWxsRm9yU3R5bGU6TlNTaGFyaW5nU2Vy
dmljZVBpY2tlclN0eWxlUm9sbG92ZXJdOwotICAgICAgICBbbV9zZXJ2aWNlc1JvbGxvdmVyQnV0
dG9uIHNldEJlemVsU3R5bGU6TlNCZXplbFN0eWxlUm91bmRlZERpc2Nsb3N1cmVdOwotICAgICAg
ICBbbV9zZXJ2aWNlc1JvbGxvdmVyQnV0dG9uIHNldEJ1dHRvblR5cGU6TlNCdXR0b25UeXBlUHVz
aE9uUHVzaE9mZl07Ci0gICAgICAgIFttX3NlcnZpY2VzUm9sbG92ZXJCdXR0b24gc2V0SW1hZ2VQ
b3NpdGlvbjpOU0ltYWdlT25seV07Ci0gICAgICAgIFttX3NlcnZpY2VzUm9sbG92ZXJCdXR0b24g
c2V0U3RhdGU6Tk9dOwotICAgIH0KLQotICAgIHJldHVybiBtX3NlcnZpY2VzUm9sbG92ZXJCdXR0
b24uZ2V0KCk7Ci19Ci0KLWJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50SW1hZ2VDb250cm9sc0J1
dHRvbihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBjb25zdCBQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9
IFBhaW50UGhhc2U6OkJsb2NrQmFja2dyb3VuZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAg
ICBOU1NlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsICpjZWxsID0gc2VydmljZXNSb2xsb3ZlckJ1
dHRvbkNlbGwoKTsKLQotICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRl
eHQocGFpbnRJbmZvLmNvbnRleHQoKSk7Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKHBhaW50SW5mby5jb250ZXh0KCkpOwotCi0gICAgcGFpbnRJbmZvLmNvbnRleHQo
KS50cmFuc2xhdGUocmVjdC5sb2NhdGlvbigpKTsKLQotICAgIEludFJlY3QgaW5uZXJGcmFtZShJ
bnRQb2ludCgpLCByZWN0LnNpemUoKSk7Ci0gICAgW2NlbGwgZHJhd1dpdGhGcmFtZTppbm5lckZy
YW1lIGluVmlldzpkb2N1bWVudFZpZXdGb3IocmVuZGVyZXIpXTsKLSAgICBbY2VsbCBzZXRDb250
cm9sVmlldzpuaWxdOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUludFNpemUgUmVuZGVyVGhl
bWVNYWM6OmltYWdlQ29udHJvbHNCdXR0b25TaXplKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIEludFNpemUoc2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwoKS5jZWxs
U2l6ZSk7Ci19Ci0KLUludFNpemUgUmVuZGVyVGhlbWVNYWM6OmltYWdlQ29udHJvbHNCdXR0b25Q
b3NpdGlvbk9mZnNldCgpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGUgb2Zm
c2V0cyB3aWxsIGFsd2F5cyBiZSB0aGUgc2FtZSBubyBtYXR0ZXIgd2hhdCBpbWFnZSByZWN0IHlv
dSB0cnkgd2l0aC4KLSAgICAvLyBUaGlzIG1heSBub3QgYWx3YXlzIGJlIHRydWUgaW4gdGhlIGZ1
dHVyZS4KLSAgICBzdGF0aWMgY29uc3QgaW50IGR1bW15RGltZW5zaW9uID0gMTAwOwotICAgIElu
dFJlY3QgZHVtbXlJbWFnZVJlY3QoMCwgMCwgZHVtbXlEaW1lbnNpb24sIGR1bW15RGltZW5zaW9u
KTsKLSAgICBOU1JlY3QgYm91bmRzID0gW3NlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsKCkgcmVj
dEZvckJvdW5kczpkdW1teUltYWdlUmVjdCBwcmVmZXJyZWRFZGdlOk5TTWluWUVkZ2VdOwotCi0g
ICAgcmV0dXJuIEludFNpemUoZHVtbXlEaW1lbnNpb24gLSBib3VuZHMub3JpZ2luLngsIGJvdW5k
cy5vcmlnaW4ueSk7Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
CiBjb25zdCBDR0Zsb2F0IGF0dGFjaG1lbnRJY29uU2l6ZSA9IDQ4OwogY29uc3QgQ0dGbG9hdCBh
dHRhY2htZW50SWNvbkJhY2tncm91bmRQYWRkaW5nID0gNjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Vz
ZXJBZ2VudFN0eWxlLmNwcAppbmRleCAzYTRiNjAzYzJiMWY3MTFhODdjZDk2NGQzZTI2OTk3YTY2
MWI2YzJjLi5lYTY4NjgwNzE5NThkNGYwNDEzODU2ZGRhMTNkODZjNWQzYWNlNjBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Vc2VyQWdlbnRTdHlsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvVXNlckFnZW50U3R5bGUuY3BwCkBAIC03NSw3ICs3NSw2IEBAIFN0eWxl
U2hlZXRDb250ZW50cyogVXNlckFnZW50U3R5bGU6Om1hdGhNTFN0eWxlU2hlZXQ7CiBTdHlsZVNo
ZWV0Q29udGVudHMqIFVzZXJBZ2VudFN0eWxlOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVldDsKIFN0
eWxlU2hlZXRDb250ZW50cyogVXNlckFnZW50U3R5bGU6OmZ1bGxzY3JlZW5TdHlsZVNoZWV0Owog
U3R5bGVTaGVldENvbnRlbnRzKiBVc2VyQWdlbnRTdHlsZTo6cGx1Z0luc1N0eWxlU2hlZXQ7Ci1T
dHlsZVNoZWV0Q29udGVudHMqIFVzZXJBZ2VudFN0eWxlOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVl
dDsKIFN0eWxlU2hlZXRDb250ZW50cyogVXNlckFnZW50U3R5bGU6Om1lZGlhUXVlcnlTdHlsZVNo
ZWV0OwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogU3R5bGVTaGVldENvbnRlbnRzKiBV
c2VyQWdlbnRTdHlsZTo6ZGF0YUxpc3RTdHlsZVNoZWV0OwpAQCAtMTg2LDE1ICsxODUsNiBAQCB2
b2lkIFVzZXJBZ2VudFN0eWxlOjplbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoVklERU8pCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgICAgIGVs
c2UgaWYgKGlzPEhUTUxEaXZFbGVtZW50PihlbGVtZW50KSAmJiBlbGVtZW50LmlzSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIGlmICghaW1hZ2VDb250cm9sc1N0eWxl
U2hlZXQpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgaW1hZ2VDb250cm9sc1J1bGVzID0gUmVu
ZGVyVGhlbWU6OnNpbmdsZXRvbigpLmltYWdlQ29udHJvbHNTdHlsZVNoZWV0KCk7Ci0gICAgICAg
ICAgICAgICAgaW1hZ2VDb250cm9sc1N0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoaW1hZ2VDb250
cm9sc1J1bGVzKTsKLSAgICAgICAgICAgICAgICBhZGRUb0RlZmF1bHRTdHlsZSgqaW1hZ2VDb250
cm9sc1N0eWxlU2hlZXQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAg
ICAgIGVsc2UgaWYgKCFkYXRhTGlzdFN0eWxlU2hlZXQgJiYgaXM8SFRNTERhdGFMaXN0RWxlbWVu
dD4oZWxlbWVudCkpIHsKICAgICAgICAgICAgIGRhdGFMaXN0U3R5bGVTaGVldCA9IHBhcnNlVUFT
aGVldChSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZGF0YUxpc3RTdHlsZVNoZWV0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvVXNlckFnZW50U3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmgKaW5kZXggZmNkNGQ5ODI3NDZjNmY4ZjhhZDMw
NjQ3MTg3MTQ4YmE3NjIwMmQ3Yy4uZTZmMGFhYTU0YzFlMzA2OWJmN2M0MjZmZDdiYTIwMjcwYzZl
YzJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvVXNlckFnZW50U3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Vc2VyQWdlbnRTdHlsZS5oCkBAIC00Niw3ICs0Niw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBtZWRpYUNvbnRyb2xz
U3R5bGVTaGVldDsKICAgICBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBmdWxsc2NyZWVuU3R5
bGVTaGVldDsKICAgICBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwbHVnSW5zU3R5bGVTaGVl
dDsKLSAgICBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBpbWFnZUNvbnRyb2xzU3R5bGVTaGVl
dDsKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBzdGF0aWMgU3R5bGVTaGVldENv
bnRlbnRzKiBkYXRhTGlzdFN0eWxlU2hlZXQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5d29y
ZENvbXBsZXRpb25zLmpzCmluZGV4IDM3NjVkOWEwYzVjNTgzZDI4ODdmZDQyZDdmMWEwOGIzZWMy
OTJkNmEuLjQ4YmM0YmY4YjIwYzA2YjNjN2U1OWVmMjk0YmU2MWU4MWNjMmJiODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NLZXl3b3Jk
Q29tcGxldGlvbnMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU0tleXdvcmRDb21wbGV0aW9ucy5qcwpAQCAtODQ1LDcgKzg0NSw3IEBAIFdJLkNT
U0tleXdvcmRDb21wbGV0aW9ucy5fcHJvcGVydHlLZXl3b3JkTWFwID0gewogICAgICAgICAiZWFz
ZSIsICJsaW5lYXIiLCAiZWFzZS1pbiIsICJlYXNlLW91dCIsICJlYXNlLWluLW91dCIsICJzdGVw
LXN0YXJ0IiwgInN0ZXAtZW5kIiwgInN0ZXBzKCkiLCAiY3ViaWMtYmV6aWVyKCkiLCAic3ByaW5n
KCkiLAogICAgIF0sCiAgICAgIi13ZWJraXQtYXBwZWFyYW5jZSI6IFsKLSAgICAgICAgIm5vbmUi
LCAiY2hlY2tib3giLCAicmFkaW8iLCAicHVzaC1idXR0b24iLCAic3F1YXJlLWJ1dHRvbiIsICJi
dXR0b24iLCAiYnV0dG9uLWJldmVsIiwgImRlZmF1bHQtYnV0dG9uIiwgImlubmVyLXNwaW4tYnV0
dG9uIiwgImxpc3Rib3giLCAibGlzdGl0ZW0iLCAibWVkaWEtY29udHJvbHMtYmFja2dyb3VuZCIs
ICJtZWRpYS1jb250cm9scy1kYXJrLWJhci1iYWNrZ3JvdW5kIiwgIm1lZGlhLWNvbnRyb2xzLWZ1
bGxzY3JlZW4tYmFja2dyb3VuZCIsICJtZWRpYS1jb250cm9scy1saWdodC1iYXItYmFja2dyb3Vu
ZCIsICJtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheSIsICJtZWRpYS1lbnRlci1mdWxsc2NyZWVu
LWJ1dHRvbiIsICJtZWRpYS1leGl0LWZ1bGxzY3JlZW4tYnV0dG9uIiwgIm1lZGlhLWZ1bGxzY3Jl
ZW4tdm9sdW1lLXNsaWRlciIsICJtZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXItdGh1bWIi
LCAibWVkaWEtbXV0ZS1idXR0b24iLCAibWVkaWEtb3ZlcmxheS1wbGF5LWJ1dHRvbiIsICJtZWRp
YS1wbGF5LWJ1dHRvbiIsICJtZWRpYS1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIiwgIm1lZGlh
LXJld2luZC1idXR0b24iLCAibWVkaWEtc2Vlay1iYWNrLWJ1dHRvbiIsICJtZWRpYS1zZWVrLWZv
cndhcmQtYnV0dG9uIiwgIm1lZGlhLXNsaWRlciIsICJtZWRpYS1zbGlkZXJ0aHVtYiIsICJtZWRp
YS10aW1lLXJlbWFpbmluZy1kaXNwbGF5IiwgIm1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMt
YnV0dG9uIiwgIm1lZGlhLXZvbHVtZS1zbGlkZXIiLCAibWVkaWEtdm9sdW1lLXNsaWRlci1jb250
YWluZXIiLCAibWVkaWEtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiIsICJtZWRpYS12b2x1bWUt
c2xpZGVydGh1bWIiLCAibWVudWxpc3QiLCAibWVudWxpc3QtYnV0dG9uIiwgIm1lbnVsaXN0LXRl
eHQiLCAibWVudWxpc3QtdGV4dGZpZWxkIiwgIm1ldGVyIiwgInByb2dyZXNzLWJhciIsICJwcm9n
cmVzcy1iYXItdmFsdWUiLCAic2xpZGVyLWhvcml6b250YWwiLCAic2xpZGVyLXZlcnRpY2FsIiwg
InNsaWRlcnRodW1iLWhvcml6b250YWwiLCAic2xpZGVydGh1bWItdmVydGljYWwiLCAiY2FyZXQi
LCAic2VhcmNoZmllbGQiLCAic2VhcmNoZmllbGQtZGVjb3JhdGlvbiIsICJzZWFyY2hmaWVsZC1y
ZXN1bHRzLWRlY29yYXRpb24iLCAic2VhcmNoZmllbGQtcmVzdWx0cy1idXR0b24iLCAic2VhcmNo
ZmllbGQtY2FuY2VsLWJ1dHRvbiIsICJzbmFwc2hvdHRlZC1wbHVnaW4tb3ZlcmxheSIsICJ0ZXh0
ZmllbGQiLCAicmVsZXZhbmN5LWxldmVsLWluZGljYXRvciIsICJjb250aW51b3VzLWNhcGFjaXR5
LWxldmVsLWluZGljYXRvciIsICJkaXNjcmV0ZS1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IiLCAi
cmF0aW5nLWxldmVsLWluZGljYXRvciIsICJpbWFnZS1jb250cm9scy1idXR0b24iLCAiLWFwcGxl
LXBheS1idXR0b24iLCAidGV4dGFyZWEiLCAiYXR0YWNobWVudCIsICJib3JkZXJsZXNzLWF0dGFj
aG1lbnQiLCAiY2Fwcy1sb2NrLWluZGljYXRvciIsCisgICAgICAgICJub25lIiwgImNoZWNrYm94
IiwgInJhZGlvIiwgInB1c2gtYnV0dG9uIiwgInNxdWFyZS1idXR0b24iLCAiYnV0dG9uIiwgImJ1
dHRvbi1iZXZlbCIsICJkZWZhdWx0LWJ1dHRvbiIsICJpbm5lci1zcGluLWJ1dHRvbiIsICJsaXN0
Ym94IiwgImxpc3RpdGVtIiwgIm1lZGlhLWNvbnRyb2xzLWJhY2tncm91bmQiLCAibWVkaWEtY29u
dHJvbHMtZGFyay1iYXItYmFja2dyb3VuZCIsICJtZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJh
Y2tncm91bmQiLCAibWVkaWEtY29udHJvbHMtbGlnaHQtYmFyLWJhY2tncm91bmQiLCAibWVkaWEt
Y3VycmVudC10aW1lLWRpc3BsYXkiLCAibWVkaWEtZW50ZXItZnVsbHNjcmVlbi1idXR0b24iLCAi
bWVkaWEtZXhpdC1mdWxsc2NyZWVuLWJ1dHRvbiIsICJtZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1z
bGlkZXIiLCAibWVkaWEtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyLXRodW1iIiwgIm1lZGlhLW11
dGUtYnV0dG9uIiwgIm1lZGlhLW92ZXJsYXktcGxheS1idXR0b24iLCAibWVkaWEtcGxheS1idXR0
b24iLCAibWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsICJtZWRpYS1yZXdpbmQtYnV0
dG9uIiwgIm1lZGlhLXNlZWstYmFjay1idXR0b24iLCAibWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRv
biIsICJtZWRpYS1zbGlkZXIiLCAibWVkaWEtc2xpZGVydGh1bWIiLCAibWVkaWEtdGltZS1yZW1h
aW5pbmctZGlzcGxheSIsICJtZWRpYS10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsICJt
ZWRpYS12b2x1bWUtc2xpZGVyIiwgIm1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwgIm1l
ZGlhLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24iLCAibWVkaWEtdm9sdW1lLXNsaWRlcnRodW1i
IiwgIm1lbnVsaXN0IiwgIm1lbnVsaXN0LWJ1dHRvbiIsICJtZW51bGlzdC10ZXh0IiwgIm1lbnVs
aXN0LXRleHRmaWVsZCIsICJtZXRlciIsICJwcm9ncmVzcy1iYXIiLCAicHJvZ3Jlc3MtYmFyLXZh
bHVlIiwgInNsaWRlci1ob3Jpem9udGFsIiwgInNsaWRlci12ZXJ0aWNhbCIsICJzbGlkZXJ0aHVt
Yi1ob3Jpem9udGFsIiwgInNsaWRlcnRodW1iLXZlcnRpY2FsIiwgImNhcmV0IiwgInNlYXJjaGZp
ZWxkIiwgInNlYXJjaGZpZWxkLWRlY29yYXRpb24iLCAic2VhcmNoZmllbGQtcmVzdWx0cy1kZWNv
cmF0aW9uIiwgInNlYXJjaGZpZWxkLXJlc3VsdHMtYnV0dG9uIiwgInNlYXJjaGZpZWxkLWNhbmNl
bC1idXR0b24iLCAic25hcHNob3R0ZWQtcGx1Z2luLW92ZXJsYXkiLCAidGV4dGZpZWxkIiwgInJl
bGV2YW5jeS1sZXZlbC1pbmRpY2F0b3IiLCAiY29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRp
Y2F0b3IiLCAiZGlzY3JldGUtY2FwYWNpdHktbGV2ZWwtaW5kaWNhdG9yIiwgInJhdGluZy1sZXZl
bC1pbmRpY2F0b3IiLCAiLWFwcGxlLXBheS1idXR0b24iLCAidGV4dGFyZWEiLCAiYXR0YWNobWVu
dCIsICJib3JkZXJsZXNzLWF0dGFjaG1lbnQiLCAiY2Fwcy1sb2NrLWluZGljYXRvciIsCiAgICAg
XSwKICAgICAiLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5IjogWwogICAgICAgICAiaGlkZGVu
IiwgInZpc2libGUiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCA4ZjE0ZjE4OTQ1YTIyZDg0NWZmNTI0MjMxNmE2ZWM0Yzc1NWVlYThj
Li4wMTdjZGQ0MmU5ZjNlZjkwNmM0NjdlOTFhOWYyYmVlMzMyNjAwNzg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTQzNSwxNCAr
MTQzNSwxNSBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJl
bmNlc1JlZiktPnNlcnZpY2VDb250cm9sc0VuYWJsZWQoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVu
Y2VzU2V0SW1hZ2VDb250cm9sc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0SW1hZ2VDb250cm9sc0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCkKIHsKLSAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZChlbmFibGVkKTsKKyAgICAvLyBJbWFnZSBjb250cm9s
cyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0SW1h
Z2VDb250cm9sc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wg
V0tQcmVmZXJlbmNlc0dldEltYWdlQ29udHJvbHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpCiB7
Ci0gICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmltYWdlQ29udHJvbHNFbmFibGVk
KCk7CisgICAgLy8gSW1hZ2UgY29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAg
cmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRHYW1lcGFkc0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggODE2ZWY2NjRm
NDhhZmFjNjU1YzM5ZmQ5MDA1Yzc2NTRhZmQxNTdkMi4uNzMwMzZmNzJlMTgzZWY5M2Q4OGU4Y2Y1
YTk2NTQ3NDIwNjQ3YzU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCkBAIC00NjcsNyArNDY3LDYgQEAgLSAodm9pZClfc2V0dXBQYWdlQ29u
ZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlv
bgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMo
KS0+c2V0U2hvd3NVUkxzSW5Ub29sVGlwc0VuYWJsZWQoISFbX2NvbmZpZ3VyYXRpb24gX3Nob3dz
VVJMc0luVG9vbFRpcHNdKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+
c2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZCghIVtfY29uZmlndXJhdGlvbiBfc2VydmljZUNvbnRy
b2xzRW5hYmxlZF0pOwotICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRJ
bWFnZUNvbnRyb2xzRW5hYmxlZCghIVtfY29uZmlndXJhdGlvbiBfaW1hZ2VDb250cm9sc0VuYWJs
ZWRdKTsKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRVc2VySW50
ZXJmYWNlRGlyZWN0aW9uUG9saWN5KGNvbnZlcnRVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
KFtfY29uZmlndXJhdGlvbiB1c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5XSkpOwogICAgIC8v
IFdlIGFyZSBpbiB0aGUgVmlldydzIGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIHNvIG91ciBjbGll
bnQgaGFzbid0IGhhZCB0aW1lIHRvIHNldCBvdXIgdXNlciBpbnRlcmZhY2UgZGlyZWN0aW9uLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCBkYjAxNjA1MzIyZGY1NmYxZTNlMDYzMWQ4ZDk0ODY1
YWExNTY3ZTRkLi41ZGEyZmY2OWEyMGQ3NGE4MmUwMjAyMTNmYTRlNmI1YWU5MWVkOGQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTU4LDcgKzE1OCw2IEBAIEBpbXBsZW1lbnRhdGlvbiBX
S1dlYlZpZXdDb25maWd1cmF0aW9uIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4g
X3BhZ2VHcm91cDsKICAgICBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzOwogICAgIEJPT0wgX3Nl
cnZpY2VDb250cm9sc0VuYWJsZWQ7Ci0gICAgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQ7CiAg
ICAgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjsKICNl
bmRpZgogICAgIEJPT0wgX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3c7CkBA
IC0yMjYsNyArMjI1LDYgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICBfcmVzcGVjdHNJbWFn
ZU9yaWVudGF0aW9uID0gTk87CiAgICAgX3Nob3dzVVJMc0luVG9vbFRpcHMgPSBOTzsKICAgICBf
c2VydmljZUNvbnRyb2xzRW5hYmxlZCA9IE5POwotICAgIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCA9
IE5POwogICAgIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyID0g
Tk87CiAjZW5kaWYKICAgICBfd2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyA9
IFlFUzsKQEAgLTQxOSw3ICs0MTcsNiBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpv
bmUKICAgICBjb25maWd1cmF0aW9uLT5fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSA9IHNl
bGYtPl91c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OwogICAgIGNvbmZpZ3VyYXRpb24tPl9z
aG93c1VSTHNJblRvb2xUaXBzID0gc2VsZi0+X3Nob3dzVVJMc0luVG9vbFRpcHM7CiAgICAgY29u
ZmlndXJhdGlvbi0+X3NlcnZpY2VDb250cm9sc0VuYWJsZWQgPSBzZWxmLT5fc2VydmljZUNvbnRy
b2xzRW5hYmxlZDsKLSAgICBjb25maWd1cmF0aW9uLT5faW1hZ2VDb250cm9sc0VuYWJsZWQgPSBz
ZWxmLT5faW1hZ2VDb250cm9sc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3JlcXVpcmVz
VXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBzZWxmLT5fcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjsKICAgICBjb25maWd1cmF0aW9uLT5fcGFn
ZUdyb3VwID0gc2VsZi5fcGFnZUdyb3VwOwogI2VuZGlmCkBAIC0xMDc1LDEyICsxMDcyLDEzIEBA
IC0gKHZvaWQpX3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KEJPT0wpc2VydmljZUNvbnRyb2xz
RW5hYmxlZAogCiAtIChCT09MKV9pbWFnZUNvbnRyb2xzRW5hYmxlZAogewotICAgIHJldHVybiBf
aW1hZ2VDb250cm9sc0VuYWJsZWQ7CisgICAgLy8gSW1hZ2UgY29udHJvbHMgYXJlIG5vIGxvbmdl
ciBzdXBwb3J0ZWQuCisgICAgcmV0dXJuIE5POwogfQogCiAtICh2b2lkKV9zZXRJbWFnZUNvbnRy
b2xzRW5hYmxlZDooQk9PTClpbWFnZUNvbnRyb2xzRW5hYmxlZAogewotICAgIF9pbWFnZUNvbnRy
b2xzRW5hYmxlZCA9IGltYWdlQ29udHJvbHNFbmFibGVkOworICAgIC8vIEltYWdlIGNvbnRyb2xz
IGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLgogfQogCiAtIChCT09MKV9yZXF1aXJlc1VzZXJBY3Rp
b25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oCmluZGV4IDU0YjhmZTM0NjUzYmQ0YWQ2ZDk3NmQyYTVjODg2ZjNhMWVjNzFkNzguLjcxZGU5
MzE2MzIzNjRhM2JlMjA3NDZhNGFmYTFjMzFjMDRhY2YwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCkBAIC05Nyw3ICs5Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRl
Z2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiAjZWxzZQogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0U2hvd3NVUkxzSW5Ub29sVGlwczopIEJPT0wgX3Nob3dzVVJMc0luVG9vbFRpcHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250cm9sc0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xz
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJv
bHNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2Vy
IHN1cHBvcnRlZCIsIG1hY29zKDEwLjEyLCBXS19NQUNfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdD
b250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJv
bHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0Q1BVTGltaXQ6KSBkb3VibGUgX2NwdUxpbWl0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRQYWdlR3JvdXA6KSBXS1BhZ2VHcm91cFJlZiBfcGFnZUdy
b3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
aW5kZXggZWM2OTAyYjgzYjY4ZDUxYTgzYTA3MTIxMWUwNjRhYWNlYmU5ZDNmMy4uMTM1MjA5M2Rm
ZTk0ZWM4NDBiNTU3Mzg1MzY4YTI2MWYxY2QzMTI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBA
IC0xNjEsNyArMTYxLDYgQEAKICNkZWZpbmUgV2ViS2l0TWVkaWFTb3VyY2VFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdE1lZGlhU291cmNlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U291cmNl
QnVmZmVyQ2hhbmdlVHlwZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U291cmNlQnVmZmVy
Q2hhbmdlVHlwZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNob3VsZENvbnZlcnRQb3NpdGlvblN0
eWxlT25Db3B5UHJlZmVyZW5jZUtleSBAIldlYktpdFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5IgotI2RlZmluZSBXZWJLaXRJbWFnZUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRJbWFnZUNvbnRyb2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0R2FtZXBhZHNFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEdhbWVwYWRzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
U2VydmljZUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTZXJ2aWNlQ29udHJv
bHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5S2V5IEAi
V2ViS2l0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGRmZWRmNDY4OGY3NGYxZTE5
NjUwOTBmNWIyZjAwODE5ZjM3ZGVlMWUuLmIzYzhmY2FmM2U4NzY1ZTIwYWUzMDM0ZTc2NDZjODY0
Mjg0NTIxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQpAQCAtMjQ0MCwxMiArMjQ0MCwxNCBAQCAtICh2b2lkKXNldFNvdXJjZUJ1
ZmZlckNoYW5nZVR5cGVFbmFibGVkOihCT09MKWVuYWJsZWQKIAogLSAoQk9PTClpbWFnZUNvbnRy
b2xzRW5hYmxlZAogewotICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdElt
YWdlQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleV07CisgICAgLy8gSW1hZ2UgY29udHJvbHMg
YXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgcmV0dXJuIE5POwogfQogCiAtICh2b2lkKXNl
dEltYWdlQ29udHJvbHNFbmFibGVkOihCT09MKWVuYWJsZWQKIHsKLSAgICBbc2VsZiBfc2V0Qm9v
bFZhbHVlOmVuYWJsZWQgZm9yS2V5OldlYktpdEltYWdlQ29udHJvbHNFbmFibGVkUHJlZmVyZW5j
ZUtleV07CisgICAgLy8gSW1hZ2UgY29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisg
ICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOwogfQogCiAtIChCT09MKXNlcnZpY2VDb250cm9sc0Vu
YWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5MzU4OTdkYzY4MmQ2YTE4OTZkYWI4OTgwODUzZGMwMmQ0YzU2NGU1Li5h
Y2UwMWIwZmQxNGZkZjVlMzI4MjY1NzQ4ZjRhMjE1NjAzZGIxNDIxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMjEtMDEtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW21hY09TXSBSZW1vdmUgc3VwcG9ydCBmb3IgaW1hZ2UgY29udHJvbHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE1NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBvbmx5
IGxheW91dCB0ZXN0IGZvciBpbWFnZSBjb250cm9scywgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRl
ZCB0ZXN0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLWNvbnRy
b2xzLWJhc2ljLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9mYXN0L2lt
YWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL2Zhc3QvaW1hZ2VzL2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtbW9qYXZlL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFz
aWMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL2Zhc3QvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKwogMjAyMS0wMS0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIGZvbnQtc3Ry
ZXRjaCBpcyBub3QgYXBwbGllZCB0byBzeXN0ZW0tdWkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDcwN2EwMDE4NjBlYTU3NjViNjZiMjEzYmU2OTIxNTc4MDE2NTU3YTkuLjcxODlk
ZjFjMDBkYThjNDQxZTEyNDBiOTIxMDkzMWFjNmMzMGQ0NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAxLTI5ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gUmVtb3ZlIHN1cHBvcnQg
Zm9yIGltYWdlIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjExNTYKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisg
ICAgICAgIFJlYmFzZWxpbmUgYW4gaW1wb3J0ZWQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3Rl
ZC50eHQ6CisKIDIwMjEtMDEtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBGaXggV2ViQXNzZW1ibHkuR2xvYmFsJ3MgZXJyb3IgbWVzc2FnZSBh
bmQgc3VwcG9ydCAiZnVuY3JlZiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1jb250cm9scy1iYXNpYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmQ0
OTI2ZWVlNTUwZGQ3YTQyYzkwZGU0YzE2NDUxM2JkZmRhNGQwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW1hZ2VD
b250cm9sc0VuYWJsZWQodHJ1ZSk7Ci0KLTwvc2NyaXB0PgotPGJvZHk+Ci08aW1nIHNyYz0icmVz
b3VyY2VzL2dyZWVuLTI1NngyNTYuanBnIiB4LXdlYmtpdC1pbWFnZW1lbnU+Ci08L2JvZHk+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAx
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQKaW5kZXggNjM2
YmMwZjk3MzQ2NzY5ZjA4ZmNmM2ZlOTJjNTZmMmE1NzcxNTdlNi4uNWJiYTIwYzgwY2ZhOGIyZTk1
OTUzOTljMDFiYmUzYzZhMjcxZWIzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0zNiw3
ICszNiw3IEBAIEZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBkZWZhdWx0LWJ1dHRvbiAoaW52YWxp
ZCkgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwCiBGQUlMIC13ZWJraXQtYXBwZWFyYW5j
ZTogZGlzY3JldGUtY2FwYWNpdHktbGV2ZWwtaW5kaWNhdG9yIChpbnZhbGlkKSBhc3NlcnRfZXF1
YWxzOiBzdHlsZS5XZWJraXRBcHBlYXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgIiIgYnV0
IGdvdCAiZGlzY3JldGUtY2FwYWNpdHktbGV2ZWwtaW5kaWNhdG9yIgogUEFTUyAtd2Via2l0LWFw
cGVhcmFuY2U6IGR1YWxidXR0b24gKGludmFsaWQpCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTog
Z3JvdXBib3ggKGludmFsaWQpCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogaW1hZ2UtY29udHJv
bHMtYnV0dG9uIChpbnZhbGlkKSBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJraXRBcHBlYXJhbmNl
ICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgIiIgYnV0IGdvdCAiaW1hZ2UtY29udHJvbHMtYnV0dG9u
IgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGltYWdlLWNvbnRyb2xzLWJ1dHRvbiAoaW52YWxp
ZCkKIEZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbm5lci1zcGluLWJ1dHRvbiAoaW52YWxpZCkg
YXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVj
dGVkICIiIGJ1dCBnb3QgImlubmVyLXNwaW4tYnV0dG9uIgogRkFJTCAtd2Via2l0LWFwcGVhcmFu
Y2U6IGxpc3QtYnV0dG9uIChpbnZhbGlkKSBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJraXRBcHBl
YXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgIiIgYnV0IGdvdCAibGlzdC1idXR0b24iCiBG
QUlMIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGl0ZW0gKGludmFsaWQpIGFzc2VydF9lcXVhbHM6
IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAiIiBidXQgZ290
ICJsaXN0aXRlbSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvZmFzdC9p
bWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ2xpYi9mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5Yjc1ZDc2YTA0OGFiNDAxNWJlMDJhZTY2
NzQ3YTJiODUxMmRkYmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9s
cy1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMjU2eDI1NgotICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9pbWFnZXMvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJh
c2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2ltYWdlcy9p
bWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1OWI3NWQ3NmEwNDhhYjQwMTViZTAyYWU2Njc0N2EyYjg1MTJkZGJkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L2ltYWdlcy9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAg
ICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMCwwKSBzaXplIDI1NngyNTYKLSAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNp
Yy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5Yjc1ZDc2YTA0
OGFiNDAxNWJlMDJhZTY2NzQ3YTJiODUxMmRkYmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Zhc3QvaW1hZ2Vz
L2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcg
KzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6
ZSAyNTZ4MjU2Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tb2phdmUvZmFzdC9pbWFnZXMvaW1h
Z2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LW1vamF2ZS9mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2N2JiYjQ4OWY0ZTVkYmUwYjM0NDU4NDZlMjMw
N2RiOWMxNDExY2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1vamF2ZS9mYXN0L2ltYWdlcy9pbWFnZS1jb250
cm9scy1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1s
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMCwwKSBzaXplIDI1NngyNTYK
LSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotbGF5ZXIgYXQgKDgs
OCkgc2l6ZSAyNTZ4MjU2Ci0gIFJlbmRlckltYWdlQ29udHJvbHMge0RJVn0gYXQgKDAsMCkgc2l6
ZSAyNTZ4MjU2Ci1sYXllciBhdCAoMjI5LDE0KSBzaXplIDI5eDI2Ci0gIFJlbmRlckltYWdlQ29u
dHJvbHNCdXR0b24ge0RJVn0gYXQgKDIyMSw2KSBzaXplIDI5eDI2CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ2MTNmNzNmZTZmM2FmMmZhMGIxNmEwMDJj
NTAxODA5MWZlMTIwYjcuLmVkZWZkNDUxOTA4MjM4NmM5MDMyMDRjZmZiMjI1NTU3YzZmYTE4MDkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTYzLDkg
KzIxNjMsNiBAQCB3ZWJraXQub3JnL2IvMjE1ODE3IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlMi90ZXh0dXJlcy9jYW52YXNfc3ViX3JlYwogCiB3ZWJraXQub3JnL2IvMjE5NDQ4
IFsgRGVidWcgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9yZW5kZXJpbmcvbXVsdGlzYW1wbGUt
Y29ycnVwdGlvbi5odG1sIFsgU2tpcCBdCiAKLSMgPHJkYXI6Ly82NDk0NzY2Nj4gWyBCaWdTdXIr
IF0gZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMuaHRtbCAKLVsgQmlnU3VyKyBdIGZh
c3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWwgWyBGYWlsdXJlIF0KLQogIyA8cmRh
cjovL3Byb2JsZW0vNjA3ODAzOTg+IFJFR1JFU1NJT046ICgyNTg3Mjk/KSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvb3BlbmluZy1oYW5kc2hha2UvMDAzLmh0bWwg
aXMgZmFpbGluZy4KIFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2Vic29ja2V0cy9vcGVuaW5nLWhhbmRzaGFrZS8wMDMuaHRtbCBbIEZhaWx1cmUgXQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJv
bHMtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1h
Z2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODZkODhhNmU5OGVhN2EwOGQ2ODM5NzMzODE1MDU4MzkyODIwMWIzNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAot
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVy
SW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWxheWVyIGF0ICg4LDgpIHNpemUgMjU2eDI1NgotICBSZW5k
ZXJJbWFnZUNvbnRyb2xzIHtESVZ9IGF0ICgwLDApIHNpemUgMjU2eDI1NgotbGF5ZXIgYXQgKDIz
MSwxNCkgc2l6ZSAyN3gyNgotICBSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uIHtESVZ9IGF0ICgy
MjMsNikgc2l6ZSAyN3gyNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAwZjdjNDg2NGFhNjBlY2ViMzg0MGYxYTcyYTU5ZTZjOTNiNGFiZDc0Li4xMzE4YWZl
MTZmZWRlNzE0YjliNGMyYjNiYzk2MTRkNWE2Yzc4YTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjgwOSw3ICsyODA5LDYgQEAgZmFzdC9oaXN0b3J5
L2hpc3Rvcnktc3ViZnJhbWUtd2l0aC1uYW1lLmh0bWwgWyBTa2lwIF0KIGZhc3QvaGlzdG9yeS9s
b2NhdGlvbi1yZXBsYWNlLWhhc2guaHRtbCBbIFNraXAgXQogZmFzdC9oaXN0b3J5L3NhdmVzLXN0
YXRlLWFmdGVyLWZyYWdtZW50LW5hdi5odG1sIFsgU2tpcCBdCiAKLWZhc3QvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDA1MTYgWyBE
ZWJ1ZyBdIGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAgXSAg
IyBDcmFzaGluZwogZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLXdpdGgtYW5ub3RhdGlvbnMuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9pbWFnZXMvc3VwcG9ydC1icm9rZW4taW1hZ2Ut
ZGVsZWdhdGUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJv
bHMtYmFzaWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWI3
NWQ3NmEwNDhhYjQwMTViZTAyYWU2Njc0N2EyYjg1MTJkZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVySW1hZ2Uge0lNR30g
YXQgKDAsMCkgc2l6ZSAyNTZ4MjU2Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAK
</data>
<flag name="commit-queue"
          id="436876"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418815</attachid>
            <date>2021-01-30 08:31:09 -0800</date>
            <delta_ts>2021-01-30 10:47:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221156-20210130083108.patch</filename>
            <type>text/plain</type>
            <size>87094</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjMzY4ZThkZDRiYzZiNDhlNGJhYWVl
NTNjODk3ZjE4OGE3OTI2ZjUuLjgwNThmY2UzNWNhNzY5YzJlYTIwZTFlNDcxOGIzYWM0NTYyOTZl
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBSZW1vdmUgc3VwcG9ydCBmb3Ig
aW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAg
ICAgUmVtb3ZlIHRoaXMgdW51c2VkIFdlYktpdCBzZXR0aW5nLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDIxLTAxLTI5ICBUYWRldSBa
YWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgY2hlY2sgZm9yIGZ1
bGwgSGFzaFRhYmxlcyBvcHQtaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOWZhZWQ3YzFiOTUwY2YyMmY2Nzgw
ZDIxOTkwOTFkN2VlMjIwNzcxLi41YjcxMTFjOTliMGQ0ZmRiZmEwMDU1ZjNiMGE2NzZhOTk1ZjVl
ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjEtMDEtMjkgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBSZW1vdmUgc3Vw
cG9ydCBmb3IgaW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBtYWNPUy1vbmx5ICJpbWFnZSBjb250
cm9scyIgY29kZXBhdGguIFRoaXMgU1BJIHdhcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IE1haWwg
eWVhcnMgYWdvLAorICAgICAgICBidXQgd2FzIHN1cGVyc2VkZWQgYnkgYSBjdXN0b20gaW1wbGVt
ZW50YXRpb24gaW4gTWFpbDsgdGhpcyBXZWJLaXQgZnVuY3Rpb25hbGl0eSBoYXMgc2luY2UgYmVl
biB1bnVzZWQuCisKKyAgICAgICAgSW4gYSBzdWJzZXF1ZW50IHBhdGNoLCBhIHNtYWxsIHN1YnNl
dCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIGxheWluZyBvdXQgYW5kIHJlbmRlcmluZyBpbWFn
ZSBjb250cm9scyB3aWxsCisgICAgICAgIHJldHVybiB1bmRlciBhIGRpZmZlcmVudCBuYW1lLCBp
biBzdXBwb3J0IG9mIHRoZSBpbWFnZSBleHRyYWN0aW9uIGFjY2Vzc2liaWxpdHkgZmVhdHVyZS4K
KworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydGllcy5q
c29uOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9O
b2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1BsdWdpbkVsZW1lbnQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorCisgICAgICAgIEFkZGl0
aW9uYWxseSByZW1vdmUgc3VwcG9ydCBmb3IgdGhlIGB3ZWJraXRpbWFnZW1lbnVgIERPTSBhdHRy
aWJ1dGUsIHdoaWNoIHdhcyBvbmx5IHJlc3BlY3RlZCBpZiB0aGUgKG5vdy0KKyAgICAgICAgcmVt
b3ZlZCkgU1BJIHByZWZlcmVuY2Ugd2FzIHNldC4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTElt
YWdlRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bWFnZUVsZW1lbnQ6OnVwZGF0ZUltYWdlQ29udHJvbHMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6dHJ5Q3JlYXRlSW1hZ2VDb250cm9scyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkZXN0cm95SW1hZ2VDb250cm9s
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoYXNJbWFn
ZUNvbnRyb2xzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorCisgICAgICAgIEFkZGl0aW9uYWxseSByZW1v
dmUgYG1fZXhwZXJpbWVudGFsSW1hZ2VNZW51RW5hYmxlZGAgYW5kIHRoZSBhc3NvY2lhdGVkIGhl
bHBlciBtZXRob2QgYGhhc1NoYWRvd0NvbnRyb2xzKClgIG9uCisgICAgICAgIGBIVE1MSW1hZ2VF
bGVtZW50YC4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aGFzU2hhZG93
Q29udHJvbHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0ltYWdlQ29u
dHJvbHNSb290RWxlbWVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50TWFjLmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL2ltYWdl
Q29udHJvbHNNYWMuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5
YmVDcmVhdGVDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZUZyb21JbWFnZUVs
ZW1lbnROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcjo6c2hvd0ltYWdlQ29udHJvbHNNZW51KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vVGhl
bWVUeXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludEJvcmRlck9ubHkpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWU6OnBhaW50RGVjb3JhdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmltYWdlQ29udHJv
bHNTdHlsZVNoZWV0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lOjppbWFnZUNvbnRyb2xzQnV0dG9uU2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6aW1hZ2VDb250cm9sc0J1dHRvblBvc2l0aW9uT2Zmc2V0IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludEltYWdl
Q29udHJvbHNCdXR0b24pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVldCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2VydmljZXNSb2xs
b3ZlckJ1dHRvbkNlbGwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBhaW50SW1hZ2VDb250cm9sc0J1dHRvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6aW1hZ2VDb250cm9sc0J1dHRvblNpemUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmltYWdlQ29udHJvbHNC
dXR0b25Qb3NpdGlvbk9mZnNldCBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVtb3ZlIHRo
ZXNlIHR3byBtZXRob2RzLCB3aGljaCB3ZXJlIG9ubHkgdXNlZCB0byByZW5kZXIgdGhlIG5vdy1y
ZW1vdmVkIGltYWdlIGNvbnRyb2xzIGJ1dHRvbi4KKworICAgICAgICAqIHN0eWxlL1VzZXJBZ2Vu
dFN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVc2VyQWdlbnRTdHlsZTo6ZW5z
dXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudCk6CisgICAgICAgICogc3R5bGUvVXNlckFn
ZW50U3R5bGUuaDoKKwogMjAyMS0wMS0zMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsaW5lIGJveCBzdHJldGNoaW5nIChx
dWlya3kpIDxicj4gYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWNmNWY3ODBiMWRlMDUyOWMxOTA5OWIw
NWM3M2RkNzUzMjYxNDcxYy4uODUzZWJkZDcwODZiY2Y4NGMyODQ2ZGQwMjIzZTYzOWY1ZjVkZmI2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMS0yOSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFJlbW92ZSBzdXBwb3J0
IGZvciBpbWFnZSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICBMZWF2ZSB0aGUgZXhpc3RpbmcgU1BJIGltcGxlbWVudGVkIGZvciBiaW5hcnkgY29t
cGF0YWJpbGl0eSwgYnV0IG1ha2UgdGhlbSBlbXB0eSBzdHVicyBhbmQgYWRkaXRpb25hbGx5IG1h
cmsKKyAgICAgICAgdGhlIHByb3BlcnR5IG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gYXMgZGVw
cmVjYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRJbWFnZUNvbnRyb2xzRW5hYmxlZCk6CisgICAgICAg
IChXS1ByZWZlcmVuY2VzR2V0SW1hZ2VDb250cm9sc0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldHVw
UGFnZUNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGluaXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6
XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX2ltYWdlQ29udHJvbHNFbmFi
bGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEltYWdlQ29udHJv
bHNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaDoKKwogMjAyMS0wMS0yOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBwbHVtYmluZyB0byBhbGxvdyBBcHBI
aWdobGlnaHRzIHRvIGJlIHJlc3RvcmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IDVmM2YxMWU3Y2QwZTJmMzA2NGQyYmE1Y2JmODE0ODliNGIwYTNiNGYuLjdlNWVlNDQyM2ZjNDY5
NWU0ODYyNTczYjJkZjc5YjBmZWU5ODlhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMS0yOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFJlbW92ZSBzdXBwb3J0IGZvciBpbWFnZSBj
b250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUdXJu
IHRoZXNlIGxlZ2FjeSBXZWJLaXQgU1BJIG1ldGhvZHMgaW50byBlbXB0eSBzdHVicy4KKworICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgaW1hZ2VD
b250cm9sc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0SW1hZ2VDb250
cm9sc0VuYWJsZWQ6XSk6CisKIDIwMjEtMDEtMjYgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjY3NjQxKTogV2ViS2l0RGV2ZWxvcGVyRXh0cmFzIHBy
ZWZlcmVuY2UgaGFzIG5vIGVmZmVjdCBmb3IgV2ViS2l0TGVnYWN5IGNsaWVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXgg
NTk4M2E3MmRkYzVkNDhhOWQwNzJlOTYxY2U4MTI4YTAyZGIxYTMzMS4uMDUyMGM2YzlkOTNlNmY1
NjZmYWNmMjBlMDg3NDVjZmI3YzBjNzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTkwMiwxNyArOTAyLDYgQEAgSHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogCi1JbWFnZUNvbnRyb2xzRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBjb25kaXRpb246IEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0TGVnYWN5
OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJLaXQ6Ci0gICAgICBkZWZhdWx0OiBmYWxz
ZQotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBJbmFjdGl2ZU1lZGlhQ2Fw
dHVyZVN0ZWFtUmVwcm9tcHRJbnRlcnZhbEluTWludXRlczoKICAgdHlwZTogZG91YmxlCiAgIHdl
YmNvcmVCaW5kaW5nOiBub25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA1MmMxMGY1NTFjN2VhOWZjNmRiMzczOThiYjEzZTNhMWYzOWZi
M2VhLi5kN2VlOTZkY2E3YmRjNDNhNGVkNmVhMzAxZDEwNDAxNDMzMDQwMGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMzgsNyAr
MTAzOCw2IEBAICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3QuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9wYXJzZXIvSFRNTEVudGl0eU5hbWVzLmluCiAk
KFBST0pFQ1RfRElSKS9odG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKLSQoUFJP
SkVDVF9ESVIpL2h0bWwvc2hhZG93L21hYy9pbWFnZUNvbnRyb2xzTWFjLmNzcwogJChQUk9KRUNU
X0RJUikvaHRtbC9zaGFkb3cvbWV0ZXJFbGVtZW50U2hhZG93LmNzcwogJChQUk9KRUNUX0RJUikv
aHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC90cmFjay9BdWRp
b1RyYWNrTGlzdC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY2NzljNjg0
ZGVhZjVhMGQ5ZjM5ZDA4MDc5OTg1MjJhM2ZlYTYxYzEuLmFkNzljMDJiOWIyNmYwYzI0YTE0N2Rk
NTAyNmFjZWE0OTBmZjdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTUx
MSw3ICsxNTExLDYgQEAgVVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9jc3MvcGx1Z0lucy5jc3MgXAogICAgICQoV2ViQ29yZSkvY3NzL3F1aXJrcy5jc3MgXAogICAg
ICQoV2ViQ29yZSkvY3NzL3N2Zy5jc3MgXAotICAgICQoV2ViQ29yZSkvaHRtbC9zaGFkb3cvbWFj
L2ltYWdlQ29udHJvbHNNYWMuY3NzIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvc2hhZG93L21ldGVy
RWxlbWVudFNoYWRvdy5jc3MgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wbHVnaW5zL1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmNzcyBcCiAjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRl
eCBjN2IyMzBiMzhkYWUwMzc0MjE3YzQwZmMzMGVhN2Y1OThjNzIyNDgyLi5kMmIzNDIzNjI1NWE0
MTdmM2FhMTYzNjVlMTAzYmI3YzEyMjA3MjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAg
LTE2MiwxMCArMTYyLDcgQEAgZWRpdGluZy9tYWMvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLm1t
IEBuby11bmlmeQogZWRpdGluZy9tYWMvVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMubW0KIGZp
bGVhcGkvRmlsZUNvY29hLm1tCiBoaXN0b3J5L21hYy9IaXN0b3J5SXRlbU1hYy5tbQotaHRtbC9z
aGFkb3cvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvWW91VHViZUVt
YmVkU2hhZG93RWxlbWVudC5jcHAKLWh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYy5jcHAKLWh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRN
YWMuY3BwCiBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hp
dmVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NzQxNWRkZWNiYTNjMDI1NGM2NTNmZDg1MjY1ZTAyN2ZjMzY2OTk1Li41
YzUwZWVlM2VjMzU0MThkMmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MjksNyArNzI5
LDYgQEAKIAkJMkQwNjIxNTIxREE2M0FBMjAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5TmVlZGVk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQwNjIxNDcxREE2M0E3OTAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQuY3Bw
ICovOyB9OwogCQkyRDBCNEFBQjE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDBCNEFBOTE4REExQ0NE
MDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkQyMjgzMDMyM0E4NDcwNzAwMzY0QjdFIC8qIEN1cnNvck1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NEYw
MDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi87IH07Ci0JCTJEMjUzOTYzMThDRTdG
NjIwMDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyNTM5NjExOENFN0Y2MjAwMjcw
MjIyIC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmggKi87IH07CiAJCTJEMjkzODZC
MjM1RjZCNjkwMEM3RjNCMiAvKiBFeGNlcHRpb25EZXRhaWxzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5Mzg2OTIzNUY2QjY4MDBDN0YzQjIgLyog
RXhjZXB0aW9uRGV0YWlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1v
bml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEMjlFQ0MyMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
RDI5RUNDODE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOUVDQzQx
OTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQwMiw4ICsxNDAx
LDYgQEAKIAkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4MUUz
RTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEwNkIw
MDMxNTFGMyAvKiBSZW5kZXJGcmFnbWVudGVkRmxvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEQxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRl
ckZyYWdtZW50ZWRGbG93LmggKi87IH07CiAJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAvKiBD
YWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxMDE5MkQyMThCNkI5QUIwMDdG
QzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5MkQwMThCNkI5QUIwMDdGQzdBMSAvKiBJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaCAqLzsgfTsKLQkJNTEwMTkyRDYxOEI2QjlCNzAw
N0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTkyRDQxOEI2QjlCNzAwN0ZDN0ExIC8qIElt
YWdlQ29udHJvbHNSb290RWxlbWVudC5oICovOyB9OwogCQk1MTA1OEFEQjFENjc5MkMxMDA5QTUz
OEMgLyogTW9ja0dhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwNThBRDcxRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCAq
LzsgfTsKIAkJNTEwNThBREMxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA1OEFEODFENjc5MjU3
MDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1MTA1OEFERDFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVw
YWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTA1OEFEOTFENjc5MjU3MDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRlci5jcHAg
Ki87IH07CkBAIC03MDg5LDggKzcwODYsNiBAQAogCQkyRDBCNEFBQTE4REExQ0NEMDA0MzRERTEg
LyogSU9TdXJmYWNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
SU9TdXJmYWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDE5MzIxNzFEQTY0
RTE5MDBBNTRBMDggLyogV2ViS2l0TWVkaWFLZXlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJLaXRNZWRpYUtleUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEMTkzMjE4MURBNjRFMTkwMEE1NEEwOCAvKiBXZWJLaXRNZWRpYUtleUVycm9y
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRNZWRpYUtleUVycm9yLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQyNTM5NjAxOENFN0Y2MjAwMjcwMjIyIC8qIElt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQyNTM5NjExOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEMjkzODY5MjM1RjZCNjgwMEM3RjNCMiAvKiBFeGNlcHRpb25EZXRhaWxzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkRldGFpbHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOUVDQzExOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3Bs
YXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRDI5RUNDMjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hN
b25pdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlS
ZWZyZXNoTW9uaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ5
NywxMSArODQ5Miw2IEBACiAJCTUwOENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGcmFn
bWVudGVkRmxvdy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGcmFnbWVudGVkRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDE4
NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEwMTg0NjgwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTUxMDE5MkNGMThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTEwMTkyRDAxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnRNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTEwMTkyRDMxOEI2QjlC
NzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTAxOTJENDE4QjZCOUI3MDA3RkM3QTEgLyogSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1MTAxOTJEODE4QjdEN0FCMDA3RkM3QTEgLyogaW1hZ2VDb250cm9sc01hYy5jc3MgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LmNzczsgcGF0aCA9IGltYWdlQ29udHJvbHNNYWMuY3NzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTAzMTA1RTFCQThFMDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJ
ZGVudGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkRh
dGFiYXNlSWRlbnRpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDMx
MDVGMUJBOEUwOTAwMDMzMjlDMCAvKiBJREJEYXRhYmFzZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDU4QUQ3MUQ2NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2Ft
ZXBhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrR2FtZXBh
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTMyOCw3ICsxOTMxOCw2IEBA
CiAJCTQxNTBGOUVEMTJCNkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUxQzRBQTUxMThCMjgzNTcwMDdCRkU5QiAv
KiBtYWMgKi8sCiAJCQkJN0MxRTk3MjUxQTlGOTgzNDAwN0JGMEZCIC8qIEF1dG9GaWxsQnV0dG9u
RWxlbWVudC5jcHAgKi8sCiAJCQkJN0MxRTk3MjYxQTlGOTgzNDAwN0JGMEZCIC8qIEF1dG9GaWxs
QnV0dG9uRWxlbWVudC5oICovLAogCQkJCUU1OEI0NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRh
TGlzdEJ1dHRvbkVsZW1lbnQuaCAqLywKQEAgLTE5MzQ0LDggKzE5MzMzLDYgQEAKIAkJCQlFNUYw
NkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICov
LAogCQkJCUE3QzlBQkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5j
cHAgKi8sCiAJCQkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250
cm9sLmggKi8sCi0JCQkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNS
b290RWxlbWVudC5jcHAgKi8sCi0JCQkJNTEwMTkyRDQxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdl
Q29udHJvbHNSb290RWxlbWVudC5oICovLAogCQkJCTQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAv
KiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcCAqLywKIAkJCQk0MTcy
NTNBOTEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5oICovLAogCQkJCUU0RTI0MzgyMURBQjk1M0UwMEMyNkU0QiAvKiBtZXRlckVsZW1lbnRT
aGFkb3cuY3NzICovLApAQCAtMjA2NjUsMTggKzIwNjUyLDYgQEAKIAkJCXBhdGggPSBjb2NvYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTUxQzRBQTUxMThCMjgzNTcwMDdC
RkU5QiAvKiBtYWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAot
CQkJCTJEMjUzOTYwMThDRTdGNjIwMDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYy5jcHAgKi8sCi0JCQkJMkQyNTM5NjExOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjLmggKi8sCi0JCQkJNTEwMTkyRDgxOEI3RDdBQjAwN0ZDN0ExIC8q
IGltYWdlQ29udHJvbHNNYWMuY3NzICovLAotCQkJCTUxMDE5MkNGMThCNkI5QUIwMDdGQzdBMSAv
KiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwICovLAotCQkJCTUxMDE5MkQwMThCNkI5
QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaCAqLywKLQkJCSk7Ci0J
CQlwYXRoID0gbWFjOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJNTFFQ0Mz
RTQyMDA1ODMxRjAwNDgzRUFFIC8qIG1lc3NhZ2Vwb3J0cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zMjU0Myw5ICszMjUxOCw2IEBACiAJCQkJNzI3QTdG
M0EyNDA3OEI4NDAwNEQyOTMxIC8qIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJBMTBEOTEwQjM4MThCRDAwMDk5QUE0IC8qIEltYWdlQnVmZmVyUGlw
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRTIxREQyMTgzNDQ0QTAwRTY2RjU1IC8qIEltYWdl
QnVmZmVyVXRpbGl0aWVzQ0cuaCBpbiBIZWFkZXJzICovLAotCQkJCTJEMjUzOTYzMThDRTdGNjIw
MDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNTEwMTkyRDYxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEwMTkyRDIxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3OTc5MUEwRDZC
OUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxOUZFQTgx
RjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Qx
OUZFQUUxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
aW5kZXggMGE3NDk4NWM4NjFkYzg4NTk5N2FjY2QxYzliMjg0MDZiYmRlOGUxNy4uMWNjMmM4MjI4
ZTA4ZjZmZmU2NmI3NzY0ZmM2YTA1NmQzYTQ2YTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC02MDUsMTEgKzYwNSw2IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9s
UGFydCBlKQogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlcmxlc3NBdHRh
Y2htZW50OwogICAgICAgICBicmVhazsKICNlbmRpZgotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9sc0J1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlSW1hZ2VDb250cm9sc0J1dHRvbjsKLSAgICAgICAgYnJlYWs7Ci0j
ZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25QYXJ0
OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFwcGxlUGF5QnV0dG9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5kZXggOTU0OGVmNjdiY2ZiNmJkYTYyMWY3
MWMyYzk2OWU2MDVkZWJhMDg1Ni4uNDVlYzNjYTkwYjdiYjRkMDRkNzVjMzlmYmYwODdlZDZjZTVl
NzhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCkBAIC00NTM4LDcgKzQ1
MzgsNiBAQAogICAgICAgICAgICAgICAgICJjb250aW51b3VzLWNhcGFjaXR5LWxldmVsLWluZGlj
YXRvciIsCiAgICAgICAgICAgICAgICAgImRpc2NyZXRlLWNhcGFjaXR5LWxldmVsLWluZGljYXRv
ciIsCiAgICAgICAgICAgICAgICAgInJhdGluZy1sZXZlbC1pbmRpY2F0b3IiLAotICAgICAgICAg
ICAgICAgICJpbWFnZS1jb250cm9scy1idXR0b24iLAogICAgICAgICAgICAgICAgICItYXBwbGUt
cGF5LWJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgInRleHRhcmVhIiwKICAgICAgICAgICAgICAg
ICAiYXR0YWNobWVudCIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4
IGFkNzM1N2ZmZWE4NDZkZjIyOTM1NGQyY2JhMGUxNTAxNzdhMTJiOWMuLmY4ZjI1ZmE5NzVmNTgz
ZTRlYjdlZGExOWI4MjllMzgzNTUxNTdlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCkBAIC04NTgsOSArODU4LDYgQEAgcmVsZXZhbmN5LWxldmVsLWluZGljYXRvcgog
Y29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IKIGRpc2NyZXRlLWNhcGFjaXR5LWxl
dmVsLWluZGljYXRvcgogcmF0aW5nLWxldmVsLWluZGljYXRvcgotI2lmIGRlZmluZWQoRU5BQkxF
X1NFUlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTCi1pbWFnZS1jb250
cm9scy1idXR0b24KLSNlbmRpZgogI2lmIGRlZmluZWQoRU5BQkxFX0FQUExFX1BBWSkgJiYgRU5B
QkxFX0FQUExFX1BBWQogLWFwcGxlLXBheS1idXR0b24KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXgg
MzIyYWVlNjBhMDExYzRkYWQyNjg3YjkzN2JlNzc5MzExMzM0M2IyYS4uNTA5ZTBlYjZlMzZlZWM1
YjhlNzUzZjYzZjBiMTBjNmJkYjg2MzBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yMDYsMTAgKzIwNiw2
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2hhcmFjdGVyRGF0YU5vZGUoKSBjb25zdCB7IHJldHVy
biBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SXNDaGFyYWN0ZXJEYXRhKTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0ZyYW1lT3duZXJFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNQbHVnaW5FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSNp
ZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSNlbmRpZgogCiAgICAgYm9vbCBpc0RvY3VtZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIGhhc05v
ZGVGbGFnKE5vZGVGbGFnOjpJc0RvY3VtZW50Tm9kZSk7IH0KICAgICBib29sIGlzVHJlZVNjb3Bl
KCkgY29uc3QgeyByZXR1cm4gaGFzTm9kZUZsYWcoTm9kZUZsYWc6OklzRG9jdW1lbnROb2RlKSB8
fCBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SXNTaGFkb3dSb290KTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCAxYmUwNDVlZDEzNmJkNzBiYmYwNTMzNjBl
ZDZmM2E0MDg0ZjU2MThiLi4wY2ZlYmJiNzRkZWVjYTNmMTA4NzZhZTY3ZmUwZTA0NzQ5Y2ZlMTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtNDI4LDcg
KzQyOCw2IEBAIGF1dG9jYXBpdGFsaXplCiBvbndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlz
d2lyZWxlc3NjaGFuZ2VkCiBvbndlYmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hhbmdl
ZAogb253ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZAoteC13ZWJraXQtaW1hZ2VtZW51CiB3
ZWJraXQtcGxheXNpbmxpbmUKIHgtd2Via2l0LWFpcnBsYXkKIHgtd2Via2l0LXdpcmVsZXNzdmlk
ZW9wbGF5YmFja2Rpc2FibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAppbmRleCAwMjIxYjRlN2Q4MmJiYjc5YzgzNTA2YzNjMjc0NjJlZGVkY2JiMTEwLi5kMDMwYWZk
NTFiOGI1NTVmNDk5NTczODgxNDAwNGM0M2UyZTZjMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTYwLDEwICs2MCw2IEBACiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
LSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSNpbmNsdWRlICJJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChIVE1MSW1hZ2VFbGVtZW50KTsKQEAgLTc3LDcgKzczLDYgQEAgSFRN
TEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fZm9ybVNldEJ5UGFyc2VyKG1ha2VXZWFrUHRy
KGZvcm0pKQogICAgICwgbV9jb21wb3NpdGVPcGVyYXRvcihDb21wb3NpdGVPcGVyYXRvcjo6U291
cmNlT3ZlcikKICAgICAsIG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvKDEuMGYpCi0gICAgLCBtX2V4
cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoaW1nVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CkBA
IC0yODEsMTEgKzI3Niw2IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIEJsZW5k
TW9kZSBibGVuZE9wID0gQmxlbmRNb2RlOjpOb3JtYWw7CiAgICAgICAgIGlmICghcGFyc2VDb21w
b3NpdGVBbmRCbGVuZE9wZXJhdG9yKHZhbHVlLCBtX2NvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE9w
KSkKICAgICAgICAgICAgIG1fY29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVPcGVyYXRvcjo6
U291cmNlT3ZlcjsKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICB9IGVsc2UgaWYg
KG5hbWUgPT0gd2Via2l0aW1hZ2VtZW51QXR0cikgewotICAgICAgICBtX2V4cGVyaW1lbnRhbElt
YWdlTWVudUVuYWJsZWQgPSAhdmFsdWUuaXNOdWxsKCk7Ci0gICAgICAgIHVwZGF0ZUltYWdlQ29u
dHJvbHMoKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBsb2FkaW5nQXR0cikgewog
ICAgICAgICAvLyBObyBhY3Rpb24gbmVlZGVkIGZvciBlYWdlciB0byBsYXp5IHRyYW5zaXRpb24u
CiAgICAgICAgIGlmICghaGFzTGF6eUxvYWRhYmxlQXR0cmlidXRlVmFsdWUodmFsdWUpKQpAQCAt
MzU0LDEwICszNDQsNiBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVy
cygpCiAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdXBk
YXRlSW1hZ2VDb250cm9scygpOwotI2VuZGlmCi0KICAgICBhdXRvJiByZW5kZXJJbWFnZSA9IGRv
d25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIoKSk7CiAgICAgUmVuZGVySW1hZ2VSZXNvdXJj
ZSYgcmVuZGVySW1hZ2VSZXNvdXJjZSA9IHJlbmRlckltYWdlLmltYWdlUmVzb3VyY2UoKTsKICAg
ICBpZiAocmVuZGVySW1hZ2VSZXNvdXJjZS5jYWNoZWRJbWFnZSgpKQpAQCAtNzIzLDc2ICs3MDks
NiBAQCBjb25zdCBTdHJpbmcmIEhUTUxJbWFnZUVsZW1lbnQ6OmF0dGFjaG1lbnRJZGVudGlmaWVy
KCkgY29uc3QKIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKLSNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6dXBkYXRlSW1h
Z2VDb250cm9scygpCi17Ci0gICAgLy8gSWYgdGhpcyBpbWFnZSBlbGVtZW50IGlzIGluc2lkZSBh
IHNoYWRvdyB0cmVlIHRoZW4gaXQgaXMgcGFydCBvZiBhbiBpbWFnZSBjb250cm9sLgotICAgIGlm
IChpc0luU2hhZG93VHJlZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWRvY3VtZW50
KCkuc2V0dGluZ3MoKS5pbWFnZUNvbnRyb2xzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBib29sIGhhc0NvbnRyb2xzID0gaGFzSW1hZ2VDb250cm9scygpOwotICAgIGlmICghbV9l
eHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkICYmIGhhc0NvbnRyb2xzKQotICAgICAgICBkZXN0
cm95SW1hZ2VDb250cm9scygpOwotICAgIGVsc2UgaWYgKG1fZXhwZXJpbWVudGFsSW1hZ2VNZW51
RW5hYmxlZCAmJiAhaGFzQ29udHJvbHMpCi0gICAgICAgIHRyeUNyZWF0ZUltYWdlQ29udHJvbHMo
KTsKLX0KLQotdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojp0cnlDcmVhdGVJbWFnZUNvbnRyb2xzKCkK
LXsKLSAgICBBU1NFUlQobV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVkKTsKLSAgICBBU1NF
UlQoIWhhc0ltYWdlQ29udHJvbHMoKSk7Ci0KLSAgICBhdXRvIGltYWdlQ29udHJvbHMgPSBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBpZiAoIWlt
YWdlQ29udHJvbHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS5hcHBlbmRDaGlsZCgqaW1hZ2VDb250cm9scyk7Ci0KLSAgICBhdXRvKiByZW5kZXJP
YmplY3QgPSByZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyT2JqZWN0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlck9iamVjdCkuc2V0SGFzU2hh
ZG93Q29udHJvbHModHJ1ZSk7Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6ZGVzdHJveUlt
YWdlQ29udHJvbHMoKQotewotICAgIGF1dG8gc2hhZG93Um9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jv
b3QoKTsKLSAgICBpZiAoIXNoYWRvd1Jvb3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChS
ZWZQdHI8Tm9kZT4gbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKSkgewotICAgICAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihub2RlLT5pc0ltYWdlQ29udHJvbHNSb290
RWxlbWVudCgpKTsKLSAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQoKm5vZGUpOwotICAg
IH0KLQotICAgIGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5k
ZXJPYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRvd25jYXN0PFJlbmRlckltYWdlPigq
cmVuZGVyT2JqZWN0KS5zZXRIYXNTaGFkb3dDb250cm9scyhmYWxzZSk7Ci19Ci0KLWJvb2wgSFRN
TEltYWdlRWxlbWVudDo6aGFzSW1hZ2VDb250cm9scygpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8g
c2hhZG93Um9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkgewotICAgICAgICBSZWZQdHI8Tm9k
ZT4gbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKTsKLSAgICAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgbm9kZS0+aXNJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnQoKSk7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotYm9vbCBIVE1MSW1hZ2VFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAotewotICAgIHJldHVybiBoYXNTaGFkb3dSb290UGFy
ZW50KGNoaWxkKSAmJiBIVE1MRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGls
ZCk7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgYmV0dGVyIHBsYWNlIGZv
ciB0aGUgdG91Y2ggY2FsbG91dCBsb2dpYy4gU2VlIHJkYXI6Ly9wcm9ibGVtLzQ4OTM3NzY3Lgog
Ym9vbCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDg1NGM1NTAzYTYxODJiNmM3
NWUxYzFhYzZkMjEyMzBmY2RmM2Q4ODIuLjgzZjZjZWNlNzI2Mzc3MTI4MTMyNWQwMTg2NmI2OWE2
YzVlOTI4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMTEs
OCArMTExLDYgQEAgcHVibGljOgogICAgIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgY29uc3QgQXRvbVN0cmluZyYg
aW1hZ2VTb3VyY2VVUkwoKSBjb25zdCBvdmVycmlkZTsKLQotICAgIGJvb2wgaGFzU2hhZG93Q29u
dHJvbHMoKSBjb25zdCB7IHJldHVybiBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQ7IH0K
ICAgICAKICAgICBIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1cmVFbGVtZW50KCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRQaWN0dXJlRWxlbWVudChIVE1MUGljdHVyZUVsZW1lbnQqKTsKQEAgLTE4NSwx
NCArMTgzLDYgQEAgcHJpdmF0ZToKIAogICAgIGZsb2F0IGVmZmVjdGl2ZUltYWdlRGV2aWNlUGl4
ZWxSYXRpbygpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdm9p
ZCB1cGRhdGVJbWFnZUNvbnRyb2xzKCk7Ci0gICAgdm9pZCB0cnlDcmVhdGVJbWFnZUNvbnRyb2xz
KCk7Ci0gICAgdm9pZCBkZXN0cm95SW1hZ2VDb250cm9scygpOwotICAgIGJvb2wgaGFzSW1hZ2VD
b250cm9scygpIGNvbnN0OwotICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxI
VE1MSW1hZ2VMb2FkZXI+IG1faW1hZ2VMb2FkZXI7CiAgICAgV2Vha1B0cjxIVE1MRm9ybUVsZW1l
bnQ+IG1fZm9ybTsKICAgICBXZWFrUHRyPEhUTUxGb3JtRWxlbWVudD4gbV9mb3JtU2V0QnlQYXJz
ZXI7CkBAIC0yMDIsNyArMTkyLDYgQEAgcHJpdmF0ZToKICAgICBBdG9tU3RyaW5nIG1fY3VycmVu
dFNyYzsKICAgICBBdG9tU3RyaW5nIG1fcGFyc2VkVXNlbWFwOwogICAgIGZsb2F0IG1faW1hZ2VE
ZXZpY2VQaXhlbFJhdGlvOwotICAgIGJvb2wgbV9leHBlcmltZW50YWxJbWFnZU1lbnVFbmFibGVk
OwogICAgIGJvb2wgbV9oYWROYW1lQmVmb3JlQXR0cmlidXRlQ2hhbmdlZCB7IGZhbHNlIH07IC8v
IEZJWE1FOiBXZSBvbmx5IG5lZWQgdGhpcyBiZWNhdXNlIHBhcnNlQXR0cmlidXRlKCkgY2FuJ3Qg
c2VlIHRoZSBvbGQgdmFsdWUuCiAgICAgYm9vbCBtX2lzRHJvcHBlZEltYWdlUGxhY2Vob2xkZXIg
eyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDdmZmRlODU2Yjk1MTNmM2ZmYjVlNjllNWM0NTlhNTc1NTRjYjMzZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnQuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi0j
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KTsK
LQotI2lmICFQTEFURk9STShNQUMpCi1SZWY8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQ6Om1heWJlQ3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKLXsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoZG9jdW1l
bnQpKTsKLX0KLSNlbmRpZgotCi1JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6OkltYWdlQ29udHJv
bHNSb290RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChI
VE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCi17Ci19Ci0KLUltYWdlQ29udHJvbHNSb290RWxl
bWVudDo6fkltYWdlQ29udHJvbHNSb290RWxlbWVudCgpID0gZGVmYXVsdDsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDEwYTQ5ZDM0ZjA0MTI2Y2VmZGE2
NDAyZTY0YjQ5OTM2Y2RhY2IzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxl
bWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLSNpbmNsdWRlICJIVE1M
RGl2RWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50Owot
Ci1jbGFzcyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQg
ewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KTsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoKTsKLQotICAg
IHN0YXRpYyBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiB0cnlDcmVhdGUoRG9jdW1l
bnQmKTsKLQotcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEltYWdlQ29udHJvbHNSb290RWxlbWVu
dChEb2N1bWVudCYpOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODRl
YzYzZmIxYmE3NDhlM2RmOWE5Yzc2NDNmYWVlN2Y3YmU0MTkwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJ
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0KLSNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJF
dmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKLSNp
bmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCi0jaW5jbHVkZSAi
UmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgotI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLVdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYyk7Ci0KLWNsYXNzIFJlbmRlckltYWdlQ29udHJvbHNCdXR0b24gZmluYWwg
OiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lO
TElORShSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uKTsKLXB1YmxpYzoKLSAgICBSZW5kZXJJbWFn
ZUNvbnRyb2xzQnV0dG9uKEhUTUxFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgdmlydHVh
bCB+UmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbigpOwotCi1wcml2YXRlOgotICAgIHZvaWQgdXBk
YXRlTG9naWNhbFdpZHRoKCkgb3ZlcnJpZGU7Ci0gICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFs
dWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0
VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBvdmVycmlkZTsKLQotICAgIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVySW1hZ2VDb250cm9sc0J1dHRv
biI7IH0KLX07Ci0KLVJlbmRlckltYWdlQ29udHJvbHNCdXR0b246OlJlbmRlckltYWdlQ29udHJv
bHNCdXR0b24oSFRNTEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCi0gICAg
OiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCi17Ci19Ci0KLVJlbmRl
ckltYWdlQ29udHJvbHNCdXR0b246On5SZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uKCkgPSBkZWZh
dWx0OwotCi12b2lkIFJlbmRlckltYWdlQ29udHJvbHNCdXR0b246OnVwZGF0ZUxvZ2ljYWxXaWR0
aCgpCi17Ci0gICAgUmVuZGVyQm94Ojp1cGRhdGVMb2dpY2FsV2lkdGgoKTsKLQotICAgIEludFNp
emUgZnJhbWVTaXplID0gdGhlbWUoKS5pbWFnZUNvbnRyb2xzQnV0dG9uU2l6ZSgqdGhpcyk7Ci0g
ICAgc2V0TG9naWNhbFdpZHRoKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBmcmFtZVNpemUu
d2lkdGgoKSA6IGZyYW1lU2l6ZS5oZWlnaHQoKSk7Ci19Ci0KLVJlbmRlckJveDo6TG9naWNhbEV4
dGVudENvbXB1dGVkVmFsdWVzIFJlbmRlckltYWdlQ29udHJvbHNCdXR0b246OmNvbXB1dGVMb2dp
Y2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9w
KSBjb25zdAotewotICAgIGF1dG8gY29tcHV0ZWRWYWx1ZXMgPSBSZW5kZXJCb3g6OmNvbXB1dGVM
b2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxUb3ApOwotICAgIEludFNpemUgZnJh
bWVTaXplID0gdGhlbWUoKS5pbWFnZUNvbnRyb2xzQnV0dG9uU2l6ZSgqdGhpcyk7Ci0gICAgY29t
cHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZnJhbWVT
aXplLmhlaWdodCgpIDogZnJhbWVTaXplLndpZHRoKCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkVmFs
dWVzOwotfQotCi1JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6SW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogSFRNTERpdkVsZW1lbnQo
SFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQotewotfQotCi1JbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYzo6fkltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKCkgPSBkZWZhdWx0Owot
Ci1SZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50TWFjOjp0cnlDcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQotewotICAgIGlmICgh
ZG9jdW1lbnQucGFnZSgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29u
dHJvbHNCdXR0b25OYW1lKCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scy1idXR0b24iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0KLSAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVm
KCpuZXcgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKLSAgICBidXR0
b24tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0
dHIsIHhXZWJraXRJbWFnZUNvbnRyb2xzQnV0dG9uTmFtZSk7Ci0KLSAgICBJbnRTaXplIHBvc2l0
aW9uT2Zmc2V0ID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmltYWdlQ29udHJvbHNCdXR0b25Q
b3NpdGlvbk9mZnNldCgpOwotICAgIGJ1dHRvbi0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVRvcCwgcG9zaXRpb25PZmZzZXQuaGVpZ2h0KCksIENTU1VuaXRUeXBlOjpDU1NfUFgp
OwotCi0gICAgLy8gRklYTUU6IFdoeSBpcyByaWdodDogMHB4IG9mZiB0aGUgcmlnaHQgZWRnZSBv
ZiB0aGUgcGFyZW50PwotICAgIGJ1dHRvbi0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVJpZ2h0LCBwb3NpdGlvbk9mZnNldC53aWR0aCgpLCBDU1NVbml0VHlwZTo6Q1NTX1BYKTsK
LQotICAgIHJldHVybiBXVEZNb3ZlKGJ1dHRvbik7Ci19Ci0KLXZvaWQgSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQotewotICAg
IGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsKLSAgICAgICAg
UmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKLSAgICAgICAgaWYgKCFm
cmFtZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBQYWdlKiBwYWdlID0gZG9jdW1l
bnQoKS5wYWdlKCk7Ci0gICAgICAgIGlmICghcGFnZSkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93SW1hZ2VDb250cm9sc01l
bnUoZXZlbnQpOwotICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
ZXZlbnQpOwotfQotCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQotewotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMxOWMxMDJkNmExODhhNTcwNmQ4ZmI0OGUzMWFjNjA1NmI4ZDMyM2IuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJI
VE1MRGl2RWxlbWVudC5oIgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMgZmlu
YWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMpOwotcHVibGljOgotICAgIHZpcnR1YWwgfklt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKCk7Ci0KLSAgICBzdGF0aWMgUmVmUHRyPEltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjPiB0cnlDcmVhdGUoRG9jdW1lbnQmKTsKLQotcHJpdmF0
ZToKLSAgICBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYyhEb2N1bWVudCYpOwotCi0gICAg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Jikgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKLQotICAgIGJvb2wgaXNJbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMv
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2FhNDU0OWMxM2M4NzUxNzU1MGIzZjcxZjM4NDk3ODJiNmQwYjg5Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oIgotCi0jaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi0KLSNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyk7
Ci0KLWNsYXNzIFJlbmRlckltYWdlQ29udHJvbHMgZmluYWwgOiBwdWJsaWMgUmVuZGVyQmxvY2tG
bG93IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShSZW5kZXJJbWFnZUNvbnRy
b2xzKTsKLXB1YmxpYzoKLSAgICBSZW5kZXJJbWFnZUNvbnRyb2xzKEhUTUxFbGVtZW50JiwgUmVu
ZGVyU3R5bGUmJik7Ci0gICAgdmlydHVhbCB+UmVuZGVySW1hZ2VDb250cm9scygpOwotCi1wcml2
YXRlOgotICAgIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgb3ZlcnJpZGU7Ci0gICAgTG9naWNh
bEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBvdmVycmlkZTsKLQotICAg
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVy
SW1hZ2VDb250cm9scyI7IH0KLX07Ci0KLVJlbmRlckltYWdlQ29udHJvbHM6OlJlbmRlckltYWdl
Q29udHJvbHMoSFRNTEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCi0gICAg
OiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCi17Ci19Ci0KLVJlbmRl
ckltYWdlQ29udHJvbHM6On5SZW5kZXJJbWFnZUNvbnRyb2xzKCkgPSBkZWZhdWx0OwotCi12b2lk
IFJlbmRlckltYWdlQ29udHJvbHM6OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCi17Ci0gICAgUmVuZGVy
Qm94Ojp1cGRhdGVMb2dpY2FsV2lkdGgoKTsKLQotICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
ID0gZWxlbWVudCgpLT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFpczxSZW5k
ZXJJbWFnZT4oKnJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2V0TG9naWNhbFdp
ZHRoKGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmxvZ2ljYWxXaWR0aCgpKTsKLX0K
LQotUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVySW1hZ2VDb250
cm9sczo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlv
dXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0Ci17Ci0gICAgYXV0byBjb21wdXRlZFZhbHVlcyA9IFJl
bmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCwgbG9naWNhbFRvcCk7
Ci0gICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBlbGVtZW50KCktPnNoYWRvd0hvc3QoKS0+
cmVuZGVyZXIoKTsKLSAgICBpZiAoIWlzPFJlbmRlckltYWdlPigqcmVuZGVyZXIpKQotICAgICAg
ICByZXR1cm4gY29tcHV0ZWRWYWx1ZXM7Ci0KLSAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9
IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmxvZ2ljYWxIZWlnaHQoKTsKLSAgICBy
ZXR1cm4gY29tcHV0ZWRWYWx1ZXM7Ci19Ci0KLVJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudDo6dHJ5Q3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKLXsKLSAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KLSAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQtaW1hZ2UtY29udHJvbHMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0KLSAgICBSZWY8SW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc1Jvb3RF
bGVtZW50TWFjKGRvY3VtZW50KSk7Ci0gICAgY29udHJvbHMtPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJraXRJbWFnZUNvbnRyb2xz
TmFtZSk7Ci0KLSAgICBpZiAoUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBi
dXR0b24gPSBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6dHJ5Q3JlYXRlKGRvY3VtZW50
KSkKLSAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKCpidXR0b24pOwotCi0gICAgcmV0dXJu
IFdURk1vdmUoY29udHJvbHMpOwotfQotCi1JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6Oklt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQoZG9jdW1lbnQpCi17Ci19Ci0KLUltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYzo6fkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYygpID0gZGVmYXVsdDsKLQot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlQ29udHJv
bHM+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1h
Yy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjAyYjQwMjQzZjFiNzBjMGRmMTQ5
OGI2ZDFmZjcyZGVhODBjZDI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkltYWdlQ29udHJvbHNSb290RWxlbWVudC5oIgot
Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjIGZpbmFsIDogcHVibGljIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudCB7Ci0gICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnRNYWMpOwotICAgIGZyaWVuZCBjbGFzcyBJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnQ7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
KCk7Ci0KLXByaXZhdGU6Ci0gICAgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKERvY3VtZW50
Jik7Ci0KLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvaW1hZ2VD
b250cm9sc01hYy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvaW1hZ2VDb250
cm9sc01hYy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiMzkzZGFjN2MzYWU3
NDk5ZjhlMGU2YTBiMDVhZTBjNzU1Y2M0YmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL2ltYWdlQ29u
dHJvbHNNYWMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTCi0KLS54LXdlYmtpdC1pbWFnZS1jb250cm9scyB7Ci0gICAgcG9zaXRpb246
IHJlbGF0aXZlOwotfQotCi0ueC13ZWJraXQtaW1hZ2UtY29udHJvbHMtYnV0dG9uIHsKLSAgICBw
b3NpdGlvbjogYWJzb2x1dGU7Ci0KLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGltYWdlLWNvbnRy
b2xzLWJ1dHRvbjsKLQotICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXM7Ci0gICAgb3BhY2l0
eTogMDsKLX0KLQotLngtd2Via2l0LWltYWdlLWNvbnRyb2xzOmhvdmVyIC54LXdlYmtpdC1pbWFn
ZS1jb250cm9scy1idXR0b24gewotICAgIG9wYWNpdHk6IDEuMDsKLX0KLQotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZWY5ZjM2
N2U5OTM1ZWFlMzQ1MzNhY2JiMTRmMDBhZTE1OGI3YThjZC4uNGFlZDcxZTdlZDFlMDQ2MzVlZDE3
YTU2MTlkNWQ4ZTcxMGU4MDQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcApAQCAtMTM1LDIxICsxMzUsNiBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29udGV4dE1lbnVQcm92aWRl
ciYgcAogICAgIHNob3dDb250ZXh0TWVudShldmVudCk7CiB9CiAKLSNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKLQotc3RhdGljIEltYWdlKiBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKE5v
ZGUmIG5vZGUpCi17Ci0gICAgYXV0byogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7Ci0gICAg
aWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICBhdXRvKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hl
ZEltYWdlKCk7Ci0gICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIo
cmVuZGVyZXIpOwotfQotCi0jZW5kaWYKLQogc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBD
b250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmIGV2ZW50
KQogewogICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQpAQCAtMTcwLDE2ICsxNTUsNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5
YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogCiAgICAgbV9jb250ZXh0ID0gQ29udGV4dE1lbnVD
b250ZXh0KHJlc3VsdCk7CiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBpZiAo
bm9kZS5pc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpKSkKLSAgICAgICAgICAgIG1fY29udGV4dC5zZXRDb250cm9sbGVkSW1hZ2UoaW1hZ2Up
OwotCi0gICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBjb3VsZG4ndCBnZXQgdGhlIGltYWdlIHRoZW4g
d2Ugc2hvdWxkbid0IHRyeSB0byBzaG93IHRoZSBpbWFnZSBjb250cm9scyBtZW51IGZvciBpdC4K
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotI2VuZGlmCi0KICAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxDb250ZXh0TWVudT4oKTsKIH0KIApAQCAtMTQ5NywxNyArMTQ3Miw2IEBAIHZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNv
bnN0IEludFBvaW50JiBjbGljCiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCi0KLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01lbnUo
RXZlbnQmIGV2ZW50KQotewotICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKLSAgICBoYW5kbGVDb250
ZXh0TWVudUV2ZW50KGV2ZW50KTsKLSAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUoKTsKLX0K
LQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShD
T05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmgKaW5kZXggODk4ZDBiZWJkYjg2NzFiMGY4ZDQ2ZmI4YjFkNmVmNDNkMDFkYjgxYS4uNDA0Nzkz
NThmZmI3ZTJmZTUyMzViNjg0ODM4MDVkODRjMjkwZDY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCkBAIC02NiwxMCArNjYsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzaG93Q29udGV4dE1lbnVBdChGcmFtZSYsIGNvbnN0IEludFBvaW50JiBjbGlja1Bv
aW50KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdm9pZCBz
aG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYp
OwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RoZW1lVHlwZXMuY3BwCmluZGV4IGNkYjJiMTJiYjkzZTZlYTZkYmFiMDE4MGQ4ODEwZDAzNjk3
MzM0YWEuLmQ5ODk3ZTM4M2QyNDdlMmIzZWZmYWM4YjJmYTIzNGFhODc1NDVjNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuY3BwCkBAIC05MCw5ICs5MCw2IEBAIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbnRyb2xQYXJ0IGNvbnRyb2xQYXJ0KQog
ICAgIGNhc2UgQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OiB0cyA8PCAiY29u
dGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3ItcGFydCI7IGJyZWFrOwogICAgIGNhc2Ug
RGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDogdHMgPDwgImRpc2NyZXRlLWNhcGFj
aXR5LWxldmVsLWluZGljYXRvci1wYXJ0IjsgYnJlYWs7CiAgICAgY2FzZSBSYXRpbmdMZXZlbElu
ZGljYXRvclBhcnQ6IHRzIDw8ICJyYXRpbmctbGV2ZWwtaW5kaWNhdG9yLXBhcnQiOyBicmVhazsK
LSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBjYXNlIEltYWdlQ29udHJvbHNCdXR0
b25QYXJ0OiB0cyA8PCAiaW1hZ2UtY29udHJvbHMtYnV0dG9uLXBhcnQiOyBicmVhazsKLSNlbmRp
ZgogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6IHRz
IDw8ICJhcHBsZS1wYXktYnV0dG9uLXBhcnQiOyBicmVhazsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCmluZGV4IGMyODc1ZTNiNGFmYmNkODMzOTJmMzA0NjZlMDdiYjI2
OWI2ODRjOGYuLjRlNDQwNTVlYjNjYjhmNWFkMzIzYmM5YTg1N2Q3NGMzZjVlMTllYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKQEAgLTkwLDkgKzkwLDYgQEAgZW51bSBDb250
cm9sUGFydCB7CiAgICAgQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0LAogICAg
IERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQsCiAgICAgUmF0aW5nTGV2ZWxJbmRp
Y2F0b3JQYXJ0LAotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIEltYWdlQ29udHJv
bHNCdXR0b25QYXJ0LAotI2VuZGlmCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBBcHBsZVBh
eUJ1dHRvblBhcnQsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwCmluZGV4IDBlMWRiNDBmMTRjOTdlNzU0MTMyMjZmMTVhNGNkNDliOGYwMTQwNzEuLjI5OTNk
ZTkwNTA2N2IyYTQxOTE2M2JlODNiODEwYThlMGQyZTMzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMTQxLDggKzE0MSw2IEBAIFJlbmRlckltYWdlOjpS
ZW5kZXJJbWFnZShFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlLCBTdHlsZUlt
YWdlKiBzdHlsCiAgICAgLCBtX2ltYWdlRGV2aWNlUGl4ZWxSYXRpbyhpbWFnZURldmljZVBpeGVs
UmF0aW8pCiB7CiAgICAgdXBkYXRlQWx0VGV4dCgpOwotICAgIGlmIChpczxIVE1MSW1hZ2VFbGVt
ZW50PihlbGVtZW50KSkKLSAgICAgICAgbV9oYXNTaGFkb3dDb250cm9scyA9IGRvd25jYXN0PEhU
TUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQpLmhhc1NoYWRvd0NvbnRyb2xzKCk7CiB9CiAKIFJlbmRl
ckltYWdlOjpSZW5kZXJJbWFnZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5
bGUsIFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAppbmRleCA4YzE5NzAyMDdjMDMxYmI0MGYzZjRhOTljMDczYmE3NDJlMjE4NWI1
Li4yOGM4N2JiZTcxODJjYWQ0NmViYWY3ZTA2YThhMDFmOTA2ZGVlMTM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTI1NSwxMCArMjU1LDYgQEAgdm9pZCBS
ZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50
KiBlbGVtZW50LCBjb25zdAogICAgIGNhc2UgRGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9y
UGFydDoKICAgICBjYXNlIFJhdGluZ0xldmVsSW5kaWNhdG9yUGFydDoKICAgICAgICAgcmV0dXJu
IGFkanVzdE1ldGVyU3R5bGUoc3R5bGUsIGVsZW1lbnQpOwotI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9sc0J1dHRvblBhcnQ6Ci0gICAgICAgIGJyZWFr
OwotI2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6CiAgICAgICAgIHJldHVy
biBhZGp1c3RDYXBzTG9ja0luZGljYXRvclN0eWxlKHN0eWxlLCBlbGVtZW50KTsKICNpZiBFTkFC
TEUoQVBQTEVfUEFZKQpAQCAtNDE1LDEwICs0MTEsNiBAQCBib29sIFJlbmRlclRoZW1lOjpwYWlu
dChjb25zdCBSZW5kZXJCb3gmIGJveCwgQ29udHJvbFN0YXRlcyYgY29udHJvbFN0YXRlcywgY29u
cwogICAgICAgICByZXR1cm4gcGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uUGFydChi
b3gsIHBhaW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7CiAgICAgY2FzZSBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25QYXJ0OgogICAgICAgICByZXR1cm4gcGFpbnRTZWFyY2hGaWVsZFJlc3Vs
dHNCdXR0b24oYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBlZFJlY3QpOwotI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9sc0J1dHRvblBhcnQ6Ci0g
ICAgICAgIHJldHVybiBwYWludEltYWdlQ29udHJvbHNCdXR0b24oYm94LCBwYWludEluZm8sIGlu
dGVncmFsU25hcHBlZFJlY3QpOwotI2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBh
cnQ6CiAgICAgICAgIHJldHVybiBwYWludENhcHNMb2NrSW5kaWNhdG9yKGJveCwgcGFpbnRJbmZv
LCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNDgxLDkg
KzQ3Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seShjb25zdCBSZW5kZXJC
b3gmIGJveCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluCiAgICAgY2FzZSBTZWFyY2hGaWVsZERl
Y29yYXRpb25QYXJ0OgogICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBhcnQ6
CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0OgotI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQotICAgIGNhc2UgSW1hZ2VDb250cm9sc0J1dHRvblBhcnQ6Ci0jZW5kaWYK
ICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC01NTUsOSArNTQ0LDYgQEAg
dm9pZCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJCb3gmIGJveCwg
Y29uc3QgUGFpbnRJbmZvJiBwYWludEkKICAgICBjYXNlIFNlYXJjaEZpZWxkRGVjb3JhdGlvblBh
cnQ6CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uUGFydDoKICAgICBjYXNl
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCi0gICAgY2FzZSBJbWFnZUNvbnRyb2xzQnV0dG9uUGFydDoKLSNlbmRpZgogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKaW5kZXggNjA4ZTBlOTM3ODM4MGViODhlNjgxZmRjZTgxYzkxODRlM2ZmYjFjOS4uNzRk
NmZkOWRjZGNlN2M3NjMwZjA0ZjY1YzdkMWQwNjA0NzdkYWQyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTk0LDkgKzk0LDYgQEAgcHVibGljOgogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFN0cmluZyBleHRyYUZ1bGxTY3JlZW5TdHls
ZVNoZWV0KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KICNlbmRpZgotI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQotICAgIHZpcnR1YWwgU3RyaW5nIGltYWdlQ29udHJvbHNTdHlsZVNoZWV0KCkg
Y29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KLSNlbmRpZgogI2lmIEVOQUJMRShEQVRBTElTVF9F
TEVNRU5UKQogICAgIFN0cmluZyBkYXRhTGlzdFN0eWxlU2hlZXQoKSBjb25zdDsKICNlbmRpZgpA
QCAtMjQ4LDExICsyNDUsNiBAQCBwdWJsaWM6CiAgICAgZW51bSBGaWxlVXBsb2FkRGVjb3JhdGlv
bnMgeyBTaW5nbGVGaWxlLCBNdWx0aXBsZUZpbGVzIH07CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIC8qaW5wdXRSZW5k
ZXJlciovLCBjb25zdCBSZW5kZXJPYmplY3QmIC8qYnV0dG9uUmVuZGVyZXIqLywgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYsIEljb24qLCBGaWxlVXBsb2FkRGVjb3JhdGlvbnMpIHsg
fQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdmlydHVhbCBJbnRTaXplIGlt
YWdlQ29udHJvbHNCdXR0b25TaXplKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0IHsgcmV0dXJu
IEludFNpemUoKTsgfQotICAgIHZpcnR1YWwgSW50U2l6ZSBpbWFnZUNvbnRyb2xzQnV0dG9uUG9z
aXRpb25PZmZzZXQoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KLSNlbmRpZgotCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2aXJ0dWFsIExheW91dFNpemUgYXR0YWNo
bWVudEludHJpbnNpY1NpemUoY29uc3QgUmVuZGVyQXR0YWNobWVudCYpIGNvbnN0IHsgcmV0dXJu
IExheW91dFNpemUoKTsgfQogICAgIHZpcnR1YWwgaW50IGF0dGFjaG1lbnRCYXNlbGluZShjb25z
dCBSZW5kZXJBdHRhY2htZW50JikgY29uc3QgeyByZXR1cm4gLTE7IH0KQEAgLTQwNiwxMCArMzk4
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhRnVsbFNjcmVlblZv
bHVtZVNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVk
aWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KIAotI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwgYm9vbCBwYWludEltYWdlQ29udHJvbHNC
dXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpIHsgcmV0dXJuIHRydWU7IH0KLSNlbmRpZgotCiBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVD
b250cm9sU3RhdGVzRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyQm94JiwgQ29udHJvbFN0YXRlcyYp
IGNvbnN0OwogICAgIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBleHRyYWN0Q29udHJvbFN0YXRlc0Zv
clJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCAwN2VmNWJkZmViYTI2NGE1MTcyYThmYTZkOWFm
MjZjMzE5ODRiMDg2Li42MTFkY2VkYzEyMDBiZjRhYWQ1MjMwYzAxZDM5Zjg4NjEzYzkyMWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtMTEyLDEwICsx
MTIsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtZWRpYUNvbnRyb2xzQmFzZTY0U3RyaW5nRm9y
SWNvbk5hbWVBbmRUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBTdHJpbmcgaW1hZ2VDb250
cm9sc1N0eWxlU2hlZXQoKSBjb25zdCBmaW5hbDsKLSNlbmRpZgotCiAgICAgYm9vbCBwYWludFRl
eHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGFkanVzdFRleHRGaWVsZFN0eWxlKFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0IGZpbmFsOwogCkBAIC0yMjIsMTQgKzIxOCw2IEBAIHBy
aXZhdGU6CiAgICAgY29uc3QgSW50U2l6ZSogcHJvZ3Jlc3NCYXJTaXplcygpIGNvbnN0OwogICAg
IGNvbnN0IGludCogcHJvZ3Jlc3NCYXJNYXJnaW5zKE5TQ29udHJvbFNpemUpIGNvbnN0OwogCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgYm9vbCBwYWludEltYWdlQ29udHJvbHNC
dXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpIGZpbmFsOwotICAgIEludFNpemUgaW1hZ2VDb250cm9sc0J1dHRvblNpemUoY29uc3QgUmVu
ZGVyT2JqZWN0JikgY29uc3QgZmluYWw7Ci0gICAgSW50U2l6ZSBpbWFnZUNvbnRyb2xzQnV0dG9u
UG9zaXRpb25PZmZzZXQoKSBjb25zdCBmaW5hbDsKLQotICAgIE5TU2VydmljZXNSb2xsb3ZlckJ1
dHRvbkNlbGwgKnNlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsKCkgY29uc3Q7Ci0jZW5kaWYKLQog
ICAgIG11dGFibGUgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25DZWxsPiBtX3BvcHVwQnV0dG9uOwog
ICAgIG11dGFibGUgUmV0YWluUHRyPE5TU2VhcmNoRmllbGRDZWxsPiBtX3NlYXJjaDsKICAgICBt
dXRhYmxlIFJldGFpblB0cjxOU01lbnU+IG1fc2VhcmNoTWVudVRlbXBsYXRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDc0YWYwMjgxZTEyN2U0MmY0
YWI0MWQ4M2E4MTQ1YTM4YjQ3OTMzNDguLjFiNTk0NWNiYzNmYzNlMzg4MTMxNjNmOGU1MmMzZmM5
NWU1Njg0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
QEAgLTg5LDE5ICs4OSwxMCBAQAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGdvIGludG8gYW4gU1BJ
LmggZmlsZSBpbiB0aGUgc3BpIGRpcmVjdG9yeS4KICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdERlZmluZXNfUHJpdmF0ZS5oPgotI2ltcG9ydCA8QXBw
S2l0L05TU2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwuaD4KICNlbHNlCiAjZGVmaW5lIEFQUEtJ
VF9QUklWQVRFX0NMQVNTCi1AaW50ZXJmYWNlIE5TU2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwg
OiBOU0J1dHRvbkNlbGwKLUBlbmQKICNlbmRpZgogCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgZ28g
aW50byBhbiBTUEkuaCBmaWxlIGluIHRoZSBzcGkgZGlyZWN0b3J5LgotQGludGVyZmFjZSBOU1Nl
cnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsICgpCi0rIChOU1NlcnZpY2VzUm9sbG92ZXJCdXR0b25D
ZWxsICopc2VydmljZVJvbGxvdmVyQnV0dG9uQ2VsbEZvclN0eWxlOihOU1NoYXJpbmdTZXJ2aWNl
UGlja2VyU3R5bGUpc3R5bGU7Ci0tIChOU1JlY3QpcmVjdEZvckJvdW5kczooTlNSZWN0KWJvdW5k
cyBwcmVmZXJyZWRFZGdlOihOU1JlY3RFZGdlKXByZWZlcnJlZEVkZ2U7Ci1AZW5kCi0KICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGdv
IGludG8gYW4gU1BJLmggZmlsZSBpbiB0aGUgc3BpIGRpcmVjdG9yeS4KQEAgLTM2MCwxNSArMzUx
LDYgQEAgU3RyaW5nIFJlbmRlclRoZW1lTWFjOjptZWRpYUNvbnRyb2xzQmFzZTY0U3RyaW5nRm9y
SWNvbk5hbWVBbmRUeXBlKGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gW1tOU0RhdGEgZGF0YVdp
dGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTppY29uTmFtZSBvZlR5cGU6
aWNvblR5cGUgaW5EaXJlY3Rvcnk6ZGlyZWN0b3J5XV0gYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhP
cHRpb25zOjBdOwogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLVN0cmluZyBS
ZW5kZXJUaGVtZU1hYzo6aW1hZ2VDb250cm9sc1N0eWxlU2hlZXQoKSBjb25zdAotewotICAgIHJl
dHVybiBTdHJpbmcoaW1hZ2VDb250cm9sc01hY1VzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihp
bWFnZUNvbnRyb2xzTWFjVXNlckFnZW50U3R5bGVTaGVldCkpOwotfQotCi0jZW5kaWYKLQogQ29s
b3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIExv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFp
bnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKQEAgLTIyNzUsNTYg
KzIyNTcsNiBAQCBTdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNv
bnN0IEZpbGVMaXN0KiBmaWxlTGlzdCwgY29uc3QgRm9udAogICAgIHJldHVybiBTdHJpbmdUcnVu
Y2F0b3I6OmNlbnRlclRydW5jYXRlKHN0clRvVHJ1bmNhdGUsIHdpZHRoLCBmb250KTsKIH0KIAot
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotTlNTZXJ2aWNlc1JvbGxvdmVyQnV0dG9uQ2Vs
bCogUmVuZGVyVGhlbWVNYWM6OnNlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsKCkgY29uc3QKLXsK
LSAgICBpZiAoIW1fc2VydmljZXNSb2xsb3ZlckJ1dHRvbikgewotICAgICAgICBtX3NlcnZpY2Vz
Um9sbG92ZXJCdXR0b24gPSBbTlNTZXJ2aWNlc1JvbGxvdmVyQnV0dG9uQ2VsbCBzZXJ2aWNlUm9s
bG92ZXJCdXR0b25DZWxsRm9yU3R5bGU6TlNTaGFyaW5nU2VydmljZVBpY2tlclN0eWxlUm9sbG92
ZXJdOwotICAgICAgICBbbV9zZXJ2aWNlc1JvbGxvdmVyQnV0dG9uIHNldEJlemVsU3R5bGU6TlNC
ZXplbFN0eWxlUm91bmRlZERpc2Nsb3N1cmVdOwotICAgICAgICBbbV9zZXJ2aWNlc1JvbGxvdmVy
QnV0dG9uIHNldEJ1dHRvblR5cGU6TlNCdXR0b25UeXBlUHVzaE9uUHVzaE9mZl07Ci0gICAgICAg
IFttX3NlcnZpY2VzUm9sbG92ZXJCdXR0b24gc2V0SW1hZ2VQb3NpdGlvbjpOU0ltYWdlT25seV07
Ci0gICAgICAgIFttX3NlcnZpY2VzUm9sbG92ZXJCdXR0b24gc2V0U3RhdGU6Tk9dOwotICAgIH0K
LQotICAgIHJldHVybiBtX3NlcnZpY2VzUm9sbG92ZXJCdXR0b24uZ2V0KCk7Ci19Ci0KLWJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50SW1hZ2VDb250cm9sc0J1dHRvbihjb25zdCBSZW5kZXJPYmpl
Y3QmIHJlbmRlcmVyLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCkKLXsKLSAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2U6OkJsb2NrQmFj
a2dyb3VuZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBOU1NlcnZpY2VzUm9sbG92ZXJC
dXR0b25DZWxsICpjZWxsID0gc2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwoKTsKLQotICAgIExv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQo
KSk7Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBhaW50SW5mby5j
b250ZXh0KCkpOwotCi0gICAgcGFpbnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUocmVjdC5sb2Nh
dGlvbigpKTsKLQotICAgIEludFJlY3QgaW5uZXJGcmFtZShJbnRQb2ludCgpLCByZWN0LnNpemUo
KSk7Ci0gICAgW2NlbGwgZHJhd1dpdGhGcmFtZTppbm5lckZyYW1lIGluVmlldzpkb2N1bWVudFZp
ZXdGb3IocmVuZGVyZXIpXTsKLSAgICBbY2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLUludFNpemUgUmVuZGVyVGhlbWVNYWM6OmltYWdlQ29udHJvbHNC
dXR0b25TaXplKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFNp
emUoc2VydmljZXNSb2xsb3ZlckJ1dHRvbkNlbGwoKS5jZWxsU2l6ZSk7Ci19Ci0KLUludFNpemUg
UmVuZGVyVGhlbWVNYWM6OmltYWdlQ29udHJvbHNCdXR0b25Qb3NpdGlvbk9mZnNldCgpIGNvbnN0
Ci17Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGUgb2Zmc2V0cyB3aWxsIGFsd2F5cyBiZSB0
aGUgc2FtZSBubyBtYXR0ZXIgd2hhdCBpbWFnZSByZWN0IHlvdSB0cnkgd2l0aC4KLSAgICAvLyBU
aGlzIG1heSBub3QgYWx3YXlzIGJlIHRydWUgaW4gdGhlIGZ1dHVyZS4KLSAgICBzdGF0aWMgY29u
c3QgaW50IGR1bW15RGltZW5zaW9uID0gMTAwOwotICAgIEludFJlY3QgZHVtbXlJbWFnZVJlY3Qo
MCwgMCwgZHVtbXlEaW1lbnNpb24sIGR1bW15RGltZW5zaW9uKTsKLSAgICBOU1JlY3QgYm91bmRz
ID0gW3NlcnZpY2VzUm9sbG92ZXJCdXR0b25DZWxsKCkgcmVjdEZvckJvdW5kczpkdW1teUltYWdl
UmVjdCBwcmVmZXJyZWRFZGdlOk5TTWluWUVkZ2VdOwotCi0gICAgcmV0dXJuIEludFNpemUoZHVt
bXlEaW1lbnNpb24gLSBib3VuZHMub3JpZ2luLngsIGJvdW5kcy5vcmlnaW4ueSk7Ci19Ci0jZW5k
aWYKLQogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiBjb25zdCBDR0Zsb2F0IGF0dGFj
aG1lbnRJY29uU2l6ZSA9IDQ4OwogY29uc3QgQ0dGbG9hdCBhdHRhY2htZW50SWNvbkJhY2tncm91
bmRQYWRkaW5nID0gNjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2Vu
dFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmNwcAppbmRl
eCAzYTRiNjAzYzJiMWY3MTFhODdjZDk2NGQzZTI2OTk3YTY2MWI2YzJjLi5lYTY4NjgwNzE5NThk
NGYwNDEzODU2ZGRhMTNkODZjNWQzYWNlNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9Vc2VyQWdlbnRTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvVXNlckFn
ZW50U3R5bGUuY3BwCkBAIC03NSw3ICs3NSw2IEBAIFN0eWxlU2hlZXRDb250ZW50cyogVXNlckFn
ZW50U3R5bGU6Om1hdGhNTFN0eWxlU2hlZXQ7CiBTdHlsZVNoZWV0Q29udGVudHMqIFVzZXJBZ2Vu
dFN0eWxlOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVldDsKIFN0eWxlU2hlZXRDb250ZW50cyogVXNl
ckFnZW50U3R5bGU6OmZ1bGxzY3JlZW5TdHlsZVNoZWV0OwogU3R5bGVTaGVldENvbnRlbnRzKiBV
c2VyQWdlbnRTdHlsZTo6cGx1Z0luc1N0eWxlU2hlZXQ7Ci1TdHlsZVNoZWV0Q29udGVudHMqIFVz
ZXJBZ2VudFN0eWxlOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVldDsKIFN0eWxlU2hlZXRDb250ZW50
cyogVXNlckFnZW50U3R5bGU6Om1lZGlhUXVlcnlTdHlsZVNoZWV0OwogI2lmIEVOQUJMRShEQVRB
TElTVF9FTEVNRU5UKQogU3R5bGVTaGVldENvbnRlbnRzKiBVc2VyQWdlbnRTdHlsZTo6ZGF0YUxp
c3RTdHlsZVNoZWV0OwpAQCAtMTg2LDE1ICsxODUsNiBAQCB2b2lkIFVzZXJBZ2VudFN0eWxlOjpl
bnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQp
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCi0jaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgICAgIGVsc2UgaWYgKGlzPEhUTUxEaXZFbGVt
ZW50PihlbGVtZW50KSAmJiBlbGVtZW50LmlzSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCkpIHsK
LSAgICAgICAgICAgIGlmICghaW1hZ2VDb250cm9sc1N0eWxlU2hlZXQpIHsKLSAgICAgICAgICAg
ICAgICBTdHJpbmcgaW1hZ2VDb250cm9sc1J1bGVzID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigp
LmltYWdlQ29udHJvbHNTdHlsZVNoZWV0KCk7Ci0gICAgICAgICAgICAgICAgaW1hZ2VDb250cm9s
c1N0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoaW1hZ2VDb250cm9sc1J1bGVzKTsKLSAgICAgICAg
ICAgICAgICBhZGRUb0RlZmF1bHRTdHlsZSgqaW1hZ2VDb250cm9sc1N0eWxlU2hlZXQpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgICAgIGVsc2UgaWYgKCFkYXRhTGlz
dFN0eWxlU2hlZXQgJiYgaXM8SFRNTERhdGFMaXN0RWxlbWVudD4oZWxlbWVudCkpIHsKICAgICAg
ICAgICAgIGRhdGFMaXN0U3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChSZW5kZXJUaGVtZTo6c2lu
Z2xldG9uKCkuZGF0YUxpc3RTdHlsZVNoZWV0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvVXNlckFnZW50U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2Vu
dFN0eWxlLmgKaW5kZXggZmNkNGQ5ODI3NDZjNmY4ZjhhZDMwNjQ3MTg3MTQ4YmE3NjIwMmQ3Yy4u
ZTZmMGFhYTU0YzFlMzA2OWJmN2M0MjZmZDdiYTIwMjcwYzZlYzJmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvVXNlckFnZW50U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9Vc2VyQWdlbnRTdHlsZS5oCkBAIC00Niw3ICs0Niw2IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgU3R5bGVTaGVldENvbnRlbnRzKiBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldDsKICAgICBzdGF0
aWMgU3R5bGVTaGVldENvbnRlbnRzKiBmdWxsc2NyZWVuU3R5bGVTaGVldDsKICAgICBzdGF0aWMg
U3R5bGVTaGVldENvbnRlbnRzKiBwbHVnSW5zU3R5bGVTaGVldDsKLSAgICBzdGF0aWMgU3R5bGVT
aGVldENvbnRlbnRzKiBpbWFnZUNvbnRyb2xzU3R5bGVTaGVldDsKICNpZiBFTkFCTEUoREFUQUxJ
U1RfRUxFTUVOVCkKICAgICBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBkYXRhTGlzdFN0eWxl
U2hlZXQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5d29yZENvbXBsZXRpb25zLmpzCmluZGV4
IDM3NjVkOWEwYzVjNTgzZDI4ODdmZDQyZDdmMWEwOGIzZWMyOTJkNmEuLjQ4YmM0YmY4YjIwYzA2
YjNjN2U1OWVmMjk0YmU2MWU4MWNjMmJiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU0tleXdvcmRDb21w
bGV0aW9ucy5qcwpAQCAtODQ1LDcgKzg0NSw3IEBAIFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5f
cHJvcGVydHlLZXl3b3JkTWFwID0gewogICAgICAgICAiZWFzZSIsICJsaW5lYXIiLCAiZWFzZS1p
biIsICJlYXNlLW91dCIsICJlYXNlLWluLW91dCIsICJzdGVwLXN0YXJ0IiwgInN0ZXAtZW5kIiwg
InN0ZXBzKCkiLCAiY3ViaWMtYmV6aWVyKCkiLCAic3ByaW5nKCkiLAogICAgIF0sCiAgICAgIi13
ZWJraXQtYXBwZWFyYW5jZSI6IFsKLSAgICAgICAgIm5vbmUiLCAiY2hlY2tib3giLCAicmFkaW8i
LCAicHVzaC1idXR0b24iLCAic3F1YXJlLWJ1dHRvbiIsICJidXR0b24iLCAiYnV0dG9uLWJldmVs
IiwgImRlZmF1bHQtYnV0dG9uIiwgImlubmVyLXNwaW4tYnV0dG9uIiwgImxpc3Rib3giLCAibGlz
dGl0ZW0iLCAibWVkaWEtY29udHJvbHMtYmFja2dyb3VuZCIsICJtZWRpYS1jb250cm9scy1kYXJr
LWJhci1iYWNrZ3JvdW5kIiwgIm1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYmFja2dyb3VuZCIs
ICJtZWRpYS1jb250cm9scy1saWdodC1iYXItYmFja2dyb3VuZCIsICJtZWRpYS1jdXJyZW50LXRp
bWUtZGlzcGxheSIsICJtZWRpYS1lbnRlci1mdWxsc2NyZWVuLWJ1dHRvbiIsICJtZWRpYS1leGl0
LWZ1bGxzY3JlZW4tYnV0dG9uIiwgIm1lZGlhLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlciIsICJt
ZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXItdGh1bWIiLCAibWVkaWEtbXV0ZS1idXR0b24i
LCAibWVkaWEtb3ZlcmxheS1wbGF5LWJ1dHRvbiIsICJtZWRpYS1wbGF5LWJ1dHRvbiIsICJtZWRp
YS1yZXR1cm4tdG8tcmVhbHRpbWUtYnV0dG9uIiwgIm1lZGlhLXJld2luZC1idXR0b24iLCAibWVk
aWEtc2Vlay1iYWNrLWJ1dHRvbiIsICJtZWRpYS1zZWVrLWZvcndhcmQtYnV0dG9uIiwgIm1lZGlh
LXNsaWRlciIsICJtZWRpYS1zbGlkZXJ0aHVtYiIsICJtZWRpYS10aW1lLXJlbWFpbmluZy1kaXNw
bGF5IiwgIm1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIiwgIm1lZGlhLXZvbHVt
ZS1zbGlkZXIiLCAibWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLCAibWVkaWEtdm9sdW1l
LXNsaWRlci1tdXRlLWJ1dHRvbiIsICJtZWRpYS12b2x1bWUtc2xpZGVydGh1bWIiLCAibWVudWxp
c3QiLCAibWVudWxpc3QtYnV0dG9uIiwgIm1lbnVsaXN0LXRleHQiLCAibWVudWxpc3QtdGV4dGZp
ZWxkIiwgIm1ldGVyIiwgInByb2dyZXNzLWJhciIsICJwcm9ncmVzcy1iYXItdmFsdWUiLCAic2xp
ZGVyLWhvcml6b250YWwiLCAic2xpZGVyLXZlcnRpY2FsIiwgInNsaWRlcnRodW1iLWhvcml6b250
YWwiLCAic2xpZGVydGh1bWItdmVydGljYWwiLCAiY2FyZXQiLCAic2VhcmNoZmllbGQiLCAic2Vh
cmNoZmllbGQtZGVjb3JhdGlvbiIsICJzZWFyY2hmaWVsZC1yZXN1bHRzLWRlY29yYXRpb24iLCAi
c2VhcmNoZmllbGQtcmVzdWx0cy1idXR0b24iLCAic2VhcmNoZmllbGQtY2FuY2VsLWJ1dHRvbiIs
ICJzbmFwc2hvdHRlZC1wbHVnaW4tb3ZlcmxheSIsICJ0ZXh0ZmllbGQiLCAicmVsZXZhbmN5LWxl
dmVsLWluZGljYXRvciIsICJjb250aW51b3VzLWNhcGFjaXR5LWxldmVsLWluZGljYXRvciIsICJk
aXNjcmV0ZS1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IiLCAicmF0aW5nLWxldmVsLWluZGljYXRv
ciIsICJpbWFnZS1jb250cm9scy1idXR0b24iLCAiLWFwcGxlLXBheS1idXR0b24iLCAidGV4dGFy
ZWEiLCAiYXR0YWNobWVudCIsICJib3JkZXJsZXNzLWF0dGFjaG1lbnQiLCAiY2Fwcy1sb2NrLWlu
ZGljYXRvciIsCisgICAgICAgICJub25lIiwgImNoZWNrYm94IiwgInJhZGlvIiwgInB1c2gtYnV0
dG9uIiwgInNxdWFyZS1idXR0b24iLCAiYnV0dG9uIiwgImJ1dHRvbi1iZXZlbCIsICJkZWZhdWx0
LWJ1dHRvbiIsICJpbm5lci1zcGluLWJ1dHRvbiIsICJsaXN0Ym94IiwgImxpc3RpdGVtIiwgIm1l
ZGlhLWNvbnRyb2xzLWJhY2tncm91bmQiLCAibWVkaWEtY29udHJvbHMtZGFyay1iYXItYmFja2dy
b3VuZCIsICJtZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJhY2tncm91bmQiLCAibWVkaWEtY29u
dHJvbHMtbGlnaHQtYmFyLWJhY2tncm91bmQiLCAibWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXki
LCAibWVkaWEtZW50ZXItZnVsbHNjcmVlbi1idXR0b24iLCAibWVkaWEtZXhpdC1mdWxsc2NyZWVu
LWJ1dHRvbiIsICJtZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiLCAibWVkaWEtZnVsbHNj
cmVlbi12b2x1bWUtc2xpZGVyLXRodW1iIiwgIm1lZGlhLW11dGUtYnV0dG9uIiwgIm1lZGlhLW92
ZXJsYXktcGxheS1idXR0b24iLCAibWVkaWEtcGxheS1idXR0b24iLCAibWVkaWEtcmV0dXJuLXRv
LXJlYWx0aW1lLWJ1dHRvbiIsICJtZWRpYS1yZXdpbmQtYnV0dG9uIiwgIm1lZGlhLXNlZWstYmFj
ay1idXR0b24iLCAibWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsICJtZWRpYS1zbGlkZXIiLCAi
bWVkaWEtc2xpZGVydGh1bWIiLCAibWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheSIsICJtZWRp
YS10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsICJtZWRpYS12b2x1bWUtc2xpZGVyIiwg
Im1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwgIm1lZGlhLXZvbHVtZS1zbGlkZXItbXV0
ZS1idXR0b24iLCAibWVkaWEtdm9sdW1lLXNsaWRlcnRodW1iIiwgIm1lbnVsaXN0IiwgIm1lbnVs
aXN0LWJ1dHRvbiIsICJtZW51bGlzdC10ZXh0IiwgIm1lbnVsaXN0LXRleHRmaWVsZCIsICJtZXRl
ciIsICJwcm9ncmVzcy1iYXIiLCAicHJvZ3Jlc3MtYmFyLXZhbHVlIiwgInNsaWRlci1ob3Jpem9u
dGFsIiwgInNsaWRlci12ZXJ0aWNhbCIsICJzbGlkZXJ0aHVtYi1ob3Jpem9udGFsIiwgInNsaWRl
cnRodW1iLXZlcnRpY2FsIiwgImNhcmV0IiwgInNlYXJjaGZpZWxkIiwgInNlYXJjaGZpZWxkLWRl
Y29yYXRpb24iLCAic2VhcmNoZmllbGQtcmVzdWx0cy1kZWNvcmF0aW9uIiwgInNlYXJjaGZpZWxk
LXJlc3VsdHMtYnV0dG9uIiwgInNlYXJjaGZpZWxkLWNhbmNlbC1idXR0b24iLCAic25hcHNob3R0
ZWQtcGx1Z2luLW92ZXJsYXkiLCAidGV4dGZpZWxkIiwgInJlbGV2YW5jeS1sZXZlbC1pbmRpY2F0
b3IiLCAiY29udGludW91cy1jYXBhY2l0eS1sZXZlbC1pbmRpY2F0b3IiLCAiZGlzY3JldGUtY2Fw
YWNpdHktbGV2ZWwtaW5kaWNhdG9yIiwgInJhdGluZy1sZXZlbC1pbmRpY2F0b3IiLCAiLWFwcGxl
LXBheS1idXR0b24iLCAidGV4dGFyZWEiLCAiYXR0YWNobWVudCIsICJib3JkZXJsZXNzLWF0dGFj
aG1lbnQiLCAiY2Fwcy1sb2NrLWluZGljYXRvciIsCiAgICAgXSwKICAgICAiLXdlYmtpdC1iYWNr
ZmFjZS12aXNpYmlsaXR5IjogWwogICAgICAgICAiaGlkZGVuIiwgInZpc2libGUiLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA4ZjE0
ZjE4OTQ1YTIyZDg0NWZmNTI0MjMxNmE2ZWM0Yzc1NWVlYThjLi4wMTdjZGQ0MmU5ZjNlZjkwNmM0
NjdlOTFhOWYyYmVlMzMyNjAwNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTQzNSwxNCArMTQzNSwxNSBAQCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNlcnZpY2VDb250
cm9sc0VuYWJsZWQoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW1hZ2VDb250cm9sc0Vu
YWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQordm9p
ZCBXS1ByZWZlcmVuY2VzU2V0SW1hZ2VDb250cm9sc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwg
Ym9vbCkKIHsKLSAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRJbWFnZUNvbnRyb2xzRW5h
YmxlZChlbmFibGVkKTsKKyAgICAvLyBJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBv
cnRlZC4KIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0SW1hZ2VDb250cm9sc0VuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEltYWdl
Q29udHJvbHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPmltYWdlQ29udHJvbHNFbmFibGVkKCk7CisgICAgLy8gSW1hZ2UgY29u
dHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2
b2lkIFdLUHJlZmVyZW5jZXNTZXRHYW1lcGFkc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYjdkMjc5MjQ3ZWIyMTI0Yzk2OWJlMTRmYzdjZGU2
ZTNmYjhlMTlmNi4uNzdmOTlhNzQzZTFlNDdkMjJjYzE0ZmFiZTBiZTEwOGIwNDJjOGY5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00
NjgsNyArNDY4LDYgQEAgLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjooUmVmPEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2hvd3NVUkxzSW5Ub29s
VGlwc0VuYWJsZWQoISFbX2NvbmZpZ3VyYXRpb24gX3Nob3dzVVJMc0luVG9vbFRpcHNdKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2VydmljZUNvbnRyb2xzRW5h
YmxlZCghIVtfY29uZmlndXJhdGlvbiBfc2VydmljZUNvbnRyb2xzRW5hYmxlZF0pOwotICAgIHBh
Z2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZCgh
IVtfY29uZmlndXJhdGlvbiBfaW1hZ2VDb250cm9sc0VuYWJsZWRdKTsKIAogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
KGNvbnZlcnRVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KFtfY29uZmlndXJhdGlvbiB1c2Vy
SW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5XSkpOwogICAgIC8vIFdlIGFyZSBpbiB0aGUgVmlldydz
IGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIHNvIG91ciBjbGllbnQgaGFzbid0IGhhZCB0aW1lIHRv
IHNldCBvdXIgdXNlciBpbnRlcmZhY2UgZGlyZWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpp
bmRleCBkYjAxNjA1MzIyZGY1NmYxZTNlMDYzMWQ4ZDk0ODY1YWExNTY3ZTRkLi41ZGEyZmY2OWEy
MGQ3NGE4MmUwMjAyMTNmYTRlNmI1YWU5MWVkOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpA
QCAtMTU4LDcgKzE1OCw2IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
IHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gX3BhZ2VHcm91cDsKICAgICBCT09M
IF9zaG93c1VSTHNJblRvb2xUaXBzOwogICAgIEJPT0wgX3NlcnZpY2VDb250cm9sc0VuYWJsZWQ7
Ci0gICAgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQ7CiAgICAgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjsKICNlbmRpZgogICAgIEJPT0wgX3dhaXRz
Rm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3c7CkBAIC0yMjYsNyArMjI1LDYgQEAgLSAo
aW5zdGFuY2V0eXBlKWluaXQKICAgICBfcmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uID0gTk87CiAg
ICAgX3Nob3dzVVJMc0luVG9vbFRpcHMgPSBOTzsKICAgICBfc2VydmljZUNvbnRyb2xzRW5hYmxl
ZCA9IE5POwotICAgIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCA9IE5POwogICAgIF9yZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyID0gTk87CiAjZW5kaWYKICAgICBfd2Fp
dHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyA9IFlFUzsKQEAgLTQxOSw3ICs0MTcs
NiBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAgICBjb25maWd1cmF0aW9u
LT5fdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSA9IHNlbGYtPl91c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5OwogICAgIGNvbmZpZ3VyYXRpb24tPl9zaG93c1VSTHNJblRvb2xUaXBzID0g
c2VsZi0+X3Nob3dzVVJMc0luVG9vbFRpcHM7CiAgICAgY29uZmlndXJhdGlvbi0+X3NlcnZpY2VD
b250cm9sc0VuYWJsZWQgPSBzZWxmLT5fc2VydmljZUNvbnRyb2xzRW5hYmxlZDsKLSAgICBjb25m
aWd1cmF0aW9uLT5faW1hZ2VDb250cm9sc0VuYWJsZWQgPSBzZWxmLT5faW1hZ2VDb250cm9sc0Vu
YWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdD
b250cm9sc01hbmFnZXIgPSBzZWxmLT5fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRy
b2xzTWFuYWdlcjsKICAgICBjb25maWd1cmF0aW9uLT5fcGFnZUdyb3VwID0gc2VsZi5fcGFnZUdy
b3VwOwogI2VuZGlmCkBAIC0xMDc1LDEyICsxMDcyLDEzIEBAIC0gKHZvaWQpX3NldFNlcnZpY2VD
b250cm9sc0VuYWJsZWQ6KEJPT0wpc2VydmljZUNvbnRyb2xzRW5hYmxlZAogCiAtIChCT09MKV9p
bWFnZUNvbnRyb2xzRW5hYmxlZAogewotICAgIHJldHVybiBfaW1hZ2VDb250cm9sc0VuYWJsZWQ7
CisgICAgLy8gSW1hZ2UgY29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgcmV0
dXJuIE5POwogfQogCiAtICh2b2lkKV9zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDooQk9PTClpbWFn
ZUNvbnRyb2xzRW5hYmxlZAogewotICAgIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCA9IGltYWdlQ29u
dHJvbHNFbmFibGVkOworICAgIC8vIEltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIgc3VwcG9y
dGVkLgogfQogCiAtIChCT09MKV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNN
YW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDU0YjhmZTM0NjUz
YmQ0YWQ2ZDk3NmQyYTVjODg2ZjNhMWVjNzFkNzguLjcxZGU5MzE2MzIzNjRhM2JlMjA3NDZhNGFm
YTFjMzFjMDRhY2YwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC05
Nyw3ICs5Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5
KSB7CiAjZWxzZQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvd3NVUkxzSW5U
b29sVGlwczopIEJPT0wgX3Nob3dzVVJMc0luVG9vbFRpcHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZUNvbnRy
b2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250cm9sc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VD
b250cm9sc0VuYWJsZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFn
ZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9ERVBS
RUNBVEVEKCJJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEw
LjEyLCBXS19NQUNfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0
ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09M
IF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0Q1BVTGltaXQ6KSBkb3VibGUgX2NwdUxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9z
ZXRQYWdlR3JvdXA6KSBXS1BhZ2VHcm91cFJlZiBfcGFnZUdyb3VwIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggZWM2OTAyYjgzYjY4ZDUx
YTgzYTA3MTIxMWUwNjRhYWNlYmU5ZDNmMy4uMTM1MjA5M2RmZTk0ZWM4NDBiNTU3Mzg1MzY4YTI2
MWYxY2QzMTI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xNjEsNyArMTYxLDYgQEAKICNk
ZWZpbmUgV2ViS2l0TWVkaWFTb3VyY2VFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1lZGlh
U291cmNlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U291cmNlQnVmZmVyQ2hhbmdlVHlwZUVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U291cmNlQnVmZmVyQ2hhbmdlVHlwZUVuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5UHJlZmVyZW5jZUtl
eSBAIldlYktpdFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5IgotI2RlZmluZSBXZWJL
aXRJbWFnZUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRJbWFnZUNvbnRyb2xz
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0R2FtZXBhZHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdEdhbWVwYWRzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U2VydmljZUNvbnRyb2xzRW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkIgogI2RlZmluZSBX
ZWJLaXRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5S2V5IEAiV2ViS2l0TWVkaWFLZXlzU3RvcmFn
ZURpcmVjdG9yeSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCmluZGV4IGRmZWRmNDY4OGY3NGYxZTE5NjUwOTBmNWIyZjAwODE5ZjM3ZGVl
MWUuLmIzYzhmY2FmM2U4NzY1ZTIwYWUzMDM0ZTc2NDZjODY0Mjg0NTIxMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMjQ0
MCwxMiArMjQ0MCwxNCBAQCAtICh2b2lkKXNldFNvdXJjZUJ1ZmZlckNoYW5nZVR5cGVFbmFibGVk
OihCT09MKWVuYWJsZWQKIAogLSAoQk9PTClpbWFnZUNvbnRyb2xzRW5hYmxlZAogewotICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdEltYWdlQ29udHJvbHNFbmFibGVkUHJl
ZmVyZW5jZUtleV07CisgICAgLy8gSW1hZ2UgY29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0
ZWQuCisgICAgcmV0dXJuIE5POwogfQogCiAtICh2b2lkKXNldEltYWdlQ29udHJvbHNFbmFibGVk
OihCT09MKWVuYWJsZWQKIHsKLSAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmVuYWJsZWQgZm9yS2V5
OldlYktpdEltYWdlQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleV07CisgICAgLy8gSW1hZ2Ug
Y29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgVU5VU0VEX1BBUkFNKGVuYWJs
ZWQpOwogfQogCiAtIChCT09MKXNlcnZpY2VDb250cm9sc0VuYWJsZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjQxZGI3
YTE3MzIyYWE3NGQ0ZDlmNDgxMTE5ODk0ZWM1OGUzYjEyLi40M2RhODk1ODI5NDk0MmVkNTQ0Mzdi
NmU1MzZlOWNiOWI3ZjdiZWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDEtMjkgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBS
ZW1vdmUgc3VwcG9ydCBmb3IgaW1hZ2UgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE1NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBvbmx5IGxheW91dCB0ZXN0IGZvciBpbWFn
ZSBjb250cm9scywgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCB0ZXN0IGV4cGVjdGF0aW9ucy4K
KworICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1i
YXNpYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3Qv
aW1hZ2VzL2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2lj
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbW9qYXZlL2Zh
c3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbmNhaXJvL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKwogMjAyMS0wMS0zMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBTdGF0aWNSYW5nZSBzaG91bGQga2VlcCBpdHMgc3RhcnQgYW5k
IGVuZCBjb250YWluZXJzIGFsaXZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3
MDdhMDAxODYwZWE1NzY1YjY2YjIxM2JlNjkyMTU3ODAxNjU1N2E5Li43MTg5ZGYxYzAwZGE4YzQ0
MWUxMjQwYjkyMTA5MzFhYzZjMzBkNDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMS0yOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFJlbW92ZSBzdXBwb3J0IGZvciBpbWFnZSBj
b250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZWJh
c2VsaW5lIGFuIGltcG9ydGVkIGxheW91dCB0ZXN0LgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQudHh0OgorCiAy
MDIxLTAxLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0pTQ10gRml4IFdlYkFzc2VtYmx5Lkdsb2JhbCdzIGVycm9yIG1lc3NhZ2UgYW5kIHN1cHBvcnQg
ImZ1bmNyZWYiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1jb250
cm9scy1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMt
YmFzaWMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDJkNDkyNmVlZTU1MGRk
N2E0MmM5MGRlNGMxNjQ1MTNiZGZkYTRkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1i
YXNpYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08c2NyaXB0PgotaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0JaW50ZXJuYWxzLnNldHRpbmdzLnNldEltYWdlQ29udHJvbHNFbmFi
bGVkKHRydWUpOwotCi08L3NjcmlwdD4KLTxib2R5PgotPGltZyBzcmM9InJlc291cmNlcy9ncmVl
bi0yNTZ4MjU2LmpwZyIgeC13ZWJraXQtaW1hZ2VtZW51PgotPC9ib2R5PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IDYzNmJjMGY5NzM0Njc2
OWYwOGZjZjNmZTkyYzU2ZjJhNTc3MTU3ZTYuLjViYmEyMGM4MGNmYThiMmU5NTk1Mzk5YzAxYmJl
M2M2YTI3MWViMzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4dApAQCAtMzYsNyArMzYsNyBAQCBG
QUlMIC13ZWJraXQtYXBwZWFyYW5jZTogZGVmYXVsdC1idXR0b24gKGludmFsaWQpIGFzc2VydF9l
cXVhbHM6IHN0eWxlLldlYmtpdEFwcAogRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IGRpc2NyZXRl
LWNhcGFjaXR5LWxldmVsLWluZGljYXRvciAoaW52YWxpZCkgYXNzZXJ0X2VxdWFsczogc3R5bGUu
V2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICIiIGJ1dCBnb3QgImRpc2Ny
ZXRlLWNhcGFjaXR5LWxldmVsLWluZGljYXRvciIKIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBk
dWFsYnV0dG9uIChpbnZhbGlkKQogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGdyb3VwYm94IChp
bnZhbGlkKQotRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IGltYWdlLWNvbnRyb2xzLWJ1dHRvbiAo
aW52YWxpZCkgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNl
IFcpIGV4cGVjdGVkICIiIGJ1dCBnb3QgImltYWdlLWNvbnRyb2xzLWJ1dHRvbiIKK1BBU1MgLXdl
YmtpdC1hcHBlYXJhbmNlOiBpbWFnZS1jb250cm9scy1idXR0b24gKGludmFsaWQpCiBGQUlMIC13
ZWJraXQtYXBwZWFyYW5jZTogaW5uZXItc3Bpbi1idXR0b24gKGludmFsaWQpIGFzc2VydF9lcXVh
bHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAiIiBidXQg
Z290ICJpbm5lci1zcGluLWJ1dHRvbiIKIEZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0LWJ1
dHRvbiAoaW52YWxpZCkgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBw
ZXJjYXNlIFcpIGV4cGVjdGVkICIiIGJ1dCBnb3QgImxpc3QtYnV0dG9uIgogRkFJTCAtd2Via2l0
LWFwcGVhcmFuY2U6IGxpc3RpdGVtIChpbnZhbGlkKSBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJr
aXRBcHBlYXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgIiIgYnV0IGdvdCAibGlzdGl0ZW0i
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2Zhc3QvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
ZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OWI3NWQ3NmEwNDhhYjQwMTViZTAyYWU2Njc0N2EyYjg1MTJk
ZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAg
ICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMCwwKSBzaXplIDI1NngyNTYKLSAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvaW1hZ2VzL2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9pbWFnZXMvaW1hZ2VzL2ltYWdl
LWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTliNzVkNzZhMDQ4YWI0MDE1YmUwMmFlNjY3NDdhMmI4NTEyZGRiZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZmFzdC9pbWFnZXMvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVySW1h
Z2Uge0lNR30gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9m
YXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWI3NWQ3NmEwNDhhYjQwMTViZTAy
YWU2Njc0N2EyYjg1MTJkZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2ltYWdlcy9pbWFnZS1jb250
cm9scy1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMjU2eDI1Ngot
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW9qYXZlL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xz
LWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tb2phdmUvZmFz
dC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNjdiYmI0ODlmNGU1ZGJlMGIzNDQ1ODQ2ZTIzMDdkYjljMTQxMWNk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1tb2phdmUvZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAot
ICAgICAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6ZSAyNTZ4MjU2Ci0gICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWxheWVyIGF0ICg4LDgpIHNpemUgMjU2
eDI1NgotICBSZW5kZXJJbWFnZUNvbnRyb2xzIHtESVZ9IGF0ICgwLDApIHNpemUgMjU2eDI1Ngot
bGF5ZXIgYXQgKDIyOSwxNCkgc2l6ZSAyOXgyNgotICBSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9u
IHtESVZ9IGF0ICgyMjEsNikgc2l6ZSAyOXgyNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkNjEzZjczZmU2ZjNhZjJmYTBiMTZhMDAyYzUwMTgwOTFmZTEy
MGI3Li5lZGVmZDQ1MTkwODIzODZjOTAzMjA0Y2ZmYjIyNTU1N2M2ZmExODA5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE2Myw5ICsyMTYzLDYgQEAg
d2Via2l0Lm9yZy9iLzIxNTgxNyBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvY2FudmFzX3N1Yl9yZWMKIAogd2Via2l0Lm9yZy9iLzIxOTQ0OCBbIERlYnVnIF0g
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvcmVuZGVyaW5nL211bHRpc2FtcGxlLWNvcnJ1cHRpb24u
aHRtbCBbIFNraXAgXQogCi0jIDxyZGFyOi8vNjQ5NDc2NjY+IFsgQmlnU3VyKyBdIGZhc3QvaW1h
Z2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWwgCi1bIEJpZ1N1cisgXSBmYXN0L2ltYWdlcy9p
bWFnZS1jb250cm9scy1iYXNpYy5odG1sIFsgRmFpbHVyZSBdCi0KICMgPHJkYXI6Ly9wcm9ibGVt
LzYwNzgwMzk4PiBSRUdSRVNTSU9OOiAoMjU4NzI5PykgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJzb2NrZXRzL29wZW5pbmctaGFuZHNoYWtlLzAwMy5odG1sIGlzIGZhaWxpbmcu
CiBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMv
b3BlbmluZy1oYW5kc2hha2UvMDAzLmh0bWwgWyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9pbWFnZS1j
b250cm9scy1iYXNpYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg2ZDg4YTZlOThlYTdhMDhkNjgzOTczMzgxNTA1ODM5MjgyMDFiMzQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDExICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9
IGF0ICgwLDApIHNpemUgMjU2eDI1NgotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCi1sYXllciBhdCAoOCw4KSBzaXplIDI1NngyNTYKLSAgUmVuZGVySW1hZ2VDb250
cm9scyB7RElWfSBhdCAoMCwwKSBzaXplIDI1NngyNTYKLWxheWVyIGF0ICgyMzEsMTQpIHNpemUg
Mjd4MjYKLSAgUmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbiB7RElWfSBhdCAoMjIzLDYpIHNpemUg
Mjd4MjYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGY3
YzQ4NjRhYTYwZWNlYjM4NDBmMWE3MmE1OWU2YzkzYjRhYmQ3NC4uMTMxOGFmZTE2ZmVkZTcxNGI5
YjRjMmIzYmM5NjE0ZDVhNmM3OGE5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI4MDksNyArMjgwOSw2IEBAIGZhc3QvaGlzdG9yeS9oaXN0b3J5LXN1
YmZyYW1lLXdpdGgtbmFtZS5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvbG9jYXRpb24tcmVw
bGFjZS1oYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvaGlzdG9yeS9zYXZlcy1zdGF0ZS1hZnRlci1m
cmFnbWVudC1uYXYuaHRtbCBbIFNraXAgXQogCi1mYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1i
YXNpYy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwNTE2IFsgRGVidWcgXSBmYXN0
L2ltYWdlcy9sYXJnZS1zaXplLWltYWdlLWNyYXNoLmh0bWwgWyBTa2lwIF0gICMgQ3Jhc2hpbmcK
IGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS13aXRoLWFubm90YXRpb25zLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGZhc3QvaW1hZ2VzL3N1cHBvcnQtYnJva2VuLWltYWdlLWRlbGVnYXRlLmh0
bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL2Zhc3QvaW1hZ2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTliNzVkNzZhMDQ4YWI0
MDE1YmUwMmFlNjY3NDdhMmI4NTEyZGRiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9mYXN0L2ltYWdl
cy9pbWFnZS1jb250cm9scy1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3
ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNp
emUgMjU2eDI1NgotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>