<?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>227742</bug_id>
          
          <creation_ts>2021-07-07 03:43:17 -0700</creation_ts>
          <short_desc>Set Caption preferences in the UI process</short_desc>
          <delta_ts>2021-07-13 20:57:27 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>227937</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775238</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-07 03:43:17 -0700</bug_when>
    <thetext>Due to sandbox restrictions in the WebContent process, Caption preferences should be set in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775239</commentid>
    <comment_count>1</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-07 03:45:33 -0700</bug_when>
    <thetext>&lt;rdar://79040526&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775250</commentid>
    <comment_count>2</comment_count>
      <attachid>433026</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-07 07:04:53 -0700</bug_when>
    <thetext>Created attachment 433026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775268</commentid>
    <comment_count>3</comment_count>
      <attachid>433029</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-07 08:15:20 -0700</bug_when>
    <thetext>Created attachment 433029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775276</commentid>
    <comment_count>4</comment_count>
      <attachid>433029</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-07-07 08:35:44 -0700</bug_when>
    <thetext>Comment on attachment 433029
Patch

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:5527
&gt; -		FD3160BF12B0272A00C1A359 /* AudioFileReaderMac.h in Headers */ = {isa = PBXBuildFile; fileRef = FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */; };
&gt; +		FD3160BF12B0272A00C1A359 /* (null) in Headers */ = {isa = PBXBuildFile; };

Nit: this seems unintentional

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:31619
&gt; +				FD3160BF12B0272A00C1A359 /* (null) in Headers */,

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775334</commentid>
    <comment_count>5</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-07 10:53:17 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 433029 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433029&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:5527
&gt; &gt; -		FD3160BF12B0272A00C1A359 /* AudioFileReaderMac.h in Headers */ = {isa = PBXBuildFile; fileRef = FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */; };
&gt; &gt; +		FD3160BF12B0272A00C1A359 /* (null) in Headers */ = {isa = PBXBuildFile; };
&gt; 
&gt; Nit: this seems unintentional
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:31619
&gt; &gt; +				FD3160BF12B0272A00C1A359 /* (null) in Headers */,
&gt; 
&gt; Ditto

Will fix.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775625</commentid>
    <comment_count>6</comment_count>
      <attachid>433123</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-08 00:09:23 -0700</bug_when>
    <thetext>Created attachment 433123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775649</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-07-08 04:38:32 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #5)
&gt; (In reply to Eric Carlson from comment #4)
&gt; &gt; Comment on attachment 433029 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=433029&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:5527
&gt; &gt; &gt; -		FD3160BF12B0272A00C1A359 /* AudioFileReaderMac.h in Headers */ = {isa = PBXBuildFile; fileRef = FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */; };
&gt; &gt; &gt; +		FD3160BF12B0272A00C1A359 /* (null) in Headers */ = {isa = PBXBuildFile; };
&gt; &gt; 
&gt; &gt; Nit: this seems unintentional
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:31619
&gt; &gt; &gt; +				FD3160BF12B0272A00C1A359 /* (null) in Headers */,
&gt; &gt; 
&gt; &gt; Ditto
&gt; 
&gt; Will fix.
&gt; 

These files seem to have been removed earlier, and Xcode removed the references in the project file.

&gt; Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775650</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 04:46:29 -0700</bug_when>
    <thetext>Committed r279720 (239508@main): &lt;https://commits.webkit.org/239508@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433123.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433026</attachid>
            <date>2021-07-07 07:04:53 -0700</date>
            <delta_ts>2021-07-07 08:15:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227742-20210707160451.patch</filename>
            <type>text/plain</type>
            <size>27931</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA3LTA3ICBQZXIgQXJu
ZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBDYXB0aW9uIHByZWZlcmVuY2Vz
IGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjc3NDIKKyAgICAgICAgPHJkYXI6Ly83OTA0MDUyNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBDYXB0aW9uIHVzZXIg
cHJlZmVyZW5jZXMgZGVsZWdhdGUsIHdoaWNoIGNhbiBiZSBzdWJjbGFzc2VkIHRvIHBlcmZvcm0g
dGhlIHdvcmsgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5j
ZSB0aGlzIGlzIG5vdCB0cml2aWFsIHRvIGFkZCBhIHRlc3QgZm9yLiBUaGlzIGhhcyBiZWVuIG1h
bnVhbGx5IHRlc3RlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uRGlzcGxheU1v
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUY6OnBsYXRmb3JtU2V0Q2FwdGlvbkRpc3BsYXlNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uRGlzcGxheU1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldENhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNldFByZWZlcnJlZExhbmd1YWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRMYW5ndWFn
ZSk6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0NhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU6On5DYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uUHJlZmVyZW5jZXNEZWxl
Z2F0ZTo6c2V0RGlzcGxheU1vZGUpOgorCiAyMDIxLTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3
OTYyOC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTE3Myw2ICs1MTcz
LDcgQEAKIAkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEMw
MjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5
MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252
ZXJ0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBE
OCAvKiBET01KSVRJRExUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJRTNBODZGQzMyNjk1RUI0ODAwNTkyNjREIC8qIENhcHRpb25QcmVmZXJl
bmNlc0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0E4NkZDMTI2OTVFQjQ4MDA1OTI2NEQgLyogQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
M0FGRDdBRDI1NUY1MEVCMDBFNUUzMEUgLyogV29ya2VyVGhyZWFkVHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNBRkQ3QUIyNTVGNTBEQzAwRTVF
MzBFIC8qIFdvcmtlclRocmVhZFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVT
Y3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
QjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEVFMUQ3RjRDQTkwMEIw
QzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTgxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxl
U2NyaXB0Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTU1MjMsNyArNTUyNCw3IEBACiAJCUZEMzE2MEFCMTJCMDI2RjcwMEMxQTM1OSAv
KiBSZXZlcmJDb252b2x2ZXJTdGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQzMTYwNzUxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYkNvbnZvbHZl
clN0YWdlLmggKi87IH07CiAJCUZEMzE2MEFEMTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJJbnB1
dEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNzcxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYklucHV0QnVmZmVyLmggKi87IH07CiAJ
CUZEMzE2MEFGMTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0b3JNYXRoLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA3OTEyQjAyNkY3MDBDMUEzNTkg
LyogVmVjdG9yTWF0aC5oICovOyB9OwotCQlGRDMxNjBCRjEyQjAyNzJBMDBDMUEzNTkgLyogQXVk
aW9GaWxlUmVhZGVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDMxNjBCOTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmgg
Ki87IH07CisJCUZEMzE2MEJGMTJCMDI3MkEwMEMxQTM1OSAvKiAobnVsbCkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IH07CiAJCUZEMzU5MTkwMTM4REIyMjAwMEUxRUJFQyAv
KiBBdWRpb1BhcmFtVGltZWxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZEMzU5MThFMTM4REIyMjAwMEUxRUJFQyAvKiBBdWRpb1BhcmFtVGltZWxp
bmUuaCAqLzsgfTsKIAkJRkQ0NUE5NEYxNzVEM0YzRTAwQzIxRUM4IC8qIFNoYXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDA4QTg3RjE3NUQzOTI2
MDAyQ0QzNjAgLyogU2hhcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGRDQ1QTk1MjE3NUQzRjNFMDBDMjFFQzggLyogU2hhcGVPdXRzaWRlSW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQwOEE4
ODcxNzVEMzkyNjAwMkNEMzYwIC8qIFNoYXBlT3V0c2lkZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTY1MTMsNiArMTY1MTQsNyBAQAog
CQlFMzk4RkMyMzFEQzMyQTFCMDAzQzQ2ODQgLyogRE9NSklUSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRIZWxwZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElE
TENvbnZlcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSURMQ29u
dmVydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0E3NzY2NjFEQzg1RDIyMDBC
NjkwRDggLyogRE9NSklUSURMVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01KSVRJRExUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQTg2RkMx
MjY5NUVCNDgwMDU5MjY0RCAvKiBDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0FFNkNEMTIyNTJGMjcwMDBDNzBCNTAgLyog
QWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzQUZBOTY0MURBNkU5MDgwMDI4NjFCRCAvKiBKU05vZGVET01KSVQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRE9NSklULmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNBRkQ3QUIyNTVGNTBEQzAwRTVFMzBFIC8q
IFdvcmtlclRocmVhZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyVGhyZWFkVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgwODAsNiArMjgwODIsNyBAQAogCQkJCUIy
QzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAogCQkJCUUxRUU4QjZCMjQxMkIyQTcw
MEU3OTRENiAvKiB4ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYgLyogQWJvcnRh
YmxlVGFza1F1ZXVlLmggKi8sCisJCQkJRTNBODZGQzEyNjk1RUI0ODAwNTkyNjREIC8qIENhcHRp
b25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQzMzMEEyMjExM0VDMTk2QjAwMDBCNDVC
IC8qIENvbG9yQ2hvb3Nlci5oICovLAogCQkJCUMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBD
b2xvckNob29zZXJDbGllbnQuaCAqLywKIAkJCQlCQ0M4Q0ZDQTA5ODZDRDI0MDAxNDBCRjIgLyog
Q29sb3JEYXRhLmdwZXJmICovLApAQCAtMzE2MTMsNiArMzE2MTYsNyBAQAogCQkJaXNhID0gUEJY
SGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCisJCQkJRkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIChudWxsKSBpbiBIZWFk
ZXJzICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAvKiBBYm9ydENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNp
Z25hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFi
c3RyYWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzc3LDggKzMxNzgxLDYgQEAK
IAkJCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDgzMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Zp
bGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQyRiAv
KiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0Q1NTk2OTIxNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjgxOEQ4QTM0OTAwNjM3NDZEIC8qIEF1
ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRFMkQ1NUIxNTlF
NjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTk5
NSw2ICszMTk5Nyw3IEBACiAJCQkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0
eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE5M0JCRjFGNUUwRUVEMDA4OEYzRTYgLyogQ2Fu
dmFzVGV4dEFsaWduLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE5M0JDMDFGNUUwRUVEMDA4OEYz
RTYgLyogQ2FudmFzVGV4dEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0E4NkZDMzI2
OTVFQjQ4MDA1OTI2NEQgLyogQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3OUQwODY4MTYyRjIwRTgwMERCODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzlEMDg2QjE2MkYyMUY5MDBEQjg2NTggLyogQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QjcxMTZE
MUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEw
MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLKQogCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENhcHRpb25QcmVmZXJlbmNl
c0RlbGVnYXRlPiYgY2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+
PiBkZWxlZ2F0ZTsKKyAgICByZXR1cm4gZGVsZWdhdGUuZ2V0KCk7Cit9CisKIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpDYXB0aW9uRGlzcGxheU1v
ZGU+JiBjYWNoZWRDYXB0aW9uRGlzcGxheU1vZGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxzdGQ6Om9wdGlvbmFsPENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpDYXB0aW9u
RGlzcGxheU1vZGU+PiBjYXB0aW9uRGlzcGxheU1vZGU7CkBAIC0xNzcsMTcgKzE4Myw5IEBAIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW8KIAogICAgIHJldHVybiBwbGF0
Zm9ybUNhcHRpb25EaXNwbGF5TW9kZSgpOwogfQotICAgIAotdm9pZCBDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWVkaWFBRjo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBtb2RlKQotewotICAgIGlmICh0ZXN0aW5nTW9kZSgpIHx8
ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKLSAgICAgICAgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKG1vZGUpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKGNhcHRpb25EaXNwbGF5TW9kZSgpID09IE1hbnVhbCkKLSAgICAgICAg
cmV0dXJuOwogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNl
dENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uRGlzcGxheU1vZGUgbW9kZSkKK3sKICAgICBNQUNh
cHRpb25BcHBlYXJhbmNlRGlzcGxheVR5cGUgZGlzcGxheVR5cGUgPSBrTUFDYXB0aW9uQXBwZWFy
YW5jZURpc3BsYXlUeXBlRm9yY2VkT25seTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNl
IEF1dG9tYXRpYzoKQEAgLTIwNyw2ICsyMDUsMjQgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6c2V0QwogICAgIE1BQ2FwdGlvbkFwcGVhcmFuY2VTZXREaXNwbGF5VHlwZShr
TUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIsIGRpc3BsYXlUeXBlKTsKIH0KIAordm9pZCBD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRp
b25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBtb2RlKQoreworICAgIGlmICh0
ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKKyAgICAgICAg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKG1vZGUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNhcHRpb25EaXNwbGF5TW9kZSgpID09IE1h
bnVhbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlKCkpIHsKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKS0+c2V0RGlzcGxh
eU1vZGUobW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgcGxhdGZvcm1T
ZXRDYXB0aW9uRGlzcGxheU1vZGUobW9kZSk7Cit9CisKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OkNhcHRpb25EaXNwbGF5TW9kZSBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cGxhdGZv
cm1DYXB0aW9uRGlzcGxheU1vZGUoKQogewogICAgIE1BQ2FwdGlvbkFwcGVhcmFuY2VEaXNwbGF5
VHlwZSBkaXNwbGF5VHlwZSA9IE1BQ2FwdGlvbkFwcGVhcmFuY2VHZXREaXNwbGF5VHlwZShrTUFD
YXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpOwpAQCAtMjkxLDYgKzMwNywxMSBAQCB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0CiAgICAgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQogCit2b2lkIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZShzdGQ6OnVu
aXF1ZV9wdHI8Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+JiYgZGVsZWdhdGUpCit7CisgICAg
Y2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKSA9IFdURk1vdmUoZGVsZWdhdGUpOworfQorCiBT
dHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zV2luZG93Q1NTKCkg
Y29uc3QKIHsKICAgICBNQUNhcHRpb25BcHBlYXJhbmNlQmVoYXZpb3IgYmVoYXZpb3I7CkBAIC00
ODEsNiArNTAyLDExIEBAIGZsb2F0IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXAK
ICNlbmRpZgogfQogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwbGF0Zm9y
bVNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCit7CisgICAgTUFD
YXB0aW9uQXBwZWFyYW5jZUFkZFNlbGVjdGVkTGFuZ3VhZ2Uoa01BQ2FwdGlvbkFwcGVhcmFuY2VE
b21haW5Vc2VyLCBsYW5ndWFnZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKK30KKwogdm9pZCBD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSkKIHsKICAgICBpZiAoQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2Fw
dGlvbkRpc3BsYXlNb2RlKCkgPT0gTWFudWFsKQpAQCAtNDkxLDcgKzUxNywxMiBAQCB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBNQUNhcHRpb25BcHBlYXJhbmNlQWRkU2VsZWN0ZWRMYW5ndWFnZShrTUFDYXB0aW9u
QXBwZWFyYW5jZURvbWFpblVzZXIsIGxhbmd1YWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwor
ICAgIGlmIChjYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSgpKSB7CisgICAgICAgIGNhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlKCktPnNldFByZWZlcnJlZExhbmd1YWdlKGxhbmd1YWdlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBsYXRmb3JtU2V0UHJlZmVycmVkTGFuZ3VhZ2Uo
bGFuZ3VhZ2UpOwogfQogCiBWZWN0b3I8U3RyaW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVk
aWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmgJKHJldmlzaW9uIDI3
OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUYuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShWSURFTykK
IAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJDYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNp
bmNsdWRlICJDb2xvci5oIgogCkBAIC00NCw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uRGlzcGxheU1vZGUpIG92ZXJyaWRlOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHRpb25EaXNwbGF5TW9kZSBwbGF0Zm9ybUNhcHRpb25E
aXNwbGF5TW9kZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHBsYXRmb3JtU2V0
Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25EaXNwbGF5TW9kZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgc2V0Q2FjaGVkQ2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25EaXNwbGF5
TW9kZSk7CiAKICAgICBib29sIHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsK
QEAgLTU4LDYgKzYwLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExh
bmd1YWdlcygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZl
Y3RvcjxTdHJpbmc+IHBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgcGxhdGZvcm1TZXRQcmVmZXJyZWRMYW5ndWFnZShjb25zdCBTdHJp
bmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDYWNoZWRQcmVmZXJyZWRM
YW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIAogICAgIHZvaWQgc2V0UHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpYyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKQEAgLTY2LDYgKzY5
LDggQEAgcHVibGljOgogICAgIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBzaG91bGRGaWx0ZXJUcmFja01lbnUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q2FwdGlvblBy
ZWZlcmVuY2VzRGVsZWdhdGUoc3RkOjp1bmlxdWVfcHRyPENhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlPiYmKTsKICNlbHNlCiAgICAgYm9vbCBzaG91bGRGaWx0ZXJUcmFja01lbnUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
YXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLKQorCisjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5DYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSgpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlNb2RlKENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OkNhcHRpb25EaXNwbGF5TW9kZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZExh
bmd1YWdlKGNvbnN0IFN0cmluZyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA3LTA3ICBQZXIg
QXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBDYXB0aW9uIHByZWZlcmVu
Y2VzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc3NDIKKyAgICAgICAgPHJkYXI6Ly83OTA0MDUyNj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJjbGFzcyB0aGUgQ2Fw
dGlvbiB1c2VyIHByZWZlcmVuY2VzIGRlbGVnYXRlLCB3aGljaCB3aWxsIHNlbmQgbWVzc2FnZXMg
dG8gdGhlIFVJIHByb2Nlc3MsIHJlcXVlc3RpbmcgdG8gc2V0IHRoZSBwcmVmZXJlbmNlcy4KKwor
ICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OnNldENhcHRpb25EaXNwbGF5TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6c2V0Q2FwdGlvbkxhbmd1YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRl
OjpzZXREaXNwbGF5TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNhcHRpb25QcmVmZXJlbmNl
c0RlbGVnYXRlOjpzZXRQcmVmZXJyZWRMYW5ndWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjEt
MDctMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwbG95
IHNtYXJ0IHBvaW50ZXJzIGluIEV2ZW50SGFuZGxlciBhbmQgVXNlcklucHV0QnJpZGdlCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY2Miw2ICs2NjIsNyBAQCBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFuCiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0KIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luVGV4dEFubm90YXRpb24ubW0KIAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
YXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIs
MTAgQEAKICNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrSGFzaFNldC5oPgogCisjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykK
KyNpbmNsdWRlIDxXZWJDb3JlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaD4KKyNlbmRpZgorCiBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIE5hdmlnYXRpb247CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
bjsKQEAgLTQwNCw2ICs0MDgsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHNob3VsZEVu
YWJsZVJlbW90ZUluc3BlY3RvcigpOwogI2VuZGlmCiAKKyNpZiBIQVZFKE1FRElBX0FDQ0VTU0lC
SUxJVFlfRlJBTUVXT1JLKQorICAgIHZvaWQgc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKFdlYkNvcmU6
OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSk7CisgICAgdm9pZCBz
ZXRDYXB0aW9uTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJ
c1ByZXdhcm1lZCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtOTEsNCArOTEsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVj
ZWl2CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIElzQVhBdXRoZW50aWNhdGVkKGF1ZGl0X3Rva2Vu
X3QgYXVkaXRUb2tlbikgLT4gKGJvb2wgYXV0aGVudGljYXRlZCkgU3luY2hyb25vdXMKICNlbmRp
ZgorCisjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKyAgICBTZXRDYXB0
aW9uRGlzcGxheU1vZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlvbkRp
c3BsYXlNb2RlIG1vZGUpCisgICAgU2V0Q2FwdGlvbkxhbmd1YWdlKFN0cmluZyBsYW5ndWFnZSkK
KyNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW1wb3J0ICJXS1R5cGVSZWZXcmFwcGVyLmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCi0j
aW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBvcnQgPHN5cy9zeXNj
dGwuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1Njb3Bl
Lmg+CkBAIC01MywxMCArNTIsMTYgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUlu
c3BlY3RvckNvbnN0YW50cy5oPgogI2VuZGlmCiAKKyNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLKQorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIlRDQ1NvZnRM
aW5rLmgiCiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgU2Vjb25kcyB1bmV4cGVjdGVk
QWN0aXZpdHlEdXJhdGlvbiA9IDEwX3M7CkBAIC0yMTAsNiArMjE1LDE4IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjplbmFibGVSZW1vdGVJbnNwZWMKIH0KICNlbmRpZgogCisjaWYgSEFWRShNRURJ
QV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRDYXB0
aW9uRGlzcGxheU1vZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlvbkRp
c3BsYXlNb2RlIGRpc3BsYXlNb2RlKQoreworICAgIFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNldENhcHRpb25EaXNwbGF5TW9kZShkaXNwbGF5TW9kZSk7
Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRDYXB0aW9uTGFuZ3VhZ2UoY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSkKK3sKKyAgICBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVk
aWFBRjo6cGxhdGZvcm1TZXRQcmVmZXJyZWRMYW5ndWFnZShsYW5ndWFnZSk7Cit9CisjZW5kaWYK
Kwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVk
ZWQoKQogewogICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNl
cnZlcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjc5NjM5KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTkxNSw2ICs1OTE1LDggQEAK
IAkJRTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
Mzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM5NjI4RTQyMzk3MUYzNDAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTNBODZGQkIyNjk1OEQ4MzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNl
c0RlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0
RCAvKiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzQkNFODc3MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVy
ZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCQ0U4NzgyNjcyNTIxMjAwMTFEOERC
IC8qIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDQUFBNDMy
NDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05ODM2LDYgKzk4MzgsOCBAQAogCQkJCUY0M0E5Q0RFMjVE
NzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwICovLAogCQkJCUY0
M0E5Q0REMjVENzJFMEMwMDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuaCAqLywK
IAkJCQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
LmggKi8sCisJCQkJRTNBODZGQkMyNjk1OEUzMzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJl
bmNlc0RlbGVnYXRlLmNwcCAqLywKKwkJCQlFM0E4NkZCQjI2OTU4RDgzMDA1OTI2NEQgLyogV2Vi
Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAz
MzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2MDEwRjQzNzhEMDA1
OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi8sCiAJCQkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
YXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oIgorCisjaWYg
SEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKworI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZTo6c2V0RGlzcGxh
eU1vZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlvbkRpc3BsYXlNb2Rl
IGRpc3BsYXlNb2RlKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U2V0Q2FwdGlv
bkRpc3BsYXlNb2RlKGRpc3BsYXlNb2RlKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FwdGlvblByZWZl
cmVuY2VzRGVsZWdhdGU6OnNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3Vh
Z2UpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTZXRDYXB0aW9uTGFuZ3VhZ2Uo
bGFuZ3VhZ2UpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVm
ZXJlbmNlc0RlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRp
b25QcmVmZXJlbmNlc0RlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKworI2luY2x1ZGUgPFdl
YkNvcmUvQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxl
Z2F0ZSgpIHsgfQorCisgICAgdm9pZCBzZXREaXNwbGF5TW9kZShXZWJDb3JlOjpDYXB0aW9uVXNl
clByZWZlcmVuY2VzOjpDYXB0aW9uRGlzcGxheU1vZGUpIGZpbmFsOworICAgIHZvaWQgc2V0UHJl
ZmVycmVkTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJikgZmluYWw7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE1Myw3ICsxNTMsOCBAQAogI2VuZGlmCiAKICNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLKQotI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuaD4KKyNpbXBvcnQgIldlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgiCisjaW1w
b3J0IDxXZWJDb3JlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmg+CiAjZW5kaWYKIAog
I2ltcG9ydCA8V2ViQ29yZS9NZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGluay5oPgpAQCAtNDYzLDYg
KzQ2NCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAKICAg
ICBTeXN0ZW1Tb3VuZE1hbmFnZXI6OnNpbmdsZXRvbigpLnNldFN5c3RlbVNvdW5kRGVsZWdhdGUo
bWFrZVVuaXF1ZTxXZWJTeXN0ZW1Tb3VuZERlbGVnYXRlPigpKTsKIAorI2lmIEhBVkUoTUVESUFf
QUNDRVNTSUJJTElUWV9GUkFNRVdPUkspCisgICAgV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUY6OnNldENhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlKG1ha2VVbmlxdWU8V2Vi
Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+KCkpOworI2VuZGlmCisKICNpZiBQTEFURk9STShN
QUMpCiAgICAgaWYgKGNhbkxvYWRfSElTZXJ2aWNlc19fQVhTZXRBdWRpdFRva2VuSXNBdXRoZW50
aWNhdGVkQ2FsbGJhY2soKSkKICAgICAgICAgc29mdExpbmtfSElTZXJ2aWNlc19fQVhTZXRBdWRp
dFRva2VuSXNBdXRoZW50aWNhdGVkQ2FsbGJhY2soaXNBWEF1dGhlbnRpY2F0ZWRDYWxsYmFjayk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433029</attachid>
            <date>2021-07-07 08:15:20 -0700</date>
            <delta_ts>2021-07-07 08:35:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227742-20210707171519.patch</filename>
            <type>text/plain</type>
            <size>27934</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA3LTA3ICBQZXIgQXJu
ZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBDYXB0aW9uIHByZWZlcmVuY2Vz
IGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjc3NDIKKyAgICAgICAgPHJkYXI6Ly83OTA0MDUyNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBDYXB0aW9uIHVzZXIg
cHJlZmVyZW5jZXMgZGVsZWdhdGUsIHdoaWNoIGNhbiBiZSBzdWJjbGFzc2VkIHRvIHBlcmZvcm0g
dGhlIHdvcmsgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5j
ZSB0aGlzIGlzIG5vdCB0cml2aWFsIHRvIGFkZCBhIHRlc3QgZm9yLiBUaGlzIGhhcyBiZWVuIG1h
bnVhbGx5IHRlc3RlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uRGlzcGxheU1v
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUY6OnBsYXRmb3JtU2V0Q2FwdGlvbkRpc3BsYXlNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uRGlzcGxheU1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldENhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNldFByZWZlcnJlZExhbmd1YWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRMYW5ndWFn
ZSk6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0NhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU6On5DYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uUHJlZmVyZW5jZXNEZWxl
Z2F0ZTo6c2V0RGlzcGxheU1vZGUpOgorCiAyMDIxLTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3
OTYyOC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTE3Myw2ICs1MTcz
LDcgQEAKIAkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEMw
MjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5
MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252
ZXJ0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBE
OCAvKiBET01KSVRJRExUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJRTNBODZGQzMyNjk1RUI0ODAwNTkyNjREIC8qIENhcHRpb25QcmVmZXJl
bmNlc0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0E4NkZDMTI2OTVFQjQ4MDA1OTI2NEQgLyogQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
M0FGRDdBRDI1NUY1MEVCMDBFNUUzMEUgLyogV29ya2VyVGhyZWFkVHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNBRkQ3QUIyNTVGNTBEQzAwRTVF
MzBFIC8qIFdvcmtlclRocmVhZFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVT
Y3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
QjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEVFMUQ3RjRDQTkwMEIw
QzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTgxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxl
U2NyaXB0Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTU1MjMsNyArNTUyNCw3IEBACiAJCUZEMzE2MEFCMTJCMDI2RjcwMEMxQTM1OSAv
KiBSZXZlcmJDb252b2x2ZXJTdGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQzMTYwNzUxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYkNvbnZvbHZl
clN0YWdlLmggKi87IH07CiAJCUZEMzE2MEFEMTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJJbnB1
dEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNzcxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYklucHV0QnVmZmVyLmggKi87IH07CiAJ
CUZEMzE2MEFGMTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0b3JNYXRoLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA3OTEyQjAyNkY3MDBDMUEzNTkg
LyogVmVjdG9yTWF0aC5oICovOyB9OwotCQlGRDMxNjBCRjEyQjAyNzJBMDBDMUEzNTkgLyogQXVk
aW9GaWxlUmVhZGVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDMxNjBCOTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmgg
Ki87IH07CisJCUZEMzE2MEJGMTJCMDI3MkEwMEMxQTM1OSAvKiAobnVsbCkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IH07CiAJCUZEMzU5MTkwMTM4REIyMjAwMEUxRUJFQyAv
KiBBdWRpb1BhcmFtVGltZWxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZEMzU5MThFMTM4REIyMjAwMEUxRUJFQyAvKiBBdWRpb1BhcmFtVGltZWxp
bmUuaCAqLzsgfTsKIAkJRkQ0NUE5NEYxNzVEM0YzRTAwQzIxRUM4IC8qIFNoYXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDA4QTg3RjE3NUQzOTI2
MDAyQ0QzNjAgLyogU2hhcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGRDQ1QTk1MjE3NUQzRjNFMDBDMjFFQzggLyogU2hhcGVPdXRzaWRlSW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQwOEE4
ODcxNzVEMzkyNjAwMkNEMzYwIC8qIFNoYXBlT3V0c2lkZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTY1MTMsNiArMTY1MTQsNyBAQAog
CQlFMzk4RkMyMzFEQzMyQTFCMDAzQzQ2ODQgLyogRE9NSklUSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRIZWxwZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElE
TENvbnZlcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSURMQ29u
dmVydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0E3NzY2NjFEQzg1RDIyMDBC
NjkwRDggLyogRE9NSklUSURMVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01KSVRJRExUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQTg2RkMx
MjY5NUVCNDgwMDU5MjY0RCAvKiBDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0FFNkNEMTIyNTJGMjcwMDBDNzBCNTAgLyog
QWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzQUZBOTY0MURBNkU5MDgwMDI4NjFCRCAvKiBKU05vZGVET01KSVQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRE9NSklULmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNBRkQ3QUIyNTVGNTBEQzAwRTVFMzBFIC8q
IFdvcmtlclRocmVhZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyVGhyZWFkVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgwODAsNiArMjgwODIsNyBAQAogCQkJCUIy
QzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAogCQkJCUUxRUU4QjZCMjQxMkIyQTcw
MEU3OTRENiAvKiB4ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYgLyogQWJvcnRh
YmxlVGFza1F1ZXVlLmggKi8sCisJCQkJRTNBODZGQzEyNjk1RUI0ODAwNTkyNjREIC8qIENhcHRp
b25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQzMzMEEyMjExM0VDMTk2QjAwMDBCNDVC
IC8qIENvbG9yQ2hvb3Nlci5oICovLAogCQkJCUMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBD
b2xvckNob29zZXJDbGllbnQuaCAqLywKIAkJCQlCQ0M4Q0ZDQTA5ODZDRDI0MDAxNDBCRjIgLyog
Q29sb3JEYXRhLmdwZXJmICovLApAQCAtMzE2MTMsNiArMzE2MTYsNyBAQAogCQkJaXNhID0gUEJY
SGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCisJCQkJRkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIChudWxsKSBpbiBIZWFk
ZXJzICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAvKiBBYm9ydENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNp
Z25hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFi
c3RyYWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzc3LDggKzMxNzgxLDYgQEAK
IAkJCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDgzMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Zp
bGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQyRiAv
KiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0Q1NTk2OTIxNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjgxOEQ4QTM0OTAwNjM3NDZEIC8qIEF1
ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRFMkQ1NUIxNTlF
NjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTk5
NSw2ICszMTk5Nyw3IEBACiAJCQkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0
eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE5M0JCRjFGNUUwRUVEMDA4OEYzRTYgLyogQ2Fu
dmFzVGV4dEFsaWduLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE5M0JDMDFGNUUwRUVEMDA4OEYz
RTYgLyogQ2FudmFzVGV4dEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0E4NkZDMzI2
OTVFQjQ4MDA1OTI2NEQgLyogQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3OUQwODY4MTYyRjIwRTgwMERCODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzlEMDg2QjE2MkYyMUY5MDBEQjg2NTggLyogQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QjcxMTZE
MUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEw
MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLKQogCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENhcHRpb25QcmVmZXJlbmNl
c0RlbGVnYXRlPiYgY2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+
PiBkZWxlZ2F0ZTsKKyAgICByZXR1cm4gZGVsZWdhdGUuZ2V0KCk7Cit9CisKIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpDYXB0aW9uRGlzcGxheU1v
ZGU+JiBjYWNoZWRDYXB0aW9uRGlzcGxheU1vZGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxzdGQ6Om9wdGlvbmFsPENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpDYXB0aW9u
RGlzcGxheU1vZGU+PiBjYXB0aW9uRGlzcGxheU1vZGU7CkBAIC0xNzcsMTcgKzE4Myw5IEBAIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW8KIAogICAgIHJldHVybiBwbGF0
Zm9ybUNhcHRpb25EaXNwbGF5TW9kZSgpOwogfQotICAgIAotdm9pZCBDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWVkaWFBRjo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBtb2RlKQotewotICAgIGlmICh0ZXN0aW5nTW9kZSgpIHx8
ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKLSAgICAgICAgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKG1vZGUpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKGNhcHRpb25EaXNwbGF5TW9kZSgpID09IE1hbnVhbCkKLSAgICAgICAg
cmV0dXJuOwogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNl
dENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uRGlzcGxheU1vZGUgbW9kZSkKK3sKICAgICBNQUNh
cHRpb25BcHBlYXJhbmNlRGlzcGxheVR5cGUgZGlzcGxheVR5cGUgPSBrTUFDYXB0aW9uQXBwZWFy
YW5jZURpc3BsYXlUeXBlRm9yY2VkT25seTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNl
IEF1dG9tYXRpYzoKQEAgLTIwNyw2ICsyMDUsMjQgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6c2V0QwogICAgIE1BQ2FwdGlvbkFwcGVhcmFuY2VTZXREaXNwbGF5VHlwZShr
TUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIsIGRpc3BsYXlUeXBlKTsKIH0KIAordm9pZCBD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRp
b25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBtb2RlKQoreworICAgIGlmICh0
ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKKyAgICAgICAg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKG1vZGUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNhcHRpb25EaXNwbGF5TW9kZSgpID09IE1h
bnVhbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlKCkpIHsKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKS0+c2V0RGlzcGxh
eU1vZGUobW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgcGxhdGZvcm1T
ZXRDYXB0aW9uRGlzcGxheU1vZGUobW9kZSk7Cit9CisKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OkNhcHRpb25EaXNwbGF5TW9kZSBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cGxhdGZv
cm1DYXB0aW9uRGlzcGxheU1vZGUoKQogewogICAgIE1BQ2FwdGlvbkFwcGVhcmFuY2VEaXNwbGF5
VHlwZSBkaXNwbGF5VHlwZSA9IE1BQ2FwdGlvbkFwcGVhcmFuY2VHZXREaXNwbGF5VHlwZShrTUFD
YXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpOwpAQCAtMjkxLDYgKzMwNywxMSBAQCB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0CiAgICAgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQogCit2b2lkIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZShzdGQ6OnVu
aXF1ZV9wdHI8Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+JiYgZGVsZWdhdGUpCit7CisgICAg
Y2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKSA9IFdURk1vdmUoZGVsZWdhdGUpOworfQorCiBT
dHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zV2luZG93Q1NTKCkg
Y29uc3QKIHsKICAgICBNQUNhcHRpb25BcHBlYXJhbmNlQmVoYXZpb3IgYmVoYXZpb3I7CkBAIC00
ODEsNiArNTAyLDExIEBAIGZsb2F0IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXAK
ICNlbmRpZgogfQogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwbGF0Zm9y
bVNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCit7CisgICAgTUFD
YXB0aW9uQXBwZWFyYW5jZUFkZFNlbGVjdGVkTGFuZ3VhZ2Uoa01BQ2FwdGlvbkFwcGVhcmFuY2VE
b21haW5Vc2VyLCBsYW5ndWFnZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKK30KKwogdm9pZCBD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSkKIHsKICAgICBpZiAoQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2Fw
dGlvbkRpc3BsYXlNb2RlKCkgPT0gTWFudWFsKQpAQCAtNDkxLDcgKzUxNywxMiBAQCB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBNQUNhcHRpb25BcHBlYXJhbmNlQWRkU2VsZWN0ZWRMYW5ndWFnZShrTUFDYXB0aW9u
QXBwZWFyYW5jZURvbWFpblVzZXIsIGxhbmd1YWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwor
ICAgIGlmIChjYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSgpKSB7CisgICAgICAgIGNhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlKCktPnNldFByZWZlcnJlZExhbmd1YWdlKGxhbmd1YWdlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBsYXRmb3JtU2V0UHJlZmVycmVkTGFuZ3VhZ2Uo
bGFuZ3VhZ2UpOwogfQogCiBWZWN0b3I8U3RyaW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVk
aWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmgJKHJldmlzaW9uIDI3
OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlh
QUYuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShWSURFTykK
IAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJDYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNp
bmNsdWRlICJDb2xvci5oIgogCkBAIC00NCw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uRGlzcGxheU1vZGUpIG92ZXJyaWRlOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHRpb25EaXNwbGF5TW9kZSBwbGF0Zm9ybUNhcHRpb25E
aXNwbGF5TW9kZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHBsYXRmb3JtU2V0
Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25EaXNwbGF5TW9kZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgc2V0Q2FjaGVkQ2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25EaXNwbGF5
TW9kZSk7CiAKICAgICBib29sIHVzZXJQcmVmZXJzQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsK
QEAgLTU4LDYgKzYwLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExh
bmd1YWdlcygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZl
Y3RvcjxTdHJpbmc+IHBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgcGxhdGZvcm1TZXRQcmVmZXJyZWRMYW5ndWFnZShjb25zdCBTdHJp
bmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDYWNoZWRQcmVmZXJyZWRM
YW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIAogICAgIHZvaWQgc2V0UHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpYyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKQEAgLTY2LDYgKzY5
LDggQEAgcHVibGljOgogICAgIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBzaG91bGRGaWx0ZXJUcmFja01lbnUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q2FwdGlvblBy
ZWZlcmVuY2VzRGVsZWdhdGUoc3RkOjp1bmlxdWVfcHRyPENhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlPiYmKTsKICNlbHNlCiAgICAgYm9vbCBzaG91bGRGaWx0ZXJUcmFja01lbnUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
YXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJ
VFlfRlJBTUVXT1JLKQorCisjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5DYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSgpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlNb2RlKENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OkNhcHRpb25EaXNwbGF5TW9kZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZExh
bmd1YWdlKGNvbnN0IFN0cmluZyYpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA3LTA3ICBQ
ZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBDYXB0aW9uIHByZWZl
cmVuY2VzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjc3NDIKKyAgICAgICAgPHJkYXI6Ly83OTA0MDUyNj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdWJjbGFzcyB0aGUg
Q2FwdGlvbiB1c2VyIHByZWZlcmVuY2VzIGRlbGVnYXRlLCB3aGljaCB3aWxsIHNlbmQgbWVzc2Fn
ZXMgdG8gdGhlIFVJIHByb2Nlc3MsIHJlcXVlc3RpbmcgdG8gc2V0IHRoZSBwcmVmZXJlbmNlcy4K
KworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnNldENhcHRpb25EaXNwbGF5TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6c2V0Q2FwdGlvbkxhbmd1YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlOjpzZXREaXNwbGF5TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNhcHRpb25QcmVmZXJl
bmNlc0RlbGVnYXRlOjpzZXRQcmVmZXJyZWRMYW5ndWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIw
MjEtMDctMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVw
bG95IHNtYXJ0IHBvaW50ZXJzIGluIEV2ZW50SGFuZGxlciBhbmQgVXNlcklucHV0QnJpZGdlCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY2Miw2ICs2NjIsNyBAQCBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFuCiBXZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0KIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KIAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiAr
NjIsMTAgQEAKICNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrSGFzaFNldC5oPgogCisjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09S
SykKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE5hdmlnYXRpb247CiBjbGFzcyBQYWdlQ29uZmlndXJh
dGlvbjsKQEAgLTQwNCw2ICs0MDgsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHNob3Vs
ZEVuYWJsZVJlbW90ZUluc3BlY3RvcigpOwogI2VuZGlmCiAKKyNpZiBIQVZFKE1FRElBX0FDQ0VT
U0lCSUxJVFlfRlJBTUVXT1JLKQorICAgIHZvaWQgc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKFdlYkNv
cmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSk7CisgICAgdm9p
ZCBzZXRDYXB0aW9uTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogcHJvdGVjdGVk
OgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUq
LCBJc1ByZXdhcm1lZCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtOTEsNCArOTEsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIElzQVhBdXRoZW50aWNhdGVkKGF1ZGl0X3Rv
a2VuX3QgYXVkaXRUb2tlbikgLT4gKGJvb2wgYXV0aGVudGljYXRlZCkgU3luY2hyb25vdXMKICNl
bmRpZgorCisjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKyAgICBTZXRD
YXB0aW9uRGlzcGxheU1vZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlv
bkRpc3BsYXlNb2RlIG1vZGUpCisgICAgU2V0Q2FwdGlvbkxhbmd1YWdlKFN0cmluZyBsYW5ndWFn
ZSkKKyNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW1wb3J0ICJXS1R5cGVSZWZXcmFwcGVyLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
Ci0jaW1wb3J0IDxwYWwvY2YvQXVkaW9Ub29sYm94U29mdExpbmsuaD4KICNpbXBvcnQgPHN5cy9z
eXNjdGwuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1Nj
b3BlLmg+CkBAIC01MywxMCArNTIsMTYgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JlbW90
ZUluc3BlY3RvckNvbnN0YW50cy5oPgogI2VuZGlmCiAKKyNpZiBIQVZFKE1FRElBX0FDQ0VTU0lC
SUxJVFlfRlJBTUVXT1JLKQorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUYuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIlRDQ1Nv
ZnRMaW5rLmgiCiAjZW5kaWYKIAorI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5r
Lmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgU2Vjb25kcyB1bmV4cGVj
dGVkQWN0aXZpdHlEdXJhdGlvbiA9IDEwX3M7CkBAIC0yMTAsNiArMjE1LDE4IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjplbmFibGVSZW1vdGVJbnNwZWMKIH0KICNlbmRpZgogCisjaWYgSEFWRShN
RURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRD
YXB0aW9uRGlzcGxheU1vZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlv
bkRpc3BsYXlNb2RlIGRpc3BsYXlNb2RlKQoreworICAgIFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNldENhcHRpb25EaXNwbGF5TW9kZShkaXNwbGF5TW9k
ZSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRDYXB0aW9uTGFuZ3VhZ2UoY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSkKK3sKKyAgICBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRjo6cGxhdGZvcm1TZXRQcmVmZXJyZWRMYW5ndWFnZShsYW5ndWFnZSk7Cit9CisjZW5k
aWYKKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZO
ZWVkZWQoKQogewogICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0
eVNlcnZlcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjc5NjM5KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTkxNSw2ICs1OTE1LDgg
QEAKIAkJRTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM5NjI4RTQyMzk3MUYzNDAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTNBODZGQkIyNjk1OEQ4MzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJl
bmNlc0RlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVn
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQTg2RkJDMjY5NThFMzMwMDU5
MjY0RCAvKiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzQkNFODc3MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJl
ZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVByZWZlcmVuY2Vz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCQ0U4NzgyNjcyNTIxMjAwMTFE
OERCIC8qIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5UHJlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDQUFB
NDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05ODM2LDYgKzk4MzgsOCBAQAogCQkJCUY0M0E5Q0RF
MjVENzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwICovLAogCQkJ
CUY0M0E5Q0REMjVENzJFMEMwMDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuaCAq
LywKIAkJCQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmggKi8sCisJCQkJRTNBODZGQkMyNjk1OEUzMzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVm
ZXJlbmNlc0RlbGVnYXRlLmNwcCAqLywKKwkJCQlFM0E4NkZCQjI2OTU4RDgzMDA1OTI2NEQgLyog
V2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0RkJC
MDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2MDEwRjQzNzhE
MDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi8sCiAJCQkJM0Y4N0I5QkExNTg5M0Y2MzAw
OTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVmZXJlbmNlc0Rl
bGVnYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oIgorCisj
aWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKworI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZTo6c2V0RGlz
cGxheU1vZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlvbkRpc3BsYXlN
b2RlIGRpc3BsYXlNb2RlKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U2V0Q2Fw
dGlvbkRpc3BsYXlNb2RlKGRpc3BsYXlNb2RlKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FwdGlvblBy
ZWZlcmVuY2VzRGVsZWdhdGU6OnNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFu
Z3VhZ2UpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTZXRDYXB0aW9uTGFuZ3Vh
Z2UobGFuZ3VhZ2UpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNh
cHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKworI2luY2x1ZGUg
PFdlYkNvcmUvQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlIGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDYXB0aW9uUHJlZmVyZW5jZXNE
ZWxlZ2F0ZSgpIHsgfQorCisgICAgdm9pZCBzZXREaXNwbGF5TW9kZShXZWJDb3JlOjpDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpDYXB0aW9uRGlzcGxheU1vZGUpIGZpbmFsOworICAgIHZvaWQgc2V0
UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJikgZmluYWw7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE1Myw3ICsxNTMsOCBAQAogI2VuZGlmCiAKICNpZiBIQVZFKE1FRElBX0FDQ0VTU0lC
SUxJVFlfRlJBTUVXT1JLKQotI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUYuaD4KKyNpbXBvcnQgIldlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmgiCisj
aW1wb3J0IDxXZWJDb3JlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmg+CiAjZW5kaWYK
IAogI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGluay5oPgpAQCAtNDYz
LDYgKzQ2NCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAK
ICAgICBTeXN0ZW1Tb3VuZE1hbmFnZXI6OnNpbmdsZXRvbigpLnNldFN5c3RlbVNvdW5kRGVsZWdh
dGUobWFrZVVuaXF1ZTxXZWJTeXN0ZW1Tb3VuZERlbGVnYXRlPigpKTsKIAorI2lmIEhBVkUoTUVE
SUFfQUNDRVNTSUJJTElUWV9GUkFNRVdPUkspCisgICAgV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OnNldENhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlKG1ha2VVbmlxdWU8
V2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+KCkpOworI2VuZGlmCisKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgaWYgKGNhbkxvYWRfSElTZXJ2aWNlc19fQVhTZXRBdWRpdFRva2VuSXNBdXRo
ZW50aWNhdGVkQ2FsbGJhY2soKSkKICAgICAgICAgc29mdExpbmtfSElTZXJ2aWNlc19fQVhTZXRB
dWRpdFRva2VuSXNBdXRoZW50aWNhdGVkQ2FsbGJhY2soaXNBWEF1dGhlbnRpY2F0ZWRDYWxsYmFj
ayk7Cg==
</data>
<flag name="review"
          id="455146"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433123</attachid>
            <date>2021-07-08 00:09:23 -0700</date>
            <delta_ts>2021-07-08 04:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227742-20210708090921.patch</filename>
            <type>text/plain</type>
            <size>27497</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA3LTA3ICBQZXIgQXJu
ZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFNldCBDYXB0aW9uIHByZWZlcmVuY2Vz
IGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjc3NDIKKyAgICAgICAgPHJkYXI6Ly83OTA0MDUyNj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIGEgQ2FwdGlvbiB1c2VyIHBy
ZWZlcmVuY2VzIGRlbGVnYXRlLCB3aGljaCBjYW4gYmUgc3ViY2xhc3NlZCB0byBwZXJmb3JtIHRo
ZSB3b3JrIGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2luY2Ug
dGhpcyBpcyBub3QgdHJpdmlhbCB0byBhZGQgYSB0ZXN0IGZvci4gVGhpcyBoYXMgYmVlbiBtYW51
YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbkRpc3BsYXlNb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFG
OjpwbGF0Zm9ybVNldENhcHRpb25EaXNwbGF5TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uUHJl
ZmVyZW5jZXNEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRjo6cGxhdGZvcm1TZXRQcmVmZXJyZWRMYW5ndWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkTGFuZ3VhZ2Up
OgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9DYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlOjp+Q2FwdGlvblByZWZlcmVu
Y2VzRGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdh
dGU6OnNldERpc3BsYXlNb2RlKToKKwogMjAyMS0wNy0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzk2
MjguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTUxNzMsNiArNTE3Myw3
IEBACiAJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhDMDIz
OTU3NDMwMDA2NThFQ0QgLyogTW90aW9uTWFuYWdlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQTc3NjY3MURDODVEMjgwMEI2OTBE
OCAvKiBET01KSVRJRExDb252ZXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0E3NzY2NTFEQzg1RDIyMDBCNjkwRDggLyogRE9NSklUSURMQ29udmVy
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
QTc3NjY4MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E3NzY2NjFEQzg1RDIyMDBCNjkwRDgg
LyogRE9NSklUSURMVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUUzQTg2RkMzMjY5NUVCNDgwMDU5MjY0RCAvKiBDYXB0aW9uUHJlZmVyZW5j
ZXNEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNBODZGQzEyNjk1RUI0ODAwNTkyNjREIC8qIENhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNB
RkQ3QUQyNTVGNTBFQjAwRTVFMzBFIC8qIFdvcmtlclRocmVhZFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQUZEN0FCMjU1RjUwREMwMEU1RTMw
RSAvKiBXb3JrZXJUaHJlYWRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQxRDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2Ny
aXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0Iy
RjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBFRTFEN0Y0Q0E5MDBCMEM5
RDEgLyogTG9hZGFibGVTY3JpcHRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU4MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNj
cmlwdENsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC01NTIzLDcgKzU1MjQsNiBAQAogCQlGRDMxNjBBQjEyQjAyNkY3MDBDMUEzNTkgLyog
UmV2ZXJiQ29udm9sdmVyU3RhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZEMzE2MDc1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJDb252b2x2ZXJT
dGFnZS5oICovOyB9OwogCQlGRDMxNjBBRDEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiSW5wdXRC
dWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDc3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJJbnB1dEJ1ZmZlci5oICovOyB9OwogCQlG
RDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkgLyogVmVjdG9yTWF0aC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNzkxMkIwMjZGNzAwQzFBMzU5IC8q
IFZlY3Rvck1hdGguaCAqLzsgfTsKLQkJRkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlv
RmlsZVJlYWRlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkQzMTYwQjkxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5oICov
OyB9OwogCQlGRDM1OTE5MDEzOERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRpbWVsaW5lLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDM1OTE4RTEz
OERCMjIwMDBFMUVCRUMgLyogQXVkaW9QYXJhbVRpbWVsaW5lLmggKi87IH07CiAJCUZENDVBOTRG
MTc1RDNGM0UwMEMyMUVDOCAvKiBTaGFwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQwOEE4N0YxNzVEMzkyNjAwMkNEMzYwIC8qIFNoYXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkQ0NUE5NTIx
NzVEM0YzRTAwQzIxRUM4IC8qIFNoYXBlT3V0c2lkZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDhBODg3MTc1RDM5MjYwMDJDRDM2MCAvKiBT
aGFwZU91dHNpZGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE2NTEzLDYgKzE2NTEzLDcgQEAKIAkJRTM5OEZDMjMxREMzMkExQjAwM0M0
Njg0IC8qIERPTUpJVEhlbHBlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRE9NSklUSGVscGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QTc3NjY1MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElETENvbnZlcnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTNBNzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSURMVHlwZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0E4NkZDMTI2OTVFQjQ4MDA1OTI2NEQgLyogQ2Fw
dGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNBRTZDRDEyMjUyRjI3MDAwQzcwQjUwIC8qIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBbGxEZXNjZW5kYW50
c0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0FGQTk2NDFE
QTZFOTA4MDAyODYxQkQgLyogSlNOb2RlRE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTTm9kZURPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQUZEN0FCMjU1RjUwREMwMEU1RTMwRSAvKiBXb3JrZXJUaHJlYWRUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlclRocmVhZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI4MDgwLDYgKzI4MDgxLDcgQEAKIAkJCQlCMkMzRDlFQzBEMDA2QzFEMDBFRjZGMjYg
LyogdGV4dCAqLywKIAkJCQlFMUVFOEI2QjI0MTJCMkE3MDBFNzk0RDYgLyogeHIgKi8sCiAJCQkJ
REZEQjkxMkNGOEU4OEE2REExQUQyNjRGIC8qIEFib3J0YWJsZVRhc2tRdWV1ZS5oICovLAorCQkJ
CUUzQTg2RkMxMjY5NUVCNDgwMDU5MjY0RCAvKiBDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5o
ICovLAogCQkJCUMzMzBBMjIxMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIuaCAqLywK
IAkJCQlDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi8s
CiAJCQkJQkNDOENGQ0EwOTg2Q0QyNDAwMTQwQkYyIC8qIENvbG9yRGF0YS5ncGVyZiAqLywKQEAg
LTMxNzc3LDggKzMxNzc5LDYgQEAKIAkJCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDgzMTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QUFB
QTNEMjVEMzYzMjAwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQ0Q1NTk2OTIxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmls
ZVJlYWRlck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZE
IC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjgx
OEQ4QTM0OTAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRFMkQ1NUIxNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMTk5NSw2ICszMTk5NSw3IEBACiAJCQkJNDk0ODRGQ0UxMDJDRjIz
QzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE5M0JCRjFG
NUUwRUVEMDA4OEYzRTYgLyogQ2FudmFzVGV4dEFsaWduLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QzE5M0JDMDFGNUUwRUVEMDA4OEYzRTYgLyogQ2FudmFzVGV4dEJhc2VsaW5lLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFM0E4NkZDMzI2OTVFQjQ4MDA1OTI2NEQgLyogQ2FwdGlvblByZWZlcmVuY2Vz
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OUQwODY4MTYyRjIwRTgwMERCODY1OCAv
KiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzlEMDg2QjE2
MkYyMUY5MDBEQjg2NTggLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3QjcxMTZEMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlLmgg
aW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCShyZXZpc2lvbiAyNzk2MzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBI
QVZFKE1FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLKQogCitzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPENhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlPiYgY2FwdGlvblByZWZlcmVuY2VzRGVsZWdh
dGUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8Q2FwdGlv
blByZWZlcmVuY2VzRGVsZWdhdGU+PiBkZWxlZ2F0ZTsKKyAgICByZXR1cm4gZGVsZWdhdGUuZ2V0
KCk7Cit9CisKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRp
YUFGOjpDYXB0aW9uRGlzcGxheU1vZGU+JiBjYWNoZWRDYXB0aW9uRGlzcGxheU1vZGUoKQogewog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpDYXB0aW9uRGlzcGxheU1vZGU+PiBjYXB0aW9uRGlzcGxheU1vZGU7CkBA
IC0xNzcsMTcgKzE4Myw5IEBAIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5
TW8KIAogICAgIHJldHVybiBwbGF0Zm9ybUNhcHRpb25EaXNwbGF5TW9kZSgpOwogfQotICAgIAot
dm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0Q2FwdGlvbkRpc3BsYXlNb2Rl
KENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBtb2RlKQotewotICAg
IGlmICh0ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKLSAg
ICAgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKG1vZGUp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGNhcHRpb25EaXNwbGF5TW9kZSgp
ID09IE1hbnVhbCkKLSAgICAgICAgcmV0dXJuOwogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNZWRpYUFGOjpwbGF0Zm9ybVNldENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uRGlzcGxheU1v
ZGUgbW9kZSkKK3sKICAgICBNQUNhcHRpb25BcHBlYXJhbmNlRGlzcGxheVR5cGUgZGlzcGxheVR5
cGUgPSBrTUFDYXB0aW9uQXBwZWFyYW5jZURpc3BsYXlUeXBlRm9yY2VkT25seTsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIEF1dG9tYXRpYzoKQEAgLTIwNyw2ICsyMDUsMjQgQEAgdm9p
ZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0QwogICAgIE1BQ2FwdGlvbkFwcGVh
cmFuY2VTZXREaXNwbGF5VHlwZShrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIsIGRpc3Bs
YXlUeXBlKTsKIH0KIAordm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0Q2Fw
dGlvbkRpc3BsYXlNb2RlKENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9k
ZSBtb2RlKQoreworICAgIGlmICh0ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlM
aWJyYXJ5KCkpIHsKKyAgICAgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6c2V0Q2FwdGlvbkRp
c3BsYXlNb2RlKG1vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNhcHRp
b25EaXNwbGF5TW9kZSgpID09IE1hbnVhbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNh
cHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlKCkpIHsKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2Vz
RGVsZWdhdGUoKS0+c2V0RGlzcGxheU1vZGUobW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgCisgICAgcGxhdGZvcm1TZXRDYXB0aW9uRGlzcGxheU1vZGUobW9kZSk7Cit9CisKIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBDYXB0aW9uVXNlclByZWZl
cmVuY2VzTWVkaWFBRjo6cGxhdGZvcm1DYXB0aW9uRGlzcGxheU1vZGUoKQogewogICAgIE1BQ2Fw
dGlvbkFwcGVhcmFuY2VEaXNwbGF5VHlwZSBkaXNwbGF5VHlwZSA9IE1BQ2FwdGlvbkFwcGVhcmFu
Y2VHZXREaXNwbGF5VHlwZShrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpOwpAQCAtMjkx
LDYgKzMwNywxMSBAQCB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0CiAg
ICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwog
fQogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZShzdGQ6OnVuaXF1ZV9wdHI8Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGU+
JiYgZGVsZWdhdGUpCit7CisgICAgY2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKSA9IFdURk1v
dmUoZGVsZWdhdGUpOworfQorCiBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6
OmNhcHRpb25zV2luZG93Q1NTKCkgY29uc3QKIHsKICAgICBNQUNhcHRpb25BcHBlYXJhbmNlQmVo
YXZpb3IgYmVoYXZpb3I7CkBAIC00ODEsNiArNTAyLDExIEBAIGZsb2F0IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGOjpjYXAKICNlbmRpZgogfQogCit2b2lkIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpwbGF0Zm9ybVNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYg
bGFuZ3VhZ2UpCit7CisgICAgTUFDYXB0aW9uQXBwZWFyYW5jZUFkZFNlbGVjdGVkTGFuZ3VhZ2Uo
a01BQ2FwdGlvbkFwcGVhcmFuY2VEb21haW5Vc2VyLCBsYW5ndWFnZS5jcmVhdGVDRlN0cmluZygp
LmdldCgpKTsKK30KKwogdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJl
ZmVycmVkTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIHsKICAgICBpZiAoQ2FwdGlv
blVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gTWFudWFsKQpAQCAtNDkx
LDcgKzUxNywxMiBAQCB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNQUNhcHRpb25BcHBlYXJhbmNlQWRkU2VsZWN0
ZWRMYW5ndWFnZShrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIsIGxhbmd1YWdlLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgIGlmIChjYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSgp
KSB7CisgICAgICAgIGNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlKCktPnNldFByZWZlcnJlZExh
bmd1YWdlKGxhbmd1YWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBsYXRmb3Jt
U2V0UHJlZmVycmVkTGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCiBWZWN0b3I8U3RyaW5nPiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGLmgJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNp
bmNsdWRlICJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIkNhcHRpb25V
c2VyUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCkBAIC00NCw2ICs0NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uRGlzcGxheU1v
ZGUpIG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHRpb25EaXNwbGF5
TW9kZSBwbGF0Zm9ybUNhcHRpb25EaXNwbGF5TW9kZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIHBsYXRmb3JtU2V0Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25EaXNwbGF5TW9k
ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q2FjaGVkQ2FwdGlvbkRpc3Bs
YXlNb2RlKENhcHRpb25EaXNwbGF5TW9kZSk7CiAKICAgICBib29sIHVzZXJQcmVmZXJzQ2FwdGlv
bnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTU4LDYgKzYwLDcgQEAgcHVibGljOgogICAgIFZlY3Rv
cjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtUHJlZmVycmVkTGFuZ3Vh
Z2VzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcGxhdGZvcm1TZXRQcmVmZXJy
ZWRMYW5ndWFnZShjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9p
ZCBzZXRDYWNoZWRQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIAog
ICAgIHZvaWQgc2V0UHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpYyhjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKQEAgLTY2LDYgKzY5LDggQEAgcHVibGljOgogICAgIHZvaWQgY2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91bGRGaWx0ZXJUcmFja01l
bnUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoc3RkOjp1bmlxdWVfcHRyPENh
cHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlPiYmKTsKICNlbHNlCiAgICAgYm9vbCBzaG91bGRGaWx0
ZXJUcmFja01lbnUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9DYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRl
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FwdGlvblByZWZl
cmVuY2VzRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBI
QVZFKE1FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLKQorCisjaW5jbHVkZSAiQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5DYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlNb2RlKENh
cHRpb25Vc2VyUHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYpIHsgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzk2
MzkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI3IEBACisyMDIxLTA3LTA3ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFNldCBDYXB0aW9uIHByZWZlcmVuY2VzIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3NDIKKyAgICAgICAgPHJk
YXI6Ly83OTA0MDUyNj4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgU3ViY2xhc3MgdGhlIENhcHRpb24gdXNlciBwcmVmZXJlbmNlcyBkZWxlZ2F0ZSwgd2hp
Y2ggd2lsbCBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBVSSBwcm9jZXNzLCByZXF1ZXN0aW5nIHRvIHNl
dCB0aGUgcHJlZmVyZW5jZXMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZXRDYXB0aW9uRGlzcGxheU1vZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldENhcHRpb25MYW5ndWFnZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDYXB0aW9u
UHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDYXB0
aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZTo6c2V0RGlzcGxheU1vZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZTo6c2V0UHJlZmVycmVkTGFuZ3VhZ2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2FwdGlvblByZWZlcmVuY2Vz
RGVsZWdhdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTA3LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIERlcGxveSBzbWFydCBwb2ludGVycyBpbiBFdmVudEhhbmRsZXIgYW5k
IFVzZXJJbnB1dEJyaWRnZQpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjc5
NjM5KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC02NjIsNiArNjYyLDcgQEAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VB
bgogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tCiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCiAKK1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3BwCiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBhc3RlYm9hcmRPdmVycmlkZXMuY3BwCiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmNwcAogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkocmV2aXNpb24gMjc5
NjM5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTYyLDYgKzYyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAorI2lmIEhBVkUoTUVESUFfQUND
RVNTSUJJTElUWV9GUkFNRVdPUkspCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0aW9uVXNlclByZWZl
cmVuY2VzLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBOYXZpZ2F0aW9uOwog
Y2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CkBAIC00MDQsNiArNDA4LDExIEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRFbmFibGVSZW1vdGVJbnNwZWN0b3IoKTsKICNlbmRpZgogCisj
aWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKyAgICB2b2lkIHNldENhcHRp
b25EaXNwbGF5TW9kZShXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpDYXB0aW9uRGlz
cGxheU1vZGUpOworICAgIHZvaWQgc2V0Q2FwdGlvbkxhbmd1YWdlKGNvbnN0IFN0cmluZyYpOwor
I2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wm
LCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lv
biAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTkxLDQgKzkxLDkgQEAgbWVzc2FnZXMgLT4gV2Vi
UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBJc0FYQXV0
aGVudGljYXRlZChhdWRpdF90b2tlbl90IGF1ZGl0VG9rZW4pIC0+IChib29sIGF1dGhlbnRpY2F0
ZWQpIFN5bmNocm9ub3VzCiAjZW5kaWYKKworI2lmIEhBVkUoTUVESUFfQUNDRVNTSUJJTElUWV9G
UkFNRVdPUkspCisgICAgU2V0Q2FwdGlvbkRpc3BsYXlNb2RlKFdlYkNvcmU6OkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBtb2RlKQorICAgIFNldENhcHRpb25MYW5n
dWFnZShTdHJpbmcgbGFuZ3VhZ2UpCisjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCShyZXZpc2lv
biAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJv
eHlDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQAogI2ltcG9ydCAiV0tU
eXBlUmVmV3JhcHBlci5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzUG9vbC5oIgotI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5r
Lmg+CiAjaW1wb3J0IDxzeXMvc3lzY3RsLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbXBvcnQgPHd0Zi9TY29wZS5oPgpAQCAtNTMsMTAgKzUyLDE2IEBACiAjaW1wb3J0IDxK
YXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3JDb25zdGFudHMuaD4KICNlbmRpZgogCisjaWYg
SEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKyNpbmNsdWRlIDxXZWJDb3JlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1B
QykKICNpbmNsdWRlICJUQ0NTb2Z0TGluay5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPHBhbC9jZi9B
dWRpb1Rvb2xib3hTb2Z0TGluay5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNv
bnN0IFNlY29uZHMgdW5leHBlY3RlZEFjdGl2aXR5RHVyYXRpb24gPSAxMF9zOwpAQCAtMjEwLDYg
KzIxNSwxOCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZW5hYmxlUmVtb3RlSW5zcGVjCiB9CiAj
ZW5kaWYKIAorI2lmIEhBVkUoTUVESUFfQUNDRVNTSUJJTElUWV9GUkFNRVdPUkspCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKFdlYkNvcmU6OkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBkaXNwbGF5TW9kZSkKK3sKKyAgICBXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cGxhdGZvcm1TZXRDYXB0aW9uRGlz
cGxheU1vZGUoZGlzcGxheU1vZGUpOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0Q2Fw
dGlvbkxhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCit7CisgICAgV2ViQ29yZTo6Q2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnBsYXRmb3JtU2V0UHJlZmVycmVkTGFuZ3VhZ2Uo
bGFuZ3VhZ2UpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCkKIHsKICAgICBpZiAobV9oYXNTZW50TWVzc2FnZVRv
VW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3OTYzOSkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTU5MTUsNiArNTkxNSw4IEBACiAJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQTg2RkJCMjY5NThEODMwMDU5MjY0RCAv
KiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDYXB0
aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
M0E4NkZCQzI2OTU4RTMzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIg
LyogQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QkNFODc4MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3Vw
cG9ydFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5
U3VwcG9ydFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTgzNiw2ICs5ODM4
LDggQEAKIAkJCQlGNDNBOUNERTI1RDcyRTJEMDA5OTBFMjYgLyogU2hhcmVhYmxlQml0bWFwVXRp
bGl0aWVzLmNwcCAqLywKIAkJCQlGNDNBOUNERDI1RDcyRTBDMDA5OTBFMjYgLyogU2hhcmVhYmxl
Qml0bWFwVXRpbGl0aWVzLmggKi8sCiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdl
YkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovLAorCQkJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0
RCAvKiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8sCisJCQkJRTNBODZGQkIy
Njk1OEQ4MzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJ
CQkJQkMxMTFBNTMxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCiAJ
CQkJQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovLAogCQkJ
CTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovLApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhcHRpb25QcmVm
ZXJlbmNlc0RlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
YXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ2FwdGlvblByZWZlcmVu
Y2VzRGVsZWdhdGUuaCIKKworI2lmIEhBVkUoTUVESUFfQUNDRVNTSUJJTElUWV9GUkFNRVdPUksp
CisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ2FwdGlvblByZWZlcmVu
Y2VzRGVsZWdhdGU6OnNldERpc3BsYXlNb2RlKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OkNhcHRpb25EaXNwbGF5TW9kZSBkaXNwbGF5TW9kZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OlNldENhcHRpb25EaXNwbGF5TW9kZShkaXNwbGF5TW9kZSksIDApOworfQor
Cit2b2lkIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlOjpzZXRQcmVmZXJyZWRMYW5ndWFn
ZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6U2V0Q2FwdGlvbkxhbmd1YWdlKGxhbmd1YWdlKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDYXB0aW9uUHJlZmVyZW5j
ZXNEZWxlZ2F0ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoTUVESUFfQUNDRVNTSUJJTElUWV9GUkFN
RVdPUkspCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxl
Z2F0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZSB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2Vi
Q2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUoKSB7IH0KKworICAgIHZvaWQgc2V0RGlzcGxheU1v
ZGUoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Q2FwdGlvbkRpc3BsYXlNb2RlKSBm
aW5hbDsKKyAgICB2b2lkIHNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYpIGZpbmFs
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lv
biAyNzk2MzkpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyArMTUzLDggQEAKICNlbmRpZgogCiAjaWYg
SEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKLSNpbmNsdWRlIDxXZWJDb3JlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmg+CisjaW1wb3J0ICJXZWJDYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRi5oPgogI2VuZGlmCiAKICNpbXBvcnQgPFdlYkNvcmUvTWVkaWFBY2Nlc3NpYmlsaXR5
U29mdExpbmsuaD4KQEAgLTQ2Myw2ICs0NjQsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcgogCiAgICAgU3lzdGVtU291bmRNYW5hZ2VyOjpzaW5nbGV0b24oKS5z
ZXRTeXN0ZW1Tb3VuZERlbGVnYXRlKG1ha2VVbmlxdWU8V2ViU3lzdGVtU291bmREZWxlZ2F0ZT4o
KSk7CiAKKyNpZiBIQVZFKE1FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLKQorICAgIFdlYkNv
cmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRDYXB0aW9uUHJlZmVyZW5jZXNE
ZWxlZ2F0ZShtYWtlVW5pcXVlPFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlPigpKTsKKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChjYW5Mb2FkX0hJU2VydmljZXNfX0FY
U2V0QXVkaXRUb2tlbklzQXV0aGVudGljYXRlZENhbGxiYWNrKCkpCiAgICAgICAgIHNvZnRMaW5r
X0hJU2VydmljZXNfX0FYU2V0QXVkaXRUb2tlbklzQXV0aGVudGljYXRlZENhbGxiYWNrKGlzQVhB
dXRoZW50aWNhdGVkQ2FsbGJhY2spOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>