<?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>220133</bug_id>
          
          <creation_ts>2020-12-23 16:41:55 -0800</creation_ts>
          <short_desc>Fail speech recognition when page is muted for audio capture</short_desc>
          <delta_ts>2021-01-05 10:16:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <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>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1716531</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-23 16:41:55 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716533</commentid>
    <comment_count>1</comment_count>
      <attachid>416734</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-23 16:49:36 -0800</bug_when>
    <thetext>Created attachment 416734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716884</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-30 16:42:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/72745232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717228</commentid>
    <comment_count>3</comment_count>
      <attachid>416973</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-04 22:58:37 -0800</bug_when>
    <thetext>Created attachment 416973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717236</commentid>
    <comment_count>4</comment_count>
      <attachid>416975</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-05 00:08:43 -0800</bug_when>
    <thetext>Created attachment 416975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717249</commentid>
    <comment_count>5</comment_count>
      <attachid>416975</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-05 02:08:06 -0800</bug_when>
    <thetext>Comment on attachment 416975
Patch

Looks good overall.
Some style improvements below.

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        1. when page is muted, mute audio capture source used for speech recognition audion on the page. This will

s/audion/audio/

&gt; Source/WebKit/UIProcess/UserMediaProcessManager.cpp:73
&gt; +    }

I am not sure we need to create a HashSet here.
We could either add a SpeechRecognitionPermissionManager::muteCaptureExceptIn(WebPageProxy&amp;) or rely on WebProcessProxy::globalPageMap() and remove UserMediaProcessManager::muteCaptureMediaStreamsExceptIn

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1779
&gt; +    speechRecognitionServer-&gt;mute();

I would write it as if (auto ...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717347</commentid>
    <comment_count>6</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-05 09:37:29 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 416975 [details]
&gt; Patch
&gt; 
&gt; Looks good overall.
&gt; Some style improvements below.

Thanks for review!

&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416975&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        1. when page is muted, mute audio capture source used for speech recognition audion on the page. This will
&gt; 
&gt; s/audion/audio/
&gt; 
&gt; &gt; Source/WebKit/UIProcess/UserMediaProcessManager.cpp:73
&gt; &gt; +    }
&gt; 
&gt; I am not sure we need to create a HashSet here.
&gt; We could either add a
&gt; SpeechRecognitionPermissionManager::muteCaptureExceptIn(WebPageProxy&amp;) or
&gt; rely on WebProcessProxy::globalPageMap() and remove
&gt; UserMediaProcessManager::muteCaptureMediaStreamsExceptIn

Okay, removing UserMediaProcessManager::muteCaptureMediaStreamsExceptIn and add it in WebProcessProxy.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1779
&gt; &gt; +    speechRecognitionServer-&gt;mute();
&gt; 
&gt; I would write it as if (auto ...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717351</commentid>
    <comment_count>7</comment_count>
      <attachid>417013</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-05 09:45:12 -0800</bug_when>
    <thetext>Created attachment 417013
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717378</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-05 10:16:29 -0800</bug_when>
    <thetext>Committed r271154: &lt;https://trac.webkit.org/changeset/271154&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417013.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416734</attachid>
            <date>2020-12-23 16:49:36 -0800</date>
            <delta_ts>2020-12-23 16:56:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220133-20201223164935.patch</filename>
            <type>text/plain</type>
            <size>19094</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY2NGE4OGE5ZTE1YjJlZmVhODcyOGJj
NTMxZTNkYmY0ODkzMzRhNTAuLjM1NDk5ZjZmOGY1YjM2NDVkZWZkNGNlM2Y2MTQ5ZWM1Yjk4NTRm
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMTItMjMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBlLmNvbT4KKworICAgICAgICBNYWtlIFNwZWVjaFJlY29nbml0aW9uIHdvcmsgd2l0aCBN
ZWRpYVN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwMTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6
CisKIDIwMjAtMTItMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MDk2OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZmZlN2Q2NTRj
OTNkODA0ZDJkYmQ4NTA4ZDYwZjVjOTZmZTM1MGU1Li4yNGRlMjZlNWJlMDI5NzI5NWIzNDc0ZTNj
MmI4YThhZmFkNDVmNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTItMjMg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBNYWtlIFNwZWVjaFJl
Y29nbml0aW9uIHdvcmsgd2l0aCBNZWRpYVN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjptdXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Om11dGUpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6Om11dGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuaDoKKwogMjAyMC0xMi0yMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlIGFuIGVudW0gY2xhc3MgdG8gaWRlbnRpZnkgV2ViR0wgdmVyc2lvbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzMyNTY3YzRkNDAwMGQxNDI1MmE2NjU1ZWJmMjk4N2YyMzMwODJkOS4uMmI3
YmMwMzkxNmQwY2Q1YmU5MDJjOTQ3MDcwNDZlZWM4NzY1YTJlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMCBAQAorMjAyMC0xMi0yMyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisg
ICAgICAgIE1ha2UgU3BlZWNoUmVjb2duaXRpb24gd29yayB3aXRoIE1lZGlhU3RyZWFtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpwYWdlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptdXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
cm9jZXNzTWFuYWdlcjo6bXV0ZU1lZGlhU3RyZWFtQ2FwdHVyZUluUGFnZXNFeGNlcHQpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6bXV0ZUNhcHR1cmVNZWRpYVN0
cmVhbXNFeGNlcHRJbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWN0aXZhdGVNZWRpYVN0cmVhbUNhcHR1cmVJ
blBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE11dGVkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaDoKKwogMjAyMC0xMi0yMiAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIGFuIGVudW0gY2xhc3MgdG8gaWRlbnRpZnkgV2ViR0wg
dmVyc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggNWEyMTdhOTk1ODRlMzk3
N2RkYzk3MTBkZTQ1ZTQxNzI4Y2FjNjBhOS4uMzQyODhiOWE2NjYwZjhiYTgwNTY2YTg5MTFjMTNj
MjVjMGJlZmYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4Myw3ICs3ODMs
NyBAQCBTaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2Fk
T3JGaXJzdFBhaW50OgogU3BlZWNoUmVjb2duaXRpb25FbmFibGVkOgogICB0eXBlOiBib29sCiAg
IGh1bWFuUmVhZGFibGVOYW1lOiAiU3BlZWNoUmVjb2duaXRpb24gQVBJIgotICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgU3BlZWNoUmVjb2duaXRpb24gb2YgV2ViU3BlZWNoIEFQ
SSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNwZWVjaFJlY29nbml0aW9u
IG9mIFNwZWVjaFJlY29nbml0aW9uIEFQSSIKICAgZGVmYXVsdFZhbHVlOgogICAgIFdlYktpdExl
Z2FjeToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cAppbmRleCBkN2VjZTY1OWYwODkyOWRmYmM3N2MxNzExYTk0NGM3YzExNWU2MTQxLi5lMDc3MjRh
YmU5YWVkZjFiOWI2OWI1NDMzOWZhMWUyZGFhMDZkZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKQEAgLTY3LDQgKzY3LDExIEBAIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uCiAK
ICNlbmRpZgogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6bXV0ZSgpCit7
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX2ltcGwtPm11dGUoKTsKKyNlbmRpZgor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmlu
ZGV4IDY5ZjlhODhiMjYxZTcxZjY2ZWMwMGJiOWU3MWRhMGYzYWM4MTk0OGMuLmU5ZDIyMTkwNzJj
NmM2OTJkM2Q3YjFhMjdhNGY4YjJmNDgyYTFmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKKyAgICB2b2lkIG11dGUoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYs
IFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJlM2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMy
My4uNWI3OTEwNzVhM2Q5Y2QyYTdkMDE0MzVmN2VjMDA4Yzc3NTVmNmU5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTgwLDYgKzgwLDExIEBAIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsKCkKICAgICBtX3NvdXJjZS0+c3RvcCgpOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGw6Om11dGUoKQoreworICAgIG1fc291cmNlLT5zZXRNdXRlZCh0
cnVlKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuaAppbmRleCAzY2E2ZTk0OTA1YjVkYmI0M2FlMjVmZGJiYmU0
MDQ0YWVkOWZlM2ZlLi5iYzVjMDJhMTg5MzQ3MTRjNzczOTM1ODRlMjNjNzNiMzAxZWI4NzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1
YmxpYzoKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIs
IERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpOwor
ICAgIHZvaWQgbXV0ZSgpOwogCiBwcml2YXRlOgogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5kZXggZjg5ZDVlMWQ2ZGJkYzE0ZjkxY2U4OWQxMzMz
YWFlOWVkYjcxYzI4Zi4uYTY0YmQ5ZjM4YjBjMjYwNTE4ZWU1YTQ4NjEyYzRkZTVlZWQwNTQ4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKQEAgLTY0LDYgKzY0LDE1IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcCgpCiAg
ICAgc3RvcFJlY29nbml0aW9uKCk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6bXV0ZSgp
Cit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3VyY2UtPm11dGUoKTsKK30KKwogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIGJvb2wgbW9ja1NwZWVjaFJlY29nbml0aW9u
RW5hYmxlZCwgY29uc3QgU3RyaW5nJiBsb2NhbGVJZGVudGlmaWVyLCBib29sIGNvbnRpbnVvdXMs
IGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAppbmRleCAxNDk1
ZGEyOWE0OGM1MDg5N2JiYmZiZDAxZDQzYTJhNGYwZGEwYjI2Li4xZTlkMTk4MWVjYTM2OTA2OTU3
MWE3MGI0M2ZlZDk2MWQ1ODI3OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhYm9y
dCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcCgpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbXV0ZSgpOwogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudElkZW50aWZpZXI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcAppbmRl
eCBjZDIzMmE1Njc0MjRiZTAyNzdhZTIwNWNmMDg3ZGNjMDRkNjhjNzk4Li43NDI4MzU4M2RiMTkw
ODk4YTQzNTQ1YzYzMmFhYWIxMzI5NDZkYjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNw
cApAQCAtNjQsMTMgKzY0LDIyIEBAIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25N
YW5hZ2VyOjpDaGVja1Jlc3VsdCBjb21wdXRlU3BlZWNoUmVjb2duaXRpb25TCiAjZW5kaWYKIH0K
IAorSGFzaFNldDxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyKj4mIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OmFsbE1hbmFnZXJzKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2Vy
Kj4+IG1hbmFnZXJzOworICAgIHJldHVybiBtYW5hZ2VyczsKK30KKwogU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcihX
ZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKIHsKKyAgICBhbGxNYW5hZ2Vy
cygpLmFkZCh0aGlzKTsKIH0KIAogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6
flNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIoKQogeworICAgIGFsbE1hbmFnZXJz
KCkucmVtb3ZlKHRoaXMpOworCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9yZXF1ZXN0cykK
ICAgICAgICAgcmVxdWVzdC0+Y29tcGxldGUoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVj
aXNpb246OkRlbnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oCmluZGV4IDg5MjlhMDMwZTQw
Y2JlNWJhMjIwZmU0MDZlNTE2ZTRkYTdhOWU2ZmQuLmM0MGY4Yjg1ZGRlOTg1ZjFlOTk0ODA2NzE3
OTkwMDgxYTc3OTc0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgKQEAgLTM2LDEyICszNiwx
NSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAg
ICBzdGF0aWMgSGFzaFNldDxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyKj4mIGFs
bE1hbmFnZXJzKCk7CisKICAgICBlbnVtIGNsYXNzIENoZWNrUmVzdWx0IHsgRGVuaWVkLCBHcmFu
dGVkLCBVbmtub3duIH07CiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
TWFuYWdlcihXZWJQYWdlUHJveHkmKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
TWFuYWdlcigpOwogICAgIHZvaWQgcmVxdWVzdChjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKTsKIAogICAgIHZvaWQgZGVjaWRlQnlEZWZhdWx0
QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gbV9wYWdl
OyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydE5leHRSZXF1ZXN0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXgg
OWI1OGZlOTA0M2NkMjVkMjA4ZjMyYjYzMTA2ZWVjY2I1M2ZjMWJhNy4uZDZlZWVlYzNmNzMyNDJi
YWQ4NjIxMTVhYjVhNTFiZDE5OWVlNDk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCiAKICNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oPgpAQCAtMTI0LDYgKzEyNSw4IEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0JiByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBVc2VyTWVkaWFQ
cm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkubXV0ZU1lZGlhU3RyZWFtQ2FwdHVyZUluUGFnZXNF
eGNlcHQobV9pZGVudGlmaWVyKTsKKwogICAgIGJvb2wgbW9ja0RldmljZUNhcHR1cmVzRW5hYmxl
ZCA9IG1fY2hlY2tJZk1vY2tTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoKTsKICAgICBtX3JlY29n
bml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIsIHNvdXJjZU9yRXJyb3Iuc291cmNlKCksIG1v
Y2tEZXZpY2VDYXB0dXJlc0VuYWJsZWQsIHJlcXVlc3QubGFuZygpLCByZXF1ZXN0LmNvbnRpbnVv
dXMoKSwgcmVxdWVzdC5pbnRlcmltUmVzdWx0cygpLCByZXF1ZXN0Lm1heEFsdGVybmF0aXZlcygp
KTsKICNlbHNlCkBAIC0xOTAsNiArMTkzLDEyIEBAIHVpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
aWRlbnRpZmllci50b1VJbnQ2NCgpOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjptdXRlKCkKK3sKKyAgICBpZiAobV9yZWNvZ25pemVyKQorICAgICAgICBtX3JlY29nbml6ZXIt
Pm11dGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NI
RUNLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaAppbmRleCAxZGU1ZDE1MmNmYTA3MDBjOGQ4NzMzY2IxMjY3ZWIyOWE4YzhjNTVjLi5kMmJh
Njc2Mzc2OGU2YTVkMTQ5OTgxMDJmNzk3MmNhODhiZjJjZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTYzLDYgKzYzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgaW52YWxpZGF0
ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsK
KyAgICB2b2lkIG11dGUoKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcAppbmRl
eCAyN2IxMjNiYmY5OTkwZTRkNjFkYjJjYjM3MTdjNmI0OGFlNGVjYWVkLi44ZTQ1YjIyZDVhNjhi
YTYzZDQzMzg4Mzg1ZDI1ZjlmZDVlMzEzZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5z
aW9ucy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTU2LDE1ICs1NywyNCBAQCBVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlcjo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKQogewogfQogCi12
b2lkIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2Vw
dEluKFdlYlBhZ2VQcm94eSYgcGFnZVN0YXJ0aW5nQ2FwdHVyZSkKK3ZvaWQgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXI6Om11dGVNZWRpYVN0cmVhbUNhcHR1cmVJblBhZ2VzRXhjZXB0KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKKyAgICBXVEZMb2dBbHdheXMoInNpaHVpbDogWyVw
XVVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjptdXRlTWVkaWFTdHJlYW1DYXB0dXJlSW5QYWdlc0V4
Y2VwdCBwYWdlSURbJWxsdV0iLCB0aGlzLCBwYWdlSUQudG9VSW50NjQoKSk7CisKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Zm9yRWFjaChbJnBhZ2VTdGFydGluZ0NhcHR1cmVdKGF1dG8mIHByb3h5KSB7Ci0gICAgICAgIGlm
ICgmcHJveHkucGFnZSgpICE9ICZwYWdlU3RhcnRpbmdDYXB0dXJlKQotICAgICAgICAgICAgcHJv
eHkucGFnZSgpLnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRydWUpOworICAgIEhhc2hTZXQ8
V2ViUGFnZVByb3h5Kj4gbV9wYWdlczsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6Zm9yRWFjaChbJl0oYXV0byYgcHJveHkpIHsKKyAgICAgICAgbV9wYWdlcy5h
ZGQoJnByb3h5LnBhZ2UoKSk7CiAgICAgfSk7CisgICAgZm9yIChhdXRvKiBtYW5hZ2VyIDogU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6YWxsTWFuYWdlcnMoKSkKKyAgICAgICAg
bV9wYWdlcy5hZGQoJm1hbmFnZXItPnBhZ2UoKSk7CisKKyAgICBmb3IgKGF1dG8qIHBhZ2UgOiBt
X3BhZ2VzKSB7CisgICAgICAgIGlmIChwYWdlLT53ZWJQYWdlSUQoKSAhPSBwYWdlSUQpCisgICAg
ICAgICAgICBwYWdlLT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCh0cnVlKTsKKyAgICB9CiAj
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShwYWdlU3RhcnRpbmdDYXB0dXJlKTsKKyAgICBVTlVTRURf
UEFSQU0oaWRlbnRpZmllcik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggYWU5ZTQ0NjY0ZmFjYmVhN2Jh
NzY3OTk0YzQ2YjIwOWRhYWUwMDc0ZC4uZjIzMTVhZmJjYTI0NmM3NDc5Y2E1Y2FhMDg2MmFmMWMz
ZDA1M2ZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9j
ZXNzTWFuYWdlci5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURl
dmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM2LDcgKzM3LDcgQEAgcHVi
bGljOgogICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyKCk7CiAKICAgICBib29sIHdpbGxDcmVh
dGVNZWRpYVN0cmVhbShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIGJv
b2wgd2l0aEF1ZGlvLCBib29sIHdpdGhWaWRlbyk7Ci0gICAgdm9pZCBtdXRlQ2FwdHVyZU1lZGlh
U3RyZWFtc0V4Y2VwdEluKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgbXV0ZU1lZGlhU3RyZWFt
Q2FwdHVyZUluUGFnZXNFeGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgdm9p
ZCByZXZva2VTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKFdlYlByb2Nlc3NQcm94eSYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1NzE2ZDY3ZDcwMGUy
ZDFhOTdiMzA0YTI5NDlhYWJjYTI0MzU4ZDVjLi44MzQzZDVlZmRiNTcxNmRhMjNjMTNhMTc0YzBj
MGI0ZTI0ZWE4ZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTIzODcsNyArMjM4Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVN0cmVhbUNh
cHR1cmVNdXRlZChib29sIG11dGVkKQogdm9pZCBXZWJQYWdlUHJveHk6OmFjdGl2YXRlTWVkaWFT
dHJlYW1DYXB0dXJlSW5QYWdlKCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFVz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5tdXRlQ2FwdHVyZU1lZGlhU3RyZWFt
c0V4Y2VwdEluKCp0aGlzKTsKKyAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9u
KCkubXV0ZU1lZGlhU3RyZWFtQ2FwdHVyZUluUGFnZXNFeGNlcHQobV93ZWJQYWdlSUQpOwogI2Vu
ZGlmCiAgICAgc2V0TXV0ZWQobV9tdXRlZFN0YXRlICYgfldlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQpOwogfQpAQCAtNTk0Niw2ICs1OTQ2LDggQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKIAogdm9pZCBXZWJQ
YWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBzdGF0ZSkKIHsKKyAgICBXVEZMb2dBbHdheXMoInNpaHVpbDogWyVwXVdlYlBhZ2VQcm94eTo6
c2V0TXV0ZWQgcGFnZUlEWyVsbHVdIGlzTXV0ZWRGb3JDYXB0dXJlWyVkXSIsIHRoaXMsIG1fd2Vi
UGFnZUlELnRvVUludDY0KCksIChzdGF0ZSZXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
cmVhbUNhcHR1cmVJc011dGVkKSk7CisKICAgICBtX211dGVkU3RhdGUgPSBzdGF0ZTsKIAogICAg
IGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKQEAgLTU5NTQsOSArNTk1NiwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZs
YWdzIHN0YXRlKQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYm9vbCBoYXNNdXRlZENh
cHR1cmVTdHJlYW1zID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRDYXB0dXJlTWFzazsKICAgICBpZiAoaGFzTXV0ZWRDYXB0dXJlU3RyZWFtcyAmJiAhKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCkpCi0g
ICAgICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5tdXRlQ2FwdHVyZU1l
ZGlhU3RyZWFtc0V4Y2VwdEluKCp0aGlzKTsKKyAgICAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFn
ZXI6OnNpbmdsZXRvbigpLm11dGVNZWRpYVN0cmVhbUNhcHR1cmVJblBhZ2VzRXhjZXB0KG1fd2Vi
UGFnZUlEKTsKICNlbmRpZgogCisgICAgbV9wcm9jZXNzLT5wYWdlTXV0ZWRTdGF0ZUNoYW5nZWQo
bV93ZWJQYWdlSUQsIHN0YXRlKTsKKwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE11
dGVkKHN0YXRlKSk7CiAgICAgYWN0aXZpdHlTdGF0ZURpZENoYW5nZSh7IEFjdGl2aXR5U3RhdGU6
OklzQXVkaWJsZSwgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ5NDI0Njg2ZTJm
Njk0MzM1MTY0ODcxN2I3OTM1ZDQ4ZWVkMDEzYTQuLmExM2VkY2M0ODc0N2QzMjQzNDM1NmQ1NWFj
NGI0MzQ1NDI3YjliYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcApAQCAtMTc2NCw2ICsxNzY0LDE5IEBAIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoCiAg
ICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZUZsYWdzIGZsYWdzKQoreworICAgIGJvb2wgbXV0ZWRGb3JDYXB0dXJlID0g
ZmxhZ3MgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAg
aWYgKCFtdXRlZEZvckNhcHR1cmUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmdldChpZGVu
dGlmaWVyKTsKKyAgICBpZiAoIXNwZWVjaFJlY29nbml0aW9uU2VydmVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci0+bXV0ZSgpOworfQorCiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKFdBVENIT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IGExMWEzOTRlN2FhOGIzZmM5M2U4NzhhMmUwMTk4Yzg5ZTFlMjczYjcu
LjMyNjVjNDQ0NWI4NDczODNlMTViYzBiOGMzZDVmZGE0NTYyYzk3MTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1l
c3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CkBAIC00MDIsNiArNDAzLDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwogI2VuZGlmCisgICAgdm9pZCBwYWdl
TXV0ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CiAKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNz
UHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwo=
</data>
<flag name="commit-queue"
          id="434339"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416973</attachid>
            <date>2021-01-04 22:58:37 -0800</date>
            <delta_ts>2021-01-05 00:08:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220133-20210104225836.patch</filename>
            <type>text/plain</type>
            <size>30238</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyYjdjZmNkZTk0MTA1
M2E3MmMyY2ZhZTRmYWYyMWQyODA4MmMxOS4uMWU0MTBlNzRmOGQ5NzU0OThkN2UzZDY1ZWJlZDdm
ZjZmZjY1YzFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAxLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgRmFpbCBzcGVlY2ggcmVjb2du
aXRpb24gd2hlbiBwYWdlIGlzIG11dGVkIGZvciBhdWRpbyBjYXB0dXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMzMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcyNzQ1MjMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQyLlNwZWVjaFJlY29nbml0aW9uRXJyb3JXaGVu
U3RhcnRpbmdBdWRpb0NhcHR1cmVPbkRpZmZlcmVudFBhZ2UKKworICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6Om11dGUpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6bXV0
ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnNvdXJjZSk6CisKIDIwMjEtMDEt
MDQgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2Vy
LXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDIxCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZj
N2I2YWU0OGFkODQzM2Q1YjBmYmNkNmY4OGM3MjRkZmY2NTRjNGUuLmUyNWJkM2RmM2ZhYTU1MWM0
ZTI0MzA3M2Q1Y2NiYWZkZTViOWVjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEt
MDEtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBGYWlsIHNw
ZWVjaCByZWNvZ25pdGlvbiB3aGVuIHBhZ2UgaXMgbXV0ZWQgZm9yIGF1ZGlvIGNhcHR1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDEzMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzI3NDUyMzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkgYWxsb3cgb25lIHBhZ2Ug
dG8gY2FwdHVyZSBtZWRpYSBhdCBhIHRpbWUgYW5kIHdlIGRpZCB0aGlzIGJ5IG11dGluZyAoc3Rv
cCBjYXB0dXJlIGluKSBvdGhlciAKKyAgICAgICAgcGFnZXMuIFRvIG1ha2Ugc3BlZWNoIHJlY29n
bml0aW9uIHdvcmsgd2l0aCAgYmVoYXZpb3IsIHR3byBjaGFuZ2VzIGFyZSBtYWRlOgorICAgICAg
ICAxLiB3aGVuIHBhZ2UgaXMgbXV0ZWQsIG11dGUgYXVkaW8gY2FwdHVyZSBzb3VyY2UgdXNlZCBm
b3Igc3BlZWNoIHJlY29nbml0aW9uIGF1ZGlvbiBvbiB0aGUgcGFnZS4gVGhpcyB3aWxsCisgICAg
ICAgIHVsdGltYXRlbHkgZmFpbCByZWNvZ25pdGlvbi4KKyAgICAgICAgMi4gd2hlbiBzcGVlY2gg
cmVjb2duaXRpb24gaXMgYWJvdXQgdG8gc3RhcnQsIG1ha2Ugc3VyZSBvdGhlciBwYWdlcyBhcmUg
bXV0ZWQgZm9yIGNhcHR1cmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjp+
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cGFnZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bXV0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nl
c3NNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
Om11dGVDYXB0dXJlTWVkaWFTdHJlYW1zSW5QYWdlc0V4Y2VwdCk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2VwdElu
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjphY3RpdmF0ZU1lZGlhU3RyZWFtQ2FwdHVyZUluUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TXV0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oOgorCiAyMDIxLTAxLTA0ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUg
MjAyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggZDdlY2U2NTlmMDg5Mjlk
ZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MS4uNTdjOTA3NmY4NGNmNzAyOTkyNzFhZjljYTQyZWYw
MDk4NGE4YzQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw2ICsz
NCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjptdXRlKCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1f
aW1wbC0+bXV0ZSgpOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBP
cHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZp
bmRDYXB0dXJlRGV2aWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNjlmOWE4
OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEwZjNhYzgxOTQ4Yy4uMDhhYWNhZDJkNDNlOWM4MmFiNGE2
OTVkMWVmOTMxZGE3ZDE5YTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQ0
LDEwICs0NCwxMSBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgewogcHVi
bGljOgogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAg
ICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwotICAgIHVzaW5n
IERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QpPjsKLSAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG11
dGUoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdXNpbmcgRGF0YUNhbGxiYWNr
ID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OworICAgIHVz
aW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlJik+OwogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwg
U3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZp
bmRDYXB0dXJlRGV2aWNlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCBiZmM1YmUxMDM0
YmUzYzEyZDJjYWRlYzNlMTIxOTQzZWFiODk5MzIzLi5mNWE0NTA4NmMzZGM3ZGYzMmU3MWE1Yzlj
MmU4ZDFhNTdmOTI5YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNw
cApAQCAtMTQ2LDYgKzE0NiwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9D
YXB0dXJlLCAiU291cmNlIGlzIG11dGVkIiB9KSk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6bXV0ZSgpCit7CisgICAgbV9zb3VyY2UtPnNldE11dGVkKHRy
dWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oCmluZGV4IDNjYTZlOTQ5MDViNWRiYjQzYWUyNWZkYmJiZTQw
NDRhZWQ5ZmUzZmUuLmJjNWMwMmExODkzNDcxNGM3NzM5MzU4NGUyM2M3M2IzMDFlYjg3NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwg
RGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7Cisg
ICAgdm9pZCBtdXRlKCk7CiAKIHByaXZhdGU6CiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW9TYW1wbGVPYnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5oCmluZGV4IDE0OTVkYTI5YTQ4YzUwODk3YmJiZmJkMDFkNDNhMmE0
ZjBkYTBiMjYuLjM5NmE1MzE2YTBmZjVkMTk1ZmQxOTk1MTkyMzRjZmI4MTVhMDhjYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAg
LTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcCgpOwog
CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50
aWZpZXI7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UqIHNvdXJjZSgpIHsg
cmV0dXJuIG1fc291cmNlLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wSW50ZXJu
YWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKaW5kZXggY2QyMzJhNTY3NDI0YmUwMjc3
YWUyMDVjZjA4N2RjYzA0ZDY4Yzc5OC4uZGNiZmJjOGQ4MmExNmJkOTVlZTQ2YjU4ZDEwMmNjMTJh
ZjNlZTVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKQEAgLTY0LDE1ICs2NCwyMyBA
QCBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6Q2hlY2tSZXN1bHQg
Y29tcHV0ZVNwZWVjaFJlY29nbml0aW9uUwogI2VuZGlmCiB9CiAKK0hhc2hTZXQ8U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcio+JiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25N
YW5hZ2VyOjphbGxNYW5hZ2VycygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hT
ZXQ8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcio+PiBtYW5hZ2VyczsKKyAgICBy
ZXR1cm4gbWFuYWdlcnM7Cit9CisKIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6
OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIoV2ViUGFnZVByb3h5JiBwYWdlKQog
ICAgIDogbV9wYWdlKHBhZ2UpCiB7CisgICAgYWxsTWFuYWdlcnMoKS5hZGQodGhpcyk7CiB9CiAK
IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25NYW5hZ2VyKCkKIHsKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3JlcXVlc3Rz
KQogICAgICAgICByZXF1ZXN0LT5jb21wbGV0ZShTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25E
ZWNpc2lvbjo6RGVueSk7CisgICAgYWxsTWFuYWdlcnMoKS5yZW1vdmUodGhpcyk7CiB9CiAgICAg
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYg
Y29tcGxldGlvbnRIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oCmluZGV4IDg5MjlhMDMw
ZTQwY2JlNWJhMjIwZmU0MDZlNTE2ZTRkYTdhOWU2ZmQuLmM0MGY4Yjg1ZGRlOTg1ZjFlOTk0ODA2
NzE3OTkwMDgxYTc3OTc0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgKQEAgLTM2LDEyICsz
NiwxNSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbk1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgSGFzaFNldDxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyKj4m
IGFsbE1hbmFnZXJzKCk7CisKICAgICBlbnVtIGNsYXNzIENoZWNrUmVzdWx0IHsgRGVuaWVkLCBH
cmFudGVkLCBVbmtub3duIH07CiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlcihXZWJQYWdlUHJveHkmKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlcigpOwogICAgIHZvaWQgcmVxdWVzdChjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKTsKIAogICAgIHZvaWQgZGVjaWRlQnlEZWZh
dWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gbV9w
YWdlOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydE5leHRSZXF1ZXN0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5k
ZXggOWI1OGZlOTA0M2NkMjVkMjA4ZjMyYjYzMTA2ZWVjY2I1M2ZjMWJhNy4uYTQ5ODdhNjkzYjhm
MDAyY2ZlYzhjNTYzMmQwMGNmNWFhMDAyZDI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCiAKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oPgpAQCAtMTI0LDYgKzEyNSw4IEBAIHZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0JiByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBVc2VyTWVk
aWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkubXV0ZUNhcHR1cmVNZWRpYVN0cmVhbXNJblBh
Z2VzRXhjZXB0KG1faWRlbnRpZmllcik7CisKICAgICBib29sIG1vY2tEZXZpY2VDYXB0dXJlc0Vu
YWJsZWQgPSBtX2NoZWNrSWZNb2NrU3BlZWNoUmVjb2duaXRpb25FbmFibGVkKCk7CiAgICAgbV9y
ZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgp
LCBtb2NrRGV2aWNlQ2FwdHVyZXNFbmFibGVkLCByZXF1ZXN0LmxhbmcoKSwgcmVxdWVzdC5jb250
aW51b3VzKCksIHJlcXVlc3QuaW50ZXJpbVJlc3VsdHMoKSwgcmVxdWVzdC5tYXhBbHRlcm5hdGl2
ZXMoKSk7CiAjZWxzZQpAQCAtMTkwLDYgKzE5MywxNSBAQCB1aW50NjRfdCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVy
biBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6bXV0ZSgpCit7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9yZWNvZ25pemVyLT5zb3VyY2UoKSkKKyAg
ICAgICAgc291cmNlLT5tdXRlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5k
ZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmgKaW5kZXggMWRlNWQxNTJjZmEwNzAwYzhkODczM2NiMTI2N2ViMjlh
OGM4YzU1Yy4uZDJiYTY3NjM3NjhlNmE1ZDE0OTk4MTAyZjc5NzJjYTg4YmYyY2VmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBA
IC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBhYm9ydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2
b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllcik7CisgICAgdm9pZCBtdXRlKCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5jcHAKaW5kZXggMjdiMTIzYmJmOTk5MGU0ZDYxZGIyY2IzNzE3YzZiNDhhZTRlY2FlZC4u
ZWY1ZTgxMjM2ZWJiYjJkODNiYTRhZmQzYzFhZjlkYjgyODVhYjU5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtMjMs
NiArMjMsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhRGV2aWNl
U2FuZGJveEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC01NiwxNSAr
NTcsMjIgQEAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
KCkKIHsKIH0KIAotdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6bXV0ZUNhcHR1cmVNZWRp
YVN0cmVhbXNFeGNlcHRJbihXZWJQYWdlUHJveHkmIHBhZ2VTdGFydGluZ0NhcHR1cmUpCit2b2lk
IFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0luUGFnZXNF
eGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpmb3JFYWNo
KFsmcGFnZVN0YXJ0aW5nQ2FwdHVyZV0oYXV0byYgcHJveHkpIHsKLSAgICAgICAgaWYgKCZwcm94
eS5wYWdlKCkgIT0gJnBhZ2VTdGFydGluZ0NhcHR1cmUpCi0gICAgICAgICAgICBwcm94eS5wYWdl
KCkuc2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQodHJ1ZSk7CisgICAgSGFzaFNldDxXZWJQYWdl
UHJveHkqPiBtX3BhZ2VzOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojpmb3JFYWNoKFsmXShhdXRvJiBwcm94eSkgeworICAgICAgICBtX3BhZ2VzLmFkZCgmcHJv
eHkucGFnZSgpKTsKICAgICB9KTsKKyAgICBmb3IgKGF1dG8qIG1hbmFnZXIgOiBTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjphbGxNYW5hZ2VycygpKQorICAgICAgICBtX3BhZ2Vz
LmFkZCgmbWFuYWdlci0+cGFnZSgpKTsKKworICAgIGZvciAoYXV0byogcGFnZSA6IG1fcGFnZXMp
IHsKKyAgICAgICAgaWYgKHBhZ2UtPndlYlBhZ2VJRCgpICE9IHBhZ2VJRCkKKyAgICAgICAgICAg
IHBhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRydWUpOworICAgIH0KICNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHBhZ2VTdGFydGluZ0NhcHR1cmUpOworICAgIFVOVVNFRF9QQVJBTShp
ZGVudGlmaWVyKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaAppbmRleCBhZTllNDQ2NjRmYWNiZWE3YmE3Njc5OTRj
NDZiMjA5ZGFhZTAwNzRkLi45OGVlNTliYzgyYWQwMzJkZDQyNGNiM2RhM2ZhZWIwYmM1YTA1ODQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5h
Z2VyLmgKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzYsNyArMzcsNyBAQCBwdWJsaWM6CiAg
ICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKTsKIAogICAgIGJvb2wgd2lsbENyZWF0ZU1lZGlh
U3RyZWFtKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgYm9vbCB3aXRo
QXVkaW8sIGJvb2wgd2l0aFZpZGVvKTsKLSAgICB2b2lkIG11dGVDYXB0dXJlTWVkaWFTdHJlYW1z
RXhjZXB0SW4oV2ViUGFnZVByb3h5Jik7CisgICAgdm9pZCBtdXRlQ2FwdHVyZU1lZGlhU3RyZWFt
c0luUGFnZXNFeGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCByZXZv
a2VTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKFdlYlByb2Nlc3NQcm94eSYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1NzE2ZDY3ZDcwMGUyZDFhOTdi
MzA0YTI5NDlhYWJjYTI0MzU4ZDVjLi5lMWJhZjFhNDJhODcxY2ZiZjZlMmI5MGIwMmRmODZmYWY1
Y2IwZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIz
ODcsNyArMjM4Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVN0cmVhbUNhcHR1cmVN
dXRlZChib29sIG11dGVkKQogdm9pZCBXZWJQYWdlUHJveHk6OmFjdGl2YXRlTWVkaWFTdHJlYW1D
YXB0dXJlSW5QYWdlKCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5tdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2Vw
dEluKCp0aGlzKTsKKyAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkubXV0
ZUNhcHR1cmVNZWRpYVN0cmVhbXNJblBhZ2VzRXhjZXB0KG1fd2ViUGFnZUlEKTsKICNlbmRpZgog
ICAgIHNldE11dGVkKG1fbXV0ZWRTdGF0ZSAmIH5XZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0cmVhbUNhcHR1cmVJc011dGVkKTsKIH0KQEAgLTU5NTQsOSArNTk1NCwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZs
YWdzIHN0YXRlKQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYm9vbCBoYXNNdXRlZENh
cHR1cmVTdHJlYW1zID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0
ZWRDYXB0dXJlTWFzazsKICAgICBpZiAoaGFzTXV0ZWRDYXB0dXJlU3RyZWFtcyAmJiAhKHN0YXRl
ICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCkpCi0g
ICAgICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5tdXRlQ2FwdHVyZU1l
ZGlhU3RyZWFtc0V4Y2VwdEluKCp0aGlzKTsKKyAgICAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFn
ZXI6OnNpbmdsZXRvbigpLm11dGVDYXB0dXJlTWVkaWFTdHJlYW1zSW5QYWdlc0V4Y2VwdChtX3dl
YlBhZ2VJRCk7CiAjZW5kaWYKIAorICAgIG1fcHJvY2Vzcy0+cGFnZU11dGVkU3RhdGVDaGFuZ2Vk
KG1fd2ViUGFnZUlELCBzdGF0ZSk7CisKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRN
dXRlZChzdGF0ZSkpOwogICAgIGFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoeyBBY3Rpdml0eVN0YXRl
OjpJc0F1ZGlibGUsIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWEgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkOTQyNDY4NmUy
ZjY5NDMzNTE2NDg3MTdiNzkzNWQ0OGVlZDAxM2E0Li5lZDQ5NzYyZThhNjU3YjYxNmYzZmQ5ZGVj
NzU2YTRhZjdjOGM1MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTE3NjYsNiArMTc2NiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaAog
CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlRmxhZ3MgZmxhZ3MpCit7CisgICAgYm9vbCBtdXRlZEZvckNhcHR1cmUgPSBm
bGFncyAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICBp
ZiAoIW11dGVkRm9yQ2FwdHVyZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzcGVlY2hS
ZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuZ2V0KGlkZW50
aWZpZXIpOworICAgIGlmICghc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLT5tdXRlKCk7Cit9CisKICNpZiBQTEFU
Rk9STShXQVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0
aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCBhMTFhMzk0ZTdhYThiM2ZjOTNlODc4YTJlMDE5OGM4OWUxZTI3M2I3
Li4zMjY1YzQ0NDViODQ3MzgzZTE1YmMwYjhjM2Q1ZmRhNDU2MmM5NzE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgpAQCAtNDAyLDYgKzQwMyw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKICNlbmRpZgorICAgIHZvaWQgcGFn
ZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vz
c1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyYTEy
MjhiMzljOTg5NmIyNThjODRkZWVlZWQxZjg4MjI4MGI5NTkwLi5jYzEyYWViZmNhYWE0OWYyZDcw
MzRiYWUzMWFhMTQxYjRmMTkwYjViIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDEtMDQgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBGYWlsIHNwZWVjaCByZWNvZ25pdGlvbiB3
aGVuIHBhZ2UgaXMgbXV0ZWQgZm9yIGF1ZGlvIGNhcHR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDEzMworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzI3NDUyMzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJl
Y29nbml0aW9uLm1tOgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURl
bGVnYXRlIF93ZWJWaWV3OnJlcXVlc3RNZWRpYUNhcHR1cmVBdXRob3JpemF0aW9uOmRlY2lzaW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxl
Z2F0ZSBfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZyYW1lVVJM
OmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3Nw
ZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEyLTI4ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGJ1aWx0LXByb2R1Y3QtYXJj
aGl2ZSBzaG91bGQgd29yayB3aXRoIFB5dGhvbiAzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGZkODE4ZTliNzYzODIwYWE2MjUxOTVkNmE0MDQxZDc1NTFlNGFmMzkuLjRhZjNmZWE1MWU4NWEx
NmY0ZDQ3N2JlNThiMDQ5YmUyNzlmMzUwOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04
MDksNiArODA5LDcgQEAKIAkJOTM1Nzg2Q0MyMEY2QTI3MDAwMDBDREZDIC8qIEluZGV4ZWREQi5z
cWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzRGQTVDNTIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2Fs
ICovOyB9OwogCQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzICovOyB9OwogCQk5MzU3
ODZDRTIwRjZBMkExMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM2MjBGNjlG
RUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi87IH07CisJCTkzNjAyNzA2MjVB
M0NGNzYwMDM2NzY3MCAvKiBzcGVlY2hyZWNvZ25pdGlvbi1iYXNpYy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjAyNzA1MjVBM0Iy
OEUwMDM2NzY3MCAvKiBzcGVlY2hyZWNvZ25pdGlvbi1iYXNpYy5odG1sICovOyB9OwogCQk5MzYx
MDAyOTE0REM5NUE3MDA2MTM3OUQgLyogbG90cy1vZi1pZnJhbWVzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2MTAwMjgxNERDOTU3
QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovOyB9OwogCQk5MzYyNUQyNzFDRDk3
NDFDMDA2REMxRjEgLyogbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjI1RDI2MUNEOTcz
QUYwMDZEQzFGMSAvKiBsYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgKi87IH07CiAJCTkz
NjhBMjVFMjI5RUZCNDcwMEE4MjlDQSAvKiBsb2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3VzcGVuZHMt
MS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNjhBMjVEMjI5RUZCM0EwMEE4MjlDQSAvKiBsb2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3Vz
cGVuZHMtMS5odG1sICovOyB9OwpAQCAtMTYxOSw2ICsxNjIwLDcgQEAKIAkJCQlGNEY0MDVCRDFE
NEMwRDFDMDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDMDFBMjNGMjEyNjYxNTY3MDBDOUVENTUgLyog
c3BhY2ViYXItc2Nyb2xsaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRDRkNE
REEyNDlGQzlFNDAwNTI3NDgyIC8qIFNwYWNlT25seS5vdGYgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJOTM2MDI3MDYyNUEzQ0Y3NjAwMzY3NjcwIC8qIHNwZWVjaHJlY29nbml0aW9uLWJhc2lj
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTM0MjU4OUUyNTVCNkExMjAwNTlFRURE
IC8qIHNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9w
TG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1MTVCRTE2RjFENDI4QkIxMDBERDdDNjggLyogU3RvcmVCbG9iVG9CZURlbGV0ZWQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI0MjIsNiArMjQyNCw3IEBACiAJCTkzNEZBNUM2
MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4ZWRE
Qi5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEZBNUM3MjBG
NjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREIuc3FsaXRl
Mzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NzVDNTUxRDMwMzY2RTAwMEQ2MDRE
IC8qIGZvY3VzLWlucHV0cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZvY3Vz
LWlucHV0cy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM2MDI3MDUyNUEz
QjI4RTAwMzY3NjcwIC8qIHNwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAic3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNjEwMDI4MTREQzk1N0IwMDYxMzc5RCAvKiBsb3RzLW9m
LWlmcmFtZXMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLWlmcmFt
ZXMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNjI1RDI2MUNEOTczQUYw
MDZEQzFGMSAvKiBsYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2OEEyNUMyMjlFRkIzQTAwQTgyOUNBIC8qIGxvY2FsLXN0
b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAibG9jYWwtc3RvcmFnZS1wcm9jZXNzLXN1c3BlbmRzLTIuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zOTI5LDYgKzM5MzIsNyBAQAogCQkJCTQ2NTZBNzU3MjBGOTA1NEYw
MDAyRTIxRiAvKiBTaW1wbGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucy00LnNxbGl0ZTMgKi8s
CiAJCQkJRjRGNDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwgKi8sCiAJCQkJRjRDRkNERDgyNDlGQzlEOTAwNTI3NDgyIC8qIFNw
YWNlT25seS5vdGYgKi8sCisJCQkJOTM2MDI3MDUyNUEzQjI4RTAwMzY3NjcwIC8qIHNwZWVjaHJl
Y29nbml0aW9uLWJhc2ljLmh0bWwgKi8sCiAJCQkJOTM0MjU4OUQyNTVCNjZBMDAwNTlFRUREIC8q
IHNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sICovLAog
CQkJCTUxNUJFMTZFMUQ0Mjg4RkYwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0JlRGVsZXRlZC5odG1s
ICovLAogCQkJCTlCRDZEM0ExMUY3QjIwMjEwMEJENDk2MiAvKiBzdW5zZXQtaW4tY3VwZXJ0aW5v
LTEwMHB4LnRpZmYgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBlMzNhZDAyYjU0MTUyYzEw
NTZlNjQ4YzZhYTJiZjYxMzE0YmExNDA0Li45OWZhZDY2OTZmMjBjMmJmZTU5ZmVmYzA3M2I2NjEx
MDgxOTY5ZTk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NwZWVjaFJlY29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTMwLDcgKzMwLDcgQEAKICNpbXBv
cnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVUlE
ZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KLSNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAog
c3RhdGljIGJvb2wgc2hvdWxkR3JhbnRQZXJtaXNzaW9uUmVxdWVzdCA9IHRydWU7CkBAIC00MCw2
ICs0MCw4IEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVz
c2FnZTsKIAogQGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRl
IDogTlNPYmplY3Q8V0tVSURlbGVnYXRlUHJpdmF0ZT4KIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdp
bjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylk
ZXZpY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
UkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcjsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvblVJRGVsZWdhdGUKQEAgLTQ4LDYgKzUwLDE2IEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tTY3Jp
cHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKICAgICBwZXJtaXNzaW9uUmVxdWVzdGVkID0g
dHJ1ZTsKICAgICBkZWNpc2lvbkhhbmRsZXIoc2hvdWxkR3JhbnRQZXJtaXNzaW9uUmVxdWVzdCk7
CiB9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb246IChfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNpb25I
YW5kbGVyKFlFUyk7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlk
ZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRsZXIoQCIweDk4
NzY1NDMyMTAiLCBZRVMpOworfQogQGVuZAogCiBAaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9u
TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KQEAgLTEw
Myw0ICsxMTUsNTYgQEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblVzZXJQZXJtaXNz
aW9uUGVyc2lzdGVuY2UpCiAgICAgRVhQRUNUX0ZBTFNFKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CiB9CiAKK1RFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25FcnJvcldoZW5TdGFydGluZ0F1
ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZSkKK3sKKyAgICBzaG91bGRHcmFudFBlcm1pc3Npb25S
ZXF1ZXN0ID0gdHJ1ZTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBoYW5kbGVyID0gYWRv
cHROUyhbW1NwZWVjaFJlY29nbml0aW9uTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7CisgICAgYXV0byBwcmVmZXJl
bmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fbW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fc3BlZWNoUmVj
b2duaXRpb25FbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9tZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24gPSBOTzsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBhdXRvIGZpcnN0V2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOworICAgIFtmaXJzdFdlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CisgICAgYXV0byBzZWNvbmRXZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3NlY29uZFdlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBGaXJzdCBwYWdlIHN0YXJ0cyByZWNv
Z25pdGlvbiBzdWNjZXNzZnVsbHkuCisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CisgICAgW2ZpcnN0V2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzcGVl
Y2hyZWNvZ25pdGlvbi1iYXNpYyJdOworICAgIFtmaXJzdFdlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAInN0YXJ0KCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiU3RhcnQiLCBb
bGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gRmlyc3QgcGFnZSBpcyBtdXRlZCB3
aGVuIHNlY29uZCBwYWdlIHN0YXJ0cyByZWNvZ25pdGlvbi4KKyAgICAvLyBMb2FkIGh0bWwgc3Ry
aW5nIGluc3RlYWQgb2YgdGVzdCBwYWdlIHRvIG1ha2Ugc3VyZSBtZXNzYWdlIG9ubHkgY29tZXMg
ZnJvbSBvbmUgcGFnZS4KKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBb
c2Vjb25kV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnNwZWVj
aFJlY29nbml0aW9uID0gbmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uKCk7IHNwZWVjaFJlY29n
bml0aW9uLnN0YXJ0KCk7PC9zY3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cHM6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJFcnJvcjogYXVkaW8t
Y2FwdHVyZSAtIFNvdXJjZSBpcyBtdXRlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisK
KyAgICAvLyBGaXJzdCBwYWdlIHJlc3RhcnRzIHJlY29nbml0aW9uIHN1Y2Nlc3NmdWxseS4KKyAg
ICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBbZmlyc3RXZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzdGFydCgpIl07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShA
IlN0YXJ0IiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEZpcnN0IHBhZ2Ug
aXMgbXV0ZWQgd2hlbiBzZWNvbmQgcGFnZSBzdGFydHMgbWVkaWEgcmVjb3JkZXIuCisgICAgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgW3NlY29uZFdlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic3BlZWNocmVjb2duaXRpb24tYmFzaWMiXTsKKyAgICBb
c2Vjb25kV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RhcnRSZWNvcmRl
cigpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAIkVycm9yOiBhdWRpby1jYXB0dXJlIC0gU291cmNl
IGlzIG11dGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIFNlY29uZCBw
YWdlIGlzIG11dGVkIHdoZW4gZmlyc3QgcGFnZSBzdGFydHMgcmVjb2duaXRpb24uCisgICAgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgW2ZpcnN0V2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnNwZWVjaFJlY29nbml0aW9uID0gbmV3IHdlYmtp
dFNwZWVjaFJlY29nbml0aW9uKCk7IHNwZWVjaFJlY29nbml0aW9uLnN0YXJ0KCk7PC9zY3JpcHQ+
IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93ZWJraXQub3JnIl1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJSZWNvcmRlciBNdXRlIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJv
ZHldKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zcGVlY2hyZWNvZ25pdGlvbi1iYXNp
Yy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zcGVlY2hyZWNv
Z25pdGlvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZTZmNmFjMzU5YjIxZTJlMmE0ZWFhN2M3
OWRjZmJjYWZkMGI1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3NwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWwKQEAgLTAsMCArMSw1
NiBAQAorPGh0bWw+Cis8c2NyaXB0PgorCit2YXIgc3BlZWNoUmVjb2duaXRpb24gPSBudWxsOwor
dmFyIHJlY29yZGVyID0gbnVsbDsKKworZnVuY3Rpb24gc3RhcnQoKQoreworICAgIGlmICghc3Bl
ZWNoUmVjb2duaXRpb24pCisgICAgICAgIHNwZWVjaFJlY29nbml0aW9uID0gbmV3IHdlYmtpdFNw
ZWVjaFJlY29nbml0aW9uKCk7CisgICAgc3BlZWNoUmVjb2duaXRpb24uY29udGludW91cyA9IHRy
dWU7CisgICAgc3BlZWNoUmVjb2duaXRpb24ub25zdGFydCA9ICgpID0+IHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdGFydCIpOworICAgIHNw
ZWVjaFJlY29nbml0aW9uLm9uZXJyb3IgPSAoZXZlbnQpID0+IHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJFcnJvcjogIiArIGV2ZW50LmVycm9y
ICsgIiAtICIgKyAgZXZlbnQubWVzc2FnZSk7CisKKyAgICBzcGVlY2hSZWNvZ25pdGlvbi5zdGFy
dCgpOworfQorCitmdW5jdGlvbiBzdG9wKCkKK3sKKyAgICBpZiAoc3BlZWNoUmVjb2duaXRpb24p
CisgICAgICAgIHNwZWVjaFJlY29nbml0aW9uLnN0b3AoKTsKK30KKworZnVuY3Rpb24gZ290TWVk
aWEoc3RyZWFtKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHRyYWNrcyA9IHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpOworICAgICAgICB0cmFja3NbMF0ub25tdXRlID0gKCkgPT4gd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlJlY29yZGVyIE11
dGUiKTsKKworICAgICAgICBpZiAoIXJlY29yZGVyKQorICAgICAgICAgICAgcmVjb3JkZXIgPSBu
ZXcgTWVkaWFSZWNvcmRlcihzdHJlYW0pOworCisgICAgICAgIHJlY29yZGVyLm9uZXJyb3IgPSAo
ZXZlbnQpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJSZWNvcmRlciBFcnJvcjogIiArIGV2ZW50LmNvZGUgKyAiIC0gIiArICBldmVudC5t
ZXNzYWdlKTsKKyAgICAgICAgcmVjb3JkZXIuc3RhcnQoKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoIlJlY29yZGVyIEVycm9yIDogIiArIGUpOworICAgIH0KK30KKworZnVuY3Rpb24gc3RhcnRS
ZWNvcmRlcigpIHsKKyAgICBpZiAocmVjb3JkZXIpIHsKKyAgICAgICAgcmVjb3JkZXIuc3RhcnQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUgfSkKKyAgICAudGhlbihnb3RNZWRpYSkKKyAgICAu
Y2F0Y2goZSA9PiB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCJVc2VyTWVkaWEgRXJyb3I6ICIgKyBlKTsgfSk7Cit9CisKK2Z1bmN0aW9uIHN0
b3BSZWNvcmRlcigpIHsKKyAgICBpZiAocmVjb3JkZXIpCisgICAgICAgIHJlY29yZGVyLnN0b3Ao
KTsKK30KKworPC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416975</attachid>
            <date>2021-01-05 00:08:43 -0800</date>
            <delta_ts>2021-01-05 09:45:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220133-20210105000842.patch</filename>
            <type>text/plain</type>
            <size>30234</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyYjdjZmNkZTk0MTA1
M2E3MmMyY2ZhZTRmYWYyMWQyODA4MmMxOS4uMWU0MTBlNzRmOGQ5NzU0OThkN2UzZDY1ZWJlZDdm
ZjZmZjY1YzFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAxLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgRmFpbCBzcGVlY2ggcmVjb2du
aXRpb24gd2hlbiBwYWdlIGlzIG11dGVkIGZvciBhdWRpbyBjYXB0dXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMzMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcyNzQ1MjMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQyLlNwZWVjaFJlY29nbml0aW9uRXJyb3JXaGVu
U3RhcnRpbmdBdWRpb0NhcHR1cmVPbkRpZmZlcmVudFBhZ2UKKworICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6Om11dGUpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6bXV0
ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnNvdXJjZSk6CisKIDIwMjEtMDEt
MDQgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2Vy
LXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDIxCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZj
N2I2YWU0OGFkODQzM2Q1YjBmYmNkNmY4OGM3MjRkZmY2NTRjNGUuLmUyNWJkM2RmM2ZhYTU1MWM0
ZTI0MzA3M2Q1Y2NiYWZkZTViOWVjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEt
MDEtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBGYWlsIHNw
ZWVjaCByZWNvZ25pdGlvbiB3aGVuIHBhZ2UgaXMgbXV0ZWQgZm9yIGF1ZGlvIGNhcHR1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDEzMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzI3NDUyMzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkgYWxsb3cgb25lIHBhZ2Ug
dG8gY2FwdHVyZSBtZWRpYSBhdCBhIHRpbWUgYW5kIHdlIGRpZCB0aGlzIGJ5IG11dGluZyAoc3Rv
cCBjYXB0dXJlIGluKSBvdGhlciAKKyAgICAgICAgcGFnZXMuIFRvIG1ha2Ugc3BlZWNoIHJlY29n
bml0aW9uIHdvcmsgd2l0aCAgYmVoYXZpb3IsIHR3byBjaGFuZ2VzIGFyZSBtYWRlOgorICAgICAg
ICAxLiB3aGVuIHBhZ2UgaXMgbXV0ZWQsIG11dGUgYXVkaW8gY2FwdHVyZSBzb3VyY2UgdXNlZCBm
b3Igc3BlZWNoIHJlY29nbml0aW9uIGF1ZGlvbiBvbiB0aGUgcGFnZS4gVGhpcyB3aWxsCisgICAg
ICAgIHVsdGltYXRlbHkgZmFpbCByZWNvZ25pdGlvbi4KKyAgICAgICAgMi4gd2hlbiBzcGVlY2gg
cmVjb2duaXRpb24gaXMgYWJvdXQgdG8gc3RhcnQsIG1ha2Ugc3VyZSBvdGhlciBwYWdlcyBhcmUg
bXV0ZWQgZm9yIGNhcHR1cmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjp+
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cGFnZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bXV0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nl
c3NNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
Om11dGVDYXB0dXJlTWVkaWFTdHJlYW1zSW5QYWdlc0V4Y2VwdCk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2VwdElu
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjphY3RpdmF0ZU1lZGlhU3RyZWFtQ2FwdHVyZUluUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TXV0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oOgorCiAyMDIxLTAxLTA0ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUg
MjAyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggZDdlY2U2NTlmMDg5Mjlk
ZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MS4uNTdjOTA3NmY4NGNmNzAyOTkyNzFhZjljYTQyZWYw
MDk4NGE4YzQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw2ICsz
NCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjptdXRlKCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1f
aW1wbC0+bXV0ZSgpOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBP
cHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZp
bmRDYXB0dXJlRGV2aWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNjlmOWE4
OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEwZjNhYzgxOTQ4Yy4uMDhhYWNhZDJkNDNlOWM4MmFiNGE2
OTVkMWVmOTMxZGE3ZDE5YTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQ0
LDEwICs0NCwxMSBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgewogcHVi
bGljOgogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAg
ICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwotICAgIHVzaW5n
IERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QpPjsKLSAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG11
dGUoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdXNpbmcgRGF0YUNhbGxiYWNr
ID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OworICAgIHVz
aW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlJik+OwogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwg
U3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZp
bmRDYXB0dXJlRGV2aWNlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCBiZmM1YmUxMDM0
YmUzYzEyZDJjYWRlYzNlMTIxOTQzZWFiODk5MzIzLi5mNWE0NTA4NmMzZGM3ZGYzMmU3MWE1Yzlj
MmU4ZDFhNTdmOTI5YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNw
cApAQCAtMTQ2LDYgKzE0NiwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9D
YXB0dXJlLCAiU291cmNlIGlzIG11dGVkIiB9KSk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6bXV0ZSgpCit7CisgICAgbV9zb3VyY2UtPnNldE11dGVkKHRy
dWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oCmluZGV4IDNjYTZlOTQ5MDViNWRiYjQzYWUyNWZkYmJiZTQw
NDRhZWQ5ZmUzZmUuLmJjNWMwMmExODkzNDcxNGM3NzM5MzU4NGUyM2M3M2IzMDFlYjg3NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwg
RGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7Cisg
ICAgdm9pZCBtdXRlKCk7CiAKIHByaXZhdGU6CiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW9TYW1wbGVPYnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5oCmluZGV4IDE0OTVkYTI5YTQ4YzUwODk3YmJiZmJkMDFkNDNhMmE0
ZjBkYTBiMjYuLjM5NmE1MzE2YTBmZjVkMTk1ZmQxOTk1MTkyMzRjZmI4MTVhMDhjYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAg
LTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcCgpOwog
CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50
aWZpZXI7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UqIHNvdXJjZSgpIHsg
cmV0dXJuIG1fc291cmNlLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wSW50ZXJu
YWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKaW5kZXggY2QyMzJhNTY3NDI0YmUwMjc3
YWUyMDVjZjA4N2RjYzA0ZDY4Yzc5OC4uZGNiZmJjOGQ4MmExNmJkOTVlZTQ2YjU4ZDEwMmNjMTJh
ZjNlZTVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAKQEAgLTY0LDE1ICs2NCwyMyBA
QCBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6Q2hlY2tSZXN1bHQg
Y29tcHV0ZVNwZWVjaFJlY29nbml0aW9uUwogI2VuZGlmCiB9CiAKK0hhc2hTZXQ8U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcio+JiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25N
YW5hZ2VyOjphbGxNYW5hZ2VycygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hT
ZXQ8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcio+PiBtYW5hZ2VyczsKKyAgICBy
ZXR1cm4gbWFuYWdlcnM7Cit9CisKIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6
OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIoV2ViUGFnZVByb3h5JiBwYWdlKQog
ICAgIDogbV9wYWdlKHBhZ2UpCiB7CisgICAgYWxsTWFuYWdlcnMoKS5hZGQodGhpcyk7CiB9CiAK
IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25NYW5hZ2VyKCkKIHsKICAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3JlcXVlc3Rz
KQogICAgICAgICByZXF1ZXN0LT5jb21wbGV0ZShTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25E
ZWNpc2lvbjo6RGVueSk7CisgICAgYWxsTWFuYWdlcnMoKS5yZW1vdmUodGhpcyk7CiB9CiAgICAg
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYg
Y29tcGxldGlvbnRIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oCmluZGV4IDg5MjlhMDMw
ZTQwY2JlNWJhMjIwZmU0MDZlNTE2ZTRkYTdhOWU2ZmQuLmM0MGY4Yjg1ZGRlOTg1ZjFlOTk0ODA2
NzE3OTkwMDgxYTc3OTc0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgKQEAgLTM2LDEyICsz
NiwxNSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbk1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgSGFzaFNldDxTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyKj4m
IGFsbE1hbmFnZXJzKCk7CisKICAgICBlbnVtIGNsYXNzIENoZWNrUmVzdWx0IHsgRGVuaWVkLCBH
cmFudGVkLCBVbmtub3duIH07CiAgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlcihXZWJQYWdlUHJveHkmKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlcigpOwogICAgIHZvaWQgcmVxdWVzdChjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKTsKIAogICAgIHZvaWQgZGVjaWRlQnlEZWZh
dWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gbV9w
YWdlOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydE5leHRSZXF1ZXN0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5k
ZXggOWI1OGZlOTA0M2NkMjVkMjA4ZjMyYjYzMTA2ZWVjY2I1M2ZjMWJhNy4uYTQ5ODdhNjkzYjhm
MDAyY2ZlYzhjNTYzMmQwMGNmNWFhMDAyZDI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyLmgiCiAKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oPgpAQCAtMTI0LDYgKzEyNSw4IEBAIHZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0JiByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBVc2VyTWVk
aWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkubXV0ZUNhcHR1cmVNZWRpYVN0cmVhbXNJblBh
Z2VzRXhjZXB0KG1faWRlbnRpZmllcik7CisKICAgICBib29sIG1vY2tEZXZpY2VDYXB0dXJlc0Vu
YWJsZWQgPSBtX2NoZWNrSWZNb2NrU3BlZWNoUmVjb2duaXRpb25FbmFibGVkKCk7CiAgICAgbV9y
ZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgp
LCBtb2NrRGV2aWNlQ2FwdHVyZXNFbmFibGVkLCByZXF1ZXN0LmxhbmcoKSwgcmVxdWVzdC5jb250
aW51b3VzKCksIHJlcXVlc3QuaW50ZXJpbVJlc3VsdHMoKSwgcmVxdWVzdC5tYXhBbHRlcm5hdGl2
ZXMoKSk7CiAjZWxzZQpAQCAtMTkwLDYgKzE5MywxNSBAQCB1aW50NjRfdCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVy
biBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6bXV0ZSgpCit7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9yZWNvZ25pemVyLT5zb3VyY2UoKSkKKyAg
ICAgICAgc291cmNlLT5tdXRlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5k
ZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmgKaW5kZXggMWRlNWQxNTJjZmEwNzAwYzhkODczM2NiMTI2N2ViMjlh
OGM4YzU1Yy4uZDJiYTY3NjM3NjhlNmE1ZDE0OTk4MTAyZjc5NzJjYTg4YmYyY2VmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBA
IC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBhYm9ydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2
b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllcik7CisgICAgdm9pZCBtdXRlKCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5jcHAKaW5kZXggMjdiMTIzYmJmOTk5MGU0ZDYxZGIyY2IzNzE3YzZiNDhhZTRlY2FlZC4u
NmRkNDczY2MyZmUzNjBhNGFiYzc0ZTRlOTlhMmI1MGZkZmJmMGM2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtMjMs
NiArMjMsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhRGV2aWNl
U2FuZGJveEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC01NiwxNSAr
NTcsMjIgQEAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
KCkKIHsKIH0KIAotdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6bXV0ZUNhcHR1cmVNZWRp
YVN0cmVhbXNFeGNlcHRJbihXZWJQYWdlUHJveHkmIHBhZ2VTdGFydGluZ0NhcHR1cmUpCit2b2lk
IFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0luUGFnZXNF
eGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpmb3JFYWNo
KFsmcGFnZVN0YXJ0aW5nQ2FwdHVyZV0oYXV0byYgcHJveHkpIHsKLSAgICAgICAgaWYgKCZwcm94
eS5wYWdlKCkgIT0gJnBhZ2VTdGFydGluZ0NhcHR1cmUpCi0gICAgICAgICAgICBwcm94eS5wYWdl
KCkuc2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQodHJ1ZSk7CisgICAgSGFzaFNldDxXZWJQYWdl
UHJveHkqPiBtX3BhZ2VzOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojpmb3JFYWNoKFsmXShhdXRvJiBwcm94eSkgeworICAgICAgICBtX3BhZ2VzLmFkZCgmcHJv
eHkucGFnZSgpKTsKICAgICB9KTsKKyAgICBmb3IgKGF1dG8qIG1hbmFnZXIgOiBTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjphbGxNYW5hZ2VycygpKQorICAgICAgICBtX3BhZ2Vz
LmFkZCgmbWFuYWdlci0+cGFnZSgpKTsKKworICAgIGZvciAoYXV0byogcGFnZSA6IG1fcGFnZXMp
IHsKKyAgICAgICAgaWYgKHBhZ2UtPndlYlBhZ2VJRCgpICE9IHBhZ2VJRCkKKyAgICAgICAgICAg
IHBhZ2UtPnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRydWUpOworICAgIH0KICNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHBhZ2VTdGFydGluZ0NhcHR1cmUpOworICAgIFVOVVNFRF9QQVJBTShw
YWdlSUQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlci5oCmluZGV4IGFlOWU0NDY2NGZhY2JlYTdiYTc2Nzk5NGM0NmIy
MDlkYWFlMDA3NGQuLjk4ZWU1OWJjODJhZDAzMmRkNDI0Y2IzZGEzZmFlYjBiYzVhMDU4NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIu
aApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zNiw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlcigpOwogCiAgICAgYm9vbCB3aWxsQ3JlYXRlTWVkaWFTdHJl
YW0oVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCBib29sIHdpdGhBdWRp
bywgYm9vbCB3aXRoVmlkZW8pOwotICAgIHZvaWQgbXV0ZUNhcHR1cmVNZWRpYVN0cmVhbXNFeGNl
cHRJbihXZWJQYWdlUHJveHkmKTsKKyAgICB2b2lkIG11dGVDYXB0dXJlTWVkaWFTdHJlYW1zSW5Q
YWdlc0V4Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJldm9rZVNh
bmRib3hFeHRlbnNpb25zSWZOZWVkZWQoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDU3MTZkNjdkNzAwZTJkMWE5N2IzMDRh
Mjk0OWFhYmNhMjQzNThkNWMuLmUxYmFmMWE0MmE4NzFjZmJmNmUyYjkwYjAyZGY4NmZhZjVjYjBm
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM4Nyw3
ICsyMzg3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVk
KGJvb2wgbXV0ZWQpCiB2b2lkIFdlYlBhZ2VQcm94eTo6YWN0aXZhdGVNZWRpYVN0cmVhbUNhcHR1
cmVJblBhZ2UoKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLm11dGVDYXB0dXJlTWVkaWFTdHJlYW1zRXhjZXB0SW4o
KnRoaXMpOworICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5tdXRlQ2Fw
dHVyZU1lZGlhU3RyZWFtc0luUGFnZXNFeGNlcHQobV93ZWJQYWdlSUQpOwogI2VuZGlmCiAgICAg
c2V0TXV0ZWQobV9tdXRlZFN0YXRlICYgfldlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Ry
ZWFtQ2FwdHVyZUlzTXV0ZWQpOwogfQpAQCAtNTk1NCw5ICs1OTU0LDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
c3RhdGUpCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBib29sIGhhc011dGVkQ2FwdHVy
ZVN0cmVhbXMgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZENh
cHR1cmVNYXNrOwogICAgIGlmIChoYXNNdXRlZENhcHR1cmVTdHJlYW1zICYmICEoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkKSkKLSAgICAg
ICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLm11dGVDYXB0dXJlTWVkaWFT
dHJlYW1zRXhjZXB0SW4oKnRoaXMpOworICAgICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6
c2luZ2xldG9uKCkubXV0ZUNhcHR1cmVNZWRpYVN0cmVhbXNJblBhZ2VzRXhjZXB0KG1fd2ViUGFn
ZUlEKTsKICNlbmRpZgogCisgICAgbV9wcm9jZXNzLT5wYWdlTXV0ZWRTdGF0ZUNoYW5nZWQobV93
ZWJQYWdlSUQsIHN0YXRlKTsKKwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE11dGVk
KHN0YXRlKSk7CiAgICAgYWN0aXZpdHlTdGF0ZURpZENoYW5nZSh7IEFjdGl2aXR5U3RhdGU6Oklz
QXVkaWJsZSwgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ5NDI0Njg2ZTJmNjk0
MzM1MTY0ODcxN2I3OTM1ZDQ4ZWVkMDEzYTQuLmVkNDk3NjJlOGE2NTdiNjE2ZjNmZDlkZWM3NTZh
NGFmN2M4YzUxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMTc2Niw2ICsxNzY2LDE5IEBAIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoCiAKICNl
bmRpZgogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGVGbGFncyBmbGFncykKK3sKKyAgICBib29sIG11dGVkRm9yQ2FwdHVyZSA9IGZsYWdz
ICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOworICAgIGlmICgh
bXV0ZWRGb3JDYXB0dXJlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5nZXQoaWRlbnRpZmll
cik7CisgICAgaWYgKCFzcGVlY2hSZWNvZ25pdGlvblNlcnZlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPm11dGUoKTsKK30KKwogI2lmIFBMQVRGT1JN
KFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0
eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IGExMWEzOTRlN2FhOGIzZmM5M2U4NzhhMmUwMTk4Yzg5ZTFlMjczYjcuLjMy
NjVjNDQ0NWI4NDczODNlMTViYzBiOGMzZDVmZGE0NTYyYzk3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CkBAIC00MDIsNiArNDAzLDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwogI2VuZGlmCisgICAgdm9pZCBwYWdlTXV0
ZWRTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CiAKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJv
eHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhMTIyOGIz
OWM5ODk2YjI1OGM4NGRlZWVlZDFmODgyMjgwYjk1OTAuLmNjMTJhZWJmY2FhYTQ5ZjJkNzAzNGJh
ZTMxYWExNDFiNGYxOTBiNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMS0wNCAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEZhaWwgc3BlZWNoIHJlY29nbml0aW9uIHdoZW4g
cGFnZSBpcyBtdXRlZCBmb3IgYXVkaW8gY2FwdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTMzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
Mjc0NTIzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2du
aXRpb24ubW06CisgICAgICAgICgtW1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdh
dGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246ZGVjaXNpb25IYW5k
bGVyOl0pOgorICAgICAgICAoLVtTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRl
IF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJh
bWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evc3BlZWNo
cmVjb2duaXRpb24tYmFzaWMuaHRtbDogQWRkZWQuCisKIDIwMjAtMTItMjggIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgYnVpbHQtcHJvZHVjdC1hcmNoaXZl
IHNob3VsZCB3b3JrIHdpdGggUHl0aG9uIDMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmQ4
MThlOWI3NjM4MjBhYTYyNTE5NWQ2YTQwNDFkNzU1MWU0YWYzOS4uNGFmM2ZlYTUxZTg1YTE2ZjRk
NDc3YmU1OGIwNDliZTI3OWYzNTA4YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgwOSw2
ICs4MDksNyBAQAogCQk5MzU3ODZDQzIwRjZBMjcwMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0
ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi87
IH07CiAJCTkzNTc4NkNEMjBGNkEyOTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMyBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVD
NzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi87IH07CiAJCTkzNTc4NkNF
MjBGNkEyQTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzYyMEY2OUZFRDAw
NDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLzsgfTsKKwkJOTM2MDI3MDYyNUEzQ0Y3
NjAwMzY3NjcwIC8qIHNwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2MDI3MDUyNUEzQjI4RTAw
MzY3NjcwIC8qIHNwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWwgKi87IH07CiAJCTkzNjEwMDI5
MTREQzk1QTcwMDYxMzc5RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzYxMDAyODE0REM5NTdCMDA2
MTM3OUQgLyogbG90cy1vZi1pZnJhbWVzLmh0bWwgKi87IH07CiAJCTkzNjI1RDI3MUNEOTc0MUMw
MDZEQzFGMSAvKiBsYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2MjVEMjYxQ0Q5NzNBRjAw
NkRDMUYxIC8qIGxhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCAqLzsgfTsKIAkJOTM2OEEy
NUUyMjlFRkI0NzAwQTgyOUNBIC8qIGxvY2FsLXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0xLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM2OEEyNUQyMjlFRkIzQTAwQTgyOUNBIC8qIGxvY2FsLXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5k
cy0xLmh0bWwgKi87IH07CkBAIC0xNjE5LDYgKzE2MjAsNyBAQAogCQkJCUY0RjQwNUJEMUQ0QzBE
MUMwMDdBOTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMwMUEyM0YyMTI2NjE1NjcwMEM5RUQ1NSAvKiBzcGFj
ZWJhci1zY3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNENGQ0REQTI0
OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJ
CQk5MzYwMjcwNjI1QTNDRjc2MDAzNjc2NzAgLyogc3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzQyNTg5RTI1NUI2QTEyMDA1OUVFREQgLyog
c3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRTE5NEUxQkQxNzdFNTNDNzAwOUM0RDRFIC8qIFN0b3BMb2Fk
aW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTUxNUJFMTZGMUQ0MjhCQjEwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0JlRGVsZXRlZC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLApAQCAtMjQyMiw2ICsyNDI0LDcgQEAKIAkJOTM0RkE1QzYyMEY2
OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNx
bGl0ZTMtc2htIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzcyMEY2OUZF
RTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWREQi5zcWxpdGUzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQgLyog
Zm9jdXMtaW5wdXRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZm9jdXMtaW5w
dXRzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzYwMjcwNTI1QTNCMjhF
MDAzNjc2NzAgLyogc3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJzcGVlY2hyZWNvZ25pdGlvbi1iYXNpYy5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZy
YW1lcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxvdHMtb2YtaWZyYW1lcy5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2MjVEMjYxQ0Q5NzNBRjAwNkRD
MUYxIC8qIGxhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJsYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzY4QTI1QzIyOUVGQjNBMDBBODI5Q0EgLyogbG9jYWwtc3RvcmFn
ZS1wcm9jZXNzLXN1c3BlbmRzLTIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJs
b2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3VzcGVuZHMtMi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTM5MjksNiArMzkzMiw3IEBACiAJCQkJNDY1NkE3NTcyMEY5MDU0RjAwMDJF
MjFGIC8qIFNpbXBsZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zLTQuc3FsaXRlMyAqLywKIAkJ
CQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbCAqLywKIAkJCQlGNENGQ0REODI0OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VP
bmx5Lm90ZiAqLywKKwkJCQk5MzYwMjcwNTI1QTNCMjhFMDAzNjc2NzAgLyogc3BlZWNocmVjb2du
aXRpb24tYmFzaWMuaHRtbCAqLywKIAkJCQk5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3Bl
ZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi8sCiAJCQkJ
NTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4IC8qIFN0b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwgKi8s
CiAJCQkJOUJENkQzQTExRjdCMjAyMTAwQkQ0OTYyIC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMTAw
cHgudGlmZiAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCmluZGV4IGUzM2FkMDJiNTQxNTJjMTA1NmU2
NDhjNmFhMmJmNjEzMTRiYTE0MDQuLjk5ZmFkNjY5NmYyMGMyYmZlNTlmZWZjMDczYjY2MTEwODE5
NjllOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U3BlZWNoUmVjb2duaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8
V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgotI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBzdGF0
aWMgYm9vbCBzaG91bGRHcmFudFBlcm1pc3Npb25SZXF1ZXN0ID0gdHJ1ZTsKQEAgLTQwLDYgKzQw
LDggQEAgc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdl
OwogCiBAaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgOiBO
U09iamVjdDxXS1VJRGVsZWdhdGVQcml2YXRlPgogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihX
S1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkp
ZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmlj
ZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBm
cmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
VUlEZWxlZ2F0ZQpAQCAtNDgsNiArNTAsMTYgQEAgc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1l
c3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogICAgIHBlcm1pc3Npb25SZXF1ZXN0ZWQgPSB0cnVl
OwogICAgIGRlY2lzaW9uSGFuZGxlcihzaG91bGRHcmFudFBlcm1pc3Npb25SZXF1ZXN0KTsKIH0K
KworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRs
ZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNV
UkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRp
ZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhv
cml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0
MzIxMCIsIFlFUyk7Cit9CiBAZW5kCiAKIEBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25NZXNz
YWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgpAQCAtMTAzLDQg
KzExNSw1NiBAQCBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uVXNlclBlcm1pc3Npb25Q
ZXJzaXN0ZW5jZSkKICAgICBFWFBFQ1RfRkFMU0UocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIH0K
IAorVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yV2hlblN0YXJ0aW5nQXVkaW9D
YXB0dXJlT25EaWZmZXJlbnRQYWdlKQoreworICAgIHNob3VsZEdyYW50UGVybWlzc2lvblJlcXVl
c3QgPSB0cnVlOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbU3BlZWNoUmVjb2duaXRpb25NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgY29uZmlndXJhdGlv
bi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9zcGVlY2hSZWNvZ25p
dGlvbkVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1
dG8gZmlyc3RXZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7CisgICAgW2ZpcnN0V2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKKyAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbc2Vjb25kV2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIC8vIEZpcnN0IHBhZ2Ugc3RhcnRzIHJlY29nbml0
aW9uIHN1Y2Nlc3NmdWxseS4KKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAg
ICBbZmlyc3RXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNwZWVjaHJl
Y29nbml0aW9uLWJhc2ljIl07CisgICAgW2ZpcnN0V2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAic3RhcnQoKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJTdGFydCIsIFtsYXN0
U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBGaXJzdCBwYWdlIGlzIG11dGVkIHdoZW4g
c2Vjb25kIHBhZ2Ugc3RhcnRzIHJlY29nbml0aW9uLgorICAgIC8vIExvYWQgaHRtbCBzdHJpbmcg
aW5zdGVhZCBvZiB0ZXN0IHBhZ2UgdG8gbWFrZSBzdXJlIG1lc3NhZ2Ugb25seSBjb21lcyBmcm9t
IG9uZSBwYWdlLgorICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFtzZWNv
bmRXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+c3BlZWNoUmVj
b2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTsgc3BlZWNoUmVjb2duaXRp
b24uc3RhcnQoKTs8L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
czovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAIkVycm9yOiBhdWRpby1jYXB0
dXJlIC0gU291cmNlIGlzIG11dGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAg
IC8vIEZpcnN0IHBhZ2UgcmVzdGFydHMgcmVjb2duaXRpb24gc3VjY2Vzc2Z1bGx5LgorICAgIHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFtmaXJzdFdlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0YXJ0KCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiU3Rh
cnQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gRmlyc3QgcGFnZSBpcyBt
dXRlZCB3aGVuIHNlY29uZCBwYWdlIHN0YXJ0cyBtZWRpYSByZWNvcmRlci4KKyAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBbc2Vjb25kV2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJzcGVlY2hyZWNvZ25pdGlvbi1iYXNpYyJdOworICAgIFtzZWNv
bmRXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzdGFydFJlY29yZGVyKCki
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRXJyb3I6IGF1ZGlvLWNhcHR1cmUgLSBTb3VyY2UgaXMg
bXV0ZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gU2Vjb25kIHBhZ2Ug
aXMgbXV0ZWQgd2hlbiBmaXJzdCBwYWdlIHN0YXJ0cyByZWNvZ25pdGlvbi4KKyAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBbZmlyc3RXZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+c3BlZWNoUmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3Bl
ZWNoUmVjb2duaXRpb24oKTsgc3BlZWNoUmVjb2duaXRpb24uc3RhcnQoKTs8L3NjcmlwdD4iIGJh
c2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3dlYmtpdC5vcmciXV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVY
UEVDVF9XS19TVFJFUShAIlJlY29yZGVyIE11dGUiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0p
OworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3NwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0
bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3NwZWVjaHJlY29nbml0
aW9uLWJhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNlNmY2YWMzNTliMjFlMmUyYTRlYWE3Yzc5ZGNm
YmNhZmQwYjU5MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evc3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRtbApAQCAtMCwwICsxLDU2IEBA
Cis8aHRtbD4KKzxzY3JpcHQ+CisKK3ZhciBzcGVlY2hSZWNvZ25pdGlvbiA9IG51bGw7Cit2YXIg
cmVjb3JkZXIgPSBudWxsOworCitmdW5jdGlvbiBzdGFydCgpCit7CisgICAgaWYgKCFzcGVlY2hS
ZWNvZ25pdGlvbikKKyAgICAgICAgc3BlZWNoUmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNo
UmVjb2duaXRpb24oKTsKKyAgICBzcGVlY2hSZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTsK
KyAgICBzcGVlY2hSZWNvZ25pdGlvbi5vbnN0YXJ0ID0gKCkgPT4gd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN0YXJ0Iik7CisgICAgc3BlZWNo
UmVjb2duaXRpb24ub25lcnJvciA9IChldmVudCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIkVycm9yOiAiICsgZXZlbnQuZXJyb3IgKyAi
IC0gIiArICBldmVudC5tZXNzYWdlKTsKKworICAgIHNwZWVjaFJlY29nbml0aW9uLnN0YXJ0KCk7
Cit9CisKK2Z1bmN0aW9uIHN0b3AoKQoreworICAgIGlmIChzcGVlY2hSZWNvZ25pdGlvbikKKyAg
ICAgICAgc3BlZWNoUmVjb2duaXRpb24uc3RvcCgpOworfQorCitmdW5jdGlvbiBnb3RNZWRpYShz
dHJlYW0pIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgdHJhY2tzID0gc3RyZWFtLmdldEF1ZGlv
VHJhY2tzKCk7CisgICAgICAgIHRyYWNrc1swXS5vbm11dGUgPSAoKSA9PiB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiUmVjb3JkZXIgTXV0ZSIp
OworCisgICAgICAgIGlmICghcmVjb3JkZXIpCisgICAgICAgICAgICByZWNvcmRlciA9IG5ldyBN
ZWRpYVJlY29yZGVyKHN0cmVhbSk7CisKKyAgICAgICAgcmVjb3JkZXIub25lcnJvciA9IChldmVu
dCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoIlJlY29yZGVyIEVycm9yOiAiICsgZXZlbnQuY29kZSArICIgLSAiICsgIGV2ZW50Lm1lc3Nh
Z2UpOworICAgICAgICByZWNvcmRlci5zdGFydCgpOworICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
UmVjb3JkZXIgRXJyb3IgOiAiICsgZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzdGFydFJlY29y
ZGVyKCkgeworICAgIGlmIChyZWNvcmRlcikgeworICAgICAgICByZWNvcmRlci5zdGFydCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSB9KQorICAgIC50aGVuKGdvdE1lZGlhKQorICAgIC5jYXRj
aChlID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoIlVzZXJNZWRpYSBFcnJvcjogIiArIGUpOyB9KTsKK30KKworZnVuY3Rpb24gc3RvcFJl
Y29yZGVyKCkgeworICAgIGlmIChyZWNvcmRlcikKKyAgICAgICAgcmVjb3JkZXIuc3RvcCgpOwor
fQorCis8L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417013</attachid>
            <date>2021-01-05 09:45:12 -0800</date>
            <delta_ts>2021-01-05 10:16:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220133-20210105094511.patch</filename>
            <type>text/plain</type>
            <size>28095</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyYjdjZmNkZTk0MTA1
M2E3MmMyY2ZhZTRmYWYyMWQyODA4MmMxOS4uMTBmNjk0ZjFlODk3YzMxMTdmZTQyM2IxMGUzOTU5
MzM0YzBiMDc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAxLTA1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgRmFpbCBzcGVlY2ggcmVjb2du
aXRpb24gd2hlbiBwYWdlIGlzIG11dGVkIGZvciBhdWRpbyBjYXB0dXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMzMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcyNzQ1MjMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQu
CisKKyAgICAgICAgQVBJIHRlc3Q6IFdlYktpdDIuU3BlZWNoUmVjb2duaXRpb25FcnJvcldoZW5T
dGFydGluZ0F1ZGlvQ2FwdHVyZU9uRGlmZmVyZW50UGFnZQorCisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6bXV0ZSk6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjptdXRl
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c291cmNlKToKKwogMjAyMS0wMS0w
NCAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXIt
dmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMjEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmM3
YjZhZTQ4YWQ4NDMzZDViMGZiY2Q2Zjg4YzcyNGRmZjY1NGM0ZS4uNjg5YmQxMThmMjc1ZjU0MzJk
NThmZTdhYjY0MjI1MmFhNzcyZDkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0w
MS0wNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEZhaWwgc3Bl
ZWNoIHJlY29nbml0aW9uIHdoZW4gcGFnZSBpcyBtdXRlZCBmb3IgYXVkaW8gY2FwdHVyZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTMzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83Mjc0NTIzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vl
bm4gRmFibGV0LgorCisgICAgICAgIFdlIGN1cnJlbnRseSBvbmx5IGFsbG93IG9uZSBwYWdlIHRv
IGNhcHR1cmUgbWVkaWEgYXQgYSB0aW1lIGFuZCB3ZSBkaWQgdGhpcyBieSBtdXRpbmcgKHN0b3Ag
Y2FwdHVyZSBpbikgb3RoZXIgCisgICAgICAgIHBhZ2VzLiBUbyBtYWtlIHNwZWVjaCByZWNvZ25p
dGlvbiB3b3JrIHdpdGggdGhpcyBiZWhhdmlvciwgdHdvIGNoYW5nZXMgYXJlIG1hZGU6CisgICAg
ICAgIDEuIHdoZW4gcGFnZSBpcyBtdXRlZCwgbXV0ZSBhdWRpbyBjYXB0dXJlIHNvdXJjZSB1c2Vk
IGZvciBzcGVlY2ggcmVjb2duaXRpb24gb24gdGhlIHBhZ2UuIFRoaXMgd2lsbAorICAgICAgICB1
bHRpbWF0ZWx5IGZhaWwgcmVjb2duaXRpb24uCisgICAgICAgIDIuIHdoZW4gc3BlZWNoIHJlY29n
bml0aW9uIGlzIGFib3V0IHRvIHN0YXJ0LCBtYWtlIHN1cmUgb3RoZXIgcGFnZXMgYXJlIG11dGVk
IGZvciBjYXB0dXJlLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uTWFuYWdlcjo6cGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6bXV0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6Om11dGVDYXB0dXJlTWVkaWFTdHJl
YW1zRXhjZXB0SW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9j
ZXNzTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFjdGl2YXRlTWVkaWFTdHJlYW1DYXB0dXJlSW5Q
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRNdXRlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6bXV0ZUNhcHR1cmVJblBhZ2VzRXhjZXB0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpwYWdlTXV0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKwogMjAyMS0wMS0wNCAgSmVmZiBNaWxsZXIgIDxqZWZm
bUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3Ry
aW5ncyB0byBpbmNsdWRlIDIwMjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4
IGQ3ZWNlNjU5ZjA4OTI5ZGZiYzc3YzE3MTFhOTQ0YzdjMTE1ZTYxNDEuLjU3YzkwNzZmODRjZjcw
Mjk5MjcxYWY5Y2E0MmVmMDA5ODRhOGM0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcApAQCAtMzQsNiArMzQsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6bXV0ZSgpCit7CisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBtX2ltcGwtPm11dGUoKTsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKIAogT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oCmluZGV4IDY5ZjlhODhiMjYxZTcxZjY2ZWMwMGJiOWU3MWRhMGYzYWM4MTk0OGMuLjA4YWFj
YWQyZDQzZTljODJhYjRhNjk1ZDFlZjkzMWRhN2QxOWEzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCkBAIC00NCwxMCArNDQsMTEgQEAgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlIHsKIHB1YmxpYzoKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
KSA9IGRlZmF1bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVm
YXVsdDsKLSAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KT47Ci0gICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBtdXRlKCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVz
aW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpPjsKKyAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChj
b25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwg
RGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
aW5kZXggYmZjNWJlMTAzNGJlM2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uZjVhNDUwODZj
M2RjN2RmMzJlNzFhNWM5YzJlOGQxYTU3ZjkyOWJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5jcHAKQEAgLTE0Niw2ICsxNDYsMTEgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogICAgIG1fc3RhdGVV
cGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNvdXJjZSBpcyBtdXRlZCIgfSkpOwogfQogCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Om11dGUoKQoreworICAgIG1fc291
cmNlLT5zZXRNdXRlZCh0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaAppbmRleCAzY2E2ZTk0OTA1YjVk
YmI0M2FlMjVmZGJiYmU0MDQ0YWVkOWZlM2ZlLi5iYzVjMDJhMTg5MzQ3MTRjNzczOTM1ODRlMjNj
NzNiMzAxZWI4NzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCkBAIC01
NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKICAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbCgpOworICAgIHZvaWQgbXV0ZSgpOwogCiBwcml2YXRlOgogICAgIC8vIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAppbmRleCAxNDk1ZGEyOWE0OGM1MDg5
N2JiYmZiZDAxZDQzYTJhNGYwZGEwYjI2Li4zOTZhNTMxNmEwZmY1ZDE5NWZkMTk5NTE5MjM0Y2Zi
ODE1YTA4Y2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHN0b3AoKTsKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgc3RvcEludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgKaW5kZXggODkyOWEw
MzBlNDBjYmU1YmEyMjBmZTQwNmU1MTZlNGRhN2E5ZTZmZC4uMGM0Y2E2ZjViODNiNDlkYWRjNzRm
N2Y3ZjEwMGM4Njg2YmYxODI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaApAQCAtNDIsNiAr
NDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0KGNvbnN0IFN0cmluZyYgbGFuZywgY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYpOwogCiAgICAgdm9pZCBkZWNpZGVCeURl
ZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBt
X3BhZ2U7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0TmV4dFJlcXVlc3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApp
bmRleCA5YjU4ZmU5MDQzY2QyNWQyMDhmMzJiNjMxMDZlZWNjYjUzZmMxYmE3Li5lMjZmMjFhMTg5
MGY0Y2ZhMGMyNmQyMmE5ZWJjOTQwNGUzNmUzNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFQcm9j
ZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmg+CkBAIC0xMjQsNiArMTI1LDggQEAgdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QmIHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIFdlYlBy
b2Nlc3NQcm94eTo6bXV0ZUNhcHR1cmVJblBhZ2VzRXhjZXB0KG1faWRlbnRpZmllcik7CisKICAg
ICBib29sIG1vY2tEZXZpY2VDYXB0dXJlc0VuYWJsZWQgPSBtX2NoZWNrSWZNb2NrU3BlZWNoUmVj
b2duaXRpb25FbmFibGVkKCk7CiAgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlm
aWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpLCBtb2NrRGV2aWNlQ2FwdHVyZXNFbmFibGVkLCBy
ZXF1ZXN0LmxhbmcoKSwgcmVxdWVzdC5jb250aW51b3VzKCksIHJlcXVlc3QuaW50ZXJpbVJlc3Vs
dHMoKSwgcmVxdWVzdC5tYXhBbHRlcm5hdGl2ZXMoKSk7CiAjZWxzZQpAQCAtMTkwLDYgKzE5Mywx
NSBAQCB1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKIH0K
IAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bXV0ZSgpCit7CisgICAgaWYgKCFtX3Jl
Y29nbml6ZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoYXV0byogc291cmNlID0g
bV9yZWNvZ25pemVyLT5zb3VyY2UoKSkKKyAgICAgICAgc291cmNlLT5tdXRlKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMWRlNWQx
NTJjZmEwNzAwYzhkODczM2NiMTI2N2ViMjlhOGM4YzU1Yy4uZDJiYTY3NjM3NjhlNmE1ZDE0OTk4
MTAyZjc5NzJjYTg4YmYyY2VmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllcik7CiAgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBtdXRlKCk7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggMjdiMTIzYmJmOTk5MGU0
ZDYxZGIyY2IzNzE3YzZiNDhhZTRlY2FlZC4uMjlmMDkyNTIyYmE4MjIwMmFmYjA2YWM2NGU3ZGNi
Yjk2ZDRlYTk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCkBAIC01NiwxOCArNTcsNiBAQCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
cjo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKQogewogfQogCi12b2lkIFVzZXJNZWRpYVByb2Nl
c3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2VwdEluKFdlYlBhZ2VQcm94eSYg
cGFnZVN0YXJ0aW5nQ2FwdHVyZSkKLXsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Zm9yRWFjaChbJnBhZ2VTdGFydGluZ0Nh
cHR1cmVdKGF1dG8mIHByb3h5KSB7Ci0gICAgICAgIGlmICgmcHJveHkucGFnZSgpICE9ICZwYWdl
U3RhcnRpbmdDYXB0dXJlKQotICAgICAgICAgICAgcHJveHkucGFnZSgpLnNldE1lZGlhU3RyZWFt
Q2FwdHVyZU11dGVkKHRydWUpOwotICAgIH0pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocGFn
ZVN0YXJ0aW5nQ2FwdHVyZSk7Ci0jZW5kaWYKLX0KLQogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCiBzdGF0aWMgYm9vbCBuZWVkc0FwcGxlQ2FtZXJhU2VydmljZSgpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaAppbmRleCBh
ZTllNDQ2NjRmYWNiZWE3YmE3Njc5OTRjNDZiMjA5ZGFhZTAwNzRkLi4zOTE4ZDM4YjkxZTI0MTU1
ZmM1NTA0OTA0NTMwYTlkNzUyNGE1NDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1
ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
MzYsNyArMzcsNiBAQCBwdWJsaWM6CiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKTsKIAog
ICAgIGJvb2wgd2lsbENyZWF0ZU1lZGlhU3RyZWFtKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5JiwgYm9vbCB3aXRoQXVkaW8sIGJvb2wgd2l0aFZpZGVvKTsKLSAgICB2b2lk
IG11dGVDYXB0dXJlTWVkaWFTdHJlYW1zRXhjZXB0SW4oV2ViUGFnZVByb3h5Jik7CiAKICAgICB2
b2lkIHJldm9rZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQoV2ViUHJvY2Vzc1Byb3h5Jik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDU3MTZkNjdkNzAw
ZTJkMWE5N2IzMDRhMjk0OWFhYmNhMjQzNThkNWMuLmM3ZDU4NTFjNTYxMzI3NGI2NGFmMjMxNTRl
YzNmMDhmMDNlMjlhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMjM4Nyw3ICsyMzg3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhU3RyZWFt
Q2FwdHVyZU11dGVkKGJvb2wgbXV0ZWQpCiB2b2lkIFdlYlBhZ2VQcm94eTo6YWN0aXZhdGVNZWRp
YVN0cmVhbUNhcHR1cmVJblBhZ2UoKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLm11dGVDYXB0dXJlTWVkaWFTdHJl
YW1zRXhjZXB0SW4oKnRoaXMpOworICAgIFdlYlByb2Nlc3NQcm94eTo6bXV0ZUNhcHR1cmVJblBh
Z2VzRXhjZXB0KG1fd2ViUGFnZUlEKTsKICNlbmRpZgogICAgIHNldE11dGVkKG1fbXV0ZWRTdGF0
ZSAmIH5XZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0cmVhbUNhcHR1cmVJc011dGVkKTsK
IH0KQEAgLTU5NTQsOSArNTk1NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgYm9vbCBoYXNNdXRlZENhcHR1cmVTdHJlYW1zID0gbV9tZWRpYVN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRDYXB0dXJlTWFzazsKICAgICBpZiAo
aGFzTXV0ZWRDYXB0dXJlU3RyZWFtcyAmJiAhKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCkpCi0gICAgICAgIFVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyOjpzaW5nbGV0b24oKS5tdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2VwdEluKCp0aGlz
KTsKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5OjptdXRlQ2FwdHVyZUluUGFnZXNFeGNlcHQobV93
ZWJQYWdlSUQpOwogI2VuZGlmCiAKKyAgICBtX3Byb2Nlc3MtPnBhZ2VNdXRlZFN0YXRlQ2hhbmdl
ZChtX3dlYlBhZ2VJRCwgc3RhdGUpOworCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
TXV0ZWQoc3RhdGUpKTsKICAgICBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKHsgQWN0aXZpdHlTdGF0
ZTo6SXNBdWRpYmxlLCBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhIH0pOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZDk0MjQ2ODZl
MmY2OTQzMzUxNjQ4NzE3Yjc5MzVkNDhlZWQwMTNhNC4uYTg4OWU1NTBkNjFmZjg0YTY0MmFlMmM3
MWEzNGZhOTk4NDQ4ZGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0xNzY0LDcgKzE3NjQsMjkgQEAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2gK
ICAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6Om11dGVDYXB0dXJlSW5QYWdlc0V4
Y2VwdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgZm9yIChhdXRvKiBwYWdlIDogZ2xvYmFsUGFnZU1hcCgpLnZhbHVlcygpKSB7Cisg
ICAgICAgIGlmIChwYWdlLT53ZWJQYWdlSUQoKSAhPSBwYWdlSUQpCisgICAgICAgICAgICBwYWdl
LT5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCh0cnVlKTsKKyAgICB9CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShwYWdlSUQpOwogI2VuZGlmCit9CisKKyNlbmRpZgorCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6cGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBmbGFncykK
K3sKKyAgICBib29sIG11dGVkRm9yQ2FwdHVyZSA9IGZsYWdzICYgTWVkaWFQcm9kdWNlcjo6QXVk
aW9BbmRWaWRlb0NhcHR1cmVJc011dGVkOworICAgIGlmICghbXV0ZWRGb3JDYXB0dXJlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci0+bXV0ZSgpOworfQogCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBhMTFhMzk0
ZTdhYThiM2ZjOTNlODc4YTJlMDE5OGM4OWUxZTI3M2I3Li4xNGE0YjcwNzc5NzBjOTExMmVhNzM5
ZDgyYmEzOWFjYmM3MTk5NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
cm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3Ry
YWJsZURvbWFpbi5oPgpAQCAtMzk4LDEwICszOTksMTIgQEAgcHVibGljOgogI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCiAgICAgdm9pZCBzZXRJZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rp
bmcoKTsKICNlbmRpZgotICAgIAorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGF0
aWMgdm9pZCBtdXRlQ2FwdHVyZUluUGFnZXNFeGNlcHQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwogICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIo
KTsKICNlbmRpZgorICAgIHZvaWQgcGFnZU11dGVkU3RhdGVDaGFuZ2VkKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOwogCiBw
cm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURh
dGFTdG9yZSosIElzUHJld2FybWVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAyYTEyMjhiMzljOTg5NmIyNThjODRkZWVlZWQxZjg4MjI4MGI5
NTkwLi5mYjk1ODkyMTkwMzNmM2EyNTg1ZWNiNDgyNjFmMDY5YjYyNjQ3NmFhIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjEtMDEtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBG
YWlsIHNwZWVjaCByZWNvZ25pdGlvbiB3aGVuIHBhZ2UgaXMgbXV0ZWQgZm9yIGF1ZGlvIGNhcHR1
cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDEz
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzI3NDUyMzI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06CisgICAgICAgICgtW1NwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdE1lZGlhQ2FwdHVy
ZUF1dGhvcml6YXRpb246ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25VSURlbGVnYXRlIF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2Evc3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRtbDogQWRkZWQu
CisKIDIwMjAtMTItMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgYnVpbHQtcHJvZHVjdC1hcmNoaXZlIHNob3VsZCB3b3JrIHdpdGggUHl0aG9uIDMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmQ4MThlOWI3NjM4MjBhYTYyNTE5NWQ2YTQwNDFkNzU1
MWU0YWYzOS4uNGFmM2ZlYTUxZTg1YTE2ZjRkNDc3YmU1OGIwNDliZTI3OWYzNTA4YiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTgwOSw2ICs4MDksNyBAQAogCQk5MzU3ODZDQzIwRjZBMjcw
MDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAv
KiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi87IH07CiAJCTkzNTc4NkNEMjBGNkEyOTEwMDAwQ0RG
QyAvKiBJbmRleGVkREIuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERC
LnNxbGl0ZTMgKi87IH07CiAJCTkzNTc4NkNFMjBGNkEyQTEwMDAwQ0RGQyAvKiBJbmRleGVkREIu
c3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM0RkE1QzYyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNo
bSAqLzsgfTsKKwkJOTM2MDI3MDYyNUEzQ0Y3NjAwMzY3NjcwIC8qIHNwZWVjaHJlY29nbml0aW9u
LWJhc2ljLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM2MDI3MDUyNUEzQjI4RTAwMzY3NjcwIC8qIHNwZWVjaHJlY29nbml0aW9uLWJh
c2ljLmh0bWwgKi87IH07CiAJCTkzNjEwMDI5MTREQzk1QTcwMDYxMzc5RCAvKiBsb3RzLW9mLWlm
cmFtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzYxMDAyODE0REM5NTdCMDA2MTM3OUQgLyogbG90cy1vZi1pZnJhbWVzLmh0bWwg
Ki87IH07CiAJCTkzNjI1RDI3MUNEOTc0MUMwMDZEQzFGMSAvKiBsYXJnZS12aWRlby13aXRob3V0
LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM2MjVEMjYxQ0Q5NzNBRjAwNkRDMUYxIC8qIGxhcmdlLXZpZGVvLXdpdGhvdXQt
YXVkaW8uaHRtbCAqLzsgfTsKIAkJOTM2OEEyNUUyMjlFRkI0NzAwQTgyOUNBIC8qIGxvY2FsLXN0
b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2OEEyNUQyMjlFRkIzQTAwQTgyOUNBIC8qIGxv
Y2FsLXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0xLmh0bWwgKi87IH07CkBAIC0xNjE5LDYgKzE2
MjAsNyBAQAogCQkJCUY0RjQwNUJEMUQ0QzBEMUMwMDdBOTcwNyAvKiBza2lubnktYXV0b3BsYXlp
bmctdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMwMUEy
M0YyMTI2NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1zY3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNENGQ0REQTI0OUZDOUU0MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90
ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5MzYwMjcwNjI1QTNDRjc2MDAzNjc2NzAgLyog
c3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5
MzQyNTg5RTI1NUI2QTEyMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNz
aW9uLXBlcnNpc3RlbmNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRTE5NEUxQkQx
NzdFNTNDNzAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNUJFMTZGMUQ0MjhCQjEwMEREN0M2OCAvKiBT
dG9yZUJsb2JUb0JlRGVsZXRlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjQyMiw2
ICsyNDI0LDcgQEAKIAkJOTM0RkE1QzYyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxp
dGUzLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
cGF0aCA9IEluZGV4ZWREQi5zcWxpdGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQgLyogZm9jdXMtaW5wdXRzLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiZm9jdXMtaW5wdXRzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzYwMjcwNTI1QTNCMjhFMDAzNjc2NzAgLyogc3BlZWNocmVjb2duaXRpb24t
YmFzaWMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzcGVlY2hyZWNvZ25pdGlv
bi1iYXNpYy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2MTAwMjgxNERD
OTU3QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gImxvdHMtb2YtaWZyYW1lcy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM2MjVEMjYxQ0Q5NzNBRjAwNkRDMUYxIC8qIGxhcmdlLXZpZGVvLXdpdGhvdXQtYXVk
aW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby13aXRob3V0
LWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzY4QTI1QzIyOUVG
QjNBMDBBODI5Q0EgLyogbG9jYWwtc3RvcmFnZS1wcm9jZXNzLXN1c3BlbmRzLTIuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3VzcGVuZHMt
Mi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5MjksNiArMzkzMiw3IEBA
CiAJCQkJNDY1NkE3NTcyMEY5MDU0RjAwMDJFMjFGIC8qIFNpbXBsZVNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25zLTQuc3FsaXRlMyAqLywKIAkJCQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyog
c2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLywKIAkJCQlGNENGQ0RE
ODI0OUZDOUQ5MDA1Mjc0ODIgLyogU3BhY2VPbmx5Lm90ZiAqLywKKwkJCQk5MzYwMjcwNTI1QTNC
MjhFMDAzNjc2NzAgLyogc3BlZWNocmVjb2duaXRpb24tYmFzaWMuaHRtbCAqLywKIAkJCQk5MzQy
NTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9u
LXBlcnNpc3RlbmNlLmh0bWwgKi8sCiAJCQkJNTE1QkUxNkUxRDQyODhGRjAwREQ3QzY4IC8qIFN0
b3JlQmxvYlRvQmVEZWxldGVkLmh0bWwgKi8sCiAJCQkJOUJENkQzQTExRjdCMjAyMTAwQkQ0OTYy
IC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tMTAwcHgudGlmZiAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1t
CmluZGV4IGUzM2FkMDJiNTQxNTJjMTA1NmU2NDhjNmFhMmJmNjEzMTRiYTE0MDQuLjk5ZmFkNjY5
NmYyMGMyYmZlNTlmZWZjMDczYjY2MTEwODE5NjllOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQpA
QCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLV2ViVmlldy5oPgotI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4K
KyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogCiBzdGF0aWMgYm9vbCBzaG91bGRHcmFudFBlcm1pc3Npb25S
ZXF1ZXN0ID0gdHJ1ZTsKQEAgLTQwLDYgKzQwLDggQEAgc3RhdGljIFJldGFpblB0cjxXS1Njcmlw
dE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogCiBAaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblVJRGVsZWdhdGUgOiBOU09iamVjdDxXS1VJRGVsZWdhdGVQcml2YXRlPgog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlv
bjogKF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShC
T09MKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1l
VVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJh
bWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJP
T0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxlZ2F0ZQpAQCAtNDgsNiArNTAsMTYgQEAg
c3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogICAg
IHBlcm1pc3Npb25SZXF1ZXN0ZWQgPSB0cnVlOwogICAgIGRlY2lzaW9uSGFuZGxlcihzaG91bGRH
cmFudFBlcm1pc3Npb25SZXF1ZXN0KTsKIH0KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjogKF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlm
aWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAg
IGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxMCIsIFlFUyk7Cit9CiBAZW5kCiAKIEBpbnRl
cmZhY2UgU3BlZWNoUmVjb2duaXRpb25NZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPgpAQCAtMTAzLDQgKzExNSw1NiBAQCBURVNUKFdlYktpdDIsIFNwZWVj
aFJlY29nbml0aW9uVXNlclBlcm1pc3Npb25QZXJzaXN0ZW5jZSkKICAgICBFWFBFQ1RfRkFMU0Uo
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIH0KIAorVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yV2hlblN0YXJ0aW5nQXVkaW9DYXB0dXJlT25EaWZmZXJlbnRQYWdlKQoreworICAg
IHNob3VsZEdyYW50UGVybWlzc2lvblJlcXVlc3QgPSB0cnVlOworCisgICAgYXV0byBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
KyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25NZXNzYWdlSGFu
ZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRy
b2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RI
YW5kbGVyIl07CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVkaWFDYXB0dXJlRW5hYmxlZCA9
IFlFUzsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
OworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworICAg
IHByZWZlcmVuY2VzLl9zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVy
ZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZmlyc3RXZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW2ZpcnN0V2ViVmll
dyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBhdXRvIHNlY29uZFdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICBbc2Vjb25kV2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIC8v
IEZpcnN0IHBhZ2Ugc3RhcnRzIHJlY29nbml0aW9uIHN1Y2Nlc3NmdWxseS4KKyAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBbZmlyc3RXZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkVGVzdFBhZ2VOYW1lZDpAInNwZWVjaHJlY29nbml0aW9uLWJhc2ljIl07CisgICAgW2ZpcnN0
V2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RhcnQoKSJdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoQCJTdGFydCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAv
LyBGaXJzdCBwYWdlIGlzIG11dGVkIHdoZW4gc2Vjb25kIHBhZ2Ugc3RhcnRzIHJlY29nbml0aW9u
LgorICAgIC8vIExvYWQgaHRtbCBzdHJpbmcgaW5zdGVhZCBvZiB0ZXN0IHBhZ2UgdG8gbWFrZSBz
dXJlIG1lc3NhZ2Ugb25seSBjb21lcyBmcm9tIG9uZSBwYWdlLgorICAgIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSA9IGZhbHNlOworICAgIFtzZWNvbmRXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIjxzY3JpcHQ+c3BlZWNoUmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVj
b2duaXRpb24oKTsgc3BlZWNoUmVjb2duaXRpb24uc3RhcnQoKTs8L3NjcmlwdD4iIGJhc2VVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9X
S19TVFJFUShAIkVycm9yOiBhdWRpby1jYXB0dXJlIC0gU291cmNlIGlzIG11dGVkIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEZpcnN0IHBhZ2UgcmVzdGFydHMgcmVjb2du
aXRpb24gc3VjY2Vzc2Z1bGx5LgorICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwor
ICAgIFtmaXJzdFdlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0YXJ0KCki
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiU3RhcnQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0p
OworCisgICAgLy8gRmlyc3QgcGFnZSBpcyBtdXRlZCB3aGVuIHNlY29uZCBwYWdlIHN0YXJ0cyBt
ZWRpYSByZWNvcmRlci4KKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBb
c2Vjb25kV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzcGVlY2hyZWNv
Z25pdGlvbi1iYXNpYyJdOworICAgIFtzZWNvbmRXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJzdGFydFJlY29yZGVyKCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRXJyb3I6
IGF1ZGlvLWNhcHR1cmUgLSBTb3VyY2UgaXMgbXV0ZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9k
eV0pOworCisgICAgLy8gU2Vjb25kIHBhZ2UgaXMgbXV0ZWQgd2hlbiBmaXJzdCBwYWdlIHN0YXJ0
cyByZWNvZ25pdGlvbi4KKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBb
Zmlyc3RXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+c3BlZWNo
UmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTsgc3BlZWNoUmVjb2du
aXRpb24uc3RhcnQoKTs8L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJo
dHRwczovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAIlJlY29yZGVyIE11dGUi
LCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L3NwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3NwZWVjaHJlY29nbml0aW9uLWJhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNl
NmY2YWMzNTliMjFlMmUyYTRlYWE3Yzc5ZGNmYmNhZmQwYjU5MgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evc3BlZWNocmVjb2duaXRpb24t
YmFzaWMuaHRtbApAQCAtMCwwICsxLDU2IEBACis8aHRtbD4KKzxzY3JpcHQ+CisKK3ZhciBzcGVl
Y2hSZWNvZ25pdGlvbiA9IG51bGw7Cit2YXIgcmVjb3JkZXIgPSBudWxsOworCitmdW5jdGlvbiBz
dGFydCgpCit7CisgICAgaWYgKCFzcGVlY2hSZWNvZ25pdGlvbikKKyAgICAgICAgc3BlZWNoUmVj
b2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTsKKyAgICBzcGVlY2hSZWNv
Z25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTsKKyAgICBzcGVlY2hSZWNvZ25pdGlvbi5vbnN0YXJ0
ID0gKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoIlN0YXJ0Iik7CisgICAgc3BlZWNoUmVjb2duaXRpb24ub25lcnJvciA9IChldmVudCkg
PT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
IkVycm9yOiAiICsgZXZlbnQuZXJyb3IgKyAiIC0gIiArICBldmVudC5tZXNzYWdlKTsKKworICAg
IHNwZWVjaFJlY29nbml0aW9uLnN0YXJ0KCk7Cit9CisKK2Z1bmN0aW9uIHN0b3AoKQoreworICAg
IGlmIChzcGVlY2hSZWNvZ25pdGlvbikKKyAgICAgICAgc3BlZWNoUmVjb2duaXRpb24uc3RvcCgp
OworfQorCitmdW5jdGlvbiBnb3RNZWRpYShzdHJlYW0pIHsKKyAgICB0cnkgeworICAgICAgICB2
YXIgdHJhY2tzID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCk7CisgICAgICAgIHRyYWNrc1swXS5v
bm11dGUgPSAoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgiUmVjb3JkZXIgTXV0ZSIpOworCisgICAgICAgIGlmICghcmVjb3JkZXIpCisg
ICAgICAgICAgICByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHN0cmVhbSk7CisKKyAgICAg
ICAgcmVjb3JkZXIub25lcnJvciA9IChldmVudCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlJlY29yZGVyIEVycm9yOiAiICsgZXZlbnQu
Y29kZSArICIgLSAiICsgIGV2ZW50Lm1lc3NhZ2UpOworICAgICAgICByZWNvcmRlci5zdGFydCgp
OworICAgIH0gY2F0Y2goZSkgeworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiUmVjb3JkZXIgRXJyb3IgOiAiICsgZSk7CisgICAg
fQorfQorCitmdW5jdGlvbiBzdGFydFJlY29yZGVyKCkgeworICAgIGlmIChyZWNvcmRlcikgewor
ICAgICAgICByZWNvcmRlci5zdGFydCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSB9KQorICAg
IC50aGVuKGdvdE1lZGlhKQorICAgIC5jYXRjaChlID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlVzZXJNZWRpYSBFcnJvcjogIiArIGUp
OyB9KTsKK30KKworZnVuY3Rpb24gc3RvcFJlY29yZGVyKCkgeworICAgIGlmIChyZWNvcmRlcikK
KyAgICAgICAgcmVjb3JkZXIuc3RvcCgpOworfQorCis8L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>