<?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>226669</bug_id>
          
          <creation_ts>2021-06-04 16:34:22 -0700</creation_ts>
          <short_desc>[macOS] Move DataDetectors softlinking in DataDetectorsSPI.h out into a separate PAL header</short_desc>
          <delta_ts>2021-06-05 18:19:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>aestes</cc>
    
    <cc>annulen</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mifenton</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1766993</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-04 16:34:22 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767006</commentid>
    <comment_count>1</comment_count>
      <attachid>430634</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-04 17:22:34 -0700</bug_when>
    <thetext>Created attachment 430634
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767140</commentid>
    <comment_count>2</comment_count>
      <attachid>430652</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-05 11:10:52 -0700</bug_when>
    <thetext>Created attachment 430652
Fix non-internal macOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767141</commentid>
    <comment_count>3</comment_count>
      <attachid>430653</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-05 11:18:20 -0700</bug_when>
    <thetext>Created attachment 430653
Fix non-internal macOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767173</commentid>
    <comment_count>4</comment_count>
      <attachid>430653</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-05 18:07:16 -0700</bug_when>
    <thetext>Comment on attachment 430653
Fix non-internal macOS build

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767175</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-05 18:18:16 -0700</bug_when>
    <thetext>Committed r278530 (238528@main): &lt;https://commits.webkit.org/238528@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430653.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767176</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-05 18:19:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78912839&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430634</attachid>
            <date>2021-06-04 17:22:34 -0700</date>
            <delta_ts>2021-06-04 17:59:13 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-226669-20210604172233.patch</filename>
            <type>text/plain</type>
            <size>52389</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTIzYmY4ZjdhNjBhMWQ2
MGJkMjY4NzA3NjE5YTk4MmRjYWFhZjJlYy4uMmE4N2RkZTQxYjM3MWQxN2QxZTgzYjYxNTQ2YWI3
OTU3NTY3OGJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA2LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTW92
ZSBEYXRhRGV0ZWN0b3JzIHNvZnRsaW5raW5nIGluIERhdGFEZXRlY3RvcnNTUEkuaCBvdXQgaW50
byBhIHNlcGFyYXRlIFBBTCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgc29mdGxpbmtpbmcgY29kZSBmb3IgdGhlIERh
dGFEZXRlY3RvcnMgZnJhbWV3b3JrLiBDdXJyZW50bHksIHRoZSBgU09GVF9MSU5LXypgIG1hY3Jv
cyBhcmUgZGVmaW5lZAorICAgICAgICBpbnNpZGUgdGhlIFNQSSBoZWFkZXIgKGBwYWwvc3BpL21h
Yy9EYXRhRGV0ZWN0b3JzU1BJLmhgKTsgdGhpcyBwYXRjaCBtb3ZlcyB0aGVtIG91dCBpbnRvCisg
ICAgICAgIGBwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay57aHxtbX1gIGluc3RlYWQsIGFu
ZCB1cGRhdGVzIGEgZmV3IHBsYWNlcyB0aGF0IHVzZSB0aGVzZSBzb2Z0LWxpbmtlZCBzeW1ib2xz
IHRvCisgICAgICAgIGltcG9ydCBgRGF0YURldGVjdG9yc1NvZnRMaW5rLmhgIGluc3RlYWQgb2Yg
YERhdGFEZXRlY3RvcnNTUEkuaGAuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRl
Y3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpkZXRlY3RJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFEZXRlY3Rpb246OmRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKiBwYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dXBkYXRlRGF0YURldGVjdG9ySGlnaGxpZ2h0
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpwbGF0Zm9ybUhh
bmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpt
b3VzZUlzT3ZlckhpZ2hsaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdo
dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6c2V0SGlnaGxpZ2h0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyk6CisK
IDIwMjEtMDYtMDMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1v
dmUgZnJvbSBXZWJDb3JlOjpTdWNjZXNzT3IgdG8gV1RGOjpFeHBlY3RlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKaW5kZXggNjMxNzE1ZDQxNmE0MjcwYmQ2MWZiMzZiMzlkYTIxNWFiNTQ5MjQ4Zi4uYmIyZWQ3
Zjc5NGZlZDBlNzdkZDNhMzAyMjE0ZWVmNTZlZDI3YTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjEtMDYtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBNb3ZlIERhdGFEZXRlY3RvcnMgc29mdGxpbmtp
bmcgaW4gRGF0YURldGVjdG9yc1NQSS5oIG91dCBpbnRvIGEgc2VwYXJhdGUgUEFMIGhlYWRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NjY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBu
ZXcgc29mdGxpbmtpbmcgaGVhZGVycy4gU2VlIFdlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwYWwvUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogcGFsL2NvY29hL0RhdGFEZXRl
Y3RvcnNDb3JlU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvRGF0YURldGVjdG9yc0Nv
cmVTb2Z0TGluay5tbToKKworICAgICAgICBNb3ZlIHRoZSBgRERCaW5kZXJQaG9uZU51bWJlcktl
eWAgc29mdCBsaW5rIGludG8gYERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmtgIGluc3RlYWQsIHNp
bmNlIHRoaXMgc3ltYm9sIGNvbWVzCisgICAgICAgIGZyb20gRGF0YURldGVjdG9yc0NvcmUgcmF0
aGVyIHRoYW4gdGhlIERhdGFEZXRlY3RvcnMgZnJhbWV3b3JrLgorCisgICAgICAgICogcGFsL21h
Yy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGFsL21hYy9EYXRh
RGV0ZWN0b3JzU29mdExpbmsubW06IEFkZGVkLgorICAgICAgICAqIHBhbC9tYWMvUXVpY2tMb29r
VUlTb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaDoK
KwogMjAyMS0wNi0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIDx3dGYvT3B0aW9uYWwuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY2NjVlZjc5NTMxNmNlZWY4MzY2
NmUxOGQ2NTJkNWY3YzJlNjVhZC4uZDkyMjEwOGE0OWIwYzkxZWZkZDBiY2ZmYzMxZmZlYWY3MDYz
NGFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0wNi0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIE1vdmUgRGF0YURl
dGVjdG9ycyBzb2Z0bGlua2luZyBpbiBEYXRhRGV0ZWN0b3JzU1BJLmggb3V0IGludG8gYSBzZXBh
cmF0ZSBQQUwgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjY2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZG9wdCB0aGUgbmV3IFBBTCBzb2Z0bGlua2luZyBoZWFkZXIgaW4gYSBmZXcgcGxh
Y2VzLiBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4gQWRkaXRpb25hbGx5
LCBtb3ZlCisgICAgICAgIHNldmVyYWwgc29mdGxpbmtpbmcgaGVhZGVyIGltcG9ydHMgc28gdGhh
dCB0aGV5J3JlIHRoZSBsYXN0IGltcG9ydGVkIGhlYWRlcnMgaW4gYSBmZXcgc291cmNlcy4KKwor
ICAgICAgICAqIFBsYXRmb3JtL21hYy9NZW51VXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViS2l0
OjphY3Rpb25Gb3JNZW51SXRlbSk6CisgICAgICAgIChXZWJLaXQ6Om1lbnVJdGVtRm9yVGVsZXBo
b25lTnVtYmVyKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5t
bToKKyAgICAgICAgKFdlYktpdDo6RGF0YURldGVjdGlvblJlc3VsdDo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAg
ICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YTo6cGxhdGZvcm1EZWNvZGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2NsZWFySW1tZWRpYXRlQWN0
aW9uU3RhdGVdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGltbWVk
aWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVnaW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRl
Y3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmlt
YXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkTGlua10pOgorCiAyMDIxLTA2LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1lYW5p
bmdmdWwgY2xpY2sgaGV1cmlzdGljIHNob3VsZCBhY2NvdW50IGZvciBtZWRpYSBzdGF0ZSBjaGFu
Z2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzUyOWY0NTZlYTZhYzVkNjFiOWI5
Y2JiNjBlNDhmMzZjYzI4MmVjNC4uMDgwZDI2ZDgwMTRmNGRlZTgxYTkzMmRiMTQ1Y2NlZTIyMDZi
OTkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIx
LTA2LTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFttYWNPU10gTW92ZSBEYXRhRGV0ZWN0b3JzIHNvZnRsaW5raW5nIGluIERhdGFEZXRlY3RvcnNT
UEkuaCBvdXQgaW50byBhIHNlcGFyYXRlIFBBTCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjY2OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkb3B0IHRoZSBuZXcgUEFMIHNvZnRsaW5raW5n
IGhlYWRlciBpbiBhIGZldyBwbGFjZXMuIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICAgICAgICogV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9jbGVhckltbWVk
aWF0ZUFjdGlvblN0YXRlXSk6CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxCZWdpbkFuaW1hdGlvbjpdKToKKyAgICAg
ICAgKC1bV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZv
ckRhdGFEZXRlY3RlZFRleHRdKToKKyAgICAgICAgKC1bV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZExpbmtdKToKKwogMjAyMS0w
Ni0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIDx3
dGYvT3B0aW9uYWwuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyNWNhOGJjMTRiMGIyNTMzMjRlNjAwNjNlNDgyNDZmNjQ1Njg1
ZjY3Li5iZWQyYjgwNzYzMzUyNzkxMjFhNDY2ZTE3OTc3OTBhMTE4Yzg0YjkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTMs
NiArMjEzLDggQEAKIAkJRjRDODVBNEYyNjU4NTUxQTAwNUI4OUNDIC8qIFF1aWNrTG9va1VJU29m
dExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
Qzg1QTREMjY1ODU1MUEwMDVCODlDQyAvKiBRdWlja0xvb2tVSVNvZnRMaW5rLmggKi87IH07CiAJ
CUY0REREMDFCMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREREQwMTky
NjREQzY5RTAwRUYxQjkxIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJ
CUY0REREMDFDMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNERERDAxQTI2
NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oICovOyB9OworCQlG
NEUwODc1QjI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwODc1OTI2NkFDQTUz
MDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLmggKi87IH07CisJCUY0RTA4NzVDMjY2
QUNBNTMwMDBGODE0QSAvKiBEYXRhRGV0ZWN0b3JzU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUwODc1QTI2NkFDQTUzMDAwRjgxNEEg
LyogRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBz
ZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBA
IC00MzIsNiArNDM0LDggQEAKIAkJRjRDODVBNEQyNjU4NTUxQTAwNUI4OUNDIC8qIFF1aWNrTG9v
a1VJU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29r
VUlTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNERERDAxOTI2NERD
NjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REREMDFBMjY0REM2OUUwMEVGMUI5MSAv
KiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjRFMDg3NTkyNjZBQ0E1MzAwMEY4MTRBIC8qIERhdGFEZXRlY3RvcnNTb2Z0TGlu
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0b3JzU29mdExpbmsuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMDg3NUEyNjZBQ0E1MzAwMEY4MTRBIC8qIERhdGFEZXRlY3Rv
cnNTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFEZXRlY3RvcnNTb2Z0TGlu
ay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNl
IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAq
LwpAQCAtNzU1LDYgKzc1OSw4IEBACiAJCTQ0RTFBOEFDMjFGQTU0OEYwMEMzMDQ4RSAvKiBtYWMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0RTA4NzU5
MjY2QUNBNTMwMDBGODE0QSAvKiBEYXRhRGV0ZWN0b3JzU29mdExpbmsuaCAqLywKKwkJCQlGNEUw
ODc1QTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tICovLAogCQkJ
CTQ0RTFBOEFEMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0TGluay5oICovLAogCQkJCTQ0
RTFBOEFFMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0TGluay5tbSAqLywKIAkJCQlGNEM4
NUE0RDI2NTg1NTFBMDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlTb2Z0TGluay5oICovLApAQCAtODY3
LDYgKzg3Myw3IEBACiAJCQkJREY4M0UyMDkyNjM3MzRGMTAwMDgyNUVGIC8qIENyeXB0b0tpdENC
cmlkZ2luZ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjREREQwMUMyNjREQzY5RTAwRUYxQjkx
IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRB
MTQxMUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNQSS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjRFMDg3NUIyNjZBQ0E1MzAwMEY4MTRBIC8qIERhdGFEZXRlY3RvcnNTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OEExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFE
ZXRlY3RvcnNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFBMUY0M0E0QzcwMDJFQUMw
MiAvKiBEYXRhRGV0ZWN0b3JzVUlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTc1QjU3MUY2
QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMTA4MSw2ICsxMDg4LDcgQEAKIAkJCQkxQzA5RDA1NjFFMzFDNDY1MDA3MjVGMTggLyogQ3J5
cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RjFDOTBBMjVE
Q0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUY0REREMDFCMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRFMDg3NUMyNjZBQ0E1MzAwMEY4MTRBIC8q
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMTc1QjU4MUY2
QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjQ0MjkxNjQxRkE1MjY3MDAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUY0NDI5MTY4MUZBNTI3MDUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZv
cm1hdHRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0
Zm9ybU1hYy5jbWFrZQppbmRleCA1NDIwNDljZTY3OTllODgzOGNjYThmNGRhMGMxNDhjOTcwNmZl
YTc5Li43OTg2NDRlYmY2NTgwMGEzZDFhZDNjZWUwYzU5YTdkZDI5ZjcyNzZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTIwLDYgKzIwLDcgQEAgbGlzdChB
UFBFTkQgUEFMX1BVQkxJQ19IRUFERVJTCiAgICAgY29jb2EvU3BlZWNoU29mdExpbmsuaAogICAg
IGNvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oCiAKKyAgICBtYWMvRGF0YURldGVjdG9yc1Nv
ZnRMaW5rLmgKICAgICBtYWMvTG9va3VwU29mdExpbmsuaAogICAgIG1hYy9RdWlja0xvb2tVSVNv
ZnRMaW5rLmgKIApAQCAtMTYzLDcgKzE2NCw5IEBAIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAK
ICAgICBjcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKIAor
ICAgIG1hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW0KICAgICBtYWMvTG9va3VwU29mdExpbmsu
bW0KKyAgICBtYWMvUXVpY2tMb29rVUlTb2Z0TGluay5tbQogCiAgICAgc3BpL2NvY29hL0FjY2Vz
c2liaWxpdHlTdXBwb3J0U29mdExpbmsuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgKaW5kZXggNTdhNTY4
YTNlZGRiMTJjYzQ2YWU1ZjA4ZWNlNDQyMTFiYzVmZGJjZC4uM2ZhMWYxYmEwMjk5NDBmMGJlOGQ2
N2M5ZWI2YThjYWJmOTgwY2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgKQEAgLTMyLDcgKzMyLDkgQEAK
IAogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBERFNjYW5uZXJSZXN1bHQpCiAKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKE1BQykKK1NPRlRfTElOS19DT05T
VEFOVF9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9yc0NvcmUsIEREQmluZGVyUGhvbmVOdW1i
ZXJLZXksIENGU3RyaW5nUmVmKQorI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9yc0NvcmUsIEREU2Nhbm5lckNy
ZWF0ZSwgRERTY2FubmVyUmVmLCAoRERTY2FubmVyVHlwZSB0eXBlLCBERFNjYW5uZXJPcHRpb25z
IG9wdGlvbnMsIENGRXJyb3JSZWYgKiBlcnJvclJlZiksICh0eXBlLCBvcHRpb25zLCBlcnJvclJl
ZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIERhdGFEZXRlY3RvcnNDb3Jl
LCBERFNjYW5uZXJTY2FuUXVlcnksIEJvb2xlYW4sIChERFNjYW5uZXJSZWYgc2Nhbm5lciwgRERT
Y2FuUXVlcnlSZWYgcXVlcnkpLCAoc2Nhbm5lciwgcXVlcnkpKQogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERTY2FuUXVlcnlDcmVhdGUsIERE
U2NhblF1ZXJ5UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yKSwgKGFsbG9jYXRvcikpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3Jl
U29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0RhdGFEZXRlY3RvcnND
b3JlU29mdExpbmsubW0KaW5kZXggZGRmMDEyNzkwMDhiYjM0MjkxNGRkMTI3ZjIzYWE5MDc0NTE0
YmVhNi4uMmI2NDQ3ZjA5MTFhNzZlYzQ1MGE2NDQ1ZDY4YjI1ZDk1NTY2YTIwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5r
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVT
b2Z0TGluay5tbQpAQCAtMzMsNyArMzMsOSBAQAogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JL
X0ZPUl9TT1VSQ0UoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSkKIFNPRlRfTElOS19DTEFTU19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9yc0NvcmUsIEREU2Nhbm5lclJlc3Vs
dCwgUEFMX0VYUE9SVCkKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0o
TUFDKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRh
RGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJQaG9uZU51bWJlcktleSwgQ0ZTdHJpbmdSZWYsIFBBTF9F
WFBPUlQpCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERTY2FubmVyQ3JlYXRlLCBERFNjYW5u
ZXJSZWYsIChERFNjYW5uZXJUeXBlIHR5cGUsIEREU2Nhbm5lck9wdGlvbnMgb3B0aW9ucywgQ0ZF
cnJvclJlZiAqIGVycm9yUmVmKSwgKHR5cGUsIG9wdGlvbnMsIGVycm9yUmVmKSkKIFNPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgRGF0YURldGVjdG9yc0NvcmUsIEREU2Nhbm5lclNj
YW5RdWVyeSwgQm9vbGVhbiwgKEREU2Nhbm5lclJlZiBzY2FubmVyLCBERFNjYW5RdWVyeVJlZiBx
dWVyeSksIChzY2FubmVyLCBxdWVyeSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQ
QUwsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNjYW5RdWVyeUNyZWF0ZSwgRERTY2FuUXVlcnlSZWYs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAoYWxsb2NhdG9yKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODQ0YTEwMTc3NDRiYTA0ZjM5MzNhYzYxODdhZDRiNTMxZjc2ODYwNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2ltcG9ydCA8cGFsL3NwaS9tYWMv
RGF0YURldGVjdG9yc1NQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIERhdGFEZXRlY3RvcnMpCisKK1NPRlRfTElO
S19DTEFTU19GT1JfSEVBREVSKFBBTCwgRERBY3Rpb25Db250ZXh0KQorU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBEREFjdGlvbnNNYW5hZ2VyKQorCisjaWYgSEFWRShEQVRBX0RFVEVD
VE9SU19NQUNfQUNUSU9OKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBERE1hY0Fj
dGlvbikKKyNlbHNlCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEREQWN0aW9uKQor
I2VuZGlmCisKKyNpZiBIQVZFKEREX0hJR0hMSUdIVF9DUkVBVEVfV0lUSF9TQ0FMRSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRD
cmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlU2NhbGVBbmREaXJlY3Rpb24sIERE
SGlnaGxpZ2h0UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDR1JlY3QqIHJlY3RzLCBD
RkluZGV4IGNvdW50LCBDR1JlY3QgZ2xvYmFsVmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGUg
c3R5bGUsIEJvb2xlYW4gd2l0aEJ1dHRvbiwgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJl
Y3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0wsIEJvb2xlYW4gZmxpcHBlZCwgQ0dGbG9hdCBzY2Fs
ZSksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFsVmlzaWJsZVJlY3QsIHN0eWxlLCB3
aXRoQnV0dG9uLCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0aEVPTCwgZmxpcHBlZCwgc2NhbGUp
KQorI2Vsc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9y
cywgRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGly
ZWN0aW9uLCBEREhpZ2hsaWdodFJlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0dSZWN0
KiByZWN0cywgQ0ZJbmRleCBjb3VudCwgQ0dSZWN0IGdsb2JhbFZpc2libGVSZWN0LCBEREhpZ2hs
aWdodFN0eWxlIHN0eWxlLCBCb29sZWFuIHdpdGhBcnJvdywgTlNXcml0aW5nRGlyZWN0aW9uIHdy
aXRpbmdEaXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0wsIEJvb2xlYW4gZmxpcHBlZCksIChh
bGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFsVmlzaWJsZVJlY3QsIHN0eWxlLCB3aXRoQXJy
b3csIHdyaXRpbmdEaXJlY3Rpb24sIGVuZHNXaXRoRU9MLCBmbGlwcGVkKSkKKyNlbmRpZgorU09G
VF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBEYXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdo
dEdldExheWVyV2l0aENvbnRleHQsIENHTGF5ZXJSZWYsIChEREhpZ2hsaWdodFJlZiBoaWdobGln
aHQsIENHQ29udGV4dFJlZiBjb250ZXh0KSwgKGhpZ2hsaWdodCwgY29udGV4dCkpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0R2V0
Qm91bmRpbmdSZWN0LCBDR1JlY3QsIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQpLCAoaGlnaGxp
Z2h0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9ycywg
RERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQsIEJvb2xlYW4sIChEREhpZ2hsaWdodFJlZiBo
aWdobGlnaHQsIENHUG9pbnQgcG9pbnQsIEJvb2xlYW4qIG9uQnV0dG9uKSwgKGhpZ2hsaWdodCwg
cG9pbnQsIG9uQnV0dG9uKSkKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvRGF0
YURldGVjdG9yc1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvRGF0YURl
dGVjdG9yc1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDk4ZWEwN2RlNWYxMTFhOTk0MDJkYWYy
MWY5OTJjZDNjOWZlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW0KQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQorCisjaW1wb3J0IDxwYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+
CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVX
T1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBQQUxfRVhQT1JU
KQorCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRl
Y3RvcnMsIEREQWN0aW9uQ29udGV4dCwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DTEFTU19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9ycywgRERBY3Rpb25zTWFuYWdlciwg
UEFMX0VYUE9SVCkKKworI2lmIEhBVkUoREFUQV9ERVRFQ1RPUlNfTUFDX0FDVElPTikKK1NPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9ycywgRERN
YWNBY3Rpb24sIFBBTF9FWFBPUlQpCisjZWxzZQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBEREFjdGlvbiwgUEFMX0VYUE9SVCkKKyNl
bmRpZgorCisjaWYgSEFWRShERF9ISUdITElHSFRfQ1JFQVRFX1dJVEhfU0NBTEUpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIERE
SGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5kRGly
ZWN0aW9uLCBEREhpZ2hsaWdodFJlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0dSZWN0
KiByZWN0cywgQ0ZJbmRleCBjb3VudCwgQ0dSZWN0IGdsb2JhbFZpc2libGVSZWN0LCBEREhpZ2hs
aWdodFN0eWxlIHN0eWxlLCBCb29sZWFuIHdpdGhCdXR0b24sIE5TV3JpdGluZ0RpcmVjdGlvbiB3
cml0aW5nRGlyZWN0aW9uLCBCb29sZWFuIGVuZHNXaXRoRU9MLCBCb29sZWFuIGZsaXBwZWQsIENH
RmxvYXQgc2NhbGUpLCAoYWxsb2NhdG9yLCByZWN0cywgY291bnQsIGdsb2JhbFZpc2libGVSZWN0
LCBzdHlsZSwgd2l0aEJ1dHRvbiwgd3JpdGluZ0RpcmVjdGlvbiwgZW5kc1dpdGhFT0wsIGZsaXBw
ZWQsIHNjYWxlKSwgUEFMX0VYUE9SVCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0Q3JlYXRlV2l0
aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbiwgRERIaWdobGlnaHRSZWYs
IChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENHUmVjdCogcmVjdHMsIENGSW5kZXggY291bnQs
IENHUmVjdCBnbG9iYWxWaXNpYmxlUmVjdCwgRERIaWdobGlnaHRTdHlsZSBzdHlsZSwgQm9vbGVh
biB3aXRoQXJyb3csIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uLCBCb29sZWFu
IGVuZHNXaXRoRU9MLCBCb29sZWFuIGZsaXBwZWQpLCAoYWxsb2NhdG9yLCByZWN0cywgY291bnQs
IGdsb2JhbFZpc2libGVSZWN0LCBzdHlsZSwgd2l0aEFycm93LCB3cml0aW5nRGlyZWN0aW9uLCBl
bmRzV2l0aEVPTCwgZmxpcHBlZCksIFBBTF9FWFBPUlQpCisjZW5kaWYKKworU09GVF9MSU5LX0ZV
TkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBEREhpZ2hs
aWdodEdldExheWVyV2l0aENvbnRleHQsIENHTGF5ZXJSZWYsIChEREhpZ2hsaWdodFJlZiBoaWdo
bGlnaHQsIENHQ29udGV4dFJlZiBjb250ZXh0KSwgKGhpZ2hsaWdodCwgY29udGV4dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERh
dGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0LCBDR1JlY3QsIChEREhpZ2hs
aWdodFJlZiBoaWdobGlnaHQpLCAoaGlnaGxpZ2h0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdo
bGlnaHRQb2ludElzT25IaWdobGlnaHQsIEJvb2xlYW4sIChEREhpZ2hsaWdodFJlZiBoaWdobGln
aHQsIENHUG9pbnQgcG9pbnQsIEJvb2xlYW4qIG9uQnV0dG9uKSwgKGhpZ2hsaWdodCwgcG9pbnQs
IG9uQnV0dG9uKSwgUEFMX0VYUE9SVCkKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9t
YWMvUXVpY2tMb29rVUlTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvUXVp
Y2tMb29rVUlTb2Z0TGluay5oCmluZGV4IGEwZmI3MDEzN2UxNDc5Y2Y4NDJiODcxNDQwMDJhZGIy
Nzc3MzRiNjMuLmU0YTJkODkwN2I4ODJhNTQ4YTBlMGU3YjYwMmM3OTVlOTc2NzUzZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmgKQEAg
LTI2LDggKzI2LDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2luY2x1ZGUgPHBhbC9zcGkv
bWFjL1F1aWNrTG9va01hY1NQSS5oPgotI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2lt
cG9ydCA8cGFsL3NwaS9tYWMvUXVpY2tMb29rTWFjU1BJLmg+CisjaW1wb3J0IDx3dGYvU29mdExp
bmtpbmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgUXVpY2tMb29r
VUkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9EYXRhRGV0
ZWN0b3JzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvRGF0YURldGVjdG9y
c1NQSS5oCmluZGV4IGYxZjk2OTNkYjU0OTEzNDNlNzUzZWEyOGI4YmI3ZDE2NDIxZGQ5ZDUuLmE3
MDNiZmJjYjg4OThkYzJkMjYxMjIyMTBiNDA1NWQ0MWRmMGE1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaApAQCAtOTksNDggKzk5
LDIyIEBAIGVudW0gewogCiAjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKLSNp
ZiBQTEFURk9STShNQUMpCi0KIFdURl9FWFRFUk5fQ19CRUdJTgogQ0ZUeXBlSUQgRERSZXN1bHRH
ZXRDRlR5cGVJRCh2b2lkKTsKIFdURl9FWFRFUk5fQ19FTkQKIAotI2VuZGlmCi0KIHR5cGVkZWYg
c3RydWN0IF9fRERIaWdobGlnaHQgKkRESGlnaGxpZ2h0UmVmOwogdHlwZWRlZiBOU1VJbnRlZ2Vy
IERESGlnaGxpZ2h0U3R5bGU7CiAKICNpZiAhSEFWRShEQVRBX0RFVEVDVE9SU19NQUNfQUNUSU9O
KQotQGludGVyZmFjZSBEREFjdGlvbiA6IE5TT2JqZWN0CiAKK0BpbnRlcmZhY2UgRERBY3Rpb24g
OiBOU09iamVjdAogQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmFjdGlvblVUSTsKLQog
QGVuZAotI2VuZGlmCiAKLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChEYXRh
RGV0ZWN0b3JzKQotU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKERhdGFEZXRl
Y3RvcnNDb3JlKQorI2VuZGlmIC8vICFIQVZFKERBVEFfREVURUNUT1JTX01BQ19BQ1RJT04pCiAK
LVNPRlRfTElOS19DTEFTU19PUFRJT05BTChEYXRhRGV0ZWN0b3JzLCBEREFjdGlvbkNvbnRleHQp
Ci1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoRGF0YURldGVjdG9ycywgRERBY3Rpb25zTWFuYWdl
cikKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKLSNpZiBIQVZFKERBVEFfREVURUNUT1JTX01B
Q19BQ1RJT04pCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoRGF0YURldGVjdG9ycywgRERNYWNB
Y3Rpb24pCi0jZWxzZQotU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKERhdGFEZXRlY3RvcnMsIERE
QWN0aW9uKQotI2VuZGlmCi0KLVNPRlRfTElOS19DT05TVEFOVChEYXRhRGV0ZWN0b3JzQ29yZSwg
RERCaW5kZXJQaG9uZU51bWJlcktleSwgQ0ZTdHJpbmdSZWYpCi0jaWYgSEFWRShERF9ISUdITElH
SFRfQ1JFQVRFX1dJVEhfU0NBTEUpCi1TT0ZUX0xJTksoRGF0YURldGVjdG9ycywgRERIaWdobGln
aHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlU2NhbGVBbmREaXJlY3Rpb24s
IERESGlnaGxpZ2h0UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDR1JlY3QqIHJlY3Rz
LCBDRkluZGV4IGNvdW50LCBDR1JlY3QgZ2xvYmFsVmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5
bGUgc3R5bGUsIEJvb2xlYW4gd2l0aEJ1dHRvbiwgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdE
aXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0wsIEJvb2xlYW4gZmxpcHBlZCwgQ0dGbG9hdCBz
Y2FsZSksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFsVmlzaWJsZVJlY3QsIHN0eWxl
LCB3aXRoQnV0dG9uLCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0aEVPTCwgZmxpcHBlZCwgc2Nh
bGUpKQotI2Vsc2UKLVNPRlRfTElOSyhEYXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdodENyZWF0ZVdp
dGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24sIERESGlnaGxpZ2h0UmVm
LCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDR1JlY3QqIHJlY3RzLCBDRkluZGV4IGNvdW50
LCBDR1JlY3QgZ2xvYmFsVmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGUgc3R5bGUsIEJvb2xl
YW4gd2l0aEFycm93LCBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiwgQm9vbGVh
biBlbmRzV2l0aEVPTCwgQm9vbGVhbiBmbGlwcGVkKSwgKGFsbG9jYXRvciwgcmVjdHMsIGNvdW50
LCBnbG9iYWxWaXNpYmxlUmVjdCwgc3R5bGUsIHdpdGhBcnJvdywgd3JpdGluZ0RpcmVjdGlvbiwg
ZW5kc1dpdGhFT0wsIGZsaXBwZWQpKQotI2VuZGlmCi1TT0ZUX0xJTksoRGF0YURldGVjdG9ycywg
RERIaWdobGlnaHRHZXRMYXllcldpdGhDb250ZXh0LCBDR0xheWVyUmVmLCAoRERIaWdobGlnaHRS
ZWYgaGlnaGxpZ2h0LCBDR0NvbnRleHRSZWYgY29udGV4dCksIChoaWdobGlnaHQsIGNvbnRleHQp
KQotU09GVF9MSU5LKERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0LCBD
R1JlY3QsIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQpLCAoaGlnaGxpZ2h0KSkKLVNPRlRfTElO
SyhEYXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdodFBvaW50SXNPbkhpZ2hsaWdodCwgQm9vbGVhbiwg
KERESGlnaGxpZ2h0UmVmIGhpZ2hsaWdodCwgQ0dQb2ludCBwb2ludCwgQm9vbGVhbiogb25CdXR0
b24pLCAoaGlnaGxpZ2h0LCBwb2ludCwgb25CdXR0b24pKQotCi0jZW5kaWYKLQotI2VuZGlmCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KaW5kZXggZGI2Y2RhNWMyYzIwMDUzN2RjNGM4Yjcw
YTU0ZTcxY2QzZDg0ZGJkNy4uMjUwNDM4OTI0OGQ2M2YwODZhZmRiY2E1ODU3MTZhYzQ1OTUyY2Jm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpA
QCAtNTMsMTIgKzUzLDEyIEBACiAjaW1wb3J0ICJUZXh0SXRlcmF0b3IuaCIKICNpbXBvcnQgIlZp
c2libGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVVuaXRzLmgiCi0jaW1wb3J0IDxwYWwv
Y29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3Mv
RGF0YURldGVjdG9yc1VJU1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3Jz
U1BJLmg+CiAjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZl
cnNpb24uaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg+
CisjaW1wb3J0IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiAjaWYgUExBVEZP
Uk0oTUFDKQogdGVtcGxhdGU8PiBzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxERFJlc3VsdFJlZj4g
ewpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERldGVjdGVkSXRlbT4g
ZGV0ZWN0SXRlbShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBjCiAgICAgaWYgKCF2
aWV3KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhY3Rpb25Db250ZXh0ID0gYWRv
cHROUyhbYWxsb2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBhdXRvIGFj
dGlvbkNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2Uo
KSBpbml0XSk7CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0QWxsUmVzdWx0czpAWyAoX19icmlkZ2Ug
aWQpbWFpblJlc3VsdCBdXTsKICAgICBbYWN0aW9uQ29udGV4dCBzZXRNYWluUmVzdWx0Om1haW5S
ZXN1bHRdOwogCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV0ZWN0
ZWRJdGVtPiBkZXRlY3RJdGVtKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24sIGMKIAog
c3RkOjpvcHRpb25hbDxEZXRlY3RlZEl0ZW0+IERhdGFEZXRlY3Rpb246OmRldGVjdEl0ZW1Bcm91
bmRIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCiB7Ci0g
ICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRl
Y3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIE5v
ZGUqIG5vZGUgPSBoaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KaW5k
ZXggZTQ0N2Q3NDI0ZTBkOTJlNTVlYWU5ZmJjODc5MzJhZjUyN2UzMzEzZS4uYzkwNDQ5ZjVkZDQz
ZDJjYWZhYjI2NTU3YTQwZjBiNjBmZjM1NjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCkBAIC00MSw5ICs0MSw5IEBA
CiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgogI2ltcG9ydCAiVHlwZWRFbGVtZW50RGVzY2VuZGFu
dEl0ZXJhdG9yLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBvcnQg
PHBhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CisjaW1wb3J0
IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTg4LDkgKzg4LDkgQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjp1cGRhdGVE
YXRhRGV0ZWN0b3JIaWdobGlnaHRzKGNvbnN0IEhUTUxFbGVtZW50JiBvdmUKIAogICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHRlYWNoIERhdGFEZXRlY3RvckhpZ2hsaWdodCB0byByZW5kZXIg
cXVhZHMgaW5zdGVhZCBvZiBhbHdheXMgZmFsbGluZyBiYWNrIHRvIGF4aXMtYWxpZ25lZCBib3Vu
ZGluZyByZWN0cy4KICNpZiBIQVZFKEREX0hJR0hMSUdIVF9DUkVBVEVfV0lUSF9TQ0FMRSkKLSAg
ICAgICAgYXV0byBoaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3Rz
SW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZlbGVtZW50
Qm91bmRzLCAxLCBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGln
aHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93
LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMsIDApKTsKKyAgICAgICAg
YXV0byBoaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhp
Z2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVTY2FsZUFuZERpcmVj
dGlvbihudWxscHRyLCAmZWxlbWVudEJvdW5kcywgMSwgbWFpbkZyYW1lVmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0
U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBO
TywgWUVTLCAwKSk7CiAjZWxzZQotICAgICAgICBhdXRvIGhpZ2hsaWdodCA9IGFkb3B0Q0YoRERI
aWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9u
KG51bGxwdHIsICZlbGVtZW50Qm91bmRzLCAxLCBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVu
dFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHls
ZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZ
RVMpKTsKKyAgICAgICAgYXV0byBoaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtfRGF0
YURldGVjdG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5
bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmVsZW1lbnRCb3VuZHMsIDEsIG1haW5GcmFtZVZpZXct
PnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBE
REhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9u
TmF0dXJhbCwgTk8sIFlFUykpOwogI2VuZGlmCiAgICAgICAgIG1fZGF0YURldGVjdG9yQ29udGFp
bmVyc0FuZEhpZ2hsaWdodHMuYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVudC5nZXQoKSksIERh
dGFEZXRlY3RvckhpZ2hsaWdodDo6Y3JlYXRlRm9ySW1hZ2VPdmVybGF5KCptX3BhZ2UsICp0aGlz
LCBXVEZNb3ZlKGhpZ2hsaWdodCksICptYWtlUmFuZ2VTZWxlY3RpbmdOb2RlKGVsZW1lbnQuZ2V0
KCkpKSB9KTsKICAgICB9CkBAIC0xMTIsNyArMTEyLDcgQEAgYm9vbCBJbWFnZU92ZXJsYXlDb250
cm9sbGVyOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JgogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgQm9vbGVhbiBpc092ZXJCdXR0b24g
PSBOTzsKLSAgICAgICAgaWYgKCFEREhpZ2hsaWdodFBvaW50SXNPbkhpZ2hsaWdodChoaWdobGln
aHQtPmhpZ2hsaWdodCgpLCBtb3VzZVBvc2l0aW9uSW5Db250ZW50cywgJmlzT3ZlckJ1dHRvbikp
CisgICAgICAgIGlmICghUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3JzX0RESGlnaGxpZ2h0UG9p
bnRJc09uSGlnaGxpZ2h0KGhpZ2hsaWdodC0+aGlnaGxpZ2h0KCksIG1vdXNlUG9zaXRpb25JbkNv
bnRlbnRzLCAmaXNPdmVyQnV0dG9uKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IG1vdXNlSXNPdmVyQWN0aXZlRGF0YURldGVjdG9ySGlnaGxpZ2h0QnV0dG9uID0gaXNPdmVyQnV0
dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXIubW0KaW5kZXggMGExNDU3ZDdjMDY4YTc1MDUzNmVjOWIwNThhOWZiODg2MzFlNzIw
Zi4uMzY0OWVjM2M1YzZjOTE1M2ZjZDY5YzQxZmFlOThkZmJiMGE5NzdhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBA
IC00Nyw4ICs0Nyw3IEBACiAjaW1wb3J0ICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBv
cnQgPHBhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgorI2ltcG9ydCA8cGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNjgsMTEgKzI2NywxMSBAQCB2b2lkIFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OmJ1aWxkUG90ZW50aWFsSGlnaGxpZ2h0c0lmTmVlZGVkKCkKIAogYm9v
bCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjptb3VzZUlzT3ZlckhpZ2hsaWdodChEYXRhRGV0
ZWN0b3JIaWdobGlnaHQmIGhpZ2hsaWdodCwgYm9vbCYgbW91c2VJc092ZXJCdXR0b24pIGNvbnN0
CiB7Ci0gICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0Rh
dGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgQm9vbGVhbiBvbkJ1dHRvbjsKLSAgICBib29sIGhvdmVyZWQgPSBEREhpZ2hsaWdodFBv
aW50SXNPbkhpZ2hsaWdodChoaWdobGlnaHQuaGlnaGxpZ2h0KCksIChDR1BvaW50KW1fbW91c2VQ
b3NpdGlvbiwgJm9uQnV0dG9uKTsKKyAgICBib29sIGhvdmVyZWQgPSBQQUw6OnNvZnRMaW5rX0Rh
dGFEZXRlY3RvcnNfRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQoaGlnaGxpZ2h0LmhpZ2hs
aWdodCgpLCAoQ0dQb2ludCltX21vdXNlUG9zaXRpb24sICZvbkJ1dHRvbik7CiAgICAgbW91c2VJ
c092ZXJCdXR0b24gPSBvbkJ1dHRvbjsKICAgICByZXR1cm4gaG92ZXJlZDsKIH0KQEAgLTM0NSw3
ICszNDQsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1i
ZXJIaWdobGlnaHRzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghRGF0YURl
dGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3Jr
QXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEhhc2hTZXQ8UmVmUHRyPERhdGFE
ZXRlY3RvckhpZ2hsaWdodD4+IG5ld1BvdGVudGlhbEhpZ2hsaWdodHM7CkBAIC0zNjgsOSArMzY3
LDkgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGln
aGxpZ2h0cygpCiAKICAgICAgICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAjaWYgSEFWRShERF9I
SUdITElHSFRfQ1JFQVRFX1dJVEhfU0NBTEUpCi0gICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBh
ZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNj
YWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5GcmFtZVZpZXcudmlzaWJs
ZUNvbnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxp
Z2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFs
LCBOTywgWUVTLCAwKSk7CisgICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6
c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJs
ZVJlY3RXaXRoU3R5bGVTY2FsZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWlu
RnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3Rh
bmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5n
RGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUywgMCkpOwogI2Vsc2UKLSAgICAgICAgYXV0byBkZEhp
Z2hsaWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0
V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5GcmFtZVZpZXcu
dmlzaWJsZUNvbnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERE
SGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25O
YXR1cmFsLCBOTywgWUVTKSk7CisgICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENGKFBB
TDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlz
aWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZy
YW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5k
YXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0Rp
cmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKICNlbmRpZgogICAgICAgICBhdXRvIGhpZ2hsaWdo
dCA9IERhdGFEZXRlY3RvckhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKG1fcGFn
ZSwgKnRoaXMsIFdURk1vdmUoZGRIaWdobGlnaHQpLCBXVEZNb3ZlKHJhbmdlKSk7CiAgICAgICAg
IG1faGlnaGxpZ2h0cy5hZGQoaGlnaGxpZ2h0LmdldCgpKTsKQEAgLTM4Nyw3ICszODYsNyBAQCB2
b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2VsZWN0aW9uSGlnaGxpZ2h0KCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnko
KSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIEhhc2hTZXQ8UmVmUHRyPERhdGFEZXRlY3RvckhpZ2hsaWdo
dD4+IG5ld1BvdGVudGlhbEhpZ2hsaWdodHM7CkBAIC00MTMsOSArNDEyLDkgQEAgdm9pZCBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAg
IGlmICghY2dSZWN0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENHUmVjdCB2aXNpYmxlUmVj
dCA9IG1haW5GcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogI2lmIEhBVkUoRERfSElH
SExJR0hUX0NSRUFURV9XSVRIX1NDQUxFKQotICAgICAgICAgICAgYXV0byBkZEhpZ2hsaWdodCA9
IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxl
U2NhbGVBbmREaXJlY3Rpb24obnVsbHB0ciwgY2dSZWN0cy5iZWdpbigpLCBjZ1JlY3RzLnNpemUo
KSwgdmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGVCdWJibGVOb25lIHwgRERIaWdobGlnaHRT
dHlsZVN0YW5kYXJkSWNvbkFycm93IHwgRERIaWdobGlnaHRTdHlsZUJ1dHRvblNob3dBbHdheXMs
IFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUywgMCkpOworICAgICAgICAg
ICAgYXV0byBkZEhpZ2hsaWdodCA9IGFkb3B0Q0YoUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3Jz
X0RESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5k
RGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXplKCksIHZpc2li
bGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGlnaGxpZ2h0U3R5bGVTdGFu
ZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93QWx3YXlzLCBZRVMsIE5T
V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMsIDApKTsKICNlbHNlCi0gICAgICAgICAg
ICBhdXRvIGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0lu
VmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgY2dSZWN0cy5iZWdpbigp
LCBjZ1JlY3RzLnNpemUoKSwgdmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGVCdWJibGVOb25l
IHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93IHwgRERIaWdobGlnaHRTdHlsZUJ1
dHRvblNob3dBbHdheXMsIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykp
OworICAgICAgICAgICAgYXV0byBkZEhpZ2hsaWdodCA9IGFkb3B0Q0YoUEFMOjpzb2Z0TGlua19E
YXRhRGV0ZWN0b3JzX0RESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhT
dHlsZUFuZERpcmVjdGlvbihudWxscHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgp
LCB2aXNpYmxlUmVjdCwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0
eWxlU3RhbmRhcmRJY29uQXJyb3cgfCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywg
WUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAjZW5kaWYKICAgICAg
ICAgICAgIGF1dG8gaGlnaGxpZ2h0ID0gRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpjcmVhdGVGb3JT
ZWxlY3Rpb24obV9wYWdlLCAqdGhpcywgV1RGTW92ZShkZEhpZ2hsaWdodCksIFdURk1vdmUoKnNl
bGVjdGlvblJhbmdlKSk7CiAgICAgICAgICAgICBtX2hpZ2hsaWdodHMuYWRkKGhpZ2hsaWdodC5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVj
dG9ySGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3Rv
ckhpZ2hsaWdodC5tbQppbmRleCA5MWQ1MGRmMjk1YmQ1Y2E4ZGMxN2I2OWJkMzdhYTJhOTFkMTZk
MWIwLi4wNTAwZDcxYzJhM2U2OGJiMmRlNDU4ZGIzNTU0M2U5NjFmZTk4MGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0K
QEAgLTM5LDkgKzM5LDggQEAKICNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oIgog
I2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNv
cmUuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQg
PHd0Zi9TZWNvbmRzLmg+Ci0jaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHBh
bC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtODIsNyArODEsNyBAQCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OkRhdGFEZXRlY3RvckhpZ2hs
aWdodChQYWdlJiBwYWdlLCBEYXRhRGV0ZWN0b3JIaWdobGlnaHRDbAogCiB2b2lkIERhdGFEZXRl
Y3RvckhpZ2hsaWdodDo6c2V0SGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmIGhpZ2hsaWdodCkKIHsK
LSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURl
dGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
IW1fY2xpZW50KQpAQCAtOTMsNyArOTIsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6
c2V0SGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmIGhpZ2hsaWdodCkKICAgICBpZiAoIW1faGlnaGxp
Z2h0KQogICAgICAgICByZXR1cm47CiAKLSAgICBDR1JlY3QgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0
ID0gRERIaWdobGlnaHRHZXRCb3VuZGluZ1JlY3QobV9oaWdobGlnaHQuZ2V0KCkpOworICAgIENH
UmVjdCBoaWdobGlnaHRCb3VuZGluZ1JlY3QgPSBQQUw6OnNvZnRMaW5rX0RhdGFEZXRlY3RvcnNf
RERIaWdobGlnaHRHZXRCb3VuZGluZ1JlY3QobV9oaWdobGlnaHQuZ2V0KCkpOwogICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChoaWdobGlnaHRCb3VuZGluZ1JlY3Qu
b3JpZ2luKSk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKEZsb2F0U2l6ZShoaWdobGln
aHRCb3VuZGluZ1JlY3Quc2l6ZSkpOwogCkBAIC0xMTcsNyArMTE2LDcgQEAgdm9pZCBEYXRhRGV0
ZWN0b3JIaWdobGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
CiAKIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCiB7Ci0gICAgaWYgKCFEYXRhRGV0ZWN0
b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFp
bGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8g
YmUgbW92ZWQgaW50byBHcmFwaGljc0NvbnRleHQgYXMgYSBEaXNwbGF5TGlzdC1jb21wYXRpYmxl
IGRyYXdpbmcgY29tbWFuZC4KQEAgLTEyOSw5ICsxMjgsOSBAQCB2b2lkIERhdGFEZXRlY3Rvckhp
Z2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250
ZXh0JgogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBncmFwaGljc0NvbnRleHQucGxhdGZv
cm1Db250ZXh0KCk7CiAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgot
ICAgIENHTGF5ZXJSZWYgaGlnaGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENv
bnRleHQoaGlnaGxpZ2h0KCksIGNnQ29udGV4dCk7CisgICAgQ0dMYXllclJlZiBoaWdobGlnaHRM
YXllciA9IFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodEdldExheWVyV2l0
aENvbnRleHQoaGlnaGxpZ2h0KCksIGNnQ29udGV4dCk7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECi0gICAgQ0dSZWN0IGhpZ2hsaWdodEJvdW5kaW5nUmVjdCA9IERESGln
aGxpZ2h0R2V0Qm91bmRpbmdSZWN0KGhpZ2hsaWdodCgpKTsKKyAgICBDR1JlY3QgaGlnaGxpZ2h0
Qm91bmRpbmdSZWN0ID0gUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3JzX0RESGlnaGxpZ2h0R2V0
Qm91bmRpbmdSZWN0KGhpZ2hsaWdodCgpKTsKICAgICBoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3Jp
Z2luID0gQ0dQb2ludFplcm87CiAKICAgICBDR0NvbnRleHREcmF3TGF5ZXJJblJlY3QoY2dDb250
ZXh0LCBoaWdobGlnaHRCb3VuZGluZ1JlY3QsIGhpZ2hsaWdodExheWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL01lbnVVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL21hYy9NZW51VXRpbGl0aWVzLm1tCmluZGV4IDk3ZjBlOWQwMzgxMWM2ZTY0
ZWIxYWJhNjAyMDYxMTQ5YjU0YzNmM2YuLjEzY2VjNGY4M2FkMGFmM2RjMGJhM2FmMGRkYjUzZTRl
YWE5ZTQ0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL01lbnVVdGls
aXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvTWVudVV0aWxpdGllcy5t
bQpAQCAtMzEsNyArMzEsNiBAQAogCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBv
cnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvRGF0
YURldGVjdG9yc1NQSS5oPgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KQogI2ltcG9ydCA8cGFsL3NwaS9tYWMvVGVsZXBob255VXRpbGl0aWVzU1BJLmg+CkBAIC00MSw2
ICs0MCw5IEBAIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChUZWxlcGhvbnlV
dGlsaXRpZXMpCiBTT0ZUX0xJTktfQ0xBU1MoVGVsZXBob255VXRpbGl0aWVzLCBUVUNhbGwpCiAj
ZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaD4K
KyNpbXBvcnQgPHBhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmg+CisKIEBpbnRlcmZhY2Ug
V0tFbXB0eVByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlIDogTlNPYmplY3QgPFJWUHJlc2VudGVy
SGlnaGxpZ2h0RGVsZWdhdGU+CiBAZW5kCiAKQEAgLTc1LDEwICs3NywxMCBAQCBzdGF0aWMgRERB
Y3Rpb24gKmFjdGlvbkZvck1lbnVJdGVtKE5TTWVudUl0ZW0gKml0ZW0pCiAgICAgaWQgYWN0aW9u
ID0gW3JlcHJlc2VudGVkT2JqZWN0IG9iamVjdEZvcktleTpAIkREQWN0aW9uIl07CiAKICNpZiBI
QVZFKERBVEFfREVURUNUT1JTX01BQ19BQ1RJT04pCi0gICAgaWYgKCFbYWN0aW9uIGlzS2luZE9m
Q2xhc3M6Z2V0RERNYWNBY3Rpb25DbGFzcygpXSkKKyAgICBpZiAoIVthY3Rpb24gaXNLaW5kT2ZD
bGFzczpQQUw6OmdldERETWFjQWN0aW9uQ2xhc3MoKV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAj
ZWxzZQotICAgIGlmICghW2FjdGlvbiBpc0tpbmRPZkNsYXNzOmdldEREQWN0aW9uQ2xhc3MoKV0p
CisgICAgaWYgKCFbYWN0aW9uIGlzS2luZE9mQ2xhc3M6UEFMOjpnZXREREFjdGlvbkNsYXNzKCld
KQogICAgICAgICByZXR1cm4gbmlsOwogI2VuZGlmCiAKQEAgLTg3LDEzICs4OSwxMyBAQCBzdGF0
aWMgRERBY3Rpb24gKmFjdGlvbkZvck1lbnVJdGVtKE5TTWVudUl0ZW0gKml0ZW0pCiAKIE5TTWVu
dUl0ZW0gKm1lbnVJdGVtRm9yVGVsZXBob25lTnVtYmVyKGNvbnN0IFN0cmluZyYgdGVsZXBob25l
TnVtYmVyKQogewotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBB
TDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0ID0gYWRv
cHROUyhbYWxsb2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBhdXRvIGFj
dGlvbkNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2Uo
KSBpbml0XSk7CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0QWxsb3dlZEFjdGlvblVUSXM6QFsgQCJj
b20uYXBwbGUuZGlhbCIgXV07CiAKLSAgICBOU0FycmF5ICpwcm9wb3NlZE1lbnVJdGVtcyA9IFtb
Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yVmFs
dWU6KE5TU3RyaW5nICopdGVsZXBob25lTnVtYmVyIHR5cGU6Z2V0RERCaW5kZXJQaG9uZU51bWJl
cktleSgpIHNlcnZpY2U6bmlsIGNvbnRleHQ6YWN0aW9uQ29udGV4dC5nZXQoKV07CisgICAgTlNB
cnJheSAqcHJvcG9zZWRNZW51SXRlbXMgPSBbW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNz
KCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yVmFsdWU6KE5TU3RyaW5nICopdGVsZXBob25l
TnVtYmVyIHR5cGU6UEFMOjpnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJQaG9uZU51bWJl
cktleSgpIHNlcnZpY2U6bmlsIGNvbnRleHQ6YWN0aW9uQ29udGV4dC5nZXQoKV07CiAgICAgZm9y
IChOU01lbnVJdGVtICppdGVtIGluIHByb3Bvc2VkTWVudUl0ZW1zKSB7CiAgICAgICAgIGF1dG8g
YWN0aW9uID0gYWN0aW9uRm9yTWVudUl0ZW0oaXRlbSk7CiAgICAgICAgIGlmIChbYWN0aW9uLmFj
dGlvblVUSSBoYXNQcmVmaXg6QCJjb20uYXBwbGUuZGlhbCJdKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbQppbmRleCA5ZjhjYzBjNTky
NDU3M2M0MTI2YzJkYTMxYWM1MjgyMzg4YTdkYzNlLi5mYTBmNjA4NzViYjA4NWIzNTI2ZTBlMjEy
ODdhMzJhZDNmMTNlY2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9E
YXRhRGV0ZWN0aW9uUmVzdWx0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Rh
dGFEZXRlY3Rpb25SZXN1bHQubW0KQEAgLTI4LDExICsyOCw3IEBACiAKICNpbXBvcnQgIkFyZ3Vt
ZW50Q29kZXJzQ29jb2EuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oPgotI2ltcG9ydCA8d3Rm
L1NvZnRMaW5raW5nLmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhEYXRhRGV0ZWN0
b3JzQ29yZSkKLVNPRlRfTElOS19DTEFTUyhEYXRhRGV0ZWN0b3JzQ29yZSwgRERTY2FubmVyUmVz
dWx0KQorI2ltcG9ydCA8cGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ1LDcgKzQxLDcgQEAgdm9pZCBEYXRhRGV0ZWN0aW9u
UmVzdWx0OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBzdGQ6Om9wdGlv
bmFsPERhdGFEZXRlY3Rpb25SZXN1bHQ+IERhdGFEZXRlY3Rpb25SZXN1bHQ6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgYXV0byByZXN1bHRzID0gSVBDOjpkZWNvZGU8TlNB
cnJheT4oZGVjb2RlciwgQFsgW05TQXJyYXkgY2xhc3NdLCBnZXRERFNjYW5uZXJSZXN1bHRDbGFz
cygpIF0pOworICAgIGF1dG8gcmVzdWx0cyA9IElQQzo6ZGVjb2RlPE5TQXJyYXk+KGRlY29kZXIs
IEBbIE5TQXJyYXkuY2xhc3MsIFBBTDo6Z2V0RERTY2FubmVyUmVzdWx0Q2xhc3MoKSBdKTsKICAg
ICBpZiAoIXJlc3VsdHMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbi5tbQppbmRleCBkYjIwOTgxY2QyYjZiODY3N2I2M2Q0MzA2YmI0NjllYzQxNTc4
OGEyLi4wNWMwNGY3NjQzNzY3NzIwMmI5ZjFmYjdiMWE2NzlkYmM2MmYyYjU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLm1tCkBAIC0yOCwxMSArMjgsNyBAQAogCiAjaW1wb3J0ICJBcmd1bWVudENv
ZGVyc0NvY29hLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0
TGlua2luZy5oPgotCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoRGF0YURldGVjdG9yc0Nv
cmUpCi1TT0ZUX0xJTktfQ0xBU1MoRGF0YURldGVjdG9yc0NvcmUsIEREU2Nhbm5lclJlc3VsdCkK
KyNpbXBvcnQgPHBhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC0xOTIsNyArMTg4LDcgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rp
b24KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kYXRhRGV0ZWN0b3JJZGVudGlmaWVy
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBkYXRhRGV0ZWN0b3JSZXN1bHRz
ID0gSVBDOjpkZWNvZGU8TlNBcnJheT4oZGVjb2RlciwgQFsgTlNBcnJheS5jbGFzcywgZ2V0RERT
Y2FubmVyUmVzdWx0Q2xhc3MoKSBdKTsKKyAgICBhdXRvIGRhdGFEZXRlY3RvclJlc3VsdHMgPSBJ
UEM6OmRlY29kZTxOU0FycmF5PihkZWNvZGVyLCBAWyBOU0FycmF5LmNsYXNzLCBQQUw6OmdldERE
U2Nhbm5lclJlc3VsdENsYXNzKCkgXSk7CiAgICAgaWYgKCFkYXRhRGV0ZWN0b3JSZXN1bHRzKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9X
ZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQppbmRleCA4ODNiYmFkMmQ4NjM3ZGZlNWYyNDA3YTZhNDhh
ZTIxNDg5ZmI0OWVhLi4yYjEzZjllZWMyZjYxYzFmOWYyYmZiYWU3ZTEzYTJmMzMxMmQwY2M4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1t
CkBAIC0zNCw3ICszNCw3IEBACiAjaW1wb3J0ICJFbmNvZGVyLmgiCiAjaW1wb3J0ICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgotI2lt
cG9ydCA8cGFsL3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oPgorI2ltcG9ydCA8cGFsL21hYy9E
YXRhRGV0ZWN0b3JzU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTY0LDkg
KzY0LDkgQEAgYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6cGxhdGZvcm1EZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJIaXRUZXN0UmVzdWwKIAogICAgIGlmICghaGFzQWN0aW9uQ29u
dGV4dCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgQVNTRVJUKERhdGFEZXRlY3RvcnNMaWJy
YXJ5KCkpOworICAgIEFTU0VSVChQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJs
ZSgpKTsKIAotICAgIGF1dG8gZGV0ZWN0ZWREYXRhQWN0aW9uQ29udGV4dCA9IElQQzo6ZGVjb2Rl
PEREQWN0aW9uQ29udGV4dD4oZGVjb2RlciwgZ2V0RERBY3Rpb25Db250ZXh0Q2xhc3MoKSk7Cisg
ICAgYXV0byBkZXRlY3RlZERhdGFBY3Rpb25Db250ZXh0ID0gSVBDOjpkZWNvZGU8RERBY3Rpb25D
b250ZXh0PihkZWNvZGVyLCBQQUw6OmdldEREQWN0aW9uQ29udGV4dENsYXNzKCkpOwogICAgIGlm
ICghZGV0ZWN0ZWREYXRhQWN0aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDVmNTA3
NmFmZmEyMWM3MmI0NmU2NjY2OGRlZDFhYTE1ZTc0ZDdmYzguLmMzZmE2Y2FlMzNjNTM4YzExZTMw
OTcxNDM4Yjc0MDk1NmUwMjcwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC0xMjAsNyArMTIwLDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvQVZLaXRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5U1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaD4KLSNpbXBvcnQgPHBh
bC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xvb2t1
cFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBcHBlYXJhbmNlU1BJLmg+CiAjaW1wb3J0
IDxwYWwvc3BpL21hYy9OU0FwcGxpY2F0aW9uU1BJLmg+CkBAIC0xNTgsNiArMTU3LDcgQEAgU09G
VF9MSU5LX0NMQVNTX09QVElPTkFMKFRyYW5zbGF0aW9uVUlTZXJ2aWNlcywgTFRVSVRyYW5zbGF0
aW9uVmlld0NvbnRyb2xsZXIpCiAjZW5kaWYKIAogI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNv
ZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiAj
aWYgSEFWRShUT1VDSF9CQVIpICYmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdF
UikKIFNPRlRfTElOS19GUkFNRVdPUksoQVZLaXQpCkBAIC0zNjIzLDggKzM2MjMsOCBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdP
bmx5KCkKICAgICBpZiAoW21fdmlldyB3aW5kb3ddLmlzS2V5V2luZG93IHx8IGhhc0FjdGl2ZUlt
bWVkaWF0ZUFjdGlvbikgewogICAgICAgICBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpoaWRl
UG9wdXAoKTsKIAotICAgICAgICBpZiAoRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKLSAgICAgICAg
ICAgIFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1
YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOworICAgICAgICBpZiAoUEFMOjppc0Rh
dGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKKyAgICAgICAgICAgIFtbUEFMOjpnZXRE
REFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSByZXF1ZXN0QnViYmxlQ2xvc3Vy
ZVVuYW5jaG9yT25GYWlsdXJlOllFU107CiAgICAgfQogCiAgICAgY2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpG
YWRlT3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDJkMmIzOGE0MDhmYmM1MTM3YmNjMjg3
MjkzZGU5ZDI3YmMzODYwMzAuLjQwMDEzNjdmZmIwNjdmMGU3YmEyZTU1NWViMDIxNjQ4MDQxNjYx
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtMzgsMTIgKzM4LDEyIEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvR2VvbWV0cnlVdGls
aXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgotI2ltcG9y
dCA8cGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9E
YXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBTUEkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNQ
b3BvdmVyU1BJLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CisjaW1wb3J0IDxwYWwvbWFjL0RhdGFE
ZXRlY3RvcnNTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5r
Lmg+CiAKIEBpbnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyICgpIDxRTFByZXZp
ZXdNZW51SXRlbURlbGVnYXRlPgogQGVuZApAQCAtMTE0LDggKzExNCw4IEBAIC0gKHZvaWQpX2Ns
ZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKIAogICAgIGlmIChfY3VycmVudEFjdGlvbkNvbnRleHQg
JiYgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRleHQpIHsKICAgICAgICAgX2hhc0FjdGl2YXRlZEFj
dGlvbkNvbnRleHQgPSBOTzsKLSAgICAgICAgaWYgKERhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCi0g
ICAgICAgICAgICBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107Cisg
ICAgICAgIGlmIChQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQorICAg
ICAgICAgICAgW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107
CiAgICAgfQogCiAgICAgX3N0YXRlID0gV2ViS2l0OjpJbW1lZGlhdGVBY3Rpb25TdGF0ZTo6Tm9u
ZTsKQEAgLTIwMiw4ICsyMDIsOCBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJX
aWxsQmVnaW5BbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgaWYg
KF9jdXJyZW50QWN0aW9uQ29udGV4dCkgewogICAgICAgICBfaGFzQWN0aXZhdGVkQWN0aW9uQ29u
dGV4dCA9IFlFUzsKLSAgICAgICAgaWYgKERhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpIHsKLSAgICAg
ICAgICAgIGlmICghW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNob3VsZFVzZUFjdGlvbnNX
aXRoQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldKQorICAgICAgICBpZiAoUEFM
Ojppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkgeworICAgICAgICAgICAgaWYg
KCFbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRVc2VBY3Rpb25zV2l0aENv
bnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkKICAgICAgICAgICAgICAgICBbc2Vs
ZiBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uXTsKICAgICAgICAgfQogICAgIH0KQEAgLTQwMSw3ICs0
MDEsNyBAQCAtIChOU1NpemUpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBtYXhTaXpl
Rm9yUG9pbnQ6KE5TUG9pbnQpcG9pbnQKIAogLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRp
b25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHQKIHsK
LSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURl
dGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAg
RERBY3Rpb25Db250ZXh0ICphY3Rpb25Db250ZXh0ID0gX2hpdFRlc3RSZXN1bHREYXRhLmRldGVj
dGVkRGF0YUFjdGlvbkNvbnRleHQuZ2V0KCk7CkBAIC00MTAsNyArNDEwLDcgQEAgLSAoaWQ8TlNJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZv
ckRhdGFEZXRlY3RlZFQKIAogICAgIGFjdGlvbkNvbnRleHQuYWx0TW9kZSA9IFlFUzsKICAgICBh
Y3Rpb25Db250ZXh0LmltbWVkaWF0ZSA9IFlFUzsKLSAgICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFu
YWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gaGFzQWN0aW9uc0ZvclJlc3VsdDphY3Rpb25Db250
ZXh0Lm1haW5SZXN1bHQgYWN0aW9uQ29udGV4dDphY3Rpb25Db250ZXh0XSkKKyAgICBpZiAoIVtb
UEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBoYXNBY3Rpb25z
Rm9yUmVzdWx0OmFjdGlvbkNvbnRleHQubWFpblJlc3VsdCBhY3Rpb25Db250ZXh0OmFjdGlvbkNv
bnRleHRdKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFn
ZVByb3h5PiBwYWdlID0gX3BhZ2UuZ2V0KCk7CkBAIC00MjgsNyArNDI4LDcgQEAgLSAoaWQ8TlNJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZv
ckRhdGFEZXRlY3RlZFQKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0
RnJhbWU6W192aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfdmlldyBjb252ZXJ0UmVj
dDpfaGl0VGVzdFJlc3VsdERhdGEuZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1d
XTsKIAotICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNz
KCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yUmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRl
eHQgbWFpblJlc3VsdF0gYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCld
OworICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xh
c3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JSZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29u
dGV4dCBtYWluUmVzdWx0XSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQo
KV07CiAKICAgICBpZiAobWVudUl0ZW1zLmNvdW50ICE9IDEpCiAgICAgICAgIHJldHVybiBuaWw7
CkBAIC00MzgsMTAgKzQzOCwxMCBAQCAtIChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNv
bnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVAogCiAtIChpZDxO
U0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVy
Rm9yRGF0YURldGVjdGVkTGluawogewotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkK
KyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKLSAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25D
b250ZXh0ID0gYWRvcHROUyhbYWxsb2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsK
KyAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0ID0gYWRvcHROUyhb
UEFMOjphbGxvY0REQWN0aW9uQ29udGV4dEluc3RhbmNlKCkgaW5pdF0pOwogCiAgICAgaWYgKCFh
Y3Rpb25Db250ZXh0KQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtNDY0LDcgKzQ2NCw3IEBAIC0g
KGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRy
b2xsZXJGb3JEYXRhRGV0ZWN0ZWRMCiAgICAgaWYgKCFoaXRUZXN0UmVzdWx0KQogICAgICAgICBy
ZXR1cm4gbmlsOwogCi0gICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5h
Z2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JUYXJnZXRVUkw6aGl0VGVzdFJl
c3VsdC0+YWJzb2x1dGVMaW5rVVJMKCkgYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRl
eHQuZ2V0KCldOworICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtbUEFMOjpnZXREREFjdGlvbnNN
YW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JUYXJnZXRVUkw6aGl0VGVz
dFJlc3VsdC0+YWJzb2x1dGVMaW5rVVJMKCkgYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNv
bnRleHQuZ2V0KCldOwogCiAgICAgaWYgKG1lbnVJdGVtcy5jb3VudCAhPSAxKQogICAgICAgICBy
ZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDQ2NDdmNmNkZWE1
OTNhNGFjOGYyNjEzMGNmOWEyMGZjMzczODA0YzUuLjI1ZTQ4MjJiNDkyMTA0NzYzMTA4ZjgxZDM5
NjFmZTRkMDI2ZDc3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTU2LDEw
ICs1NiwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPG9i
amMvb2JqYy1jbGFzcy5oPgogI2ltcG9ydCA8b2JqYy9vYmpjLmg+Ci0jaW1wb3J0IDxwYWwvbWFj
L1F1aWNrTG9va1VJU29mdExpbmsuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL0RhdGFEZXRlY3Rv
cnNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNNZW51U1BJLmg+CisjaW1wb3J0IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0
TGluay5oPgorI2ltcG9ydCA8cGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmg+CiAKIEBpbnRl
cmZhY2UgV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciAoKSA8UUxQcmV2aWV3TWVudUl0ZW1E
ZWxlZ2F0ZT4KIEBlbmQKQEAgLTE0MCwxNSArMTQwLDE1IEBAIC0gKHZvaWQpX2NhbmNlbEltbWVk
aWF0ZUFjdGlvbgogCiAtICh2b2lkKV9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlCiB7Ci0gICAg
aWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3Rv
cnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRERBY3Rpb25z
TWFuYWdlciAqYWN0aW9uc01hbmFnZXIgPSBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hh
cmVkTWFuYWdlcl07CisgICAgRERBY3Rpb25zTWFuYWdlciAqYWN0aW9uc01hbmFnZXIgPSBbUEFM
OjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXTsKICAgICBbYWN0aW9u
c01hbmFnZXIgcmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOwogCiAg
ICAgaWYgKF9jdXJyZW50QWN0aW9uQ29udGV4dCAmJiBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4
dCkgewogICAgICAgICBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCA9IE5POwotICAgICAgICBb
Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107CisgICAgICAgIFtQQUw6
OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIGRpZFVzZUFjdGlvbnNdOwogICAgIH0KIAogICAg
IF90eXBlID0gV2ViSW1tZWRpYXRlQWN0aW9uTm9uZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCAtICh2
b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsUHJlcGFyZTooTlNJbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplcgogCiAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJX
aWxsQmVnaW5BbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCiB7Ci0gICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFy
eSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgIT0g
X2ltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIpCkBAIC0yMTMsNyArMjEzLDcgQEAgLSAodm9pZClp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2lsbEJlZ2luQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWMKIAogICAgIGlmIChfY3VycmVudEFjdGlvbkNvbnRleHQpIHsKICAgICAg
ICAgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRleHQgPSBZRVM7Ci0gICAgICAgIGlmICghW2dldERE
QWN0aW9uc01hbmFnZXJDbGFzcygpIHNob3VsZFVzZUFjdGlvbnNXaXRoQ29udGV4dDpfY3VycmVu
dEFjdGlvbkNvbnRleHQuZ2V0KCldKQorICAgICAgICBpZiAoIVtQQUw6OmdldEREQWN0aW9uc01h
bmFnZXJDbGFzcygpIHNob3VsZFVzZUFjdGlvbnNXaXRoQ29udGV4dDpfY3VycmVudEFjdGlvbkNv
bnRleHQuZ2V0KCldKQogICAgICAgICAgICAgW3NlbGYgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbl07
CiAgICAgfQogfQpAQCAtNDI0LDcgKzQyNCw3IEBAIC0gKE5TU2l6ZSltZW51SXRlbTooTlNNZW51
SXRlbSAqKW1lbnVJdGVtIG1heFNpemVGb3JQb2ludDooTlNQb2ludClwb2ludAogCiAtIChpZCA8
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxl
ckZvckRhdGFEZXRlY3RlZFRleHQKIHsKLSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkp
CisgICAgaWYgKCFQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpEZXRlY3RlZEl0
ZW0+IGRldGVjdGVkSXRlbTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRl
Y3RlZAogCiAgICAgW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29udGV4dCBzZXRBbHRNb2RlOllFU107
CiAgICAgW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29udGV4dCBzZXRJbW1lZGlhdGU6WUVTXTsKLSAg
ICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gaGFzQWN0
aW9uc0ZvclJlc3VsdDpbZGV0ZWN0ZWRJdGVtLT5hY3Rpb25Db250ZXh0IG1haW5SZXN1bHRdIGFj
dGlvbkNvbnRleHQ6ZGV0ZWN0ZWRJdGVtLT5hY3Rpb25Db250ZXh0LmdldCgpXSkKKyAgICBpZiAo
IVtbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBoYXNBY3Rp
b25zRm9yUmVzdWx0OltkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQgbWFpblJlc3VsdF0gYWN0
aW9uQ29udGV4dDpkZXRlY3RlZEl0ZW0tPmFjdGlvbkNvbnRleHQuZ2V0KCldKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgYXV0byBpbmRpY2F0b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
OjpjcmVhdGVXaXRoUmFuZ2UoZGV0ZWN0ZWRJdGVtLT5yYW5nZSwgeyB9LCBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKQEAgLTQ2Nyw3ICs0Njcs
NyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0
aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogCiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4
dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46
ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwogCi0gICAgTlNBcnJheSAqbWVudUl0ZW1zID0g
W1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JS
ZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29udGV4dCBtYWluUmVzdWx0XSBhY3Rpb25Db250ZXh0Ol9j
dXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CisgICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tQ
QUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0Zv
clJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0IG1haW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6
X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKICAgICBpZiAobWVudUl0ZW1zLmNvdW50ICE9
IDEpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTQ3NiwxMCArNDc2LDEwIEBAIC0gKGlkIDxO
U0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVy
Rm9yRGF0YURldGVjdGVkCiAKIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkTGluawogewotICAgIGlm
ICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3Jz
RnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBSZXRhaW5Q
dHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0ID0gYWRvcHROUyhbYWxsb2NEREFjdGlv
bkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0
PiBhY3Rpb25Db250ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY0REQWN0aW9uQ29udGV4dEluc3Rh
bmNlKCkgaW5pdF0pOwogCiAgICAgaWYgKCFhY3Rpb25Db250ZXh0KQogICAgICAgICByZXR1cm4g
bmlsOwpAQCAtNTAwLDcgKzUwMCw3IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAKICAgICBb
X2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cg
Y29udmVydFJlY3RUb1NjcmVlbjplbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVz
RnJvbU5vZGUoX2hpdFRlc3RSZXN1bHQuVVJMRWxlbWVudCgpKV1dOwogCi0gICAgTlNBcnJheSAq
bWVudUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBt
ZW51SXRlbXNGb3JUYXJnZXRVUkw6X2hpdFRlc3RSZXN1bHQuYWJzb2x1dGVMaW5rVVJMKCkuc3Ry
aW5nKCkgYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOworICAgIE5T
QXJyYXkgKm1lbnVJdGVtcyA9IFtbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFy
ZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JUYXJnZXRVUkw6X2hpdFRlc3RSZXN1bHQuYWJzb2x1dGVM
aW5rVVJMKCkuc3RyaW5nKCkgYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0
KCldOwogICAgIGlmIChtZW51SXRlbXMuY291bnQgIT0gMSkKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICAK
</data>
<flag name="commit-queue"
          id="452152"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430652</attachid>
            <date>2021-06-05 11:10:52 -0700</date>
            <delta_ts>2021-06-05 11:18:18 -0700</delta_ts>
            <desc>Fix non-internal macOS build</desc>
            <filename>bug-226669-20210605111051.patch</filename>
            <type>text/plain</type>
            <size>52622</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJlMWJhZGU0MGU0NGI1
OTJmZDgzYzY0ZWIwMTViZjFlYzlkYTU0ZC4uNTY5ZDBjNjEzMjNkYTBjNTIyMTJlYjE4ZDFjMDkx
OGRlYmQzOTljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA2LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTW92
ZSBEYXRhRGV0ZWN0b3JzIHNvZnRsaW5raW5nIGluIERhdGFEZXRlY3RvcnNTUEkuaCBvdXQgaW50
byBhIHNlcGFyYXRlIFBBTCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgc29mdGxpbmtpbmcgY29kZSBmb3IgdGhlIERh
dGFEZXRlY3RvcnMgZnJhbWV3b3JrLiBDdXJyZW50bHksIHRoZSBgU09GVF9MSU5LXypgIG1hY3Jv
cyBhcmUgZGVmaW5lZAorICAgICAgICBpbnNpZGUgdGhlIFNQSSBoZWFkZXIgKGBwYWwvc3BpL21h
Yy9EYXRhRGV0ZWN0b3JzU1BJLmhgKTsgdGhpcyBwYXRjaCBtb3ZlcyB0aGVtIG91dCBpbnRvCisg
ICAgICAgIGBwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay57aHxtbX1gIGluc3RlYWQsIGFu
ZCB1cGRhdGVzIGEgZmV3IHBsYWNlcyB0aGF0IHVzZSB0aGVzZSBzb2Z0LWxpbmtlZCBzeW1ib2xz
IHRvCisgICAgICAgIGltcG9ydCBgRGF0YURldGVjdG9yc1NvZnRMaW5rLmhgIGluc3RlYWQgb2Yg
YERhdGFEZXRlY3RvcnNTUEkuaGAuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRl
Y3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpkZXRlY3RJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFEZXRlY3Rpb246OmRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKiBwYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dXBkYXRlRGF0YURldGVjdG9ySGlnaGxpZ2h0
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpwbGF0Zm9ybUhh
bmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpt
b3VzZUlzT3ZlckhpZ2hsaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdo
dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6c2V0SGlnaGxpZ2h0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyk6CisK
IDIwMjEtMDYtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgVmVjdG9yPHVpbnQ4X3Q+IGluc3RlYWQgb2YgVmVjdG9yPGNoYXI+IHRvIHN0b3JlIGJ5dGVz
IGluIFNoYXJlZEJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNjMxNzE1ZDQxNmE0MjcwYmQ2
MWZiMzZiMzlkYTIxNWFiNTQ5MjQ4Zi4uYmIyZWQ3Zjc5NGZlZDBlNzdkZDNhMzAyMjE0ZWVmNTZl
ZDI3YTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDYtMDQg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBNb3ZlIERhdGFEZXRlY3RvcnMgc29mdGxpbmtpbmcgaW4gRGF0YURldGVjdG9yc1NQSS5oIG91
dCBpbnRvIGEgc2VwYXJhdGUgUEFMIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgc29mdGxpbmtpbmcgaGVhZGVycy4gU2Vl
IFdlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBQQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvUGxhdGZvcm1NYWMuY21ha2U6
CisgICAgICAgICogcGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaDoKKyAgICAg
ICAgKiBwYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbToKKworICAgICAgICBN
b3ZlIHRoZSBgRERCaW5kZXJQaG9uZU51bWJlcktleWAgc29mdCBsaW5rIGludG8gYERhdGFEZXRl
Y3RvcnNDb3JlU29mdExpbmtgIGluc3RlYWQsIHNpbmNlIHRoaXMgc3ltYm9sIGNvbWVzCisgICAg
ICAgIGZyb20gRGF0YURldGVjdG9yc0NvcmUgcmF0aGVyIHRoYW4gdGhlIERhdGFEZXRlY3RvcnMg
ZnJhbWV3b3JrLgorCisgICAgICAgICogcGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaDog
QWRkZWQuCisgICAgICAgICogcGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW06IEFkZGVk
LgorICAgICAgICAqIHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oOgorICAgICAgICAqIHBh
bC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaDoKKwogMjAyMS0wNi0wMSAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIDx3dGYvT3B0aW9uYWwuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZWM1ZTdjNTc4ZGYyOWMyOTAwNGUwOTZhYzYyN2IzZDM2Y2VmOTQyMS4uMjU3NjZk
Yzk4Yzc0YmRiZjM2ZDNiOWQ0NjNjOGMwMTUyMzVmNjA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAyMS0wNi0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBbbWFjT1NdIE1vdmUgRGF0YURldGVjdG9ycyBzb2Z0bGlua2luZyBpbiBEYXRh
RGV0ZWN0b3JzU1BJLmggb3V0IGludG8gYSBzZXBhcmF0ZSBQQUwgaGVhZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdCB0aGUgbmV3IFBBTCBz
b2Z0bGlua2luZyBoZWFkZXIgaW4gYSBmZXcgcGxhY2VzLiBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cg
Zm9yIG1vcmUgZGV0YWlscy4gQWRkaXRpb25hbGx5LCBtb3ZlCisgICAgICAgIHNldmVyYWwgc29m
dGxpbmtpbmcgaGVhZGVyIGltcG9ydHMgc28gdGhhdCB0aGV5J3JlIHRoZSBsYXN0IGltcG9ydGVk
IGhlYWRlcnMgaW4gYSBmZXcgc291cmNlcy4KKworICAgICAgICAqIFBsYXRmb3JtL21hYy9NZW51
VXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViS2l0OjphY3Rpb25Gb3JNZW51SXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6Om1lbnVJdGVtRm9yVGVsZXBob25lTnVtYmVyKToKKyAgICAgICAgKiBTaGFy
ZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbToKKyAgICAgICAgKFdlYktpdDo6RGF0YURl
dGVjdGlvblJlc3VsdDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkhp
dFRlc3RSZXN1bHREYXRhLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0
YTo6cGxhdGZvcm1EZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdKToKKyAgICAgICAgKC1bV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVn
aW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBf
YW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVj
dGVkTGlua10pOgorCiAyMDIxLTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlIFZlY3Rvcjx1aW50OF90PiBpbnN0ZWFkIG9mIFZlY3RvcjxjaGFyPiB0
byBzdG9yZSBieXRlcyBpbiBTaGFyZWRCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCBmMjA0YjI5MWU0Y2M1MTRlM2EyZmY1NjZlMjY0YjEyYmU1MzM2YTc4Li4yZjI2MDQ2ZGE0
MDlhMWQ0Y2RiZjFjZjllNzRmMTk3NGYxMzRkN2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBNb3ZlIERhdGFEZXRlY3RvcnMgc29m
dGxpbmtpbmcgaW4gRGF0YURldGVjdG9yc1NQSS5oIG91dCBpbnRvIGEgc2VwYXJhdGUgUEFMIGhl
YWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
NjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgdGhlIG5ldyBQQUwgc29mdGxpbmtpbmcgaGVhZGVyIGluIGEgZmV3IHBsYWNlcy4gU2VlIFdl
YkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdKToKKyAgICAgICAgKC1b
V2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2ls
bEJlZ2luQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dF0pOgorICAgICAgICAo
LVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0
YURldGVjdGVkTGlua10pOgorCiAyMDIxLTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIFZlY3Rvcjx1aW50OF90PiBpbnN0ZWFkIG9mIFZlY3Rvcjxj
aGFyPiB0byBzdG9yZSBieXRlcyBpbiBTaGFyZWRCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNWNhOGJjMTRiMGIyNTMz
MjRlNjAwNjNlNDgyNDZmNjQ1Njg1ZjY3Li5iZWQyYjgwNzYzMzUyNzkxMjFhNDY2ZTE3OTc3OTBh
MTE4Yzg0YjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yMTMsNiArMjEzLDggQEAKIAkJRjRDODVBNEYyNjU4NTUxQTAwNUI4
OUNDIC8qIFF1aWNrTG9va1VJU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Qzg1QTREMjY1ODU1MUEwMDVCODlDQyAvKiBRdWlja0xvb2tV
SVNvZnRMaW5rLmggKi87IH07CiAJCUY0REREMDFCMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0
ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjREREQwMTkyNjREQzY5RTAwRUYxQjkxIC8qIERhdGFEZXRlY3RvcnNDb3Jl
U29mdExpbmsubW0gKi87IH07CiAJCUY0REREMDFDMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0
ZWN0b3JzQ29yZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNERERDAxQTI2NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9yc0NvcmVT
b2Z0TGluay5oICovOyB9OworCQlGNEUwODc1QjI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVj
dG9yc1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEUwODc1OTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLmgg
Ki87IH07CisJCUY0RTA4NzVDMjY2QUNBNTMwMDBGODE0QSAvKiBEYXRhRGV0ZWN0b3JzU29mdExp
bmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUw
ODc1QTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tICovOyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSBzZWN0aW9uICovCkBAIC00MzIsNiArNDM0LDggQEAKIAkJRjRDODVBNEQyNjU4NTUx
QTAwNUI4OUNDIC8qIFF1aWNrTG9va1VJU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUXVpY2tMb29rVUlTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNERERDAxOTI2NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFEZXRl
Y3RvcnNDb3JlU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RERE
MDFBMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMDg3NTkyNjZBQ0E1MzAwMEY4MTRBIC8q
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0b3JzU29m
dExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMDg3NUEyNjZBQ0E1MzAw
MEY4MTRBIC8qIERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8q
IEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jr
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzU1LDYgKzc1OSw4IEBACiAJCTQ0RTFBOEFDMjFG
QTU0OEYwMEMzMDQ4RSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUY0RTA4NzU5MjY2QUNBNTMwMDBGODE0QSAvKiBEYXRhRGV0ZWN0b3JzU29m
dExpbmsuaCAqLywKKwkJCQlGNEUwODc1QTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9y
c1NvZnRMaW5rLm1tICovLAogCQkJCTQ0RTFBOEFEMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBT
b2Z0TGluay5oICovLAogCQkJCTQ0RTFBOEFFMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0
TGluay5tbSAqLywKIAkJCQlGNEM4NUE0RDI2NTg1NTFBMDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlT
b2Z0TGluay5oICovLApAQCAtODY3LDYgKzg3Myw3IEBACiAJCQkJREY4M0UyMDkyNjM3MzRGMTAw
MDgyNUVGIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRE
REQwMUMyNjREQzY5RTAwRUYxQjkxIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTQxMUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3Jz
Q29yZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjRFMDg3NUIyNjZBQ0E1MzAwMEY4MTRBIC8q
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OEExRjQ1
MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
NUFGOTFBMUY0M0E0QzcwMDJFQUMwMiAvKiBEYXRhRGV0ZWN0b3JzVUlTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA4MSw2ICsxMDg4LDcgQEAKIAkJCQkxQzA5RDA1NjFF
MzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdT
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0REREMDFCMjY0REM2OUUwMEVGMUI5MSAv
KiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRFMDg3
NUMyNjZBQ0E1MzAwMEY4MTRBIC8qIERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0MjkxNjQxRkE1MjY3MDAwMkNDOTNFIC8qIEZp
bGVTaXplRm9ybWF0dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NDI5MTY4MUZBNTI3MDUw
MDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA1NDIwNDljZTY3OTllODgz
OGNjYThmNGRhMGMxNDhjOTcwNmZlYTc5Li43OTg2NDRlYmY2NTgwMGEzZDFhZDNjZWUwYzU5YTdk
ZDI5ZjcyNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFj
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UKQEAg
LTIwLDYgKzIwLDcgQEAgbGlzdChBUFBFTkQgUEFMX1BVQkxJQ19IRUFERVJTCiAgICAgY29jb2Ev
U3BlZWNoU29mdExpbmsuaAogICAgIGNvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oCiAKKyAg
ICBtYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmgKICAgICBtYWMvTG9va3VwU29mdExpbmsuaAog
ICAgIG1hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmgKIApAQCAtMTYzLDcgKzE2NCw5IEBAIGxpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCiAKICAgICBjcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2Vz
dENvbW1vbkNyeXB0by5jcHAKIAorICAgIG1hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW0KICAg
ICBtYWMvTG9va3VwU29mdExpbmsubW0KKyAgICBtYWMvUXVpY2tMb29rVUlTb2Z0TGluay5tbQog
CiAgICAgc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U29mdExpbmsuY3BwCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0
TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNv
ZnRMaW5rLmgKaW5kZXggNTdhNTY4YTNlZGRiMTJjYzQ2YWU1ZjA4ZWNlNDQyMTFiYzVmZGJjZC4u
M2ZhMWYxYmEwMjk5NDBmMGJlOGQ2N2M5ZWI2YThjYWJmOTgwY2U3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5r
LmgKQEAgLTMyLDcgKzMyLDkgQEAKIAogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBE
RFNjYW5uZXJSZXN1bHQpCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JN
KE1BQykKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9yc0Nv
cmUsIEREQmluZGVyUGhvbmVOdW1iZXJLZXksIENGU3RyaW5nUmVmKQorI2VsaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVj
dG9yc0NvcmUsIEREU2Nhbm5lckNyZWF0ZSwgRERTY2FubmVyUmVmLCAoRERTY2FubmVyVHlwZSB0
eXBlLCBERFNjYW5uZXJPcHRpb25zIG9wdGlvbnMsIENGRXJyb3JSZWYgKiBlcnJvclJlZiksICh0
eXBlLCBvcHRpb25zLCBlcnJvclJlZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNjYW5uZXJTY2FuUXVlcnksIEJvb2xlYW4sIChERFNj
YW5uZXJSZWYgc2Nhbm5lciwgRERTY2FuUXVlcnlSZWYgcXVlcnkpLCAoc2Nhbm5lciwgcXVlcnkp
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwg
RERTY2FuUXVlcnlDcmVhdGUsIEREU2NhblF1ZXJ5UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yKSwgKGFsbG9jYXRvcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0KaW5kZXggZGRmMDEyNzkwMDhiYjM0
MjkxNGRkMTI3ZjIzYWE5MDc0NTE0YmVhNi4uMmI2NDQ3ZjA5MTFhNzZlYzQ1MGE2NDQ1ZDY4YjI1
ZDk1NTY2YTIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRh
RGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbQpAQCAtMzMsNyArMzMsOSBAQAogU09GVF9M
SU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSkK
IFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9y
c0NvcmUsIEREU2Nhbm5lclJlc3VsdCwgUEFMX0VYUE9SVCkKIAotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJQaG9uZU51bWJlcktl
eSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERT
Y2FubmVyQ3JlYXRlLCBERFNjYW5uZXJSZWYsIChERFNjYW5uZXJUeXBlIHR5cGUsIEREU2Nhbm5l
ck9wdGlvbnMgb3B0aW9ucywgQ0ZFcnJvclJlZiAqIGVycm9yUmVmKSwgKHR5cGUsIG9wdGlvbnMs
IGVycm9yUmVmKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgRGF0YURldGVj
dG9yc0NvcmUsIEREU2Nhbm5lclNjYW5RdWVyeSwgQm9vbGVhbiwgKEREU2Nhbm5lclJlZiBzY2Fu
bmVyLCBERFNjYW5RdWVyeVJlZiBxdWVyeSksIChzY2FubmVyLCBxdWVyeSkpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNjYW5RdWVyeUNy
ZWF0ZSwgRERTY2FuUXVlcnlSZWYsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAoYWxsb2Nh
dG9yKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0RhdGFEZXRlY3Rv
cnNTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1Nv
ZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ0YTEwMTc3NDRiYTA0ZjM5MzNhYzYxODdhZDRiNTMxZjc2
ODYwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0RhdGFE
ZXRlY3RvcnNTb2Z0TGluay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oPgorI2ltcG9ydCA8d3RmL1Nv
ZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIERhdGFE
ZXRlY3RvcnMpCisKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgRERBY3Rpb25Db250
ZXh0KQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBEREFjdGlvbnNNYW5hZ2VyKQor
CisjaWYgSEFWRShEQVRBX0RFVEVDVE9SU19NQUNfQUNUSU9OKQorU09GVF9MSU5LX0NMQVNTX0ZP
Ul9IRUFERVIoUEFMLCBERE1hY0FjdGlvbikKKyNlbHNlCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihQQUwsIEREQWN0aW9uKQorI2VuZGlmCisKKyNpZiBIQVZFKEREX0hJR0hMSUdIVF9DUkVB
VEVfV0lUSF9TQ0FMRSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURl
dGVjdG9ycywgRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxl
U2NhbGVBbmREaXJlY3Rpb24sIERESGlnaGxpZ2h0UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDR1JlY3QqIHJlY3RzLCBDRkluZGV4IGNvdW50LCBDR1JlY3QgZ2xvYmFsVmlzaWJsZVJl
Y3QsIERESGlnaGxpZ2h0U3R5bGUgc3R5bGUsIEJvb2xlYW4gd2l0aEJ1dHRvbiwgTlNXcml0aW5n
RGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0wsIEJvb2xlYW4g
ZmxpcHBlZCwgQ0dGbG9hdCBzY2FsZSksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFs
VmlzaWJsZVJlY3QsIHN0eWxlLCB3aXRoQnV0dG9uLCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0
aEVPTCwgZmxpcHBlZCwgc2NhbGUpKQorI2Vsc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2li
bGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uLCBEREhpZ2hsaWdodFJlZiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ0dSZWN0KiByZWN0cywgQ0ZJbmRleCBjb3VudCwgQ0dSZWN0IGdsb2Jh
bFZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlIHN0eWxlLCBCb29sZWFuIHdpdGhBcnJvdywg
TlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0ws
IEJvb2xlYW4gZmxpcHBlZCksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFsVmlzaWJs
ZVJlY3QsIHN0eWxlLCB3aXRoQXJyb3csIHdyaXRpbmdEaXJlY3Rpb24sIGVuZHNXaXRoRU9MLCBm
bGlwcGVkKSkKKyNlbmRpZgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBEYXRh
RGV0ZWN0b3JzLCBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQsIENHTGF5ZXJSZWYsIChE
REhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHQ29udGV4dFJlZiBjb250ZXh0KSwgKGhpZ2hsaWdo
dCwgY29udGV4dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIERhdGFEZXRl
Y3RvcnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0LCBDR1JlY3QsIChEREhpZ2hsaWdodFJl
ZiBoaWdobGlnaHQpLCAoaGlnaGxpZ2h0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQsIEJvb2xl
YW4sIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHUG9pbnQgcG9pbnQsIEJvb2xlYW4qIG9u
QnV0dG9uKSwgKGhpZ2hsaWdodCwgcG9pbnQsIG9uQnV0dG9uKSkKKworI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDk4
ZWEwN2RlNWYxMTFhOTk0MDJkYWYyMWY5OTJjZDNjOWZlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW0KQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaW1wb3J0IDxwYWwvc3BpL21h
Yy9EYXRhRGV0ZWN0b3JzU1BJLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09G
VF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRh
RGV0ZWN0b3JzLCBQQUxfRVhQT1JUKQorCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIEREQWN0aW9uQ29udGV4dCwgUEFMX0VYUE9SVCkK
K1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9y
cywgRERBY3Rpb25zTWFuYWdlciwgUEFMX0VYUE9SVCkKKworI2lmIEhBVkUoREFUQV9ERVRFQ1RP
UlNfTUFDX0FDVElPTikKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgRGF0YURldGVjdG9ycywgRERNYWNBY3Rpb24sIFBBTF9FWFBPUlQpCisjZWxzZQorU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBEREFj
dGlvbiwgUEFMX0VYUE9SVCkKKyNlbmRpZgorCisjaWYgSEFWRShERF9ISUdITElHSFRfQ1JFQVRF
X1dJVEhfU0NBTEUpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVj
dFdpdGhTdHlsZVNjYWxlQW5kRGlyZWN0aW9uLCBEREhpZ2hsaWdodFJlZiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ0dSZWN0KiByZWN0cywgQ0ZJbmRleCBjb3VudCwgQ0dSZWN0IGdsb2Jh
bFZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlIHN0eWxlLCBCb29sZWFuIHdpdGhCdXR0b24s
IE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uLCBCb29sZWFuIGVuZHNXaXRoRU9M
LCBCb29sZWFuIGZsaXBwZWQsIENHRmxvYXQgc2NhbGUpLCAoYWxsb2NhdG9yLCByZWN0cywgY291
bnQsIGdsb2JhbFZpc2libGVSZWN0LCBzdHlsZSwgd2l0aEJ1dHRvbiwgd3JpdGluZ0RpcmVjdGlv
biwgZW5kc1dpdGhFT0wsIGZsaXBwZWQsIHNjYWxlKSwgUEFMX0VYUE9SVCkKKyNlbHNlCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMs
IERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVj
dGlvbiwgRERIaWdobGlnaHRSZWYsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENHUmVjdCog
cmVjdHMsIENGSW5kZXggY291bnQsIENHUmVjdCBnbG9iYWxWaXNpYmxlUmVjdCwgRERIaWdobGln
aHRTdHlsZSBzdHlsZSwgQm9vbGVhbiB3aXRoQXJyb3csIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0
aW5nRGlyZWN0aW9uLCBCb29sZWFuIGVuZHNXaXRoRU9MLCBCb29sZWFuIGZsaXBwZWQpLCAoYWxs
b2NhdG9yLCByZWN0cywgY291bnQsIGdsb2JhbFZpc2libGVSZWN0LCBzdHlsZSwgd2l0aEFycm93
LCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0aEVPTCwgZmxpcHBlZCksIFBBTF9FWFBPUlQpCisj
ZW5kaWYKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBE
YXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQsIENHTGF5ZXJSZWYs
IChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHQ29udGV4dFJlZiBjb250ZXh0KSwgKGhpZ2hs
aWdodCwgY29udGV4dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdS
ZWN0LCBDR1JlY3QsIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQpLCAoaGlnaGxpZ2h0KSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
RGF0YURldGVjdG9ycywgRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQsIEJvb2xlYW4sIChE
REhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHUG9pbnQgcG9pbnQsIEJvb2xlYW4qIG9uQnV0dG9u
KSwgKGhpZ2hsaWdodCwgcG9pbnQsIG9uQnV0dG9uKSwgUEFMX0VYUE9SVCkKKworI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oCmluZGV4IGEwZmI3MDEzN2Ux
NDc5Y2Y4NDJiODcxNDQwMDJhZGIyNzc3MzRiNjMuLmU0YTJkODkwN2I4ODJhNTQ4YTBlMGU3YjYw
MmM3OTVlOTc2NzUzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL1F1
aWNrTG9va1VJU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9RdWlj
a0xvb2tVSVNvZnRMaW5rLmgKQEAgLTI2LDggKzI2LDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykK
IAotI2luY2x1ZGUgPHBhbC9zcGkvbWFjL1F1aWNrTG9va01hY1NQSS5oPgotI2luY2x1ZGUgPHd0
Zi9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvUXVpY2tMb29rTWFjU1BJLmg+
CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1Jf
SEVBREVSKFBBTCwgUXVpY2tMb29rVUkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oCmluZGV4IGYxZjk2OTNkYjU0OTEzNDNlNzUzZWEy
OGI4YmI3ZDE2NDIxZGQ5ZDUuLjg3MTc2ZmI4NTY4MDYyMTdiMDAwMGVkYTg4ZWM0MmI5MzhhNGQ4
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9EYXRhRGV0ZWN0
b3JzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0RhdGFEZXRlY3Rv
cnNTUEkuaApAQCAtNDUsNiArNDUsOCBAQAogCiAjZWxzZSAvLyAhVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKIAorI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCiAjaWYgSEFWRShEQVRBX0RFVEVD
VE9SU19NQUNfQUNUSU9OKQogQGludGVyZmFjZSBEREFjdGlvbiA6IE5TT2JqZWN0CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqYWN0aW9uVVRJOwpAQCAtOTksNDggKzEwMSwyMiBAQCBl
bnVtIHsKIAogI2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCi0jaWYgUExBVEZP
Uk0oTUFDKQotCiBXVEZfRVhURVJOX0NfQkVHSU4KIENGVHlwZUlEIEREUmVzdWx0R2V0Q0ZUeXBl
SUQodm9pZCk7CiBXVEZfRVhURVJOX0NfRU5ECiAKLSNlbmRpZgotCiB0eXBlZGVmIHN0cnVjdCBf
X0RESGlnaGxpZ2h0ICpEREhpZ2hsaWdodFJlZjsKIHR5cGVkZWYgTlNVSW50ZWdlciBEREhpZ2hs
aWdodFN0eWxlOwogCiAjaWYgIUhBVkUoREFUQV9ERVRFQ1RPUlNfTUFDX0FDVElPTikKLUBpbnRl
cmZhY2UgRERBY3Rpb24gOiBOU09iamVjdAogCitAaW50ZXJmYWNlIEREQWN0aW9uIDogTlNPYmpl
Y3QKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICphY3Rpb25VVEk7Ci0KIEBlbmQKLSNl
bmRpZgogCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoRGF0YURldGVjdG9y
cykKLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChEYXRhRGV0ZWN0b3JzQ29y
ZSkKKyNlbmRpZiAvLyAhSEFWRShEQVRBX0RFVEVDVE9SU19NQUNfQUNUSU9OKQogCi1TT0ZUX0xJ
TktfQ0xBU1NfT1BUSU9OQUwoRGF0YURldGVjdG9ycywgRERBY3Rpb25Db250ZXh0KQotU09GVF9M
SU5LX0NMQVNTX09QVElPTkFMKERhdGFEZXRlY3RvcnMsIEREQWN0aW9uc01hbmFnZXIpCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQogCi0jaWYgSEFWRShEQVRBX0RFVEVDVE9SU19NQUNfQUNUSU9O
KQotU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKERhdGFEZXRlY3RvcnMsIERETWFjQWN0aW9uKQot
I2Vsc2UKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChEYXRhRGV0ZWN0b3JzLCBEREFjdGlvbikK
LSNlbmRpZgotCi1TT0ZUX0xJTktfQ09OU1RBTlQoRGF0YURldGVjdG9yc0NvcmUsIEREQmluZGVy
UGhvbmVOdW1iZXJLZXksIENGU3RyaW5nUmVmKQotI2lmIEhBVkUoRERfSElHSExJR0hUX0NSRUFU
RV9XSVRIX1NDQUxFKQotU09GVF9MSU5LKERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0Q3JlYXRl
V2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5kRGlyZWN0aW9uLCBEREhpZ2hs
aWdodFJlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0dSZWN0KiByZWN0cywgQ0ZJbmRl
eCBjb3VudCwgQ0dSZWN0IGdsb2JhbFZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlIHN0eWxl
LCBCb29sZWFuIHdpdGhCdXR0b24sIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9u
LCBCb29sZWFuIGVuZHNXaXRoRU9MLCBCb29sZWFuIGZsaXBwZWQsIENHRmxvYXQgc2NhbGUpLCAo
YWxsb2NhdG9yLCByZWN0cywgY291bnQsIGdsb2JhbFZpc2libGVSZWN0LCBzdHlsZSwgd2l0aEJ1
dHRvbiwgd3JpdGluZ0RpcmVjdGlvbiwgZW5kc1dpdGhFT0wsIGZsaXBwZWQsIHNjYWxlKSkKLSNl
bHNlCi1TT0ZUX0xJTksoRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJ
blZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uLCBEREhpZ2hsaWdodFJlZiwgKENGQWxs
b2NhdG9yUmVmIGFsbG9jYXRvciwgQ0dSZWN0KiByZWN0cywgQ0ZJbmRleCBjb3VudCwgQ0dSZWN0
IGdsb2JhbFZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlIHN0eWxlLCBCb29sZWFuIHdpdGhB
cnJvdywgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dp
dGhFT0wsIEJvb2xlYW4gZmxpcHBlZCksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFs
VmlzaWJsZVJlY3QsIHN0eWxlLCB3aXRoQXJyb3csIHdyaXRpbmdEaXJlY3Rpb24sIGVuZHNXaXRo
RU9MLCBmbGlwcGVkKSkKLSNlbmRpZgotU09GVF9MSU5LKERhdGFEZXRlY3RvcnMsIERESGlnaGxp
Z2h0R2V0TGF5ZXJXaXRoQ29udGV4dCwgQ0dMYXllclJlZiwgKERESGlnaGxpZ2h0UmVmIGhpZ2hs
aWdodCwgQ0dDb250ZXh0UmVmIGNvbnRleHQpLCAoaGlnaGxpZ2h0LCBjb250ZXh0KSkKLVNPRlRf
TElOSyhEYXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdodEdldEJvdW5kaW5nUmVjdCwgQ0dSZWN0LCAo
RERIaWdobGlnaHRSZWYgaGlnaGxpZ2h0KSwgKGhpZ2hsaWdodCkpCi1TT0ZUX0xJTksoRGF0YURl
dGVjdG9ycywgRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQsIEJvb2xlYW4sIChEREhpZ2hs
aWdodFJlZiBoaWdobGlnaHQsIENHUG9pbnQgcG9pbnQsIEJvb2xlYW4qIG9uQnV0dG9uKSwgKGhp
Z2hsaWdodCwgcG9pbnQsIG9uQnV0dG9uKSkKLQotI2VuZGlmCi0KLSNlbmRpZgorI2VuZGlmIC8v
IEVOQUJMRShEQVRBX0RFVEVDVElPTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9EYXRhRGV0ZWN0aW9uLm1tCmluZGV4IGRiNmNkYTVjMmMyMDA1MzdkYzRjOGI3MGE1NGU3MWNk
M2Q4NGRiZDcuLjI1MDQzODkyNDhkNjNmMDg2YWZkYmNhNTg1NzE2YWM0NTk1MmNiZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0KQEAgLTUzLDEy
ICs1MywxMiBAQAogI2ltcG9ydCAiVGV4dEl0ZXJhdG9yLmgiCiAjaW1wb3J0ICJWaXNpYmxlUG9z
aXRpb24uaCIKICNpbXBvcnQgIlZpc2libGVVbml0cy5oIgotI2ltcG9ydCA8cGFsL2NvY29hL0Rh
dGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0RhdGFEZXRl
Y3RvcnNVSVNQSS5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oPgog
I2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+
CisjaW1wb3J0IDxwYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oPgorI2ltcG9y
dCA8cGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykK
IHRlbXBsYXRlPD4gc3RydWN0IFdURjo6Q0ZUeXBlVHJhaXQ8RERSZXN1bHRSZWY+IHsKQEAgLTEw
OCw3ICsxMDgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxEZXRlY3RlZEl0ZW0+IGRldGVjdEl0
ZW0oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgYwogICAgIGlmICghdmlldykKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYWN0aW9uQ29udGV4dCA9IGFkb3B0TlMoW2Fs
bG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgYXV0byBhY3Rpb25Db250
ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY0REQWN0aW9uQ29udGV4dEluc3RhbmNlKCkgaW5pdF0p
OwogICAgIFthY3Rpb25Db250ZXh0IHNldEFsbFJlc3VsdHM6QFsgKF9fYnJpZGdlIGlkKW1haW5S
ZXN1bHQgXV07CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0TWFpblJlc3VsdDptYWluUmVzdWx0XTsK
IApAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERldGVjdGVkSXRlbT4g
ZGV0ZWN0SXRlbShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBjCiAKIHN0ZDo6b3B0
aW9uYWw8RGV0ZWN0ZWRJdGVtPiBEYXRhRGV0ZWN0aW9uOjpkZXRlY3RJdGVtQXJvdW5kSGl0VGVz
dFJlc3VsdChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQogewotICAgIGlmICgh
RGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJh
bWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBOb2RlKiBub2Rl
ID0gaGl0VGVzdFJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCmluZGV4IGU0NDdk
NzQyNGUwZDkyZTU1ZWFlOWZiYzg3OTMyYWY1MjdlMzMxM2UuLmM5MDQ0OWY1ZGQ0M2QyY2FmYWIy
NjU1N2E0MGYwYjYwZmYzNTY0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQpAQCAtNDEsOSArNDEsOSBAQAogI2ltcG9y
dCAiU2ltcGxlUmFuZ2UuaCIKICNpbXBvcnQgIlR5cGVkRWxlbWVudERlc2NlbmRhbnRJdGVyYXRv
ci5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0jaW1wb3J0IDxwYWwvc3Bp
L21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9y
dCA8d3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oPgorI2ltcG9ydCA8cGFsL21h
Yy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04
OCw5ICs4OCw5IEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dXBkYXRlRGF0YURldGVj
dG9ySGlnaGxpZ2h0cyhjb25zdCBIVE1MRWxlbWVudCYgb3ZlCiAKICAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCB0ZWFjaCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQgdG8gcmVuZGVyIHF1YWRzIGlu
c3RlYWQgb2YgYWx3YXlzIGZhbGxpbmcgYmFjayB0byBheGlzLWFsaWduZWQgYm91bmRpbmcgcmVj
dHMuCiAjaWYgSEFWRShERF9ISUdITElHSFRfQ1JFQVRFX1dJVEhfU0NBTEUpCi0gICAgICAgIGF1
dG8gaGlnaGxpZ2h0ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJs
ZVJlY3RXaXRoU3R5bGVTY2FsZUFuZERpcmVjdGlvbihudWxscHRyLCAmZWxlbWVudEJvdW5kcywg
MSwgbWFpbkZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVC
dWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBO
U1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTLCAwKSk7CisgICAgICAgIGF1dG8gaGln
aGxpZ2h0ID0gYWRvcHRDRihQQUw6OnNvZnRMaW5rX0RhdGFEZXRlY3RvcnNfRERIaWdobGlnaHRD
cmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlU2NhbGVBbmREaXJlY3Rpb24obnVs
bHB0ciwgJmVsZW1lbnRCb3VuZHMsIDEsIG1haW5GcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVj
dCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3Rh
bmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUywg
MCkpOwogI2Vsc2UKLSAgICAgICAgYXV0byBoaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0
Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRy
LCAmZWxlbWVudEJvdW5kcywgMSwgbWFpbkZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCks
IERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0U3R5bGVTdGFuZGFy
ZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7Cisg
ICAgICAgIGF1dG8gaGlnaGxpZ2h0ID0gYWRvcHRDRihQQUw6OnNvZnRMaW5rX0RhdGFEZXRlY3Rv
cnNfRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGly
ZWN0aW9uKG51bGxwdHIsICZlbGVtZW50Qm91bmRzLCAxLCBtYWluRnJhbWVWaWV3LT52aXNpYmxl
Q29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGln
aHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWws
IE5PLCBZRVMpKTsKICNlbmRpZgogICAgICAgICBtX2RhdGFEZXRlY3RvckNvbnRhaW5lcnNBbmRI
aWdobGlnaHRzLmFwcGVuZCh7IG1ha2VXZWFrUHRyKGVsZW1lbnQuZ2V0KCkpLCBEYXRhRGV0ZWN0
b3JIaWdobGlnaHQ6OmNyZWF0ZUZvckltYWdlT3ZlcmxheSgqbV9wYWdlLCAqdGhpcywgV1RGTW92
ZShoaWdobGlnaHQpLCAqbWFrZVJhbmdlU2VsZWN0aW5nTm9kZShlbGVtZW50LmdldCgpKSkgfSk7
CiAgICAgfQpAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6
cGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIEJvb2xlYW4gaXNPdmVyQnV0dG9uID0gTk87Ci0g
ICAgICAgIGlmICghRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQoaGlnaGxpZ2h0LT5oaWdo
bGlnaHQoKSwgbW91c2VQb3NpdGlvbkluQ29udGVudHMsICZpc092ZXJCdXR0b24pKQorICAgICAg
ICBpZiAoIVBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodFBvaW50SXNPbkhp
Z2hsaWdodChoaWdobGlnaHQtPmhpZ2hsaWdodCgpLCBtb3VzZVBvc2l0aW9uSW5Db250ZW50cywg
JmlzT3ZlckJ1dHRvbikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBtb3VzZUlz
T3ZlckFjdGl2ZURhdGFEZXRlY3RvckhpZ2hsaWdodEJ1dHRvbiA9IGlzT3ZlckJ1dHRvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
Lm1tCmluZGV4IDBhMTQ1N2Q3YzA2OGE3NTA1MzZlYzliMDU4YTlmYjg4NjMxZTcyMGYuLjM2NDll
YzNjNWM2YzkxNTNmY2Q2OWM0MWZhZTk4ZGZiYjBhOTc3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtNDcsOCAr
NDcsNyBAQAogI2ltcG9ydCAiUGFnZU92ZXJsYXlDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJTZXR0
aW5ncy5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0jaW1wb3J0IDxwYWwv
c3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+Ci0jaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
KyNpbXBvcnQgPHBhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMjY4LDExICsyNjcsMTEgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjpidWlsZFBvdGVudGlhbEhpZ2hsaWdodHNJZk5lZWRlZCgpCiAKIGJvb2wgU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjo6bW91c2VJc092ZXJIaWdobGlnaHQoRGF0YURldGVjdG9ySGln
aGxpZ2h0JiBoaWdobGlnaHQsIGJvb2wmIG1vdXNlSXNPdmVyQnV0dG9uKSBjb25zdAogewotICAg
IGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0
b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEJv
b2xlYW4gb25CdXR0b247Ci0gICAgYm9vbCBob3ZlcmVkID0gRERIaWdobGlnaHRQb2ludElzT25I
aWdobGlnaHQoaGlnaGxpZ2h0LmhpZ2hsaWdodCgpLCAoQ0dQb2ludCltX21vdXNlUG9zaXRpb24s
ICZvbkJ1dHRvbik7CisgICAgYm9vbCBob3ZlcmVkID0gUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0
b3JzX0RESGlnaGxpZ2h0UG9pbnRJc09uSGlnaGxpZ2h0KGhpZ2hsaWdodC5oaWdobGlnaHQoKSwg
KENHUG9pbnQpbV9tb3VzZVBvc2l0aW9uLCAmb25CdXR0b24pOwogICAgIG1vdXNlSXNPdmVyQnV0
dG9uID0gb25CdXR0b247CiAgICAgcmV0dXJuIGhvdmVyZWQ7CiB9CkBAIC0zNDUsNyArMzQ0LDcg
QEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxp
Z2h0cygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIURhdGFEZXRlY3RvcnNM
aWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJs
ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBIYXNoU2V0PFJlZlB0cjxEYXRhRGV0ZWN0b3JI
aWdobGlnaHQ+PiBuZXdQb3RlbnRpYWxIaWdobGlnaHRzOwpAQCAtMzY4LDkgKzM2Nyw5IEBAIHZv
aWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQaG9uZU51bWJlckhpZ2hsaWdodHMo
KQogCiAgICAgICAgIENHUmVjdCBjZ1JlY3QgPSByZWN0OwogI2lmIEhBVkUoRERfSElHSExJR0hU
X0NSRUFURV9XSVRIX1NDQUxFKQotICAgICAgICBhdXRvIGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihE
REhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVTY2FsZUFuZERp
cmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWluRnJhbWVWaWV3LnZpc2libGVDb250ZW50
UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdodFN0eWxl
U3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlF
UywgMCkpOworICAgICAgICBhdXRvIGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihQQUw6OnNvZnRMaW5r
X0RhdGFEZXRlY3RvcnNfRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0
aFN0eWxlU2NhbGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmll
dy52aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwg
RERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlv
bk5hdHVyYWwsIE5PLCBZRVMsIDApKTsKICNlbHNlCi0gICAgICAgIGF1dG8gZGRIaWdobGlnaHQg
PSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHls
ZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWluRnJhbWVWaWV3LnZpc2libGVD
b250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdo
dFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwg
Tk8sIFlFUykpOworICAgICAgICBhdXRvIGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihQQUw6OnNvZnRM
aW5rX0RhdGFEZXRlY3RvcnNfRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0
V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5GcmFtZVZpZXcu
dmlzaWJsZUNvbnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERE
SGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25O
YXR1cmFsLCBOTywgWUVTKSk7CiAjZW5kaWYKICAgICAgICAgYXV0byBoaWdobGlnaHQgPSBEYXRh
RGV0ZWN0b3JIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihtX3BhZ2UsICp0aGlz
LCBXVEZNb3ZlKGRkSGlnaGxpZ2h0KSwgV1RGTW92ZShyYW5nZSkpOwogICAgICAgICBtX2hpZ2hs
aWdodHMuYWRkKGhpZ2hsaWdodC5nZXQoKSk7CkBAIC0zODcsNyArMzg2LDcgQEAgdm9pZCBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAg
aWYgKCFQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBIYXNoU2V0PFJlZlB0cjxEYXRhRGV0ZWN0b3JIaWdobGlnaHQ+PiBuZXdQ
b3RlbnRpYWxIaWdobGlnaHRzOwpAQCAtNDEzLDkgKzQxMiw5IEBAIHZvaWQgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6YnVpbGRTZWxlY3Rpb25IaWdobGlnaHQoKQogICAgICAgICBpZiAoIWNn
UmVjdHMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBDR1JlY3QgdmlzaWJsZVJlY3QgPSBtYWlu
RnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICNpZiBIQVZFKEREX0hJR0hMSUdIVF9D
UkVBVEVfV0lUSF9TQ0FMRSkKLSAgICAgICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENG
KERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5k
RGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXplKCksIHZpc2li
bGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGlnaGxpZ2h0U3R5bGVTdGFu
ZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93QWx3YXlzLCBZRVMsIE5T
V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMsIDApKTsKKyAgICAgICAgICAgIGF1dG8g
ZGRIaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hs
aWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVTY2FsZUFuZERpcmVjdGlv
bihudWxscHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxlUmVjdCwg
RERIaWdobGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29u
QXJyb3cgfCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dyaXRpbmdE
aXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTLCAwKSk7CiAjZWxzZQotICAgICAgICAgICAgYXV0byBk
ZEhpZ2hsaWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVS
ZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0
cy5zaXplKCksIHZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGln
aGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93
QWx3YXlzLCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKKyAgICAg
ICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtfRGF0YURldGVj
dG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmRE
aXJlY3Rpb24obnVsbHB0ciwgY2dSZWN0cy5iZWdpbigpLCBjZ1JlY3RzLnNpemUoKSwgdmlzaWJs
ZVJlY3QsIERESGlnaGxpZ2h0U3R5bGVCdWJibGVOb25lIHwgRERIaWdobGlnaHRTdHlsZVN0YW5k
YXJkSWNvbkFycm93IHwgRERIaWdobGlnaHRTdHlsZUJ1dHRvblNob3dBbHdheXMsIFlFUywgTlNX
cml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogI2VuZGlmCiAgICAgICAgICAgICBh
dXRvIGhpZ2hsaWdodCA9IERhdGFEZXRlY3RvckhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9u
KG1fcGFnZSwgKnRoaXMsIFdURk1vdmUoZGRIaWdobGlnaHQpLCBXVEZNb3ZlKCpzZWxlY3Rpb25S
YW5nZSkpOwogICAgICAgICAgICAgbV9oaWdobGlnaHRzLmFkZChoaWdobGlnaHQuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hs
aWdodC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGln
aHQubW0KaW5kZXggOTFkNTBkZjI5NWJkNWNhOGRjMTdiNjliZDM3YWEyYTkxZDE2ZDFiMC4uMDUw
MGQ3MWMyYTNlNjhiYjJkZTQ1OGRiMzU1NDNlOTYxZmU5ODBkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCkBAIC0zOSw5
ICszOSw4IEBACiAjaW1wb3J0ICJQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EuaCIKICNpbXBvcnQg
IlBsYXRmb3JtQ0FMYXllci5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0j
aW1wb3J0IDxwYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDx3dGYvU2Vj
b25kcy5oPgotI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDxwYWwvbWFjL0Rh
dGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgyLDcg
KzgxLDcgQEAgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpEYXRhRGV0ZWN0b3JIaWdobGlnaHQoUGFn
ZSYgcGFnZSwgRGF0YURldGVjdG9ySGlnaGxpZ2h0Q2wKIAogdm9pZCBEYXRhRGV0ZWN0b3JIaWdo
bGlnaHQ6OnNldEhpZ2hsaWdodChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQpCiB7Ci0gICAgaWYg
KCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNG
cmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2NsaWVu
dCkKQEAgLTkzLDcgKzkyLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OnNldEhpZ2hs
aWdodChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQpCiAgICAgaWYgKCFtX2hpZ2hsaWdodCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQ0dSZWN0IGhpZ2hsaWdodEJvdW5kaW5nUmVjdCA9IERESGln
aGxpZ2h0R2V0Qm91bmRpbmdSZWN0KG1faGlnaGxpZ2h0LmdldCgpKTsKKyAgICBDR1JlY3QgaGln
aGxpZ2h0Qm91bmRpbmdSZWN0ID0gUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3JzX0RESGlnaGxp
Z2h0R2V0Qm91bmRpbmdSZWN0KG1faGlnaGxpZ2h0LmdldCgpKTsKICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoaGlnaGxpZ2h0Qm91bmRpbmdSZWN0Lm9yaWdpbikp
OwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0U2l6ZShGbG9hdFNpemUoaGlnaGxpZ2h0Qm91bmRp
bmdSZWN0LnNpemUpKTsKIApAQCAtMTE3LDcgKzExNiw3IEBAIHZvaWQgRGF0YURldGVjdG9ySGln
aGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogCiB2b2lk
IERhdGFEZXRlY3RvckhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVy
KiwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYsIEdy
YXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKQogewotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJh
cnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGJlIG1vdmVk
IGludG8gR3JhcGhpY3NDb250ZXh0IGFzIGEgRGlzcGxheUxpc3QtY29tcGF0aWJsZSBkcmF3aW5n
IGNvbW1hbmQuCkBAIC0xMjksOSArMTI4LDkgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6
OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYKICAg
ICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gZ3JhcGhpY3NDb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpOwogCiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICBDR0xh
eWVyUmVmIGhpZ2hsaWdodExheWVyID0gRERIaWdobGlnaHRHZXRMYXllcldpdGhDb250ZXh0KGhp
Z2hsaWdodCgpLCBjZ0NvbnRleHQpOworICAgIENHTGF5ZXJSZWYgaGlnaGxpZ2h0TGF5ZXIgPSBQ
QUw6OnNvZnRMaW5rX0RhdGFEZXRlY3RvcnNfRERIaWdobGlnaHRHZXRMYXllcldpdGhDb250ZXh0
KGhpZ2hsaWdodCgpLCBjZ0NvbnRleHQpOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAotICAgIENHUmVjdCBoaWdobGlnaHRCb3VuZGluZ1JlY3QgPSBEREhpZ2hsaWdodEdl
dEJvdW5kaW5nUmVjdChoaWdobGlnaHQoKSk7CisgICAgQ0dSZWN0IGhpZ2hsaWdodEJvdW5kaW5n
UmVjdCA9IFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodEdldEJvdW5kaW5n
UmVjdChoaWdobGlnaHQoKSk7CiAgICAgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0Lm9yaWdpbiA9IENH
UG9pbnRaZXJvOwogCiAgICAgQ0dDb250ZXh0RHJhd0xheWVySW5SZWN0KGNnQ29udGV4dCwgaGln
aGxpZ2h0Qm91bmRpbmdSZWN0LCBoaWdobGlnaHRMYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL21hYy9NZW51VXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9tYWMvTWVudVV0aWxpdGllcy5tbQppbmRleCA5N2YwZTlkMDM4MTFjNmU2NGViMWFiYTYw
MjA2MTE0OWI1NGMzZjNmLi4xM2NlYzRmODNhZDBhZjNkYzBiYTNhZjBkZGI1M2U0ZWFhOWU0NGEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL21hYy9NZW51VXRpbGl0aWVzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL01lbnVVdGlsaXRpZXMubW0KQEAgLTMx
LDcgKzMxLDYgQEAKIAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxXZWJD
b3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL0RhdGFEZXRlY3Rv
cnNTUEkuaD4KIAogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikKICNpbXBv
cnQgPHBhbC9zcGkvbWFjL1RlbGVwaG9ueVV0aWxpdGllc1NQSS5oPgpAQCAtNDEsNiArNDAsOSBA
QCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoVGVsZXBob255VXRpbGl0aWVz
KQogU09GVF9MSU5LX0NMQVNTKFRlbGVwaG9ueVV0aWxpdGllcywgVFVDYWxsKQogI2VuZGlmCiAK
KyNpbXBvcnQgPHBhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg+CisjaW1wb3J0
IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgorCiBAaW50ZXJmYWNlIFdLRW1wdHlQ
cmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxSVlByZXNlbnRlckhpZ2hsaWdo
dERlbGVnYXRlPgogQGVuZAogCkBAIC03NSwxMCArNzcsMTAgQEAgc3RhdGljIEREQWN0aW9uICph
Y3Rpb25Gb3JNZW51SXRlbShOU01lbnVJdGVtICppdGVtKQogICAgIGlkIGFjdGlvbiA9IFtyZXBy
ZXNlbnRlZE9iamVjdCBvYmplY3RGb3JLZXk6QCJEREFjdGlvbiJdOwogCiAjaWYgSEFWRShEQVRB
X0RFVEVDVE9SU19NQUNfQUNUSU9OKQotICAgIGlmICghW2FjdGlvbiBpc0tpbmRPZkNsYXNzOmdl
dERETWFjQWN0aW9uQ2xhc3MoKV0pCisgICAgaWYgKCFbYWN0aW9uIGlzS2luZE9mQ2xhc3M6UEFM
OjpnZXRERE1hY0FjdGlvbkNsYXNzKCldKQogICAgICAgICByZXR1cm4gbmlsOwogI2Vsc2UKLSAg
ICBpZiAoIVthY3Rpb24gaXNLaW5kT2ZDbGFzczpnZXREREFjdGlvbkNsYXNzKCldKQorICAgIGlm
ICghW2FjdGlvbiBpc0tpbmRPZkNsYXNzOlBBTDo6Z2V0RERBY3Rpb25DbGFzcygpXSkKICAgICAg
ICAgcmV0dXJuIG5pbDsKICNlbmRpZgogCkBAIC04NywxMyArODksMTMgQEAgc3RhdGljIEREQWN0
aW9uICphY3Rpb25Gb3JNZW51SXRlbShOU01lbnVJdGVtICppdGVtKQogCiBOU01lbnVJdGVtICpt
ZW51SXRlbUZvclRlbGVwaG9uZU51bWJlcihjb25zdCBTdHJpbmcmIHRlbGVwaG9uZU51bWJlcikK
IHsKLSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0
YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0g
ICAgUmV0YWluUHRyPEREQWN0aW9uQ29udGV4dD4gYWN0aW9uQ29udGV4dCA9IGFkb3B0TlMoW2Fs
bG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgYXV0byBhY3Rpb25Db250
ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY0REQWN0aW9uQ29udGV4dEluc3RhbmNlKCkgaW5pdF0p
OwogICAgIFthY3Rpb25Db250ZXh0IHNldEFsbG93ZWRBY3Rpb25VVElzOkBbIEAiY29tLmFwcGxl
LmRpYWwiIF1dOwogCi0gICAgTlNBcnJheSAqcHJvcG9zZWRNZW51SXRlbXMgPSBbW2dldEREQWN0
aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclZhbHVlOihOU1N0
cmluZyAqKXRlbGVwaG9uZU51bWJlciB0eXBlOmdldEREQmluZGVyUGhvbmVOdW1iZXJLZXkoKSBz
ZXJ2aWNlOm5pbCBjb250ZXh0OmFjdGlvbkNvbnRleHQuZ2V0KCldOworICAgIE5TQXJyYXkgKnBy
b3Bvc2VkTWVudUl0ZW1zID0gW1tQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJl
ZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclZhbHVlOihOU1N0cmluZyAqKXRlbGVwaG9uZU51bWJlciB0
eXBlOlBBTDo6Z2V0X0RhdGFEZXRlY3RvcnNDb3JlX0REQmluZGVyUGhvbmVOdW1iZXJLZXkoKSBz
ZXJ2aWNlOm5pbCBjb250ZXh0OmFjdGlvbkNvbnRleHQuZ2V0KCldOwogICAgIGZvciAoTlNNZW51
SXRlbSAqaXRlbSBpbiBwcm9wb3NlZE1lbnVJdGVtcykgewogICAgICAgICBhdXRvIGFjdGlvbiA9
IGFjdGlvbkZvck1lbnVJdGVtKGl0ZW0pOwogICAgICAgICBpZiAoW2FjdGlvbi5hY3Rpb25VVEkg
aGFzUHJlZml4OkAiY29tLmFwcGxlLmRpYWwiXSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0RhdGFEZXRlY3Rpb25SZXN1bHQubW0KaW5kZXggOWY4Y2MwYzU5MjQ1NzNjNDEy
NmMyZGEzMWFjNTI4MjM4OGE3ZGMzZS4uZmEwZjYwODc1YmIwODViMzUyNmUwZTIxMjg3YTMyYWQz
ZjEzZWNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGF0YURldGVj
dGlvblJlc3VsdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0
aW9uUmVzdWx0Lm1tCkBAIC0yOCwxMSArMjgsNyBAQAogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVy
c0NvY29hLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgotCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoRGF0YURldGVjdG9yc0NvcmUp
Ci1TT0ZUX0xJTktfQ0xBU1MoRGF0YURldGVjdG9yc0NvcmUsIEREU2Nhbm5lclJlc3VsdCkKKyNp
bXBvcnQgPHBhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC00NSw3ICs0MSw3IEBAIHZvaWQgRGF0YURldGVjdGlvblJlc3VsdDo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogc3RkOjpvcHRpb25hbDxEYXRh
RGV0ZWN0aW9uUmVzdWx0PiBEYXRhRGV0ZWN0aW9uUmVzdWx0OjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQogewotICAgIGF1dG8gcmVzdWx0cyA9IElQQzo6ZGVjb2RlPE5TQXJyYXk+KGRl
Y29kZXIsIEBbIFtOU0FycmF5IGNsYXNzXSwgZ2V0RERTY2FubmVyUmVzdWx0Q2xhc3MoKSBdKTsK
KyAgICBhdXRvIHJlc3VsdHMgPSBJUEM6OmRlY29kZTxOU0FycmF5PihkZWNvZGVyLCBAWyBOU0Fy
cmF5LmNsYXNzLCBQQUw6OmdldEREU2Nhbm5lclJlc3VsdENsYXNzKCkgXSk7CiAgICAgaWYgKCFy
ZXN1bHRzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24ubW0KaW5kZXggZGIyMDk4MWNkMmI2Yjg2NzdiNjNkNDMwNmJiNDY5ZWM0MTU3ODhhMi4uMDVj
MDRmNzY0Mzc2NzcyMDJiOWYxZmI3YjFhNjc5ZGJjNjJmMmI1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5tbQpAQCAtMjgsMTEgKzI4LDcgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2Nv
YS5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+Ci0jaW1wb3J0IDx3dGYvU29mdExpbmtpbmcu
aD4KLQotU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKERhdGFEZXRlY3RvcnNDb3JlKQotU09G
VF9MSU5LX0NMQVNTKERhdGFEZXRlY3RvcnNDb3JlLCBERFNjYW5uZXJSZXN1bHQpCisjaW1wb3J0
IDxwYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtMTkyLDcgKzE4OCw3IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZGF0YURldGVjdG9ySWRlbnRpZmllcikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gZGF0YURldGVjdG9yUmVzdWx0cyA9IElQQzo6
ZGVjb2RlPE5TQXJyYXk+KGRlY29kZXIsIEBbIE5TQXJyYXkuY2xhc3MsIGdldEREU2Nhbm5lclJl
c3VsdENsYXNzKCkgXSk7CisgICAgYXV0byBkYXRhRGV0ZWN0b3JSZXN1bHRzID0gSVBDOjpkZWNv
ZGU8TlNBcnJheT4oZGVjb2RlciwgQFsgTlNBcnJheS5jbGFzcywgUEFMOjpnZXRERFNjYW5uZXJS
ZXN1bHRDbGFzcygpIF0pOwogICAgIGlmICghZGF0YURldGVjdG9yUmVzdWx0cykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
SGl0VGVzdFJlc3VsdERhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViSGl0VGVz
dFJlc3VsdERhdGEubW0KaW5kZXggODgzYmJhZDJkODYzN2RmZTVmMjQwN2E2YTQ4YWUyMTQ4OWZi
NDllYS4uMmIxM2Y5ZWVjMmY2MWMxZjlmMmJmYmFlN2UxM2EyZjMzMTJkMGNjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQpAQCAtMzQs
NyArMzQsNyBAQAogI2ltcG9ydCAiRW5jb2Rlci5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KLSNpbXBvcnQgPHBh
bC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KKyNpbXBvcnQgPHBhbC9tYWMvRGF0YURldGVj
dG9yc1NvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02NCw5ICs2NCw5IEBA
IGJvb2wgV2ViSGl0VGVzdFJlc3VsdERhdGE6OnBsYXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsCiAKICAgICBpZiAoIWhhc0FjdGlvbkNvbnRleHQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIEFTU0VSVChEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKTsK
KyAgICBBU1NFUlQoUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSk7CiAK
LSAgICBhdXRvIGRldGVjdGVkRGF0YUFjdGlvbkNvbnRleHQgPSBJUEM6OmRlY29kZTxEREFjdGlv
bkNvbnRleHQ+KGRlY29kZXIsIGdldEREQWN0aW9uQ29udGV4dENsYXNzKCkpOworICAgIGF1dG8g
ZGV0ZWN0ZWREYXRhQWN0aW9uQ29udGV4dCA9IElQQzo6ZGVjb2RlPEREQWN0aW9uQ29udGV4dD4o
ZGVjb2RlciwgUEFMOjpnZXREREFjdGlvbkNvbnRleHRDbGFzcygpKTsKICAgICBpZiAoIWRldGVj
dGVkRGF0YUFjdGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA1ZjUwNzZhZmZhMjFj
NzJiNDZlNjY2NjhkZWQxYWExNWU3NGQ3ZmM4Li5jM2ZhNmNhZTMzYzUzOGMxMWUzMDk3MTQzOGI3
NDA5NTZlMDI3MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQpAQCAtMTIwLDcgKzEyMCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21h
Yy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TQXBwZWFyYW5jZVNQSS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNBcHBsaWNhdGlvblNQSS5oPgpAQCAtMTU4LDYgKzE1Nyw3IEBAIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChUcmFuc2xhdGlvblVJU2VydmljZXMsIExUVUlUcmFuc2xhdGlvblZpZXdD
b250cm9sbGVyKQogI2VuZGlmCiAKICNpbXBvcnQgPHBhbC9jb2NvYS9SZXZlYWxTb2Z0TGluay5o
PgorI2ltcG9ydCA8cGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaD4KIAogI2lmIEhBVkUo
VE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiBTT0ZU
X0xJTktfRlJBTUVXT1JLKEFWS2l0KQpAQCAtMzYyMyw4ICszNjIzLDggQEAgdm9pZCBXZWJWaWV3
SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAg
ICAgaWYgKFttX3ZpZXcgd2luZG93XS5pc0tleVdpbmRvdyB8fCBoYXNBY3RpdmVJbW1lZGlhdGVB
Y3Rpb24pIHsKICAgICAgICAgV2ViQ29yZTo6RGljdGlvbmFyeUxvb2t1cDo6aGlkZVBvcHVwKCk7
CiAKLSAgICAgICAgaWYgKERhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCi0gICAgICAgICAgICBbW2dl
dEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIHJlcXVlc3RCdWJibGVDbG9z
dXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKKyAgICAgICAgaWYgKFBBTDo6aXNEYXRhRGV0ZWN0
b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCisgICAgICAgICAgICBbW1BBTDo6Z2V0RERBY3Rpb25z
TWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hv
ck9uRmFpbHVyZTpZRVNdOwogICAgIH0KIAogICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5tbQppbmRleCAyZDJiMzhhNDA4ZmJjNTEzN2JjYzI4NzI5M2RlOWQy
N2JjMzg2MDMwLi5kZjgyN2M4OTUyYzM3NDcwNjdlM2Q3Y2IwZjM4Mzc4MDE4YTE1NzRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KQEAgLTM4LDEyICszOCwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9E
aWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KLSNpbXBvcnQgPHBhbC9t
YWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvRGF0YURldGVj
dG9yc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTG9va3VwU1BJLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TUG9wb3ZlclNQ
SS5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgorI2ltcG9ydCA8cGFsL21hYy9EYXRhRGV0ZWN0b3Jz
U29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgogCiBA
aW50ZXJmYWNlIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciAoKSA8UUxQcmV2aWV3TWVudUl0
ZW1EZWxlZ2F0ZT4KIEBlbmQKQEAgLTExNCw4ICsxMTQsOCBAQCAtICh2b2lkKV9jbGVhckltbWVk
aWF0ZUFjdGlvblN0YXRlCiAKICAgICBpZiAoX2N1cnJlbnRBY3Rpb25Db250ZXh0ICYmIF9oYXNB
Y3RpdmF0ZWRBY3Rpb25Db250ZXh0KSB7CiAgICAgICAgIF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250
ZXh0ID0gTk87Ci0gICAgICAgIGlmIChEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQotICAgICAgICAg
ICAgW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIGRpZFVzZUFjdGlvbnNdOworICAgICAgICBp
ZiAoUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKKyAgICAgICAgICAg
IFtQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIGRpZFVzZUFjdGlvbnNdOwogICAgIH0K
IAogICAgIF9zdGF0ZSA9IFdlYktpdDo6SW1tZWRpYXRlQWN0aW9uU3RhdGU6Ok5vbmU7CkBAIC0y
MDIsOCArMjAyLDggQEAgLSAodm9pZClpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2lsbEJlZ2lu
QW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWMKIAogICAgIGlmIChfY3VycmVu
dEFjdGlvbkNvbnRleHQpIHsKICAgICAgICAgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRleHQgPSBZ
RVM7Ci0gICAgICAgIGlmIChEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKSB7Ci0gICAgICAgICAgICBp
ZiAoIVtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRVc2VBY3Rpb25zV2l0aENvbnRl
eHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkKKyAgICAgICAgaWYgKFBBTDo6aXNEYXRh
RGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpIHsKKyAgICAgICAgICAgIGlmICghW1BBTDo6
Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hvdWxkVXNlQWN0aW9uc1dpdGhDb250ZXh0Ol9j
dXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV0pCiAgICAgICAgICAgICAgICAgW3NlbGYgX2NhbmNl
bEltbWVkaWF0ZUFjdGlvbl07CiAgICAgICAgIH0KICAgICB9CkBAIC00MDEsNyArNDAxLDcgQEAg
LSAoTlNTaXplKW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gbWF4U2l6ZUZvclBvaW50
OihOU1BvaW50KXBvaW50CiAKIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRUZXh0CiB7Ci0gICAgaWYg
KCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNG
cmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIEREQWN0aW9u
Q29udGV4dCAqYWN0aW9uQ29udGV4dCA9IF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFB
Y3Rpb25Db250ZXh0LmdldCgpOwpAQCAtNDEwLDcgKzQxMCw3IEBAIC0gKGlkPE5TSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0
ZWN0ZWRUCiAKICAgICBhY3Rpb25Db250ZXh0LmFsdE1vZGUgPSBZRVM7CiAgICAgYWN0aW9uQ29u
dGV4dC5pbW1lZGlhdGUgPSBZRVM7Ci0gICAgaWYgKCFbW2dldEREQWN0aW9uc01hbmFnZXJDbGFz
cygpIHNoYXJlZE1hbmFnZXJdIGhhc0FjdGlvbnNGb3JSZXN1bHQ6YWN0aW9uQ29udGV4dC5tYWlu
UmVzdWx0IGFjdGlvbkNvbnRleHQ6YWN0aW9uQ29udGV4dF0pCisgICAgaWYgKCFbW1BBTDo6Z2V0
RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gaGFzQWN0aW9uc0ZvclJlc3Vs
dDphY3Rpb25Db250ZXh0Lm1haW5SZXN1bHQgYWN0aW9uQ29udGV4dDphY3Rpb25Db250ZXh0XSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4g
cGFnZSA9IF9wYWdlLmdldCgpOwpAQCAtNDI4LDcgKzQyOCw3IEBAIC0gKGlkPE5TSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0
ZWN0ZWRUCiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltf
dmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbX3ZpZXcgY29udmVydFJlY3Q6X2hpdFRl
c3RSZXN1bHREYXRhLmRldGVjdGVkRGF0YUJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07CiAKLSAg
ICBOU0FycmF5ICptZW51SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJl
ZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0IG1haW5S
ZXN1bHRdIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKKyAgICBO
U0FycmF5ICptZW51SXRlbXMgPSBbW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hh
cmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yUmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRleHQgbWFp
blJlc3VsdF0gYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOwogCiAg
ICAgaWYgKG1lbnVJdGVtcy5jb3VudCAhPSAxKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtNDM4
LDEwICs0MzgsMTAgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVy
PilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFQKIAogLSAoaWQ8TlNJbW1lZGlh
dGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFE
ZXRlY3RlZExpbmsKIHsKLSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYg
KCFQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgUmV0YWluUHRyPEREQWN0aW9uQ29udGV4dD4gYWN0aW9uQ29udGV4dCA9
IGFkb3B0TlMoW2FsbG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2UoKSBpbml0XSk7CisgICAgYXV0
byBhY3Rpb25Db250ZXh0ID0gYWRvcHROUyhbUEFMOjphbGxvY0REQWN0aW9uQ29udGV4dEluc3Rh
bmNlKCkgaW5pdF0pOwogCiAgICAgaWYgKCFhY3Rpb25Db250ZXh0KQogICAgICAgICByZXR1cm4g
bmlsOwpAQCAtNDY0LDcgKzQ2NCw3IEBAIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRMCiAgICAgaWYg
KCFoaXRUZXN0UmVzdWx0KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgTlNBcnJheSAqbWVu
dUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51
SXRlbXNGb3JUYXJnZXRVUkw6aGl0VGVzdFJlc3VsdC0+YWJzb2x1dGVMaW5rVVJMKCkgYWN0aW9u
Q29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOworICAgIE5TQXJyYXkgKm1lbnVJ
dGVtcyA9IFtbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBt
ZW51SXRlbXNGb3JUYXJnZXRVUkw6aGl0VGVzdFJlc3VsdC0+YWJzb2x1dGVMaW5rVVJMKCkgYWN0
aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOwogCiAgICAgaWYgKG1lbnVJ
dGVtcy5jb3VudCAhPSAxKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tCmluZGV4IDQ2NDdmNmNkZWE1OTNhNGFjOGYyNjEzMGNmOWEyMGZjMzczODA0YzUu
LmYyYWZiMDgwNzZhNjVkM2MwYWYzZTQ3YzE5MGJiMDNhMTk3ZTgyM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KQEAgLTU2LDEwICs1NiwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1jbGFzcy5oPgogI2ltcG9ydCA8b2Jq
Yy9vYmpjLmg+Ci0jaW1wb3J0IDxwYWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsuaD4KLSNpbXBv
cnQgPHBhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFj
L0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CisjaW1wb3J0
IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL21hYy9RdWlj
a0xvb2tVSVNvZnRMaW5rLmg+CiAKIEBpbnRlcmZhY2UgV2ViSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciAoKSA8UUxQcmV2aWV3TWVudUl0ZW1EZWxlZ2F0ZT4KIEBlbmQKQEAgLTE0MCwxNSArMTQw
LDE1IEBAIC0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFjdGlvbgogCiAtICh2b2lkKV9jbGVhcklt
bWVkaWF0ZUFjdGlvblN0YXRlCiB7Ci0gICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQor
ICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgRERBY3Rpb25zTWFuYWdlciAqYWN0aW9uc01hbmFnZXIgPSBbZ2V0
RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl07CisgICAgRERBY3Rpb25zTWFu
YWdlciAqYWN0aW9uc01hbmFnZXIgPSBbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBz
aGFyZWRNYW5hZ2VyXTsKICAgICBbYWN0aW9uc01hbmFnZXIgcmVxdWVzdEJ1YmJsZUNsb3N1cmVV
bmFuY2hvck9uRmFpbHVyZTpZRVNdOwogCiAgICAgaWYgKF9jdXJyZW50QWN0aW9uQ29udGV4dCAm
JiBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCkgewogICAgICAgICBfaGFzQWN0aXZhdGVkQWN0
aW9uQ29udGV4dCA9IE5POwotICAgICAgICBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlk
VXNlQWN0aW9uc107CisgICAgICAgIFtQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIGRp
ZFVzZUFjdGlvbnNdOwogICAgIH0KIAogICAgIF90eXBlID0gV2ViSW1tZWRpYXRlQWN0aW9uTm9u
ZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJX
aWxsUHJlcGFyZTooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcgogCiAtICh2b2lk
KWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVnaW5BbmltYXRpb246KE5TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCiB7Ci0g
ICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRl
Y3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGlt
bWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgIT0gX2ltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIpCkBA
IC0yMTMsNyArMjEzLDcgQEAgLSAodm9pZClpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2lsbEJl
Z2luQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWMKIAogICAgIGlmIChfY3Vy
cmVudEFjdGlvbkNvbnRleHQpIHsKICAgICAgICAgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRleHQg
PSBZRVM7Ci0gICAgICAgIGlmICghW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNob3VsZFVz
ZUFjdGlvbnNXaXRoQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldKQorICAgICAg
ICBpZiAoIVtQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNob3VsZFVzZUFjdGlvbnNX
aXRoQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldKQogICAgICAgICAgICAgW3Nl
bGYgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbl07CiAgICAgfQogfQpAQCAtNDI0LDcgKzQyNCw3IEBA
IC0gKE5TU2l6ZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIG1heFNpemVGb3JQb2lu
dDooTlNQb2ludClwb2ludAogCiAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHQKIHsKLSAgICBp
ZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURldGVjdG9y
c0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpEZXRlY3RlZEl0ZW0+IGRldGVjdGVkSXRlbTsKQEAgLTQ1Miw3ICs0
NTIsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5p
bWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogCiAgICAgW2RldGVjdGVkSXRlbS0+YWN0
aW9uQ29udGV4dCBzZXRBbHRNb2RlOllFU107CiAgICAgW2RldGVjdGVkSXRlbS0+YWN0aW9uQ29u
dGV4dCBzZXRJbW1lZGlhdGU6WUVTXTsKLSAgICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFuYWdlckNs
YXNzKCkgc2hhcmVkTWFuYWdlcl0gaGFzQWN0aW9uc0ZvclJlc3VsdDpbZGV0ZWN0ZWRJdGVtLT5h
Y3Rpb25Db250ZXh0IG1haW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6ZGV0ZWN0ZWRJdGVtLT5hY3Rp
b25Db250ZXh0LmdldCgpXSkKKyAgICBpZiAoIVtbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xh
c3MoKSBzaGFyZWRNYW5hZ2VyXSBoYXNBY3Rpb25zRm9yUmVzdWx0OltkZXRlY3RlZEl0ZW0tPmFj
dGlvbkNvbnRleHQgbWFpblJlc3VsdF0gYWN0aW9uQ29udGV4dDpkZXRlY3RlZEl0ZW0tPmFjdGlv
bkNvbnRleHQuZ2V0KCldKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgYXV0byBpbmRpY2F0
b3IgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UoZGV0ZWN0ZWRJdGVt
LT5yYW5nZSwgeyB9LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlv
bjo6RmFkZUluKTsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAog
CiAgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcu
d2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZGV0ZWN0ZWRJdGVtLT5ib3VuZGluZ0JveF1dOwog
Ci0gICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBz
aGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JSZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29udGV4dCBt
YWluUmVzdWx0XSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07Cisg
ICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygp
IHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0
IG1haW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsK
ICAgICBpZiAobWVudUl0ZW1zLmNvdW50ICE9IDEpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAg
LTQ3NiwxMCArNDc2LDEwIEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAKIC0gKGlkIDxOU0lt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9y
RGF0YURldGVjdGVkTGluawogewotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAg
ICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKLSAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25Db250
ZXh0ID0gYWRvcHROUyhbYWxsb2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAg
ICBhdXRvIGFjdGlvbkNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jRERBY3Rpb25Db250ZXh0
SW5zdGFuY2UoKSBpbml0XSk7CiAKICAgICBpZiAoIWFjdGlvbkNvbnRleHQpCiAgICAgICAgIHJl
dHVybiBuaWw7CkBAIC01MDAsNyArNTAwLDcgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKIAog
ICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193ZWJWaWV3Lndp
bmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOmVsZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRp
bmF0ZXNGcm9tTm9kZShfaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCkpXV07CiAKLSAgICBOU0Fy
cmF5ICptZW51SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFn
ZXJdIG1lbnVJdGVtc0ZvclRhcmdldFVSTDpfaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwo
KS5zdHJpbmcoKSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07Cisg
ICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygp
IHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclRhcmdldFVSTDpfaGl0VGVzdFJlc3VsdC5hYnNv
bHV0ZUxpbmtVUkwoKS5zdHJpbmcoKSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4
dC5nZXQoKV07CiAgICAgaWYgKG1lbnVJdGVtcy5jb3VudCAhPSAxKQogICAgICAgICByZXR1cm4g
bmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430653</attachid>
            <date>2021-06-05 11:18:20 -0700</date>
            <delta_ts>2021-06-05 18:18:17 -0700</delta_ts>
            <desc>Fix non-internal macOS build</desc>
            <filename>bug-226669-20210605111819.patch</filename>
            <type>text/plain</type>
            <size>52450</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJlMWJhZGU0MGU0NGI1
OTJmZDgzYzY0ZWIwMTViZjFlYzlkYTU0ZC4uNTY5ZDBjNjEzMjNkYTBjNTIyMTJlYjE4ZDFjMDkx
OGRlYmQzOTljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA2LTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTW92
ZSBEYXRhRGV0ZWN0b3JzIHNvZnRsaW5raW5nIGluIERhdGFEZXRlY3RvcnNTUEkuaCBvdXQgaW50
byBhIHNlcGFyYXRlIFBBTCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENsZWFuIHVwIHNvbWUgc29mdGxpbmtpbmcgY29kZSBmb3IgdGhlIERh
dGFEZXRlY3RvcnMgZnJhbWV3b3JrLiBDdXJyZW50bHksIHRoZSBgU09GVF9MSU5LXypgIG1hY3Jv
cyBhcmUgZGVmaW5lZAorICAgICAgICBpbnNpZGUgdGhlIFNQSSBoZWFkZXIgKGBwYWwvc3BpL21h
Yy9EYXRhRGV0ZWN0b3JzU1BJLmhgKTsgdGhpcyBwYXRjaCBtb3ZlcyB0aGVtIG91dCBpbnRvCisg
ICAgICAgIGBwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay57aHxtbX1gIGluc3RlYWQsIGFu
ZCB1cGRhdGVzIGEgZmV3IHBsYWNlcyB0aGF0IHVzZSB0aGVzZSBzb2Z0LWxpbmtlZCBzeW1ib2xz
IHRvCisgICAgICAgIGltcG9ydCBgRGF0YURldGVjdG9yc1NvZnRMaW5rLmhgIGluc3RlYWQgb2Yg
YERhdGFEZXRlY3RvcnNTUEkuaGAuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRl
Y3Rpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpkZXRlY3RJdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFEZXRlY3Rpb246OmRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKiBwYWdlL21hYy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6dXBkYXRlRGF0YURldGVjdG9ySGlnaGxpZ2h0
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpwbGF0Zm9ybUhh
bmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpt
b3VzZUlzT3ZlckhpZ2hsaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdo
dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6c2V0SGlnaGxpZ2h0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyk6CisK
IDIwMjEtMDYtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgVmVjdG9yPHVpbnQ4X3Q+IGluc3RlYWQgb2YgVmVjdG9yPGNoYXI+IHRvIHN0b3JlIGJ5dGVz
IGluIFNoYXJlZEJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNjMxNzE1ZDQxNmE0MjcwYmQ2
MWZiMzZiMzlkYTIxNWFiNTQ5MjQ4Zi4uYmIyZWQ3Zjc5NGZlZDBlNzdkZDNhMzAyMjE0ZWVmNTZl
ZDI3YTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDYtMDQg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBNb3ZlIERhdGFEZXRlY3RvcnMgc29mdGxpbmtpbmcgaW4gRGF0YURldGVjdG9yc1NQSS5oIG91
dCBpbnRvIGEgc2VwYXJhdGUgUEFMIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgc29mdGxpbmtpbmcgaGVhZGVycy4gU2Vl
IFdlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBQQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvUGxhdGZvcm1NYWMuY21ha2U6
CisgICAgICAgICogcGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaDoKKyAgICAg
ICAgKiBwYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbToKKworICAgICAgICBN
b3ZlIHRoZSBgRERCaW5kZXJQaG9uZU51bWJlcktleWAgc29mdCBsaW5rIGludG8gYERhdGFEZXRl
Y3RvcnNDb3JlU29mdExpbmtgIGluc3RlYWQsIHNpbmNlIHRoaXMgc3ltYm9sIGNvbWVzCisgICAg
ICAgIGZyb20gRGF0YURldGVjdG9yc0NvcmUgcmF0aGVyIHRoYW4gdGhlIERhdGFEZXRlY3RvcnMg
ZnJhbWV3b3JrLgorCisgICAgICAgICogcGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaDog
QWRkZWQuCisgICAgICAgICogcGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW06IEFkZGVk
LgorICAgICAgICAqIHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oOgorICAgICAgICAqIHBh
bC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaDoKKwogMjAyMS0wNi0wMSAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIDx3dGYvT3B0aW9uYWwuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZWM1ZTdjNTc4ZGYyOWMyOTAwNGUwOTZhYzYyN2IzZDM2Y2VmOTQyMS4uMjU3NjZk
Yzk4Yzc0YmRiZjM2ZDNiOWQ0NjNjOGMwMTUyMzVmNjA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAyMS0wNi0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBbbWFjT1NdIE1vdmUgRGF0YURldGVjdG9ycyBzb2Z0bGlua2luZyBpbiBEYXRh
RGV0ZWN0b3JzU1BJLmggb3V0IGludG8gYSBzZXBhcmF0ZSBQQUwgaGVhZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY2NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdCB0aGUgbmV3IFBBTCBz
b2Z0bGlua2luZyBoZWFkZXIgaW4gYSBmZXcgcGxhY2VzLiBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cg
Zm9yIG1vcmUgZGV0YWlscy4gQWRkaXRpb25hbGx5LCBtb3ZlCisgICAgICAgIHNldmVyYWwgc29m
dGxpbmtpbmcgaGVhZGVyIGltcG9ydHMgc28gdGhhdCB0aGV5J3JlIHRoZSBsYXN0IGltcG9ydGVk
IGhlYWRlcnMgaW4gYSBmZXcgc291cmNlcy4KKworICAgICAgICAqIFBsYXRmb3JtL21hYy9NZW51
VXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViS2l0OjphY3Rpb25Gb3JNZW51SXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6Om1lbnVJdGVtRm9yVGVsZXBob25lTnVtYmVyKToKKyAgICAgICAgKiBTaGFy
ZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbToKKyAgICAgICAgKFdlYktpdDo6RGF0YURl
dGVjdGlvblJlc3VsdDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkhp
dFRlc3RSZXN1bHREYXRhLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0
YTo6cGxhdGZvcm1EZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdKToKKyAgICAgICAgKC1bV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVn
aW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBf
YW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVj
dGVkTGlua10pOgorCiAyMDIxLTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlIFZlY3Rvcjx1aW50OF90PiBpbnN0ZWFkIG9mIFZlY3RvcjxjaGFyPiB0
byBzdG9yZSBieXRlcyBpbiBTaGFyZWRCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCBmMjA0YjI5MWU0Y2M1MTRlM2EyZmY1NjZlMjY0YjEyYmU1MzM2YTc4Li4yZjI2MDQ2ZGE0
MDlhMWQ0Y2RiZjFjZjllNzRmMTk3NGYxMzRkN2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBNb3ZlIERhdGFEZXRlY3RvcnMgc29m
dGxpbmtpbmcgaW4gRGF0YURldGVjdG9yc1NQSS5oIG91dCBpbnRvIGEgc2VwYXJhdGUgUEFMIGhl
YWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
NjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRv
cHQgdGhlIG5ldyBQQUwgc29mdGxpbmtpbmcgaGVhZGVyIGluIGEgZmV3IHBsYWNlcy4gU2VlIFdl
YkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdKToKKyAgICAgICAgKC1b
V2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2ls
bEJlZ2luQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dF0pOgorICAgICAgICAo
LVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0
YURldGVjdGVkTGlua10pOgorCiAyMDIxLTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIFZlY3Rvcjx1aW50OF90PiBpbnN0ZWFkIG9mIFZlY3Rvcjxj
aGFyPiB0byBzdG9yZSBieXRlcyBpbiBTaGFyZWRCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNWNhOGJjMTRiMGIyNTMz
MjRlNjAwNjNlNDgyNDZmNjQ1Njg1ZjY3Li5iZWQyYjgwNzYzMzUyNzkxMjFhNDY2ZTE3OTc3OTBh
MTE4Yzg0YjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yMTMsNiArMjEzLDggQEAKIAkJRjRDODVBNEYyNjU4NTUxQTAwNUI4
OUNDIC8qIFF1aWNrTG9va1VJU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Qzg1QTREMjY1ODU1MUEwMDVCODlDQyAvKiBRdWlja0xvb2tV
SVNvZnRMaW5rLmggKi87IH07CiAJCUY0REREMDFCMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0
ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjREREQwMTkyNjREQzY5RTAwRUYxQjkxIC8qIERhdGFEZXRlY3RvcnNDb3Jl
U29mdExpbmsubW0gKi87IH07CiAJCUY0REREMDFDMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0
ZWN0b3JzQ29yZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNERERDAxQTI2NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9yc0NvcmVT
b2Z0TGluay5oICovOyB9OworCQlGNEUwODc1QjI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVj
dG9yc1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEUwODc1OTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLmgg
Ki87IH07CisJCUY0RTA4NzVDMjY2QUNBNTMwMDBGODE0QSAvKiBEYXRhRGV0ZWN0b3JzU29mdExp
bmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUw
ODc1QTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tICovOyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSBzZWN0aW9uICovCkBAIC00MzIsNiArNDM0LDggQEAKIAkJRjRDODVBNEQyNjU4NTUx
QTAwNUI4OUNDIC8qIFF1aWNrTG9va1VJU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUXVpY2tMb29rVUlTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNERERDAxOTI2NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFEZXRl
Y3RvcnNDb3JlU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RERE
MDFBMjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMDg3NTkyNjZBQ0E1MzAwMEY4MTRBIC8q
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0b3JzU29m
dExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFMDg3NUEyNjZBQ0E1MzAw
MEY4MTRBIC8qIERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8q
IEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jr
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzU1LDYgKzc1OSw4IEBACiAJCTQ0RTFBOEFDMjFG
QTU0OEYwMEMzMDQ4RSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUY0RTA4NzU5MjY2QUNBNTMwMDBGODE0QSAvKiBEYXRhRGV0ZWN0b3JzU29m
dExpbmsuaCAqLywKKwkJCQlGNEUwODc1QTI2NkFDQTUzMDAwRjgxNEEgLyogRGF0YURldGVjdG9y
c1NvZnRMaW5rLm1tICovLAogCQkJCTQ0RTFBOEFEMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBT
b2Z0TGluay5oICovLAogCQkJCTQ0RTFBOEFFMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0
TGluay5tbSAqLywKIAkJCQlGNEM4NUE0RDI2NTg1NTFBMDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlT
b2Z0TGluay5oICovLApAQCAtODY3LDYgKzg3Myw3IEBACiAJCQkJREY4M0UyMDkyNjM3MzRGMTAw
MDgyNUVGIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRE
REQwMUMyNjREQzY5RTAwRUYxQjkxIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTQxMUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3Jz
Q29yZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjRFMDg3NUIyNjZBQ0E1MzAwMEY4MTRBIC8q
IERhdGFEZXRlY3RvcnNTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OEExRjQ1
MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
NUFGOTFBMUY0M0E0QzcwMDJFQUMwMiAvKiBEYXRhRGV0ZWN0b3JzVUlTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA4MSw2ICsxMDg4LDcgQEAKIAkJCQkxQzA5RDA1NjFF
MzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdT
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0REREMDFCMjY0REM2OUUwMEVGMUI5MSAv
KiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRFMDg3
NUMyNjZBQ0E1MzAwMEY4MTRBIC8qIERhdGFEZXRlY3RvcnNTb2Z0TGluay5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0U2VhcmNoUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0MjkxNjQxRkE1MjY3MDAwMkNDOTNFIC8qIEZp
bGVTaXplRm9ybWF0dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NDI5MTY4MUZBNTI3MDUw
MDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA1NDIwNDljZTY3OTllODgz
OGNjYThmNGRhMGMxNDhjOTcwNmZlYTc5Li43OTg2NDRlYmY2NTgwMGEzZDFhZDNjZWUwYzU5YTdk
ZDI5ZjcyNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFj
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UKQEAg
LTIwLDYgKzIwLDcgQEAgbGlzdChBUFBFTkQgUEFMX1BVQkxJQ19IRUFERVJTCiAgICAgY29jb2Ev
U3BlZWNoU29mdExpbmsuaAogICAgIGNvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oCiAKKyAg
ICBtYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmgKICAgICBtYWMvTG9va3VwU29mdExpbmsuaAog
ICAgIG1hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmgKIApAQCAtMTYzLDcgKzE2NCw5IEBAIGxpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCiAKICAgICBjcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2Vz
dENvbW1vbkNyeXB0by5jcHAKIAorICAgIG1hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW0KICAg
ICBtYWMvTG9va3VwU29mdExpbmsubW0KKyAgICBtYWMvUXVpY2tMb29rVUlTb2Z0TGluay5tbQog
CiAgICAgc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U29mdExpbmsuY3BwCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0
TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNv
ZnRMaW5rLmgKaW5kZXggNTdhNTY4YTNlZGRiMTJjYzQ2YWU1ZjA4ZWNlNDQyMTFiYzVmZGJjZC4u
M2ZhMWYxYmEwMjk5NDBmMGJlOGQ2N2M5ZWI2YThjYWJmOTgwY2U3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5r
LmgKQEAgLTMyLDcgKzMyLDkgQEAKIAogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBE
RFNjYW5uZXJSZXN1bHQpCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JN
KE1BQykKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVjdG9yc0Nv
cmUsIEREQmluZGVyUGhvbmVOdW1iZXJLZXksIENGU3RyaW5nUmVmKQorI2VsaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURldGVj
dG9yc0NvcmUsIEREU2Nhbm5lckNyZWF0ZSwgRERTY2FubmVyUmVmLCAoRERTY2FubmVyVHlwZSB0
eXBlLCBERFNjYW5uZXJPcHRpb25zIG9wdGlvbnMsIENGRXJyb3JSZWYgKiBlcnJvclJlZiksICh0
eXBlLCBvcHRpb25zLCBlcnJvclJlZikpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNjYW5uZXJTY2FuUXVlcnksIEJvb2xlYW4sIChERFNj
YW5uZXJSZWYgc2Nhbm5lciwgRERTY2FuUXVlcnlSZWYgcXVlcnkpLCAoc2Nhbm5lciwgcXVlcnkp
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwg
RERTY2FuUXVlcnlDcmVhdGUsIEREU2NhblF1ZXJ5UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yKSwgKGFsbG9jYXRvcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0KaW5kZXggZGRmMDEyNzkwMDhiYjM0
MjkxNGRkMTI3ZjIzYWE5MDc0NTE0YmVhNi4uMmI2NDQ3ZjA5MTFhNzZlYzQ1MGE2NDQ1ZDY4YjI1
ZDk1NTY2YTIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9EYXRh
RGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbQpAQCAtMzMsNyArMzMsOSBAQAogU09GVF9M
SU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSkK
IFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9y
c0NvcmUsIEREU2Nhbm5lclJlc3VsdCwgUEFMX0VYUE9SVCkKIAotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJQaG9uZU51bWJlcktl
eSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoUEFMLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERT
Y2FubmVyQ3JlYXRlLCBERFNjYW5uZXJSZWYsIChERFNjYW5uZXJUeXBlIHR5cGUsIEREU2Nhbm5l
ck9wdGlvbnMgb3B0aW9ucywgQ0ZFcnJvclJlZiAqIGVycm9yUmVmKSwgKHR5cGUsIG9wdGlvbnMs
IGVycm9yUmVmKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgRGF0YURldGVj
dG9yc0NvcmUsIEREU2Nhbm5lclNjYW5RdWVyeSwgQm9vbGVhbiwgKEREU2Nhbm5lclJlZiBzY2Fu
bmVyLCBERFNjYW5RdWVyeVJlZiBxdWVyeSksIChzY2FubmVyLCBxdWVyeSkpCiBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNjYW5RdWVyeUNy
ZWF0ZSwgRERTY2FuUXVlcnlSZWYsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IpLCAoYWxsb2Nh
dG9yKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0RhdGFEZXRlY3Rv
cnNTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1Nv
ZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ0YTEwMTc3NDRiYTA0ZjM5MzNhYzYxODdhZDRiNTMxZjc2
ODYwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0RhdGFE
ZXRlY3RvcnNTb2Z0TGluay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oPgorI2ltcG9ydCA8d3RmL1Nv
ZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIERhdGFE
ZXRlY3RvcnMpCisKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgRERBY3Rpb25Db250
ZXh0KQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBEREFjdGlvbnNNYW5hZ2VyKQor
CisjaWYgSEFWRShEQVRBX0RFVEVDVE9SU19NQUNfQUNUSU9OKQorU09GVF9MSU5LX0NMQVNTX0ZP
Ul9IRUFERVIoUEFMLCBERE1hY0FjdGlvbikKKyNlbHNlCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihQQUwsIEREQWN0aW9uKQorI2VuZGlmCisKKyNpZiBIQVZFKEREX0hJR0hMSUdIVF9DUkVB
VEVfV0lUSF9TQ0FMRSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgRGF0YURl
dGVjdG9ycywgRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxl
U2NhbGVBbmREaXJlY3Rpb24sIERESGlnaGxpZ2h0UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBDR1JlY3QqIHJlY3RzLCBDRkluZGV4IGNvdW50LCBDR1JlY3QgZ2xvYmFsVmlzaWJsZVJl
Y3QsIERESGlnaGxpZ2h0U3R5bGUgc3R5bGUsIEJvb2xlYW4gd2l0aEJ1dHRvbiwgTlNXcml0aW5n
RGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0wsIEJvb2xlYW4g
ZmxpcHBlZCwgQ0dGbG9hdCBzY2FsZSksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFs
VmlzaWJsZVJlY3QsIHN0eWxlLCB3aXRoQnV0dG9uLCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0
aEVPTCwgZmxpcHBlZCwgc2NhbGUpKQorI2Vsc2UKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2li
bGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uLCBEREhpZ2hsaWdodFJlZiwgKENGQWxsb2NhdG9y
UmVmIGFsbG9jYXRvciwgQ0dSZWN0KiByZWN0cywgQ0ZJbmRleCBjb3VudCwgQ0dSZWN0IGdsb2Jh
bFZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlIHN0eWxlLCBCb29sZWFuIHdpdGhBcnJvdywg
TlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24sIEJvb2xlYW4gZW5kc1dpdGhFT0ws
IEJvb2xlYW4gZmxpcHBlZCksIChhbGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFsVmlzaWJs
ZVJlY3QsIHN0eWxlLCB3aXRoQXJyb3csIHdyaXRpbmdEaXJlY3Rpb24sIGVuZHNXaXRoRU9MLCBm
bGlwcGVkKSkKKyNlbmRpZgorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBEYXRh
RGV0ZWN0b3JzLCBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQsIENHTGF5ZXJSZWYsIChE
REhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHQ29udGV4dFJlZiBjb250ZXh0KSwgKGhpZ2hsaWdo
dCwgY29udGV4dCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIERhdGFEZXRl
Y3RvcnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0LCBDR1JlY3QsIChEREhpZ2hsaWdodFJl
ZiBoaWdobGlnaHQpLCAoaGlnaGxpZ2h0KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQsIEJvb2xl
YW4sIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHUG9pbnQgcG9pbnQsIEJvb2xlYW4qIG9u
QnV0dG9uKSwgKGhpZ2hsaWdodCwgcG9pbnQsIG9uQnV0dG9uKSkKKworI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2ODBh
NWVhYTgxNDNjNDYyMjlkNGI3NDdjODExNDMzN2ViN2JkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsubW0KQEAgLTAs
MCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaW1wb3J0IDxBcHBLaXQvQXBw
S2l0Lmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CisjaW1wb3J0
IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBQQUxfRVhQT1JUKQorCitTT0ZU
X0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIERE
QWN0aW9uQ29udGV4dCwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9ycywgRERBY3Rpb25zTWFuYWdlciwgUEFMX0VYUE9S
VCkKKworI2lmIEhBVkUoREFUQV9ERVRFQ1RPUlNfTUFDX0FDVElPTikKK1NPRlRfTElOS19DTEFT
U19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9ycywgRERNYWNBY3Rpb24s
IFBBTF9FWFBPUlQpCisjZWxzZQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBEREFjdGlvbiwgUEFMX0VYUE9SVCkKKyNlbmRpZgorCisj
aWYgSEFWRShERF9ISUdITElHSFRfQ1JFQVRFX1dJVEhfU0NBTEUpCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0
Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5kRGlyZWN0aW9uLCBE
REhpZ2hsaWdodFJlZiwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ0dSZWN0KiByZWN0cywg
Q0ZJbmRleCBjb3VudCwgQ0dSZWN0IGdsb2JhbFZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxl
IHN0eWxlLCBCb29sZWFuIHdpdGhCdXR0b24sIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGly
ZWN0aW9uLCBCb29sZWFuIGVuZHNXaXRoRU9MLCBCb29sZWFuIGZsaXBwZWQsIENHRmxvYXQgc2Nh
bGUpLCAoYWxsb2NhdG9yLCByZWN0cywgY291bnQsIGdsb2JhbFZpc2libGVSZWN0LCBzdHlsZSwg
d2l0aEJ1dHRvbiwgd3JpdGluZ0RpcmVjdGlvbiwgZW5kc1dpdGhFT0wsIGZsaXBwZWQsIHNjYWxl
KSwgUEFMX0VYUE9SVCkKKyNlbHNlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5W
aXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbiwgRERIaWdobGlnaHRSZWYsIChDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIENHUmVjdCogcmVjdHMsIENGSW5kZXggY291bnQsIENHUmVjdCBn
bG9iYWxWaXNpYmxlUmVjdCwgRERIaWdobGlnaHRTdHlsZSBzdHlsZSwgQm9vbGVhbiB3aXRoQXJy
b3csIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uLCBCb29sZWFuIGVuZHNXaXRo
RU9MLCBCb29sZWFuIGZsaXBwZWQpLCAoYWxsb2NhdG9yLCByZWN0cywgY291bnQsIGdsb2JhbFZp
c2libGVSZWN0LCBzdHlsZSwgd2l0aEFycm93LCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0aEVP
TCwgZmxpcHBlZCksIFBBTF9FWFBPUlQpCisjZW5kaWYKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBEYXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdodEdldExh
eWVyV2l0aENvbnRleHQsIENHTGF5ZXJSZWYsIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENH
Q29udGV4dFJlZiBjb250ZXh0KSwgKGhpZ2hsaWdodCwgY29udGV4dCksIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIERhdGFEZXRlY3Rv
cnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0LCBDR1JlY3QsIChEREhpZ2hsaWdodFJlZiBo
aWdobGlnaHQpLCAoaGlnaGxpZ2h0KSwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRQb2lu
dElzT25IaWdobGlnaHQsIEJvb2xlYW4sIChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIENHUG9p
bnQgcG9pbnQsIEJvb2xlYW4qIG9uQnV0dG9uKSwgKGhpZ2hsaWdodCwgcG9pbnQsIG9uQnV0dG9u
KSwgUEFMX0VYUE9SVCkKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvUXVpY2tM
b29rVUlTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvUXVpY2tMb29rVUlT
b2Z0TGluay5oCmluZGV4IGEwZmI3MDEzN2UxNDc5Y2Y4NDJiODcxNDQwMDJhZGIyNzc3MzRiNjMu
LmU0YTJkODkwN2I4ODJhNTQ4YTBlMGU3YjYwMmM3OTVlOTc2NzUzZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL1F1aWNrTG9va1VJU29mdExpbmsuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmgKQEAgLTI2LDggKzI2
LDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2luY2x1ZGUgPHBhbC9zcGkvbWFjL1F1aWNr
TG9va01hY1NQSS5oPgotI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8cGFs
L3NwaS9tYWMvUXVpY2tMb29rTWFjU1BJLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
IAogU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgUXVpY2tMb29rVUkpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oCmlu
ZGV4IGYxZjk2OTNkYjU0OTEzNDNlNzUzZWEyOGI4YmI3ZDE2NDIxZGQ5ZDUuLmE3MDNiZmJjYjg4
OThkYzJkMjYxMjIyMTBiNDA1NWQ0MWRmMGE1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaApAQCAtOTksNDggKzk5LDIyIEBAIGVu
dW0gewogCiAjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKLSNpZiBQTEFURk9S
TShNQUMpCi0KIFdURl9FWFRFUk5fQ19CRUdJTgogQ0ZUeXBlSUQgRERSZXN1bHRHZXRDRlR5cGVJ
RCh2b2lkKTsKIFdURl9FWFRFUk5fQ19FTkQKIAotI2VuZGlmCi0KIHR5cGVkZWYgc3RydWN0IF9f
RERIaWdobGlnaHQgKkRESGlnaGxpZ2h0UmVmOwogdHlwZWRlZiBOU1VJbnRlZ2VyIERESGlnaGxp
Z2h0U3R5bGU7CiAKICNpZiAhSEFWRShEQVRBX0RFVEVDVE9SU19NQUNfQUNUSU9OKQotQGludGVy
ZmFjZSBEREFjdGlvbiA6IE5TT2JqZWN0CiAKK0BpbnRlcmZhY2UgRERBY3Rpb24gOiBOU09iamVj
dAogQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmFjdGlvblVUSTsKLQogQGVuZAotI2Vu
ZGlmCiAKLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChEYXRhRGV0ZWN0b3Jz
KQotU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKERhdGFEZXRlY3RvcnNDb3Jl
KQorI2VuZGlmIC8vICFIQVZFKERBVEFfREVURUNUT1JTX01BQ19BQ1RJT04pCiAKLVNPRlRfTElO
S19DTEFTU19PUFRJT05BTChEYXRhRGV0ZWN0b3JzLCBEREFjdGlvbkNvbnRleHQpCi1TT0ZUX0xJ
TktfQ0xBU1NfT1BUSU9OQUwoRGF0YURldGVjdG9ycywgRERBY3Rpb25zTWFuYWdlcikKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCiAKLSNpZiBIQVZFKERBVEFfREVURUNUT1JTX01BQ19BQ1RJT04p
Ci1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoRGF0YURldGVjdG9ycywgRERNYWNBY3Rpb24pCi0j
ZWxzZQotU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKERhdGFEZXRlY3RvcnMsIEREQWN0aW9uKQot
I2VuZGlmCi0KLVNPRlRfTElOS19DT05TVEFOVChEYXRhRGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJQ
aG9uZU51bWJlcktleSwgQ0ZTdHJpbmdSZWYpCi0jaWYgSEFWRShERF9ISUdITElHSFRfQ1JFQVRF
X1dJVEhfU0NBTEUpCi1TT0ZUX0xJTksoRGF0YURldGVjdG9ycywgRERIaWdobGlnaHRDcmVhdGVX
aXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlU2NhbGVBbmREaXJlY3Rpb24sIERESGlnaGxp
Z2h0UmVmLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDR1JlY3QqIHJlY3RzLCBDRkluZGV4
IGNvdW50LCBDR1JlY3QgZ2xvYmFsVmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGUgc3R5bGUs
IEJvb2xlYW4gd2l0aEJ1dHRvbiwgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24s
IEJvb2xlYW4gZW5kc1dpdGhFT0wsIEJvb2xlYW4gZmxpcHBlZCwgQ0dGbG9hdCBzY2FsZSksIChh
bGxvY2F0b3IsIHJlY3RzLCBjb3VudCwgZ2xvYmFsVmlzaWJsZVJlY3QsIHN0eWxlLCB3aXRoQnV0
dG9uLCB3cml0aW5nRGlyZWN0aW9uLCBlbmRzV2l0aEVPTCwgZmxpcHBlZCwgc2NhbGUpKQotI2Vs
c2UKLVNPRlRfTElOSyhEYXRhRGV0ZWN0b3JzLCBEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0lu
VmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24sIERESGlnaGxpZ2h0UmVmLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBDR1JlY3QqIHJlY3RzLCBDRkluZGV4IGNvdW50LCBDR1JlY3Qg
Z2xvYmFsVmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGUgc3R5bGUsIEJvb2xlYW4gd2l0aEFy
cm93LCBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiwgQm9vbGVhbiBlbmRzV2l0
aEVPTCwgQm9vbGVhbiBmbGlwcGVkKSwgKGFsbG9jYXRvciwgcmVjdHMsIGNvdW50LCBnbG9iYWxW
aXNpYmxlUmVjdCwgc3R5bGUsIHdpdGhBcnJvdywgd3JpdGluZ0RpcmVjdGlvbiwgZW5kc1dpdGhF
T0wsIGZsaXBwZWQpKQotI2VuZGlmCi1TT0ZUX0xJTksoRGF0YURldGVjdG9ycywgRERIaWdobGln
aHRHZXRMYXllcldpdGhDb250ZXh0LCBDR0xheWVyUmVmLCAoRERIaWdobGlnaHRSZWYgaGlnaGxp
Z2h0LCBDR0NvbnRleHRSZWYgY29udGV4dCksIChoaWdobGlnaHQsIGNvbnRleHQpKQotU09GVF9M
SU5LKERhdGFEZXRlY3RvcnMsIERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0LCBDR1JlY3QsIChE
REhpZ2hsaWdodFJlZiBoaWdobGlnaHQpLCAoaGlnaGxpZ2h0KSkKLVNPRlRfTElOSyhEYXRhRGV0
ZWN0b3JzLCBEREhpZ2hsaWdodFBvaW50SXNPbkhpZ2hsaWdodCwgQm9vbGVhbiwgKERESGlnaGxp
Z2h0UmVmIGhpZ2hsaWdodCwgQ0dQb2ludCBwb2ludCwgQm9vbGVhbiogb25CdXR0b24pLCAoaGln
aGxpZ2h0LCBwb2ludCwgb25CdXR0b24pKQotCi0jZW5kaWYKLQotI2VuZGlmCisjZW5kaWYgLy8g
RU5BQkxFKERBVEFfREVURUNUSU9OKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW0KaW5kZXggZGI2Y2RhNWMyYzIwMDUzN2RjNGM4YjcwYTU0ZTcxY2Qz
ZDg0ZGJkNy4uMjUwNDM4OTI0OGQ2M2YwODZhZmRiY2E1ODU3MTZhYzQ1OTUyY2JmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQpAQCAtNTMsMTIg
KzUzLDEyIEBACiAjaW1wb3J0ICJUZXh0SXRlcmF0b3IuaCIKICNpbXBvcnQgIlZpc2libGVQb3Np
dGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVVuaXRzLmgiCi0jaW1wb3J0IDxwYWwvY29jb2EvRGF0
YURldGVjdG9yc0NvcmVTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3MvRGF0YURldGVj
dG9yc1VJU1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAj
aW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4K
KyNpbXBvcnQgPHBhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg+CisjaW1wb3J0
IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQog
dGVtcGxhdGU8PiBzdHJ1Y3QgV1RGOjpDRlR5cGVUcmFpdDxERFJlc3VsdFJlZj4gewpAQCAtMTA4
LDcgKzEwOCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERldGVjdGVkSXRlbT4gZGV0ZWN0SXRl
bShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBjCiAgICAgaWYgKCF2aWV3KQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBhY3Rpb25Db250ZXh0ID0gYWRvcHROUyhbYWxs
b2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBhdXRvIGFjdGlvbkNvbnRl
eHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2UoKSBpbml0XSk7
CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0QWxsUmVzdWx0czpAWyAoX19icmlkZ2UgaWQpbWFpblJl
c3VsdCBdXTsKICAgICBbYWN0aW9uQ29udGV4dCBzZXRNYWluUmVzdWx0Om1haW5SZXN1bHRdOwog
CkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RGV0ZWN0ZWRJdGVtPiBk
ZXRlY3RJdGVtKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24sIGMKIAogc3RkOjpvcHRp
b25hbDxEZXRlY3RlZEl0ZW0+IERhdGFEZXRlY3Rpb246OmRldGVjdEl0ZW1Bcm91bmRIaXRUZXN0
UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCiB7Ci0gICAgaWYgKCFE
YXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFt
ZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIE5vZGUqIG5vZGUg
PSBoaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvSW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJNYWMubW0KaW5kZXggZTQ0N2Q3
NDI0ZTBkOTJlNTVlYWU5ZmJjODc5MzJhZjUyN2UzMzEzZS4uYzkwNDQ5ZjVkZDQzZDJjYWZhYjI2
NTU3YTQwZjBiNjBmZjM1NjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
SW1hZ2VPdmVybGF5Q29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9JbWFnZU92ZXJsYXlDb250cm9sbGVyTWFjLm1tCkBAIC00MSw5ICs0MSw5IEBACiAjaW1wb3J0
ICJTaW1wbGVSYW5nZS5oIgogI2ltcG9ydCAiVHlwZWRFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9y
LmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBvcnQgPHBhbC9zcGkv
bWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CisjaW1wb3J0IDxwYWwvbWFj
L0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg4
LDkgKzg4LDkgQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjp1cGRhdGVEYXRhRGV0ZWN0
b3JIaWdobGlnaHRzKGNvbnN0IEhUTUxFbGVtZW50JiBvdmUKIAogICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHRlYWNoIERhdGFEZXRlY3RvckhpZ2hsaWdodCB0byByZW5kZXIgcXVhZHMgaW5z
dGVhZCBvZiBhbHdheXMgZmFsbGluZyBiYWNrIHRvIGF4aXMtYWxpZ25lZCBib3VuZGluZyByZWN0
cy4KICNpZiBIQVZFKEREX0hJR0hMSUdIVF9DUkVBVEVfV0lUSF9TQ0FMRSkKLSAgICAgICAgYXV0
byBoaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxl
UmVjdFdpdGhTdHlsZVNjYWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZlbGVtZW50Qm91bmRzLCAx
LCBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1
YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5T
V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMsIDApKTsKKyAgICAgICAgYXV0byBoaWdo
bGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodENy
ZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVTY2FsZUFuZERpcmVjdGlvbihudWxs
cHRyLCAmZWxlbWVudEJvdW5kcywgMSwgbWFpbkZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0U3R5bGVTdGFu
ZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTLCAw
KSk7CiAjZWxzZQotICAgICAgICBhdXRvIGhpZ2hsaWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRD
cmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIs
ICZlbGVtZW50Qm91bmRzLCAxLCBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKSwg
RERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJk
SWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKKyAg
ICAgICAgYXV0byBoaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtfRGF0YURldGVjdG9y
c19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJl
Y3Rpb24obnVsbHB0ciwgJmVsZW1lbnRCb3VuZHMsIDEsIG1haW5GcmFtZVZpZXctPnZpc2libGVD
b250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdo
dFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwg
Tk8sIFlFUykpOwogI2VuZGlmCiAgICAgICAgIG1fZGF0YURldGVjdG9yQ29udGFpbmVyc0FuZEhp
Z2hsaWdodHMuYXBwZW5kKHsgbWFrZVdlYWtQdHIoZWxlbWVudC5nZXQoKSksIERhdGFEZXRlY3Rv
ckhpZ2hsaWdodDo6Y3JlYXRlRm9ySW1hZ2VPdmVybGF5KCptX3BhZ2UsICp0aGlzLCBXVEZNb3Zl
KGhpZ2hsaWdodCksICptYWtlUmFuZ2VTZWxlY3RpbmdOb2RlKGVsZW1lbnQuZ2V0KCkpKSB9KTsK
ICAgICB9CkBAIC0xMTIsNyArMTEyLDcgQEAgYm9vbCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpw
bGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JgogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgQm9vbGVhbiBpc092ZXJCdXR0b24gPSBOTzsKLSAg
ICAgICAgaWYgKCFEREhpZ2hsaWdodFBvaW50SXNPbkhpZ2hsaWdodChoaWdobGlnaHQtPmhpZ2hs
aWdodCgpLCBtb3VzZVBvc2l0aW9uSW5Db250ZW50cywgJmlzT3ZlckJ1dHRvbikpCisgICAgICAg
IGlmICghUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3JzX0RESGlnaGxpZ2h0UG9pbnRJc09uSGln
aGxpZ2h0KGhpZ2hsaWdodC0+aGlnaGxpZ2h0KCksIG1vdXNlUG9zaXRpb25JbkNvbnRlbnRzLCAm
aXNPdmVyQnV0dG9uKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIG1vdXNlSXNP
dmVyQWN0aXZlRGF0YURldGVjdG9ySGlnaGxpZ2h0QnV0dG9uID0gaXNPdmVyQnV0dG9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIu
bW0KaW5kZXggMGExNDU3ZDdjMDY4YTc1MDUzNmVjOWIwNThhOWZiODg2MzFlNzIwZi4uMzY0OWVj
M2M1YzZjOTE1M2ZjZDY5YzQxZmFlOThkZmJiMGE5NzdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC00Nyw4ICs0
Nyw3IEBACiAjaW1wb3J0ICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlNldHRp
bmdzLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBvcnQgPHBhbC9z
cGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgor
I2ltcG9ydCA8cGFsL21hYy9EYXRhRGV0ZWN0b3JzU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0yNjgsMTEgKzI2NywxMSBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OmJ1aWxkUG90ZW50aWFsSGlnaGxpZ2h0c0lmTmVlZGVkKCkKIAogYm9vbCBTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOjptb3VzZUlzT3ZlckhpZ2hsaWdodChEYXRhRGV0ZWN0b3JIaWdo
bGlnaHQmIGhpZ2hsaWdodCwgYm9vbCYgbW91c2VJc092ZXJCdXR0b24pIGNvbnN0CiB7Ci0gICAg
aWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3Rv
cnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQm9v
bGVhbiBvbkJ1dHRvbjsKLSAgICBib29sIGhvdmVyZWQgPSBEREhpZ2hsaWdodFBvaW50SXNPbkhp
Z2hsaWdodChoaWdobGlnaHQuaGlnaGxpZ2h0KCksIChDR1BvaW50KW1fbW91c2VQb3NpdGlvbiwg
Jm9uQnV0dG9uKTsKKyAgICBib29sIGhvdmVyZWQgPSBQQUw6OnNvZnRMaW5rX0RhdGFEZXRlY3Rv
cnNfRERIaWdobGlnaHRQb2ludElzT25IaWdobGlnaHQoaGlnaGxpZ2h0LmhpZ2hsaWdodCgpLCAo
Q0dQb2ludCltX21vdXNlUG9zaXRpb24sICZvbkJ1dHRvbik7CiAgICAgbW91c2VJc092ZXJCdXR0
b24gPSBvbkJ1dHRvbjsKICAgICByZXR1cm4gaG92ZXJlZDsKIH0KQEAgLTM0NSw3ICszNDQsNyBA
QCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGln
aHRzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghRGF0YURldGVjdG9yc0xp
YnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxl
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEhhc2hTZXQ8UmVmUHRyPERhdGFEZXRlY3Rvckhp
Z2hsaWdodD4+IG5ld1BvdGVudGlhbEhpZ2hsaWdodHM7CkBAIC0zNjgsOSArMzY3LDkgQEAgdm9p
ZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cygp
CiAKICAgICAgICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAjaWYgSEFWRShERF9ISUdITElHSFRf
Q1JFQVRFX1dJVEhfU0NBTEUpCi0gICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENGKERE
SGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5kRGly
ZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5GcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRS
ZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0U3R5bGVT
dGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVT
LCAwKSk7CisgICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExpbmtf
RGF0YURldGVjdG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRo
U3R5bGVTY2FsZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWluRnJhbWVWaWV3
LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBE
REhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9u
TmF0dXJhbCwgTk8sIFlFUywgMCkpOwogI2Vsc2UKLSAgICAgICAgYXV0byBkZEhpZ2hsaWdodCA9
IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxl
QW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5GcmFtZVZpZXcudmlzaWJsZUNv
bnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0
U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBO
TywgWUVTKSk7CisgICAgICAgIGF1dG8gZGRIaWdobGlnaHQgPSBhZG9wdENGKFBBTDo6c29mdExp
bmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RX
aXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmlldy52
aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERI
aWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5h
dHVyYWwsIE5PLCBZRVMpKTsKICNlbmRpZgogICAgICAgICBhdXRvIGhpZ2hsaWdodCA9IERhdGFE
ZXRlY3RvckhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKG1fcGFnZSwgKnRoaXMs
IFdURk1vdmUoZGRIaWdobGlnaHQpLCBXVEZNb3ZlKHJhbmdlKSk7CiAgICAgICAgIG1faGlnaGxp
Z2h0cy5hZGQoaGlnaGxpZ2h0LmdldCgpKTsKQEAgLTM4Nyw3ICszODYsNyBAQCB2b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2VsZWN0aW9uSGlnaGxpZ2h0KCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBp
ZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEhhc2hTZXQ8UmVmUHRyPERhdGFEZXRlY3RvckhpZ2hsaWdodD4+IG5ld1Bv
dGVudGlhbEhpZ2hsaWdodHM7CkBAIC00MTMsOSArNDEyLDkgQEAgdm9pZCBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAgIGlmICghY2dS
ZWN0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENHUmVjdCB2aXNpYmxlUmVjdCA9IG1haW5G
cmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogI2lmIEhBVkUoRERfSElHSExJR0hUX0NS
RUFURV9XSVRIX1NDQUxFKQotICAgICAgICAgICAgYXV0byBkZEhpZ2hsaWdodCA9IGFkb3B0Q0Yo
RERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlU2NhbGVBbmRE
aXJlY3Rpb24obnVsbHB0ciwgY2dSZWN0cy5iZWdpbigpLCBjZ1JlY3RzLnNpemUoKSwgdmlzaWJs
ZVJlY3QsIERESGlnaGxpZ2h0U3R5bGVCdWJibGVOb25lIHwgRERIaWdobGlnaHRTdHlsZVN0YW5k
YXJkSWNvbkFycm93IHwgRERIaWdobGlnaHRTdHlsZUJ1dHRvblNob3dBbHdheXMsIFlFUywgTlNX
cml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUywgMCkpOworICAgICAgICAgICAgYXV0byBk
ZEhpZ2hsaWdodCA9IGFkb3B0Q0YoUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3JzX0RESGlnaGxp
Z2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZVNjYWxlQW5kRGlyZWN0aW9u
KG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXplKCksIHZpc2libGVSZWN0LCBE
REhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25B
cnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93QWx3YXlzLCBZRVMsIE5TV3JpdGluZ0Rp
cmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMsIDApKTsKICNlbHNlCi0gICAgICAgICAgICBhdXRvIGRk
SGlnaGxpZ2h0ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJl
Y3RXaXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgY2dSZWN0cy5iZWdpbigpLCBjZ1JlY3Rz
LnNpemUoKSwgdmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGVCdWJibGVOb25lIHwgRERIaWdo
bGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93IHwgRERIaWdobGlnaHRTdHlsZUJ1dHRvblNob3dB
bHdheXMsIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOworICAgICAg
ICAgICAgYXV0byBkZEhpZ2hsaWdodCA9IGFkb3B0Q0YoUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0
b3JzX0RESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERp
cmVjdGlvbihudWxscHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxl
UmVjdCwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRh
cmRJY29uQXJyb3cgfCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dy
aXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGF1
dG8gaGlnaGxpZ2h0ID0gRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24o
bV9wYWdlLCAqdGhpcywgV1RGTW92ZShkZEhpZ2hsaWdodCksIFdURk1vdmUoKnNlbGVjdGlvblJh
bmdlKSk7CiAgICAgICAgICAgICBtX2hpZ2hsaWdodHMuYWRkKGhpZ2hsaWdodC5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxp
Z2h0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdo
dC5tbQppbmRleCA5MWQ1MGRmMjk1YmQ1Y2E4ZGMxN2I2OWJkMzdhYTJhOTFkMTZkMWIwLi4wNTAw
ZDcxYzJhM2U2OGJiMmRlNDU4ZGIzNTU0M2U5NjFmZTk4MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KQEAgLTM5LDkg
KzM5LDggQEAKICNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oIgogI2ltcG9ydCAi
UGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNp
bXBvcnQgPHBhbC9zcGkvbWFjL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPHd0Zi9TZWNv
bmRzLmg+Ci0jaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHBhbC9tYWMvRGF0
YURldGVjdG9yc1NvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODIsNyAr
ODEsNyBAQCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OkRhdGFEZXRlY3RvckhpZ2hsaWdodChQYWdl
JiBwYWdlLCBEYXRhRGV0ZWN0b3JIaWdobGlnaHRDbAogCiB2b2lkIERhdGFEZXRlY3RvckhpZ2hs
aWdodDo6c2V0SGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmIGhpZ2hsaWdodCkKIHsKLSAgICBpZiAo
IURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURldGVjdG9yc0Zy
YW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fY2xpZW50
KQpAQCAtOTMsNyArOTIsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6c2V0SGlnaGxp
Z2h0KERESGlnaGxpZ2h0UmVmIGhpZ2hsaWdodCkKICAgICBpZiAoIW1faGlnaGxpZ2h0KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBDR1JlY3QgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0ID0gRERIaWdo
bGlnaHRHZXRCb3VuZGluZ1JlY3QobV9oaWdobGlnaHQuZ2V0KCkpOworICAgIENHUmVjdCBoaWdo
bGlnaHRCb3VuZGluZ1JlY3QgPSBQQUw6OnNvZnRMaW5rX0RhdGFEZXRlY3RvcnNfRERIaWdobGln
aHRHZXRCb3VuZGluZ1JlY3QobV9oaWdobGlnaHQuZ2V0KCkpOwogICAgIG1fZ3JhcGhpY3NMYXll
ci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2luKSk7
CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKEZsb2F0U2l6ZShoaWdobGlnaHRCb3VuZGlu
Z1JlY3Quc2l6ZSkpOwogCkBAIC0xMTcsNyArMTE2LDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdo
bGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiAKIHZvaWQg
RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiwgR3Jh
cGhpY3NMYXllclBhaW50QmVoYXZpb3IpCiB7Ci0gICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFy
eSgpKQorICAgIGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYmUgbW92ZWQg
aW50byBHcmFwaGljc0NvbnRleHQgYXMgYSBEaXNwbGF5TGlzdC1jb21wYXRpYmxlIGRyYXdpbmcg
Y29tbWFuZC4KQEAgLTEyOSw5ICsxMjgsOSBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JgogICAg
IENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBncmFwaGljc0NvbnRleHQucGxhdGZvcm1Db250ZXh0
KCk7CiAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIENHTGF5
ZXJSZWYgaGlnaGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQoaGln
aGxpZ2h0KCksIGNnQ29udGV4dCk7CisgICAgQ0dMYXllclJlZiBoaWdobGlnaHRMYXllciA9IFBB
TDo6c29mdExpbmtfRGF0YURldGVjdG9yc19EREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQo
aGlnaGxpZ2h0KCksIGNnQ29udGV4dCk7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECi0gICAgQ0dSZWN0IGhpZ2hsaWdodEJvdW5kaW5nUmVjdCA9IERESGlnaGxpZ2h0R2V0
Qm91bmRpbmdSZWN0KGhpZ2hsaWdodCgpKTsKKyAgICBDR1JlY3QgaGlnaGxpZ2h0Qm91bmRpbmdS
ZWN0ID0gUEFMOjpzb2Z0TGlua19EYXRhRGV0ZWN0b3JzX0RESGlnaGxpZ2h0R2V0Qm91bmRpbmdS
ZWN0KGhpZ2hsaWdodCgpKTsKICAgICBoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2luID0gQ0dQ
b2ludFplcm87CiAKICAgICBDR0NvbnRleHREcmF3TGF5ZXJJblJlY3QoY2dDb250ZXh0LCBoaWdo
bGlnaHRCb3VuZGluZ1JlY3QsIGhpZ2hsaWdodExheWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vbWFjL01lbnVVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL21hYy9NZW51VXRpbGl0aWVzLm1tCmluZGV4IDk3ZjBlOWQwMzgxMWM2ZTY0ZWIxYWJhNjAy
MDYxMTQ5YjU0YzNmM2YuLjEzY2VjNGY4M2FkMGFmM2RjMGJhM2FmMGRkYjUzZTRlYWE5ZTQ0YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vbWFjL01lbnVVdGlsaXRpZXMubW0K
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9tYWMvTWVudVV0aWxpdGllcy5tbQpAQCAtMzEs
NyArMzEsNiBAQAogCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgPFdlYkNv
cmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvRGF0YURldGVjdG9y
c1NQSS5oPgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKQogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvVGVsZXBob255VXRpbGl0aWVzU1BJLmg+CkBAIC00MSw2ICs0MCw5IEBA
IFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChUZWxlcGhvbnlVdGlsaXRpZXMp
CiBTT0ZUX0xJTktfQ0xBU1MoVGVsZXBob255VXRpbGl0aWVzLCBUVUNhbGwpCiAjZW5kaWYKIAor
I2ltcG9ydCA8cGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaD4KKyNpbXBvcnQg
PHBhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmg+CisKIEBpbnRlcmZhY2UgV0tFbXB0eVBy
ZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlIDogTlNPYmplY3QgPFJWUHJlc2VudGVySGlnaGxpZ2h0
RGVsZWdhdGU+CiBAZW5kCiAKQEAgLTc1LDEwICs3NywxMCBAQCBzdGF0aWMgRERBY3Rpb24gKmFj
dGlvbkZvck1lbnVJdGVtKE5TTWVudUl0ZW0gKml0ZW0pCiAgICAgaWQgYWN0aW9uID0gW3JlcHJl
c2VudGVkT2JqZWN0IG9iamVjdEZvcktleTpAIkREQWN0aW9uIl07CiAKICNpZiBIQVZFKERBVEFf
REVURUNUT1JTX01BQ19BQ1RJT04pCi0gICAgaWYgKCFbYWN0aW9uIGlzS2luZE9mQ2xhc3M6Z2V0
RERNYWNBY3Rpb25DbGFzcygpXSkKKyAgICBpZiAoIVthY3Rpb24gaXNLaW5kT2ZDbGFzczpQQUw6
OmdldERETWFjQWN0aW9uQ2xhc3MoKV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAjZWxzZQotICAg
IGlmICghW2FjdGlvbiBpc0tpbmRPZkNsYXNzOmdldEREQWN0aW9uQ2xhc3MoKV0pCisgICAgaWYg
KCFbYWN0aW9uIGlzS2luZE9mQ2xhc3M6UEFMOjpnZXREREFjdGlvbkNsYXNzKCldKQogICAgICAg
ICByZXR1cm4gbmlsOwogI2VuZGlmCiAKQEAgLTg3LDEzICs4OSwxMyBAQCBzdGF0aWMgRERBY3Rp
b24gKmFjdGlvbkZvck1lbnVJdGVtKE5TTWVudUl0ZW0gKml0ZW0pCiAKIE5TTWVudUl0ZW0gKm1l
bnVJdGVtRm9yVGVsZXBob25lTnVtYmVyKGNvbnN0IFN0cmluZyYgdGVsZXBob25lTnVtYmVyKQog
ewotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRh
RGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAg
ICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0ID0gYWRvcHROUyhbYWxs
b2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBhdXRvIGFjdGlvbkNvbnRl
eHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jRERBY3Rpb25Db250ZXh0SW5zdGFuY2UoKSBpbml0XSk7
CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0QWxsb3dlZEFjdGlvblVUSXM6QFsgQCJjb20uYXBwbGUu
ZGlhbCIgXV07CiAKLSAgICBOU0FycmF5ICpwcm9wb3NlZE1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rp
b25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yVmFsdWU6KE5TU3Ry
aW5nICopdGVsZXBob25lTnVtYmVyIHR5cGU6Z2V0RERCaW5kZXJQaG9uZU51bWJlcktleSgpIHNl
cnZpY2U6bmlsIGNvbnRleHQ6YWN0aW9uQ29udGV4dC5nZXQoKV07CisgICAgTlNBcnJheSAqcHJv
cG9zZWRNZW51SXRlbXMgPSBbW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVk
TWFuYWdlcl0gbWVudUl0ZW1zRm9yVmFsdWU6KE5TU3RyaW5nICopdGVsZXBob25lTnVtYmVyIHR5
cGU6UEFMOjpnZXRfRGF0YURldGVjdG9yc0NvcmVfRERCaW5kZXJQaG9uZU51bWJlcktleSgpIHNl
cnZpY2U6bmlsIGNvbnRleHQ6YWN0aW9uQ29udGV4dC5nZXQoKV07CiAgICAgZm9yIChOU01lbnVJ
dGVtICppdGVtIGluIHByb3Bvc2VkTWVudUl0ZW1zKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uID0g
YWN0aW9uRm9yTWVudUl0ZW0oaXRlbSk7CiAgICAgICAgIGlmIChbYWN0aW9uLmFjdGlvblVUSSBo
YXNQcmVmaXg6QCJjb20uYXBwbGUuZGlhbCJdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbQppbmRleCA5ZjhjYzBjNTkyNDU3M2M0MTI2
YzJkYTMxYWM1MjgyMzg4YTdkYzNlLi5mYTBmNjA4NzViYjA4NWIzNTI2ZTBlMjEyODdhMzJhZDNm
MTNlY2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0
aW9uUmVzdWx0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RhdGFEZXRlY3Rp
b25SZXN1bHQubW0KQEAgLTI4LDExICsyOCw3IEBACiAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJz
Q29jb2EuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oPgotI2ltcG9ydCA8d3RmL1NvZnRMaW5r
aW5nLmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhEYXRhRGV0ZWN0b3JzQ29yZSkK
LVNPRlRfTElOS19DTEFTUyhEYXRhRGV0ZWN0b3JzQ29yZSwgRERTY2FubmVyUmVzdWx0KQorI2lt
cG9ydCA8cGFsL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTQ1LDcgKzQxLDcgQEAgdm9pZCBEYXRhRGV0ZWN0aW9uUmVzdWx0Ojpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBzdGQ6Om9wdGlvbmFsPERhdGFE
ZXRlY3Rpb25SZXN1bHQ+IERhdGFEZXRlY3Rpb25SZXN1bHQ6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiB7Ci0gICAgYXV0byByZXN1bHRzID0gSVBDOjpkZWNvZGU8TlNBcnJheT4oZGVj
b2RlciwgQFsgW05TQXJyYXkgY2xhc3NdLCBnZXRERFNjYW5uZXJSZXN1bHRDbGFzcygpIF0pOwor
ICAgIGF1dG8gcmVzdWx0cyA9IElQQzo6ZGVjb2RlPE5TQXJyYXk+KGRlY29kZXIsIEBbIE5TQXJy
YXkuY2xhc3MsIFBBTDo6Z2V0RERTY2FubmVyUmVzdWx0Q2xhc3MoKSBdKTsKICAgICBpZiAoIXJl
c3VsdHMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi5tbQppbmRleCBkYjIwOTgxY2QyYjZiODY3N2I2M2Q0MzA2YmI0NjllYzQxNTc4OGEyLi4wNWMw
NGY3NjQzNzY3NzIwMmI5ZjFmYjdiMWE2NzlkYmM2MmYyYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLm1tCkBAIC0yOCwxMSArMjgsNyBAQAogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29h
LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgotCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoRGF0YURldGVjdG9yc0NvcmUpCi1TT0ZU
X0xJTktfQ0xBU1MoRGF0YURldGVjdG9yc0NvcmUsIEREU2Nhbm5lclJlc3VsdCkKKyNpbXBvcnQg
PHBhbC9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCkBAIC0xOTIsNyArMTg4LDcgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5kYXRhRGV0ZWN0b3JJZGVudGlmaWVyKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBkYXRhRGV0ZWN0b3JSZXN1bHRzID0gSVBDOjpk
ZWNvZGU8TlNBcnJheT4oZGVjb2RlciwgQFsgTlNBcnJheS5jbGFzcywgZ2V0RERTY2FubmVyUmVz
dWx0Q2xhc3MoKSBdKTsKKyAgICBhdXRvIGRhdGFEZXRlY3RvclJlc3VsdHMgPSBJUEM6OmRlY29k
ZTxOU0FycmF5PihkZWNvZGVyLCBAWyBOU0FycmF5LmNsYXNzLCBQQUw6OmdldEREU2Nhbm5lclJl
c3VsdENsYXNzKCkgXSk7CiAgICAgaWYgKCFkYXRhRGV0ZWN0b3JSZXN1bHRzKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJI
aXRUZXN0UmVzdWx0RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJIaXRUZXN0
UmVzdWx0RGF0YS5tbQppbmRleCA4ODNiYmFkMmQ4NjM3ZGZlNWYyNDA3YTZhNDhhZTIxNDg5ZmI0
OWVhLi4yYjEzZjllZWMyZjYxYzFmOWYyYmZiYWU3ZTEzYTJmMzMxMmQwY2M4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1tCkBAIC0zNCw3
ICszNCw3IEBACiAjaW1wb3J0ICJFbmNvZGVyLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgotI2ltcG9ydCA8cGFs
L3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oPgorI2ltcG9ydCA8cGFsL21hYy9EYXRhRGV0ZWN0
b3JzU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTY0LDkgKzY0LDkgQEAg
Ym9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBXZWJIaXRUZXN0UmVzdWwKIAogICAgIGlmICghaGFzQWN0aW9uQ29udGV4dCkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgQVNTRVJUKERhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpOwor
ICAgIEFTU0VSVChQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKTsKIAot
ICAgIGF1dG8gZGV0ZWN0ZWREYXRhQWN0aW9uQ29udGV4dCA9IElQQzo6ZGVjb2RlPEREQWN0aW9u
Q29udGV4dD4oZGVjb2RlciwgZ2V0RERBY3Rpb25Db250ZXh0Q2xhc3MoKSk7CisgICAgYXV0byBk
ZXRlY3RlZERhdGFBY3Rpb25Db250ZXh0ID0gSVBDOjpkZWNvZGU8RERBY3Rpb25Db250ZXh0Pihk
ZWNvZGVyLCBQQUw6OmdldEREQWN0aW9uQ29udGV4dENsYXNzKCkpOwogICAgIGlmICghZGV0ZWN0
ZWREYXRhQWN0aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDVmNTA3NmFmZmEyMWM3
MmI0NmU2NjY2OGRlZDFhYTE1ZTc0ZDdmYzguLmMzZmE2Y2FlMzNjNTM4YzExZTMwOTcxNDM4Yjc0
MDk1NmUwMjcwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCkBAIC0xMjAsNyArMTIwLDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZLaXRT
UEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFj
L0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xvb2t1cFNQSS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBcHBlYXJhbmNlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L21hYy9OU0FwcGxpY2F0aW9uU1BJLmg+CkBAIC0xNTgsNiArMTU3LDcgQEAgU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKFRyYW5zbGF0aW9uVUlTZXJ2aWNlcywgTFRVSVRyYW5zbGF0aW9uVmlld0Nv
bnRyb2xsZXIpCiAjZW5kaWYKIAogI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+
CisjaW1wb3J0IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNTb2Z0TGluay5oPgogCiAjaWYgSEFWRShU
T1VDSF9CQVIpICYmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKIFNPRlRf
TElOS19GUkFNRVdPUksoQVZLaXQpCkBAIC0zNjIzLDggKzM2MjMsOCBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCkKICAg
ICBpZiAoW21fdmlldyB3aW5kb3ddLmlzS2V5V2luZG93IHx8IGhhc0FjdGl2ZUltbWVkaWF0ZUFj
dGlvbikgewogICAgICAgICBXZWJDb3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpoaWRlUG9wdXAoKTsK
IAotICAgICAgICBpZiAoRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKLSAgICAgICAgICAgIFtbZ2V0
RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gcmVxdWVzdEJ1YmJsZUNsb3N1
cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOworICAgICAgICBpZiAoUEFMOjppc0RhdGFEZXRlY3Rv
cnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKKyAgICAgICAgICAgIFtbUEFMOjpnZXREREFjdGlvbnNN
YW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9y
T25GYWlsdXJlOllFU107CiAgICAgfQogCiAgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDJkMmIzOGE0MDhmYmM1MTM3YmNjMjg3MjkzZGU5ZDI3
YmMzODYwMzAuLmRmODI3Yzg5NTJjMzc0NzA2N2UzZDdjYjBmMzgzNzgwMThhMTU3NGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5tbQpAQCAtMzgsMTIgKzM4LDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL0Rp
Y3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvR2VvbWV0cnlVdGlsaXRpZXMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgotI2ltcG9ydCA8cGFsL21h
Yy9RdWlja0xvb2tVSVNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9EYXRhRGV0ZWN0
b3JzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBTUEkuaD4KICNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNQb3BvdmVyU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CisjaW1wb3J0IDxwYWwvbWFjL0RhdGFEZXRlY3RvcnNT
b2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL21hYy9RdWlja0xvb2tVSVNvZnRMaW5rLmg+CiAKIEBp
bnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyICgpIDxRTFByZXZpZXdNZW51SXRl
bURlbGVnYXRlPgogQGVuZApAQCAtMTE0LDggKzExNCw4IEBAIC0gKHZvaWQpX2NsZWFySW1tZWRp
YXRlQWN0aW9uU3RhdGUKIAogICAgIGlmIChfY3VycmVudEFjdGlvbkNvbnRleHQgJiYgX2hhc0Fj
dGl2YXRlZEFjdGlvbkNvbnRleHQpIHsKICAgICAgICAgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRl
eHQgPSBOTzsKLSAgICAgICAgaWYgKERhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCi0gICAgICAgICAg
ICBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107CisgICAgICAgIGlm
IChQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQorICAgICAgICAgICAg
W1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107CiAgICAgfQog
CiAgICAgX3N0YXRlID0gV2ViS2l0OjpJbW1lZGlhdGVBY3Rpb25TdGF0ZTo6Tm9uZTsKQEAgLTIw
Miw4ICsyMDIsOCBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVnaW5B
bmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgaWYgKF9jdXJyZW50
QWN0aW9uQ29udGV4dCkgewogICAgICAgICBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCA9IFlF
UzsKLSAgICAgICAgaWYgKERhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpIHsKLSAgICAgICAgICAgIGlm
ICghW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNob3VsZFVzZUFjdGlvbnNXaXRoQ29udGV4
dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldKQorICAgICAgICBpZiAoUEFMOjppc0RhdGFE
ZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkgeworICAgICAgICAgICAgaWYgKCFbUEFMOjpn
ZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRVc2VBY3Rpb25zV2l0aENvbnRleHQ6X2N1
cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkKICAgICAgICAgICAgICAgICBbc2VsZiBfY2FuY2Vs
SW1tZWRpYXRlQWN0aW9uXTsKICAgICAgICAgfQogICAgIH0KQEAgLTQwMSw3ICs0MDEsNyBAQCAt
IChOU1NpemUpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBtYXhTaXplRm9yUG9pbnQ6
KE5TUG9pbnQpcG9pbnQKIAogLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHQKIHsKLSAgICBpZiAo
IURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURldGVjdG9yc0Zy
YW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgRERBY3Rpb25D
b250ZXh0ICphY3Rpb25Db250ZXh0ID0gX2hpdFRlc3RSZXN1bHREYXRhLmRldGVjdGVkRGF0YUFj
dGlvbkNvbnRleHQuZ2V0KCk7CkBAIC00MTAsNyArNDEwLDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRl
Y3RlZFQKIAogICAgIGFjdGlvbkNvbnRleHQuYWx0TW9kZSA9IFlFUzsKICAgICBhY3Rpb25Db250
ZXh0LmltbWVkaWF0ZSA9IFlFUzsKLSAgICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNz
KCkgc2hhcmVkTWFuYWdlcl0gaGFzQWN0aW9uc0ZvclJlc3VsdDphY3Rpb25Db250ZXh0Lm1haW5S
ZXN1bHQgYWN0aW9uQ29udGV4dDphY3Rpb25Db250ZXh0XSkKKyAgICBpZiAoIVtbUEFMOjpnZXRE
REFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBoYXNBY3Rpb25zRm9yUmVzdWx0
OmFjdGlvbkNvbnRleHQubWFpblJlc3VsdCBhY3Rpb25Db250ZXh0OmFjdGlvbkNvbnRleHRdKQog
ICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBw
YWdlID0gX3BhZ2UuZ2V0KCk7CkBAIC00MjgsNyArNDI4LDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRl
Y3RlZFQKIAogICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W192
aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfdmlldyBjb252ZXJ0UmVjdDpfaGl0VGVz
dFJlc3VsdERhdGEuZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dXTsKIAotICAg
IE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVk
TWFuYWdlcl0gbWVudUl0ZW1zRm9yUmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRleHQgbWFpblJl
c3VsdF0gYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOworICAgIE5T
QXJyYXkgKm1lbnVJdGVtcyA9IFtbUEFMOjpnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFy
ZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JSZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29udGV4dCBtYWlu
UmVzdWx0XSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CiAKICAg
ICBpZiAobWVudUl0ZW1zLmNvdW50ICE9IDEpCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC00Mzgs
MTAgKzQzOCwxMCBAQCAtIChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+
KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVAogCiAtIChpZDxOU0ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURl
dGVjdGVkTGluawogewotICAgIGlmICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAo
IVBBTDo6aXNEYXRhRGV0ZWN0b3JzRnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVy
biBuaWw7CiAKLSAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBhY3Rpb25Db250ZXh0ID0g
YWRvcHROUyhbYWxsb2NEREFjdGlvbkNvbnRleHRJbnN0YW5jZSgpIGluaXRdKTsKKyAgICBhdXRv
IGFjdGlvbkNvbnRleHQgPSBhZG9wdE5TKFtQQUw6OmFsbG9jRERBY3Rpb25Db250ZXh0SW5zdGFu
Y2UoKSBpbml0XSk7CiAKICAgICBpZiAoIWFjdGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVybiBu
aWw7CkBAIC00NjQsNyArNDY0LDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZEwKICAgICBpZiAo
IWhpdFRlc3RSZXN1bHQpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBOU0FycmF5ICptZW51
SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1lbnVJ
dGVtc0ZvclRhcmdldFVSTDpoaXRUZXN0UmVzdWx0LT5hYnNvbHV0ZUxpbmtVUkwoKSBhY3Rpb25D
b250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CisgICAgTlNBcnJheSAqbWVudUl0
ZW1zID0gW1tQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1l
bnVJdGVtc0ZvclRhcmdldFVSTDpoaXRUZXN0UmVzdWx0LT5hYnNvbHV0ZUxpbmtVUkwoKSBhY3Rp
b25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CiAKICAgICBpZiAobWVudUl0
ZW1zLmNvdW50ICE9IDEpCiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW0KaW5kZXggNDY0N2Y2Y2RlYTU5M2E0YWM4ZjI2MTMwY2Y5YTIwZmMzNzM4MDRjNS4u
ZjJhZmIwODA3NmE2NWQzYzBhZjNlNDdjMTkwYmIwM2ExOTdlODIzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5tbQpAQCAtNTYsMTAgKzU2LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL1Rl
eHRJdGVyYXRvci5oPgogI2ltcG9ydCA8b2JqYy9vYmpjLWNsYXNzLmg+CiAjaW1wb3J0IDxvYmpj
L29iamMuaD4KLSNpbXBvcnQgPHBhbC9tYWMvUXVpY2tMb29rVUlTb2Z0TGluay5oPgotI2ltcG9y
dCA8cGFsL3NwaS9tYWMvRGF0YURldGVjdG9yc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMv
TG9va3VwU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KKyNpbXBvcnQg
PHBhbC9tYWMvRGF0YURldGVjdG9yc1NvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvbWFjL1F1aWNr
TG9va1VJU29mdExpbmsuaD4KIAogQGludGVyZmFjZSBXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyICgpIDxRTFByZXZpZXdNZW51SXRlbURlbGVnYXRlPgogQGVuZApAQCAtMTQwLDE1ICsxNDAs
MTUgQEAgLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uCiAKIC0gKHZvaWQpX2NsZWFySW1t
ZWRpYXRlQWN0aW9uU3RhdGUKIHsKLSAgICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisg
ICAgaWYgKCFQQUw6OmlzRGF0YURldGVjdG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBEREFjdGlvbnNNYW5hZ2VyICphY3Rpb25zTWFuYWdlciA9IFtnZXRE
REFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXTsKKyAgICBEREFjdGlvbnNNYW5h
Z2VyICphY3Rpb25zTWFuYWdlciA9IFtQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNo
YXJlZE1hbmFnZXJdOwogICAgIFthY3Rpb25zTWFuYWdlciByZXF1ZXN0QnViYmxlQ2xvc3VyZVVu
YW5jaG9yT25GYWlsdXJlOllFU107CiAKICAgICBpZiAoX2N1cnJlbnRBY3Rpb25Db250ZXh0ICYm
IF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0KSB7CiAgICAgICAgIF9oYXNBY3RpdmF0ZWRBY3Rp
b25Db250ZXh0ID0gTk87Ci0gICAgICAgIFtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBkaWRV
c2VBY3Rpb25zXTsKKyAgICAgICAgW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlk
VXNlQWN0aW9uc107CiAgICAgfQogCiAgICAgX3R5cGUgPSBXZWJJbW1lZGlhdGVBY3Rpb25Ob25l
OwpAQCAtMjA1LDcgKzIwNSw3IEBAIC0gKHZvaWQpaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldp
bGxQcmVwYXJlOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyCiAKIC0gKHZvaWQp
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxCZWdpbkFuaW1hdGlvbjooTlNJbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKIHsKLSAg
ICBpZiAoIURhdGFEZXRlY3RvcnNMaWJyYXJ5KCkpCisgICAgaWYgKCFQQUw6OmlzRGF0YURldGVj
dG9yc0ZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplciAhPSBfaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcikKQEAg
LTIxMyw3ICsyMTMsNyBAQCAtICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVn
aW5BbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlYwogCiAgICAgaWYgKF9jdXJy
ZW50QWN0aW9uQ29udGV4dCkgewogICAgICAgICBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCA9
IFlFUzsKLSAgICAgICAgaWYgKCFbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hvdWxkVXNl
QWN0aW9uc1dpdGhDb250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV0pCisgICAgICAg
IGlmICghW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hvdWxkVXNlQWN0aW9uc1dp
dGhDb250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV0pCiAgICAgICAgICAgICBbc2Vs
ZiBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uXTsKICAgICB9CiB9CkBAIC00MjQsNyArNDI0LDcgQEAg
LSAoTlNTaXplKW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gbWF4U2l6ZUZvclBvaW50
OihOU1BvaW50KXBvaW50CiAKIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dAogewotICAgIGlm
ICghRGF0YURldGVjdG9yc0xpYnJhcnkoKSkKKyAgICBpZiAoIVBBTDo6aXNEYXRhRGV0ZWN0b3Jz
RnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkRldGVjdGVkSXRlbT4gZGV0ZWN0ZWRJdGVtOwpAQCAtNDUyLDcgKzQ1
Miw3IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmlt
YXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAKICAgICBbZGV0ZWN0ZWRJdGVtLT5hY3Rp
b25Db250ZXh0IHNldEFsdE1vZGU6WUVTXTsKICAgICBbZGV0ZWN0ZWRJdGVtLT5hY3Rpb25Db250
ZXh0IHNldEltbWVkaWF0ZTpZRVNdOwotICAgIGlmICghW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xh
c3MoKSBzaGFyZWRNYW5hZ2VyXSBoYXNBY3Rpb25zRm9yUmVzdWx0OltkZXRlY3RlZEl0ZW0tPmFj
dGlvbkNvbnRleHQgbWFpblJlc3VsdF0gYWN0aW9uQ29udGV4dDpkZXRlY3RlZEl0ZW0tPmFjdGlv
bkNvbnRleHQuZ2V0KCldKQorICAgIGlmICghW1tQQUw6OmdldEREQWN0aW9uc01hbmFnZXJDbGFz
cygpIHNoYXJlZE1hbmFnZXJdIGhhc0FjdGlvbnNGb3JSZXN1bHQ6W2RldGVjdGVkSXRlbS0+YWN0
aW9uQ29udGV4dCBtYWluUmVzdWx0XSBhY3Rpb25Db250ZXh0OmRldGVjdGVkSXRlbS0+YWN0aW9u
Q29udGV4dC5nZXQoKV0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBhdXRvIGluZGljYXRv
ciA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZShkZXRlY3RlZEl0ZW0t
PnJhbmdlLCB7IH0sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpGYWRlSW4pOwpAQCAtNDY3LDcgKzQ2Nyw3IEBAIC0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkCiAK
ICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53
aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpkZXRlY3RlZEl0ZW0tPmJvdW5kaW5nQm94XV07CiAK
LSAgICBOU0FycmF5ICptZW51SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNo
YXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0IG1h
aW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKKyAg
ICBOU0FycmF5ICptZW51SXRlbXMgPSBbW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkg
c2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yUmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRleHQg
bWFpblJlc3VsdF0gYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOwog
ICAgIGlmIChtZW51SXRlbXMuY291bnQgIT0gMSkKICAgICAgICAgcmV0dXJuIG5pbDsKIApAQCAt
NDc2LDEwICs0NzYsMTAgQEAgLSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWQKIAogLSAoaWQgPE5TSW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JE
YXRhRGV0ZWN0ZWRMaW5rCiB7Ci0gICAgaWYgKCFEYXRhRGV0ZWN0b3JzTGlicmFyeSgpKQorICAg
IGlmICghUEFMOjppc0RhdGFEZXRlY3RvcnNGcmFtZXdvcmtBdmFpbGFibGUoKSkKICAgICAgICAg
cmV0dXJuIG5pbDsKIAotICAgIFJldGFpblB0cjxEREFjdGlvbkNvbnRleHQ+IGFjdGlvbkNvbnRl
eHQgPSBhZG9wdE5TKFthbGxvY0REQWN0aW9uQ29udGV4dEluc3RhbmNlKCkgaW5pdF0pOworICAg
IGF1dG8gYWN0aW9uQ29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NEREFjdGlvbkNvbnRleHRJ
bnN0YW5jZSgpIGluaXRdKTsKIAogICAgIGlmICghYWN0aW9uQ29udGV4dCkKICAgICAgICAgcmV0
dXJuIG5pbDsKQEAgLTUwMCw3ICs1MDAsNyBAQCAtIChpZCA8TlNJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZAogCiAg
ICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3dlYlZpZXcud2lu
ZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46ZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGlu
YXRlc0Zyb21Ob2RlKF9oaXRUZXN0UmVzdWx0LlVSTEVsZW1lbnQoKSldXTsKIAotICAgIE5TQXJy
YXkgKm1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdl
cl0gbWVudUl0ZW1zRm9yVGFyZ2V0VVJMOl9oaXRUZXN0UmVzdWx0LmFic29sdXRlTGlua1VSTCgp
LnN0cmluZygpIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKKyAg
ICBOU0FycmF5ICptZW51SXRlbXMgPSBbW1BBTDo6Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkg
c2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yVGFyZ2V0VVJMOl9oaXRUZXN0UmVzdWx0LmFic29s
dXRlTGlua1VSTCgpLnN0cmluZygpIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0
LmdldCgpXTsKICAgICBpZiAobWVudUl0ZW1zLmNvdW50ICE9IDEpCiAgICAgICAgIHJldHVybiBu
aWw7CiAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>