<?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>229500</bug_id>
          
          <creation_ts>2021-08-25 10:15:59 -0700</creation_ts>
          <short_desc>Remove some iOS-specific compile-time guards that are no longer needed</short_desc>
          <delta_ts>2021-08-25 21:02:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1787202</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-08-25 10:15:59 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787265</commentid>
    <comment_count>1</comment_count>
      <attachid>436411</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-08-25 13:12:13 -0700</bug_when>
    <thetext>Created attachment 436411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787289</commentid>
    <comment_count>2</comment_count>
      <attachid>436411</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-08-25 13:49:29 -0700</bug_when>
    <thetext>Comment on attachment 436411
Patch

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

Thanks for the review!

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9942
&gt; +    NSLog(@&quot;&lt;WK&gt;: Setting visual search preview bounds: %@&quot;, NSStringFromCGRect(_visualSearchPreviewImageBounds));

Whoops, it looks like an artifact of my next WIP patch bled into this :P.

Will remove before landing.

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:-2791
&gt; -    if (!renderer.document().frame()-&gt;isMainFrame()) {
&gt; -        FrameView *view = renderer.document().frame()-&gt;view();
&gt; +    if (RefPtr view = renderer.document().frame()-&gt;view())
&gt;          info.bounds = view-&gt;contentsToRootView(info.bounds);
&gt; -    }

(Ditto, will remove this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787294</commentid>
    <comment_count>3</comment_count>
      <attachid>436421</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-08-25 13:54:31 -0700</bug_when>
    <thetext>Created attachment 436421
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787416</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-25 18:38:32 -0700</bug_when>
    <thetext>Committed r281610 (240966@main): &lt;https://commits.webkit.org/240966@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436421.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787417</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-25 18:39:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/82368477&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436411</attachid>
            <date>2021-08-25 13:12:13 -0700</date>
            <delta_ts>2021-08-25 13:54:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229500-20210825131212.patch</filename>
            <type>text/plain</type>
            <size>38267</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJiYzJlYmI2MjIyNGJiZTExNGU5Yzgx
YjEzOWIwMTYzYmFiMjBiODAuLmFlY2YxNTVjNzZlMzE3Nzk5OTllMGMzZThmZTYxMzRlZDU0NjZj
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgaU9TLXNwZWNpZmljIGNv
bXBpbGUtdGltZSBndWFyZHMgdGhhdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmZWF0dXJlIGZs
YWdzLiBTZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybVVzZS5oOgorCiAyMDIx
LTA4LTI0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pT
Q10gQWRkIEludGwgRW51bWVyYXRpb24gQVBJcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ2ZDcyYjVlNjgwZGIy
YWEzZDIyYjI0MGZjMTEwYWNlNWYwZGNjZWUuLmUwOTllYzdkNTg5Y2VhYzI2ZmYyZGZhYjg1MDU0
MmUzMDJlMTA1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wOC0yNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc29t
ZSBpT1Mtc3BlY2lmaWMgY29tcGlsZS10aW1lIGd1YXJkcyB0aGF0IGFyZSBubyBsb25nZXIgbmVl
ZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1
MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUg
V2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogZG9tL0tleWJv
YXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6aXNG
dW5jdGlvbktleSk6CisKIDIwMjEtMDgtMjUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZSBzcGFubmluZyBpbmxpbmUgYm94ZXMgc2hvdWxk
IGFsc28gYmUgaW4gdGhlIHJ1biBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0NzE4MWQ4YjhjNWYxZGUxZDQ4
NTQ1NjJiOGEzOGUwNjJkMjI3NDYuLjc0NGJjNmRhZTNlZDc3Nzc5MDE3YjZkYzk4NmM0NDc2ZjZl
ZTI4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMDgtMjUgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgaU9TLXNw
ZWNpZmljIGNvbXBpbGUtdGltZSBndWFyZHMgdGhhdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHR3byBj
b21waWxlLXRpbWUgZmxhZ3MgdGhhdCB3ZXJlIG5vIGxvbmdlciBuZWNlc3NhcnkgYWZ0ZXIgV2Vi
S2l0J3MgbWluaW11bSBzdXBwb3J0ZWQgaU9TIHZlcnNpb24gYmVjYW1lCisgICAgICAgIGlPUyAx
NDogYFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpYCBhbmQgYEhBVkUoTk9OREVTVFJVQ1RJ
VkVfSU1BR0VfUEFTVEVfU1VQUE9SVF9RVUVSWSlgLgorCisgICAgICAgIGBIQVZFKE5PTkRFU1RS
VUNUSVZFX0lNQUdFX1BBU1RFX1NVUFBPUlRfUVVFUlkpYCB3YXMgb25seSBuZWVkZWQgZm9yIGEg
d29ya2Fyb3VuZCBpbiBvdXIgdGVzdCBpbmZyYXN0cnVjdHVyZSwKKyAgICAgICAgd2hpbGUgYFVT
RShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpYCB3YXMgb25seSBpbnRyb2R1Y2VkIHRvIG1haW50
YWluIGJhc2ljIGhhcmR3YXJlIGtleWJvYXJkIGZ1bmN0aW9uYWxpdHkgaW4KKyAgICAgICAgaU9T
IDEyLCB3aGlsZSBzdXBwb3J0aW5nIGltcHJvdmVtZW50cyB0byBoYXJkd2FyZSBrZXlib2FyZCBz
dXBwb3J0IGluIGlPUyAxMy4KKworICAgICAgICBUaGUgbGF0dGVyIG5vdyBvbmx5IGd1YXJkcyBg
UExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVClgLiBIb3dldmVyLCB0aGVyZSdz
IG5vIHJlYXNvbiB0aGUgY29kZXBhdGhzCisgICAgICAgIGZvciBoYXJkd2FyZSBrZXlib2FyZCBz
dXBwb3J0IGNhbid0IGV4aXN0IG9uIHdhdGNoT1MgYXMgd2VsbCAoZXNwZWNpYWxseSBzaW5jZSBt
b3N0IG9mIGhhcmR3YXJlIGtleWJvYXJkCisgICAgICAgIHN1cHBvcnQgaXMgYWxyZWFkeSBpbXBs
ZW1lbnRlZCB0aGVyZSAtLSBqdXN0IHVucmVhY2hhYmxlIGJlY2F1c2UgaXQncyBub3QgcG9zc2li
bGUgdG8gYXR0YWNoIGEgaGFyZHdhcmUga2V5Ym9hcmQKKyAgICAgICAgdG8gYW4gQXBwbGUgd2F0
Y2gpLiBXZSBjYW4gcmVtb3ZlIHRoaXMgZmVhdHVyZSBmbGFnLCBhbmQgc2ltcGx5IGRlbGV0ZSBj
b2RlIHRoYXQgd2FzIGZvcm1lcmx5IGd1YXJkZWQgYnkKKyAgICAgICAgYCFVU0UoVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKWAuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYktpdDJQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OldlYktpdDJQbGF0Zm9ybUtleWJv
YXJkRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYktleWJvYXJkRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYktleWJv
YXJkRXZlbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQ
b29sOmNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rp
b25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlzYWJsZUF1dG9tYXRpY0tleWJvYXJk
VUldKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWlyZXNLZXlib2FyZFdoZW5GaXJz
dFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFwcGx5QXV0b2NvcnJlY3Rp
b246dG9TdHJpbmc6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2V0TWFya2VkVGV4dDpoaWdobGlnaHRzOnNl
bGVjdGVkUmFuZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGV4dElucHV0VHJhaXRz
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZUtleVVJRXZlbnQ6XSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENvbXBsZXRpb25IYW5k
bGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRIYW5kbGVLZXlFdmVudDpldmVu
dFdhc0hhbmRsZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnREaWRCbHVy
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NlbGVjdGlvbkNoYW5nZWRd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBrZXlDb21tYW5kc10pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhbmRsZUtleUV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW06Cisg
ICAgICAgICgtW1dLU2VsZWN0UG9wb3ZlciBpbml0V2l0aFZpZXc6aGFzR3JvdXBzOl0pOgorICAg
ICAgICAoLVtXS1NlbGVjdFRhYmxlVmlld0NvbnRyb2xsZXIgaGFzVGV4dF0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXS1NlbGVjdFRhYmxlVmlld0NvbnRyb2xsZXIgaW5zZXJ0VGV4dDpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tTZWxlY3RUYWJsZVZpZXdDb250cm9sbGVyIGRlbGV0ZUJhY2t3
YXJkXSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3Mv
V2ViRWRpdG9yQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6
OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bik6CisKIDIwMjEtMDgtMjUgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyAxNV0gZWRpdGluZy9pbnB1
dC9jb2NvYS9hdXRvY29ycmVjdC1vbi5odG1sIHRpbWVzIG91dCB3aGVuIHJ1biBhZnRlciBlZGl0
aW5nL2lucHV0L2NvY29hL2F1dG9jb3JyZWN0LW9mZi5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmlu
ZGV4IDQyMjZlYTI5OTVjNGEwZWQ5MjY0NDhiODRhMDIzOGM2ZmE4NDQ0ZjYuLjRjNWYxZDI5YTFl
ZTJkZWE3OWE4OGQwMjRlMDMwNGMzNjFlZTkwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04
NSwxMCArODUsNiBAQAogI2RlZmluZSBIQVZFX0FWU1RSRUFNU0VTU0lPTiAxCiAjZW5kaWYKIAot
I2lmICFkZWZpbmVkKFVTRV9VSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpICYmIChQTEFURk9STShJ
T1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkKLSNkZWZpbmUgVVNFX1VJS0lUX0tFWUJPQVJE
X0FERElUSU9OUyAxCi0jZW5kaWYKLQogI2lmICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkg
JiYgKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKSkKICNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZIDEKICNlbmRpZgpAQCAt
NzMyLDEwICs3MjgsNiBAQAogI2RlZmluZSBIQVZFX0RJU1BMQVlfTEFZRVJfQklQTEFOQVJfU1VQ
UE9SVCAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwCi0jZGVmaW5lIEhBVkVfTk9OREVTVFJVQ1RJVkVfSU1B
R0VfUEFTVEVfU1VQUE9SVF9RVUVSWSAxCi0jZW5kaWYKLQogI2lmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSB8fCAoUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAw
KQogI2RlZmluZSBIQVZFX0xPR0dJTkdfUFJJVkFDWV9MRVZFTCAxCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVVzZS5oCmluZGV4IDQ4YjM2MDBkODY3YWVjNDZmYzFjOWM0N2E2NDRjODY4MGEyMmQ4NGYuLjNj
ZDE1MWRkN2ZiMmEzYjZjNjFkNjY5ZTA0ZDExMzZjYTcxOTBmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Uu
aApAQCAtMTIzLDEwICsxMjMsNiBAQAogI2RlZmluZSBVU0VfV0VCX1RIUkVBRCAxCiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKFVTRV9VSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkKLSNkZWZpbmUgVVNFX1VJS0lUX0tFWUJP
QVJEX0FERElUSU9OUyAxCi0jZW5kaWYKLQogI2lmIE9TKFVOSVgpCiAjZGVmaW5lIFVTRV9QVEhS
RUFEUyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCBhY2Yz
YmExYzVlNTZmOTEyNGQwNjE1YzBiMzc0ZDVhN2VhNmYyMTFmLi4wMWExZTU5MjQ1NzM4ZTkzMjcy
NTMyMTYzM2VlMzA1ZTc5ZTZhNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3Bw
CkBAIC0xMTIsNyArMTEyLDcgQEAgaW5saW5lIEtleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQo
Y29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXksIFJlZlB0cjxXaW4KICAgICAsIG1fbG9j
YXRpb24oa2V5TG9jYXRpb25Db2RlKGtleSkpCiAgICAgLCBtX3JlcGVhdChrZXkuaXNBdXRvUmVw
ZWF0KCkpCiAgICAgLCBtX2lzQ29tcG9zaW5nKHZpZXcgJiYgaXM8RE9NV2luZG93Pih2aWV3LT53
aW5kb3coKSkgJiYgZG93bmNhc3Q8RE9NV2luZG93Pigqdmlldy0+d2luZG93KCkpLmZyYW1lKCkg
JiYgZG93bmNhc3Q8RE9NV2luZG93Pigqdmlldy0+d2luZG93KCkpLmZyYW1lKCktPmVkaXRvcigp
Lmhhc0NvbXBvc2l0aW9uKCkpCi0jaWYgVVNFKEFQUEtJVCkgfHwgVVNFKFVJS0lUX0tFWUJPQVJE
X0FERElUSU9OUykKKyNpZiBVU0UoQVBQS0lUKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
ICwgbV9oYW5kbGVkQnlJbnB1dE1ldGhvZChrZXkuaGFuZGxlZEJ5SW5wdXRNZXRob2QoKSkKICNl
bmRpZgogI2lmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IGY5MGYxZGFkNmI3YjRlNjcwMzc0NWM5Y2I5N2EzMmM4
NzJmYTFhYTguLjFkM2VkZDk1ODUzMzg4MjhjNzA3NGZkODM4OWU0MzdjMTZjNDJkOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC05
MCw3ICs5MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9CiAg
ICAgICAgIHZvaWQgc2V0V2luZG93c1ZpcnR1YWxLZXlDb2RlKGludCBjb2RlKSB7IG1fd2luZG93
c1ZpcnR1YWxLZXlDb2RlID0gY29kZTsgfQogCi0jaWYgVVNFKEFQUEtJVCkgfHwgVVNFKFVJS0lU
X0tFWUJPQVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQorI2lm
IFVTRShBUFBLSVQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKEdUSykgfHwg
VVNFKExJQldQRSkKICAgICAgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlZEJ5SW5wdXRNZXRob2Q7IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKEdU
SykgfHwgVVNFKExJQldQRSkKQEAgLTE1OSw3ICsxNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGludCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7IDAgfTsKIAogICAgICAgICBi
b29sIG1faXNTeW50aGV0aWNFdmVudCB7IGZhbHNlIH07Ci0jaWYgVVNFKEFQUEtJVCkgfHwgVVNF
KFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BF
KQorI2lmIFVTRShBUFBLSVQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKEdU
SykgfHwgVVNFKExJQldQRSkKICAgICAgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsg
ZmFsc2UgfTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQppbmRleCBlNTgwMzczMjNkZjJh
ZWE0M2VjNWM1MmNiODU4NjM0MzVkMDk2Njc5Li40OTI1M2E0YzJlMmNkODExMjA1Y2IyMzE3ODhl
Nzg2NjAyNWE0MjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvS2V5
RXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9T
Lm1tCkBAIC0yNzQsMTQgKzI3NCw2IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKHVu
aWNoYXIgY2hhckNvZGUpCiBzdGF0aWMgYm9vbCBpc0Z1bmN0aW9uS2V5KFVDaGFyIGNoYXJDb2Rl
KQogewogICAgIHN3aXRjaCAoY2hhckNvZGUpIHsKLSNpZiAhVVNFKFVJS0lUX0tFWUJPQVJEX0FE
RElUSU9OUykKLSAgICBjYXNlIDE6IC8vIEhvbWUKLSAgICBjYXNlIDQ6IC8vIEVuZAotICAgIGNh
c2UgNTogLy8gRklYTUU6IEZvciBzb21lIHJlYXNvbiBXZWJLaXRUZXN0UnVubmVyIGdlbmVyYXRl
cyB0aGlzIGNvZGUgZm9yIEYxNCAod2h5PykuCi0gICAgY2FzZSAweDdGOiAvLyBGb3J3YXJkIERl
bGV0ZQotICAgIGNhc2UgMHgxMDogLy8gRnVuY3Rpb24ga2V5IChlLmcuIEYxLCBGMiwgLi4uKQot
I2VuZGlmCi0KICAgICAvLyBXZWJLaXQgdXNlcyBVbmljb2RlIFBVQSBjb2RlcyBpbiB0aGUgT3Bl
blN0ZXAgcmVzZXJ2ZSByYW5nZSBmb3Igc29tZSBzcGVjaWFsIGtleXMuCiAgICAgY2FzZSBOU1Vw
QXJyb3dGdW5jdGlvbktleToKICAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6CkBAIC0y
OTAsMTggKzI4MiwxNCBAQCBzdGF0aWMgYm9vbCBpc0Z1bmN0aW9uS2V5KFVDaGFyIGNoYXJDb2Rl
KQogICAgIGNhc2UgTlNQYWdlVXBGdW5jdGlvbktleToKICAgICBjYXNlIE5TUGFnZURvd25GdW5j
dGlvbktleToKICAgICBjYXNlIE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk6IC8vIE51bSBMb2NrIC8g
Q2xlYXIKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGNhc2UgTlNEZWxl
dGVGdW5jdGlvbktleTogLy8gRm9yd2FyZCBkZWxldGUKICAgICBjYXNlIE5TRW5kRnVuY3Rpb25L
ZXk6CiAgICAgY2FzZSBOU0luc2VydEZ1bmN0aW9uS2V5OgogICAgIGNhc2UgTlNIb21lRnVuY3Rp
b25LZXk6Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2lmIFVTRShVSUtJ
VF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgaWYgKGNoYXJDb2RlID49IE5TRjFGdW5jdGlvbktl
eSAmJiBjaGFyQ29kZSA8PSBOU0YyNEZ1bmN0aW9uS2V5KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvVUlLaXRTUEkuaAppbmRleCA1YTlkN2MzMTVhMTAwNDc4ZmZlNTI3OWNkZTM3ZGUxZjNm
N2VlMWMzLi41ZWVlZGFhN2U2Nzg3OTE0ZTI0NTk4YTRkMWM5NjhjMjgwZmU0NTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtMzU0LDYgKzM1NCwxMCBA
QCB0eXBlZGVmIGVudW0gewogKyAoVUlLZXlib2FyZEltcGwgKilhY3RpdmVJbnN0YW5jZTsKICsg
KFVJS2V5Ym9hcmRJbXBsICopc2hhcmVkSW5zdGFuY2U7CiArIChDR1NpemUpZGVmYXVsdFNpemVG
b3JJbnRlcmZhY2VPcmllbnRhdGlvbjooVUlJbnRlcmZhY2VPcmllbnRhdGlvbilvcmllbnRhdGlv
bjsKKy0gKEJPT0wpaGFuZGxlS2V5VGV4dENvbW1hbmRGb3JDdXJyZW50RXZlbnQ7CistIChCT09M
KWhhbmRsZUtleUFwcENvbW1hbmRGb3JDdXJyZW50RXZlbnQ7CistIChCT09MKWhhbmRsZUtleUlu
cHV0TWV0aG9kQ29tbWFuZEZvckN1cnJlbnRFdmVudDsKKy0gKEJPT0wpaXNDYWxsaW5nSW5wdXRE
ZWxlZ2F0ZTsKIC0gKHZvaWQpYWRkSW5wdXRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhG
bGFnczooTlNVSW50ZWdlcilmbGFnczsKIC0gKHZvaWQpYWRkSW5wdXRTdHJpbmc6KE5TU3RyaW5n
ICopc3RyaW5nIHdpdGhGbGFnczooTlNVSW50ZWdlcilmbGFncyB3aXRoSW5wdXRNYW5hZ2VySGlu
dDooTlNTdHJpbmcgKiloaW50OwogLSAoQk9PTClhdXRvY29ycmVjdFNwZWxsaW5nRW5hYmxlZDsK
QEAgLTU0MCw5ICs1NDQsNyBAQCB0eXBlZGVmIGVudW0gewogLSAodm9pZClpbnNlcnREaWN0YXRp
b25SZXN1bHQ6KE5TQXJyYXkgKilkaWN0YXRpb25SZXN1bHQgd2l0aENvcnJlY3Rpb25JZGVudGlm
aWVyOihpZCljb3JyZWN0aW9uSWRlbnRpZmllcjsKIC0gKHZvaWQpcmVwbGFjZVJhbmdlV2l0aFRl
eHRXaXRob3V0Q2xvc2luZ1R5cGluZzooVUlUZXh0UmFuZ2UgKilyYW5nZSByZXBsYWNlbWVudFRl
eHQ6KE5TU3RyaW5nICopdGV4dDsKIC0gKHZvaWQpc2V0Qm90dG9tQnVmZmVySGVpZ2h0OihDR0Zs
b2F0KWJvdHRvbUJ1ZmZlcjsKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogLSAo
dm9pZCltb2RpZmllckZsYWdzRGlkQ2hhbmdlRnJvbTooVUlLZXlNb2RpZmllckZsYWdzKW9sZEZs
YWdzIHRvOihVSUtleU1vZGlmaWVyRmxhZ3MpbmV3RmxhZ3M7Ci0jZW5kaWYKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBVSVRleHRHcmFudWxhcml0eSBzZWxlY3Rpb25HcmFudWxhcml0eTsKIEByZXF1
aXJlZAogLSAoQk9PTCloYXNDb250ZW50OwpAQCAtMTQxMywxMSArMTQxNSw2IEBAIHR5cGVkZWYg
TlNfRU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogQGludGVyZmFjZSBV
SUtleWJvYXJkSW1wbCAoSVBJKQogLSAodm9pZClzZXRJbml0aWFsRGlyZWN0aW9uOwogLSAodm9p
ZClwcmVwYXJlS2V5Ym9hcmRJbnB1dE1vZGVGcm9tUHJlZmVyZW5jZXM6KFVJS2V5Ym9hcmRJbnB1
dE1vZGUgKilsYXN0VXNlZE1vZGU7Ci0tIChCT09MKWhhbmRsZUtleVRleHRDb21tYW5kRm9yQ3Vy
cmVudEV2ZW50OwotLSAoQk9PTCloYW5kbGVLZXlBcHBDb21tYW5kRm9yQ3VycmVudEV2ZW50Owot
LSAoQk9PTCloYW5kbGVLZXlJbnB1dE1ldGhvZENvbW1hbmRGb3JDdXJyZW50RXZlbnQ7Ci0tIChC
T09MKWlzQ2FsbGluZ0lucHV0RGVsZWdhdGU7Ci0tIChCT09MKWRlbGVnYXRlU3VwcG9ydHNJbWFn
ZVBhc3RlOwogLSAodm9pZClzeW5jSW5wdXRNYW5hZ2VyVG9BY2NlcHRlZEF1dG9jb3JyZWN0aW9u
OihUSUtleWJvYXJkQ2FuZGlkYXRlICopYXV0b2NvcnJlY3Rpb24gZm9ySW5wdXQ6KFRJS2V5Ym9h
cmRJbnB1dCAqKWlucHV0RXZlbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJ
S2V5Ym9hcmRJbnB1dE1vZGUgKmN1cnJlbnRJbnB1dE1vZGVJblByZWZlcmVuY2U7CiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCBkM2Q4MTJh
N2VjZDJhN2M2NzA3NWIxMzk4OWE1OGM3NjkyNjBhODMzLi5mOWU5Y2I2M2RjZWY3ZjYyNjIyNDAw
NWM1NjMyMGMzNTIxYTJlODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29u
dmVyc2lvbi5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fY29kZSA9
IHdlYkV2ZW50LmNvZGUoKTsKICAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gd2ViRXZlbnQua2V5
SWRlbnRpZmllcigpOwogICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IHdlYkV2ZW50
LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpOwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyNpZiBV
U0UoQVBQS0lUKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShHVEspIHx8IFVT
RShMSUJXUEUpCiAgICAgICAgIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgPSB3ZWJFdmVudC5oYW5k
bGVkQnlJbnB1dE1ldGhvZCgpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElC
V1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRleCBhNzBl
Yjc2YzVjMjJhMmM3NzljMzA4NzQ0MzNhYzE5MDM2YjVmMWE0Li4zNjc5NzM2OTczZWJjMDY3NzFj
N2Q5NDU5MTkwOTY4OGYyOGE3MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJLZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2Fy
ZEV2ZW50LmNwcApAQCAtOTEsOSArOTEsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2Fy
ZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAg
LCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSh3aW5kb3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBt
X25hdGl2ZVZpcnR1YWxLZXlDb2RlKG5hdGl2ZVZpcnR1YWxLZXlDb2RlKQogICAgICwgbV9tYWND
aGFyQ29kZShtYWNDaGFyQ29kZSkKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQog
ICAgICwgbV9oYW5kbGVkQnlJbnB1dE1ldGhvZChoYW5kbGVkQnlJbnB1dE1ldGhvZCkKLSNlbmRp
ZgogICAgICwgbV9pc0F1dG9SZXBlYXQoaXNBdXRvUmVwZWF0KQogICAgICwgbV9pc0tleXBhZChp
c0tleXBhZCkKICAgICAsIG1faXNTeXN0ZW1LZXkoaXNTeXN0ZW1LZXkpCkBAIC0xNjAsNyArMTU4
LDcgQEAgdm9pZCBXZWJLZXlib2FyZEV2ZW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgbV93aW5kb3dzVmlydHVhbEtleUNvZGU7CiAgICAgZW5j
b2RlciA8PCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOwogICAgIGVuY29kZXIgPDwgbV9tYWNDaGFy
Q29kZTsKLSNpZiBVU0UoQVBQS0lUKSB8fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8
fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisjaWYgVVNFKEFQUEtJVCkgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGVuY29k
ZXIgPDwgbV9oYW5kbGVkQnlJbnB1dE1ldGhvZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykg
fHwgVVNFKExJQldQRSkKQEAgLTE5Niw3ICsxOTQsNyBAQCBib29sIFdlYktleWJvYXJkRXZlbnQ6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYktleWJvYXJkRXZlbnQmIHJlc3VsdCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1f
bWFjQ2hhckNvZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jaWYgVVNFKEFQUEtJVCkgfHwg
VVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElC
V1BFKQorI2lmIFVTRShBUFBLSVQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JN
KEdUSykgfHwgVVNFKExJQldQRSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2hh
bmRsZWRCeUlucHV0TWV0aG9kKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggN2E1ODkzZWI2OGFkMjRjZjky
YzgzMjA3MDQ4NTQ4OWI3Y2ZhZmEwYy4uMTgxNzY5MWQzZTEyZGRlYzgxNjkyNDhjNzkxODI2Y2Mx
M2IwNTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApAQCAtNjEs
NyArNjEsNyBAQCBwdWJsaWM6CiAgICAgaW50MzJfdCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBj
b25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZTsgfQogICAgIGludDMyX3QgbmF0
aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2Rl
OyB9CiAgICAgaW50MzJfdCBtYWNDaGFyQ29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNv
ZGU7IH0KLSNpZiBVU0UoQVBQS0lUKSB8fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8
fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisjaWYgVVNFKEFQUEtJVCkgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZWRCeUlucHV0TWV0
aG9kOyB9CiAjZW5kaWYKICNpZiBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCkBAIC05MSw3
ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7
IDAgfTsKICAgICBpbnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07CiAgICAgaW50
MzJfdCBtX21hY0NoYXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyNpZiBV
U0UoQVBQS0lUKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShHVEspIHx8IFVT
RShMSUJXUEUpCiAgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggZjYyMDIyYzM5ZDEzNTllMDZkMzMw
OTFkMWZjMGFhNmJjNTNhMWEwZi4uZDExZjcxZmIxMWQyMWZhYTVmNzE5M2JkZjUwMWU4ZmFlMGRk
MGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0K
QEAgLTE1Miw4ICsxNTIsNiBAQCBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyB7CiAgICAg
VmVjdG9yPFJldGFpblB0cjxOU1VSTD4+IF90ZW1wb3JhcnlVUkxzVG9EZWxldGVXaGVuRGVhbGxv
Y2F0ZWQ7CiB9CiAKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotCiAvLyBFdmVy
bm90ZSBleHBlY3RzIHRvIHN3aXp6bGUgLWtleUNvbW1hbmRzIG9uIFdLQ29udGVudFZpZXcgb3Ig
dGhleSBjcmFzaC4gUmVtb3ZlIHRoaXMgaGFjawogLy8gYXMgc29vbiBhcyByZWFzb25hYmx5IHBv
c3NpYmxlLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzUxNzU5MjQ3Pi4KIHN0YXRpYyBOU0FycmF5ICpr
ZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJub3RlKGlkIHNlbGYsIFNFTCBfY21kKQpA
QCAtMTYzLDggKzE2MSw2IEBAIHN0YXRpYyBOU0FycmF5ICprZXlDb21tYW5kc1BsYWNlaG9sZGVy
SGFja0ZvckV2ZXJub3RlKGlkIHNlbGYsIFNFTCBfY21kKQogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFN1cGVyS2V5Q29tbWFuZHNGdW5jdGlvbj4oJm9iamNfbXNnU2VuZFN1cGVyKSgmc3Vw
ZXIsIEBzZWxlY3RvcihrZXlDb21tYW5kcykpOwogfQogCi0jZW5kaWYKLQogLSAoaW5zdGFuY2V0
eXBlKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbCYpcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JiYpY29uZmlndXJhdGlvbgogewogICAgIEFTU0VSVChfcGFnZUNsaWVudCk7CkBAIC0y
MjYsMTAgKzIyMiw4IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
UHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hh
cmVkQXBwbGljYXRpb25dXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERp
ZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmpl
Y3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJ
VElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYg
IWxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlV0tDb250ZW50
Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzKSkKICAgICAgICAgY2xhc3NfYWRkTWV0aG9k
KHNlbGYuY2xhc3MsIEBzZWxlY3RvcihrZXlDb21tYW5kcyksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1Q
Pigma2V5Q29tbWFuZHNQbGFjZWhvbGRlckhhY2tGb3JFdmVybm90ZSksIG1ldGhvZF9nZXRUeXBl
RW5jb2RpbmcoY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtl
eUNvbW1hbmRzKSkpKTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
aW5kZXggMzU1NmRmN2QyN2U4NmM2ZTg4MzZmZGQ5ZjhlY2NhMDQ1OGE5NTdkZi4uNjA0MzI0YzAy
NmQ2YjMwZTBjMjQyNGE1MTEyZWUyMDBlZjBmMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzgzLDkg
KzM4Myw2IEBAIHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElk
ZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiBfcG9zaXRpb25JbmZvcm1hdGlvbjsKICAgICBXZWJLaXQ6
OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiAg
ICAgUmV0YWluUHRyPE5TT2JqZWN0PFdLRm9ybVBlcmlwaGVyYWw+PiBfaW5wdXRQZXJpcGhlcmFs
OwotI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotICAgIFJldGFpblB0cjxVSUV2
ZW50PiBfdWlFdmVudEJlaW5nUmVzZW50OwotI2VuZGlmCiAgICAgQmxvY2tQdHI8dm9pZCg6Oldl
YkV2ZW50ICosIEJPT0wpPiBfa2V5V2ViRXZlbnRIYW5kbGVyOwogCiAgICAgQ0dQb2ludCBfbGFz
dEludGVyYWN0aW9uTG9jYXRpb247CkBAIC00MzYsMTAgKzQzMyw4IEBAIHVzaW5nIEltYWdlQW5h
bHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1Jl
cXVlc3RJZGVuCiAKICAgICBCT09MIF9rZXlib2FyZERpZFJlcXVlc3REaXNtaXNzYWw7CiAKLSNp
ZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIEJPT0wgX2NhbmRpZGF0ZVZpZXdO
ZWVkc1VwZGF0ZTsKICAgICBCT09MIF9zZWVuSGFyZHdhcmVLZXlEb3duSW5Ob25FZGl0YWJsZUVs
ZW1lbnQ7Ci0jZW5kaWYKIAogICAgIEJPT0wgX2JlY29taW5nRmlyc3RSZXNwb25kZXI7CiAgICAg
Qk9PTCBfcmVzaWduaW5nRmlyc3RSZXNwb25kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiZDQzYTdh
MDQ5YTE4NmI4ZTgyN2U5ZTY5MGRjY2FmOGIxZWQ4Y2MyLi5iOTJjMDFlNzVkN2E3ZGZhZWM4NDJl
ZWZmNTYxNjAxNWMwOWU0ZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3MiwxMCArMTcyLDYgQEAK
ICNpbXBvcnQgIldLRm9ybUNvbG9yQ29udHJvbC5oIgogI2VuZGlmCiAKLSNpZiAhVVNFKFVJS0lU
X0tFWUJPQVJEX0FERElUSU9OUykKLSNpbXBvcnQgIldLV2ViRXZlbnQuaCIKLSNlbmRpZgotCiAj
aWYgSEFWRShQRVBQRVJfVUlfQ09SRSkKICNpbXBvcnQgIlBlcHBlclVJQ29yZVNQSS5oIgogI2Vu
ZGlmCkBAIC0xMDg0LDEwICsxMDgwLDggQEAgLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb24KIAog
ICAgIF9sYXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0ID0geyB9OwogCi0jaWYgVVNFKFVJS0lUX0tF
WUJPQVJEX0FERElUSU9OUykKICAgICBfY2FuZGlkYXRlVmlld05lZWRzVXBkYXRlID0gTk87CiAg
ICAgX3NlZW5IYXJkd2FyZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwotI2VuZGlm
CiAKICAgICBfdGV4dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQgPSBOTzsKICAg
ICBfYWN0aXZlVGV4dEludGVyYWN0aW9uQ291bnQgPSAwOwpAQCAtMjI3MSwyMyArMjI2NSwxNyBA
QCAtIChCT09MKV9zaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSUlnbm9yaW5nSW5wdXRNb2Rl
CiAgICAgcmV0dXJuIE5POwogfQogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykK
IC0gKEJPT0wpX2Rpc2FibGVBdXRvbWF0aWNLZXlib2FyZFVJCiB7CiAgICAgLy8gQWx3YXlzIGVu
YWJsZSBhdXRvbWF0aWMga2V5Ym9hcmQgVUkgaWYgd2UgYXJlIG5vdCB0aGUgZmlyc3QgcmVzcG9u
ZGVyIHRvIGF2b2lkCiAgICAgLy8gaW50ZXJmZXJpbmcgd2l0aCBvdGhlciBmb2N1c2VkIHZpZXdz
IChlLmcuIEZpbmQtaW4tcGFnZSkuCiAgICAgcmV0dXJuIFtzZWxmIGlzRmlyc3RSZXNwb25kZXJd
ICYmICFbc2VsZiBzaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSV07CiB9Ci0jZW5kaWYKIAog
LSAoQk9PTClfcmVxdWlyZXNLZXlib2FyZFdoZW5GaXJzdFJlc3BvbmRlcgogewogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYWRkIHRoZSBsb2dpYyB0byBoYW5kbGUga2V5Ym9hcmQgdmlzaWJpbGl0
eSBkdXJpbmcgZm9jdXMgcmVkaXJlY3RzLgotICAgIHJldHVybiBbc2VsZiBfc2hvdWxkU2hvd0F1
dG9tYXRpY0tleWJvYXJkVUlJZ25vcmluZ0lucHV0TW9kZV0KLSNpZiBVU0UoVUlLSVRfS0VZQk9B
UkRfQURESVRJT05TKQotICAgICAgICB8fCBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFi
bGVFbGVtZW50Ci0jZW5kaWYKLSAgICAgICAgOworICAgIHJldHVybiBbc2VsZiBfc2hvdWxkU2hv
d0F1dG9tYXRpY0tleWJvYXJkVUlJZ25vcmluZ0lucHV0TW9kZV0gfHwgX3NlZW5IYXJkd2FyZUtl
eURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudDsKIH0KIAogLSAoQk9PTClfcmVxdWlyZXNLZXlib2Fy
ZFJlc2V0T25SZWxvYWQKQEAgLTQ2MjUsMTMgKzQ2MTMsMTEgQEAgLSAodm9pZClyZXF1ZXN0RGlj
dGF0aW9uQ29udGV4dDoodm9pZCAoXikoTlNTdHJpbmcgKnNlbGVjdGVkVGV4dCwgTlNTdHJpbmcg
KmJlZm8KIC8vIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgc2hvdWxkIHBhc3MgdGhlIHJlY3Qgb2Yg
dGhlIGNvcnJlY3Rpb24gdGV4dCBhZnRlciByZXBsYWNpbmcgdGhlIGlucHV0IHRleHQsIG9yIG5p
bCBpZiB0aGUgcmVwbGFjZW1lbnQgY291bGQgbm90IGJlIHBlcmZvcm1lZC4KIC0gKHZvaWQpYXBw
bHlBdXRvY29ycmVjdGlvbjooTlNTdHJpbmcgKiljb3JyZWN0aW9uIHRvU3RyaW5nOihOU1N0cmlu
ZyAqKWlucHV0IHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoVUlXS0F1dG9jb3JyZWN0
aW9uUmVjdHMgKnJlY3RzRm9yQ29ycmVjdGlvbikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBV
U0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGlmIChbc2VsZiBfZGlzYWJsZUF1dG9t
YXRpY0tleWJvYXJkVUldKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG5pbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0j
ZW5kaWYKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlIHN5bmNocm9ub3VzIGNhbGwgd2hlbiA8
cmRhcjovL3Byb2JsZW0vMTYyMDcwMDI+IGlzIGZpeGVkLgogICAgIGNvbnN0IGJvb2wgdXNlU3lu
Y1JlcXVlc3QgPSB0cnVlOwpAQCAtNDY2NiwxMiArNDY1MiwxMCBAQCAtICh2b2lkKXJlcXVlc3RB
dXRvY29ycmVjdGlvbkNvbnRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJV0tB
dXRvY29ycgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJE
X0FERElUSU9OUykKICAgICBpZiAoW3NlbGYgX2Rpc2FibGVBdXRvbWF0aWNLZXlib2FyZFVJXSkg
ewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS0F1dG9jb3JyZWN0aW9uQ29udGV4dC5lbXB0
eUF1dG9jb3JyZWN0aW9uQ29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYK
IAogICAgIGlmICghX3BhZ2UtPmhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV0tBdXRvY29ycmVjdGlvbkNvbnRleHQuZW1wdHlBdXRvY29ycmVjdGlvbkNv
bnRleHQpOwpAQCAtNDc2OSw5ICs0NzUzLDggQEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JNYWluRnJhbWUKIAogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQog
ewotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgX3NlZW5IYXJkd2FyZUtl
eURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwotI2VuZGlmCisKICAgICBbc2VsZiBfZWxl
bWVudERpZEJsdXJdOwogICAgIFtzZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
cl07CiAgICAgW3NlbGYgX3JlbW92ZUNvbnRhaW5lckZvckNvbnRleHRNZW51SGludFByZXZpZXdz
XTsKQEAgLTQ3ODksMjAgKzQ3NzIsNiBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZy
YW1lCiAjZW5kaWYKIH0KIAotI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotLSAo
TlNBcnJheSAqKWtleUNvbW1hbmRzCi17Ci0gICAgaWYgKCFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5p
c0NvbnRlbnRFZGl0YWJsZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNBcnJheT4+IGVkaXRhYmxlS2V5Q29tbWFuZHMgPSBAWwot
ICAgICAgICBbVUlLZXlDb21tYW5kIGtleUNvbW1hbmRXaXRoSW5wdXQ6QCJcdCIgbW9kaWZpZXJG
bGFnczowIGFjdGlvbjpAc2VsZWN0b3IoX25leHRBY2Nlc3NvcnlUYWI6KV0sCi0gICAgICAgIFtV
SUtleUNvbW1hbmQga2V5Q29tbWFuZFdpdGhJbnB1dDpAIlx0IiBtb2RpZmllckZsYWdzOlVJS2V5
TW9kaWZpZXJTaGlmdCBhY3Rpb246QHNlbGVjdG9yKF9wcmV2aW91c0FjY2Vzc29yeVRhYjopXQot
ICAgIF07Ci0gICAgcmV0dXJuIGVkaXRhYmxlS2V5Q29tbWFuZHMuZ2V0KCkuZ2V0KCk7Ci19Ci0j
ZW5kaWYKLQogLSAodm9pZClfbmV4dEFjY2Vzc29yeVRhYkZvcldlYlZpZXc6KGlkKXNlbmRlcgog
ewogICAgIFtzZWxmIGFjY2Vzc29yeVRhYjpZRVNdOwpAQCAtNTIxMCw5ICs1MTc5LDcgQEAgLSAo
dm9pZClzZXRNYXJrZWRUZXh0OihOU1N0cmluZyAqKW1hcmtlZFRleHQgc2VsZWN0ZWRSYW5nZToo
TlNSYW5nZSlzZWxlY3RlZFJhbmcKIAogLSAodm9pZClfc2V0TWFya2VkVGV4dDooTlNTdHJpbmcg
KiltYXJrZWRUZXh0IGhpZ2hsaWdodHM6KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
bkhpZ2hsaWdodD4mKWhpZ2hsaWdodHMgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSlzZWxlY3RlZFJh
bmdlCiB7Ci0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKICAgICBfY2FuZGlkYXRl
Vmlld05lZWRzVXBkYXRlID0gIXNlbGYuaGFzTWFya2VkVGV4dDsKLSNlbmRpZgogICAgIF9tYXJr
ZWRUZXh0ID0gbWFya2VkVGV4dDsKICAgICBfcGFnZS0+c2V0Q29tcG9zaXRpb25Bc3luYyhtYXJr
ZWRUZXh0LCB7IH0sIGhpZ2hsaWdodHMsIHNlbGVjdGVkUmFuZ2UsIHsgfSk7CiB9CkBAIC01NDk0
LDExICs1NDYxLDkgQEAgLSAoVUlUZXh0SW5wdXRUcmFpdHMgKil0ZXh0SW5wdXRUcmFpdHMKICAg
ICBpZiAoIV90cmFpdHMpCiAgICAgICAgIF90cmFpdHMgPSBhZG9wdE5TKFtbVUlUZXh0SW5wdXRU
cmFpdHMgYWxsb2NdIGluaXRdKTsKIAotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMp
CiAgICAgLy8gRG8gbm90IGNoYW5nZSB0cmFpdHMgd2hlbiBkaXNtaXNzaW5nIHRoZSBrZXlib2Fy
ZC4KICAgICBpZiAoX2lzQmx1cnJpbmdGb2N1c2VkRWxlbWVudCkKICAgICAgICAgcmV0dXJuIF90
cmFpdHMuZ2V0KCk7Ci0jZW5kaWYKIAogICAgIFtzZWxmIF91cGRhdGVUZXh0SW5wdXRUcmFpdHM6
X3RyYWl0cy5nZXQoKV07CiAgICAgcmV0dXJuIF90cmFpdHMuZ2V0KCk7CkBAIC01NzkzLDggKzU3
NTgsNiBAQCAtICh2b2lkKV9kaWRGaW5pc2hUZXh0SW50ZXJhY3Rpb25JblRleHRJbnB1dENvbnRl
eHQ6KF9XS1RleHRJbnB1dENvbnRleHQgKiljb250ZQogICAgIF9wYWdlLT5zZXRTaG91bGRSZXZl
YWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24odHJ1ZSk7CiB9CiAKLSNpZiBVU0UoVUlL
SVRfS0VZQk9BUkRfQURESVRJT05TKQotCiAtICh2b2lkKW1vZGlmaWVyRmxhZ3NEaWRDaGFuZ2VG
cm9tOihVSUtleU1vZGlmaWVyRmxhZ3Mpb2xkRmxhZ3MgdG86KFVJS2V5TW9kaWZpZXJGbGFncylu
ZXdGbGFncwogewogICAgIGF1dG8gZGlzcGF0Y2hTeW50aGV0aWNGbGFnc0NoYW5nZWRFdmVudHMg
PSBbJl0gKFVJS2V5TW9kaWZpZXJGbGFncyBmbGFncywgYm9vbCBrZXlEb3duKSB7CkBAIC01ODE3
LDggKzU3ODAsNiBAQCAtIChCT09MKXNob3VsZFN1cHByZXNzVXBkYXRlQ2FuZGlkYXRlVmlldwog
ICAgIHJldHVybiBfY2FuZGlkYXRlVmlld05lZWRzVXBkYXRlOwogfQogCi0jZW5kaWYKLQogLy8g
V2ViIGV2ZW50cy4KIC0gKEJPT0wpcmVxdWlyZXNLZXlFdmVudHMKIHsKQEAgLTU4MzUsMTUgKzU3
OTYsMTEgQEAgLSAodm9pZClfaGFuZGxlS2V5VUlFdmVudDooOjpVSUV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgIGlmIChbX2lucHV0UGVyaXBoZXJhbCBoYW5kbGVLZXlFdmVudDpldmVudF0pCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0jaWYgVVNFKFVJS0lUX0tFWUJPQVJE
X0FERElUSU9OUykKICAgICAgICAgaWYgKCFfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFi
bGVFbGVtZW50KSB7CiAgICAgICAgICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFi
bGVFbGVtZW50ID0gWUVTOwogICAgICAgICAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107CiAg
ICAgICAgIH0KICAgICAgICAgW3N1cGVyIF9oYW5kbGVLZXlVSUV2ZW50OmV2ZW50XTsKLSNlbHNl
Ci0gICAgICAgIFtzZWxmIGhhbmRsZUtleUV2ZW50OmV2ZW50XTsKLSNlbmRpZgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC01ODU1LDE5ICs1ODEyLDYgQEAgLSAodm9pZClnZW5lcmF0ZVN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kOihXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZSljb20KICAgICBfcGFnZS0+Z2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChjb21tYW5k
KTsKIH0KIAotI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotLSAodm9pZCloYW5k
bGVLZXlFdmVudDooOjpVSUV2ZW50ICopZXZlbnQKLXsKLSAgICAvLyBXZWJDb3JlIGhhcyBhbHJl
YWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KLSAgICBp
ZiAoZXZlbnQgPT0gX3VpRXZlbnRCZWluZ1Jlc2VudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YXV0byB3ZWJFdmVudCA9IGFkb3B0TlMoW1tXS1dlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEV2ZW50
OmV2ZW50XSk7Ci0gICAgCi0gICAgW3NlbGYgaGFuZGxlS2V5V2ViRXZlbnQ6d2ViRXZlbnQuZ2V0
KCldOwotfQotI2VuZGlmCi0KIC0gKHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KDo6V2ViRXZlbnQg
Kil0aGVFdmVudAogewogICAgIF9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0
aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgV2ViS2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2
ZW50OjpIYW5kbGVkQnlJbnB1dE1ldGhvZDo6Tm8pKTsKQEAgLTU4ODQsMTQgKzU4MjgsMTMgQEAg
LSAodm9pZCloYW5kbGVLZXlXZWJFdmVudDooOjpXZWJFdmVudCAqKXRoZUV2ZW50IHdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikKICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0
V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0
dXJlXTsKIAogICAgIHVzaW5nIEhhbmRsZWRCeUlucHV0TWV0aG9kID0gV2ViS2l0OjpOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50OjpIYW5kbGVkQnlJbnB1dE1ldGhvZDsKLSNpZiBVU0UoVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKQogICAgIGF1dG8qIGtleWJvYXJkID0gW1VJS2V5Ym9hcmRJbXBsIHNo
YXJlZEluc3RhbmNlXTsKICAgICBpZiAoKF9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVk
aXRhYmxlIHx8IF90cmVhdEFzQ29udGVudEVkaXRhYmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRh
dGUpICYmIFtrZXlib2FyZCBoYW5kbGVLZXlJbnB1dE1ldGhvZENvbW1hbmRGb3JDdXJyZW50RXZl
bnRdKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRoZUV2ZW50LCBZRVMpOwogICAgICAg
ICBfcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZl
bnQodGhlRXZlbnQsIEhhbmRsZWRCeUlucHV0TWV0aG9kOjpZZXMpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSNlbmRpZgorCiAgICAgaWYgKF9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KFdl
YktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgSGFuZGxlZEJ5SW5wdXRNZXRo
b2Q6Ok5vKSkpCiAgICAgICAgIF9rZXlXZWJFdmVudEhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpOwogICAgIGVsc2UKQEAgLTU5MDAsMTAgKzU4NDMsOCBAQCAtICh2b2lk
KWhhbmRsZUtleVdlYkV2ZW50Oig6OldlYkV2ZW50ICopdGhlRXZlbnQgd2l0aENvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKQogCiAtICh2b2lkKV9kaWRIYW5kbGVLZXlFdmVudDooOjpXZWJFdmVu
dCAqKWV2ZW50IGV2ZW50V2FzSGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQKIHsKLSNpZiBV
U0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGlmIChbZXZlbnQgaXNLaW5kT2ZDbGFz
czpbV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudCBjbGFzc11dKQogICAgICAgICByZXR1
cm47Ci0jZW5kaWYKIAogICAgIGlmICghKGV2ZW50LmtleWJvYXJkRmxhZ3MgJiBXZWJFdmVudEtl
eWJvYXJkSW5wdXRNb2RpZmllckZsYWdzQ2hhbmdlZCkpCiAgICAgICAgIFtfa2V5Ym9hcmRTY3Jv
bGxpbmdBbmltYXRvciBoYW5kbGVLZXlFdmVudDpldmVudF07CkBAIC01OTEyLDI3ICs1ODUzLDYg
QEAgLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdh
c0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW4KICAgICAgICAgaGFuZGxlcihldmVudCwgZXZlbnRX
YXNIYW5kbGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotI2lmICFVU0UoVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKQotICAgIC8vIElmIHdlIGFyZW4ndCBpbnRlcmFjdGluZyB3aXRoIGVk
aXRhYmxlIGNvbnRlbnQsIHdlIHN0aWxsIG5lZWQgdG8gY2FsbCBbc3VwZXIgX2hhbmRsZUtleVVJ
RXZlbnQ6XQotICAgIC8vIHNvIHRoYXQga2V5Ym9hcmQgcmVwZWF0IHdpbGwgd29yayBjb3JyZWN0
bHkuIElmIHdlIGFyZSBpbnRlcmFjdGluZyB3aXRoIGVkaXRhYmxlIGNvbnRlbnQsCi0gICAgLy8g
d2UgYWxyZWFkeSBkaWQgc28gaW4gX2hhbmRsZUtleVVJRXZlbnQuCi0gICAgaWYgKGV2ZW50V2Fz
SGFuZGxlZCAmJiBfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKCFbZXZlbnQgaXNLaW5kT2ZDbGFzczpbV0tXZWJFdmVudCBj
bGFzc11dKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBSZXNlbmRpbmcgdGhlIGV2ZW50IG1h
eSBkZXN0cm95IHRoaXMgV0tDb250ZW50Vmlldy4KLSAgICBSZXRhaW5QdHI8V0tDb250ZW50Vmll
dz4gcHJvdGVjdG9yKHNlbGYpOwotCi0gICAgLy8gV2Uga2VlcCBoZXJlIHRoZSBldmVudCB3aGVu
IHJlc2VuZGluZyBpdCB0byB0aGUgYXBwbGljYXRpb24gdG8gZGlzdGluZ3Vpc2gKLSAgICAvLyB0
aGUgY2FzZSBvZiBhIG5ldyBldmVudCBmcm9tIG9uZSB0aGF0IGhhcyBiZWVuIGFscmVhZHkgc2Vu
dCB0byBXZWJDb3JlLgotICAgIEFTU0VSVCghX3VpRXZlbnRCZWluZ1Jlc2VudCk7Ci0gICAgX3Vp
RXZlbnRCZWluZ1Jlc2VudCA9IFsoV0tXZWJFdmVudCAqKWV2ZW50IHVpRXZlbnRdOwotICAgIFtz
dXBlciBfaGFuZGxlS2V5VUlFdmVudDpfdWlFdmVudEJlaW5nUmVzZW50LmdldCgpXTsKLSAgICBf
dWlFdmVudEJlaW5nUmVzZW50ID0gbmlsOwotI2VuZGlmCiB9CiAKIC0gKEJPT0wpX2ludGVycHJl
dEtleUV2ZW50Oig6OldlYkV2ZW50ICopZXZlbnQgaXNDaGFyRXZlbnQ6KEJPT0wpaXNDaGFyRXZl
bnQKQEAgLTY1NzksOSArNjQ5OSw3IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVyCiB7CiAgICAg
U2V0Rm9yU2NvcGU8Qk9PTD4gaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50Rm9yU2NvcGUgeyBfaXNC
bHVycmluZ0ZvY3VzZWRFbGVtZW50LCBZRVMgfTsKIAotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9B
RERJVElPTlMpCiAgICAgW3NlbGYgX2VuZEVkaXRpbmddOwotI2VuZGlmCiAKICAgICBbX2Zvcm1J
bnB1dFNlc3Npb24gaW52YWxpZGF0ZV07CiAgICAgX2Zvcm1JbnB1dFNlc3Npb24gPSBuaWw7CkBA
IC02NjAzLDEyICs2NTIxLDEwIEBAIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVyCiAgICAgX2ZvY3Vz
UmVxdWlyZXNTdHJvbmdQYXNzd29yZEFzc2lzdGFuY2UgPSBOTzsKICAgICBfYWRkaXRpb25hbENv
bnRleHRGb3JTdHJvbmdQYXNzd29yZEFzc2lzdGFuY2UgPSBuaWw7CiAKLSNpZiBVU0UoVUlLSVRf
S0VZQk9BUkRfQURESVRJT05TKQogICAgIC8vIFdoZW4gZGVmb2N1c2luZyBhbiBlZGl0YWJsZSBl
bGVtZW50IHJlc2V0IGEgc2VlbiBrZXlkb3duIGJlZm9yZSBjYWxsaW5nIC1faGlkZUtleWJvYXJk
IHNvIHRoYXQgd2UKICAgICAvLyByZS1ldmFsdWF0ZSB3aGV0aGVyIHdlIHN0aWxsIG5lZWQgYSBr
ZXlib2FyZCB3aGVuIFVJS2l0IGNhbGxzIHVzIGJhY2sgaW4gLV9yZXF1aXJlc0tleWJvYXJkV2hl
bkZpcnN0UmVzcG9uZGVyLgogICAgIGlmIChlZGl0YWJsZUNoYW5nZWQpCiAgICAgICAgIF9zZWVu
SGFyZHdhcmVLZXlEb3duSW5Ob25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKLSNlbmRpZgogCiAgICAg
W3NlbGYgX2hpZGVLZXlib2FyZF07CiAKQEAgLTY2NTgsOSArNjU3NCw3IEBAIC0gKEJPT0wpc2hv
dWxkSWdub3JlS2V5Ym9hcmRXaWxsSGlkZU5vdGlmaWNhdGlvbgogCiAtICh2b2lkKV9oYXJkd2Fy
ZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZAogewotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9B
RERJVElPTlMpCiAgICAgX3NlZW5IYXJkd2FyZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9
IE5POwotI2VuZGlmCiAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107CiB9CiAKQEAgLTcyMjks
MTMgKzcxNDMsMTEgQEAgLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogICAgIGlmIChfdXNpbmdH
ZXN0dXJlRm9yU2VsZWN0aW9uKQogICAgICAgICBbc2VsZiBfdXBkYXRlQ2hhbmdlZFNlbGVjdGlv
bl07CiAKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGlmIChfY2FuZGlk
YXRlVmlld05lZWRzVXBkYXRlKSB7CiAgICAgICAgIF9jYW5kaWRhdGVWaWV3TmVlZHNVcGRhdGUg
PSBOTzsKICAgICAgICAgaWYgKFtzZWxmLmlucHV0RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihsYXlvdXRIYXNDaGFuZ2VkKV0pCiAgICAgICAgICAgICBbKGlkIDxVSVRleHRJ
bnB1dERlbGVnYXRlUHJpdmF0ZT4pc2VsZi5pbnB1dERlbGVnYXRlIGxheW91dEhhc0NoYW5nZWRd
OwogICAgIH0KLSNlbmRpZgogICAgIAogICAgIFtfd2ViVmlldyBfZGlkQ2hhbmdlRWRpdG9yU3Rh
dGVdOwogCkBAIC0xMDAyNyw2ICs5OTM5LDcgQEAgLSAodm9pZClwcmVzZW50VmlzdWFsU2VhcmNo
UHJldmlld0NvbnRyb2xsZXJGb3JJbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdlVVJMOigKICAg
ICBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlVVJMID0gaW1hZ2VVUkw7CiAKICAgICBfdmlzdWFs
U2VhcmNoUHJldmlld0ltYWdlQm91bmRzID0gaW1hZ2VCb3VuZHM7CisgICAgTlNMb2coQCI8V0s+
OiBTZXR0aW5nIHZpc3VhbCBzZWFyY2ggcHJldmlldyBib3VuZHM6ICVAIiwgTlNTdHJpbmdGcm9t
Q0dSZWN0KF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VCb3VuZHMpKTsKIAogICAgIFVJVmlld0Nv
bnRyb2xsZXIgKmN1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJv
bGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6c2Vs
Zl07CiAgICAgW2N1cnJlbnRQcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250
cm9sbGVyOl92aXN1YWxTZWFyY2hQcmV2aWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVMg
Y29tcGxldGlvbjpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmgKaW5kZXggMDVlNDUwZmI0
OTlkODc1ZWFlMzk1YjNiZmMzOTkzODY0MWMzNjFlZC4uM2U0YjVjNWRhNjlmMGQ3YzZlNGZlOTIx
MzhlYTViZmNjOGMwZWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oCkBAIC0yMyw3ICsy
Myw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmIFVT
RShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogCkBA
IC0zNCw0ICszNCw0IEBACiAKIEBlbmQKIAotI2VuZGlmIC8vIFVTRShVSUtJVF9LRVlCT0FSRF9B
RERJVElPTlMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N5bnRo
ZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQubW0KaW5kZXggODA4MmVjZDllZGRmZDg2
M2Q1OGM4ODM4OWMwNTBlOGYyMzNmYmU4Ni4uZDlhNzdjZWE4ZDFiMTc2MTczNjI5ZWEwNmZlYjdi
M2Y3ZDI1ZTljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3lu
dGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZlbnQubW0KQEAgLTI2LDcgKzI2LDcg
QEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRX
ZWJFdmVudC5oIgogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykgJiYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL0lPS2l0U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZp
Y2VzU1BJLmg+CkBAIC01MSw0ICs1MSw0IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNoaWZ0
U3RhdGU6KEJPT0wpa2V5RG93bgogCiBAZW5kCiAKLSNlbmRpZiAvLyBVU0UoVUlLSVRfS0VZQk9B
UkRfQURESVRJT05TKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCmluZGV4IGU3Mjk5M2JjNTJjMmM4Zjk2MTQ3MTAw
MThiMzEyMWM1YjkxNWNjMjQuLjQ2YmJlYzhjMWNmNGJjMzkzMmY4ZjcxZWYxMmRhOTZjODIyZGQ4
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1T
ZWxlY3RQb3BvdmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1TZWxlY3RQb3BvdmVyLm1tCkBAIC03OSwxMSArNzksNyBAQCBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogQGNsYXNzIFdLU2VsZWN0UG9wb3ZlcjsKIAotI2lmIFVTRShV
SUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiBAaW50ZXJmYWNlIFdLU2VsZWN0VGFibGVWaWV3Q29u
dHJvbGxlciA6IFVJVGFibGVWaWV3Q29udHJvbGxlcgotI2Vsc2UKLUBpbnRlcmZhY2UgV0tTZWxl
Y3RUYWJsZVZpZXdDb250cm9sbGVyIDogVUlUYWJsZVZpZXdDb250cm9sbGVyIDxVSUtleUlucHV0
PgotI2VuZGlmCiB7CiAgICAgTlNVSW50ZWdlciBfc2luZ2xlU2VsZWN0aW9uSW5kZXg7CiAgICAg
TlNVSW50ZWdlciBfc2luZ2xlU2VsZWN0aW9uU2VjdGlvbjsKQEAgLTM2OSwyNCArMzY1LDYgQEAg
LSAoQk9PTClzaG91bGREaXNtaXNzV2l0aEFuaW1hdGlvbgogICAgIHJldHVybiBfY29udGVudFZp
ZXcuX3Nob3VsZFVzZUxlZ2FjeVNlbGVjdFBvcG92ZXJEaXNtaXNzYWxCZWhhdmlvcjsKIH0KIAot
I2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotI3ByYWdtYSBtYXJrIFVJS2V5SW5w
dXQgZGVsZWdhdGUgbWV0aG9kcwotCi0tIChCT09MKWhhc1RleHQKLXsKLSAgICByZXR1cm4gTk87
Ci19Ci0KLS0gKHZvaWQpaW5zZXJ0VGV4dDooTlNTdHJpbmcgKil0ZXh0Ci17Ci19Ci0KLS0gKHZv
aWQpZGVsZXRlQmFja3dhcmQKLXsKLX0KLQotI2VuZGlmCi0KIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdLU2VsZWN0UG9wb3ZlciB7CkBAIC00MTUsMTAgKzM5Myw2IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3IGhhc0dyb3VwczooQk9PTCloYXNH
cm91cHMKICAgICBzZWxmLnBvcG92ZXJDb250cm9sbGVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNv
bnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOnBvcG92ZXJWaWV3
Q29udHJvbGxlci5nZXQoKV0pLmdldCgpOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCi0jaWYgIVVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCi0gICAgW1tVSUtl
eWJvYXJkSW1wbCBzaGFyZWRJbnN0YW5jZV0gc2V0RGVsZWdhdGU6X3RhYmxlVmlld0NvbnRyb2xs
ZXIuZ2V0KCldOwotI2VuZGlmCi0gICAgCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9y
Q2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lv
cy9XZWJFZGl0b3JDbGllbnRJT1MubW0KaW5kZXggYWZiMzg2MTAzYzZjNzg4YWY5OTliNWU0MDI4
YjRjNDBiOTY3M2M0Ni4uNjM4MGEzMGE3N2I1ZjI1OGM2MDdiNjk1YjQwZGUyMDEzNTBhMDY1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9X
ZWJFZGl0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KQEAgLTQ0LDEzICs0NCw4IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2
ZW50KQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtl
eWJvYXJkRXZlbnQmIGV2ZW50KQogewotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMp
CiAgICAgaWYgKGV2ZW50LmhhbmRsZWRCeUlucHV0TWV0aG9kKCkpCiAgICAgICAgIGV2ZW50LnNl
dERlZmF1bHRIYW5kbGVkKCk7Ci0jZWxzZQotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgVU5V
U0VEX1BBUkFNKGV2ZW50KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0
SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjMzcxNjU0NGIxNTg2
ODllMDZkMDFkODRlZmI2ZjBiZDZlMzgyMzljLi5jNTg1MzAwMGI4ODJlYzVhZDFkNWUwM2Q0OWIx
NDIxZjhhMWNkZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjc4NSwxMCArMjc4NSw4IEBAIHN0YXRpYyB2b2lkIGJv
dW5kc1Bvc2l0aW9uSW5mb3JtYXRpb24oUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgSW50ZXJhY3Rp
b25JbmZvcm1hCiAgICAgZWxzZQogICAgICAgICBpbmZvLmJvdW5kcyA9IHJlbmRlcmVyLmFic29s
dXRlQm91bmRpbmdCb3hSZWN0KCk7CiAKLSAgICBpZiAoIXJlbmRlcmVyLmRvY3VtZW50KCkuZnJh
bWUoKS0+aXNNYWluRnJhbWUoKSkgewotICAgICAgICBGcmFtZVZpZXcgKnZpZXcgPSByZW5kZXJl
ci5kb2N1bWVudCgpLmZyYW1lKCktPnZpZXcoKTsKKyAgICBpZiAoUmVmUHRyIHZpZXcgPSByZW5k
ZXJlci5kb2N1bWVudCgpLmZyYW1lKCktPnZpZXcoKSkKICAgICAgICAgaW5mby5ib3VuZHMgPSB2
aWV3LT5jb250ZW50c1RvUm9vdFZpZXcoaW5mby5ib3VuZHMpOwotICAgIH0KIH0KIAogc3RhdGlj
IHZvaWQgZWxlbWVudFBvc2l0aW9uSW5mb3JtYXRpb24oV2ViUGFnZSYgcGFnZSwgRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IE5vZGUqIGlubmVyTm9uU2hhcmVkTm9kZSwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24mIGluZm8pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjE0OWZkZWRjZmIzMmZhZmNiZjUyMTFmOGIyMzllMjI4NTM3ZjMyOS4uMDJmYTRj
NTgyZWJhNzk1ZGFjOGJiZDAyYzNhZWZlMTFlZDZhZmMzNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTI1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBzb21lIGlPUy1zcGVjaWZpYyBjb21waWxlLXRpbWUgZ3VhcmRzIHRoYXQgYXJlIG5vIGxvbmdl
ciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyOTUwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSB0aGlzIHdvcmthcm91bmQsIHdoaWNoIHdhcyBvbmx5IHJlcXVpcmVkIHRvIGtlZXAg
YW4gQVBJIHRlc3QgcGFzc2luZyBvbiBpT1MgMTMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVz
dENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAob3ZlcnJpZGVLZXlib2Fy
ZERlbGVnYXRlU3VwcG9ydHNJbWFnZVBhc3RlKTogRGVsZXRlZC4KKwogMjAyMS0wOC0yNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIDE1XSBl
ZGl0aW5nL2lucHV0L2NvY29hL2F1dG9jb3JyZWN0LW9uLmh0bWwgdGltZXMgb3V0IHdoZW4gcnVu
IGFmdGVyIGVkaXRpbmcvaW5wdXQvY29jb2EvYXV0b2NvcnJlY3Qtb2ZmLmh0bWwKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAyNjk1NmFmODYyMmVkNjUwN2JkZmY5
ZWM5Nzc1NWM3N2FmMGRjYzcyLi5mNTE1ODAzMWQ4YWY2YTYwNTMwOGI3NGUyMzIyNzM1YTE1ZWM5
OTFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC01NjAsOSAr
NTYwLDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEluc3RhbmNlTWV0
aG9kU3dpenpsZXI+PiBtX2lucHV0TW9kZVN3aXp6bGVyczsKICAgICBSZXRhaW5QdHI8VUlLZXli
b2FyZElucHV0TW9kZT4gbV9vdmVycmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGU7CiAgICAgVmVjdG9y
PHN0ZDo6dW5pcXVlX3B0cjxJbnN0YW5jZU1ldGhvZFN3aXp6bGVyPj4gbV9wcmVzZW50UG9wb3Zl
clN3aXp6bGVyczsKLSNpZiAhSEFWRShOT05ERVNUUlVDVElWRV9JTUFHRV9QQVNURV9TVVBQT1JU
X1FVRVJZKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnN0YW5jZU1ldGhvZFN3aXp6bGVyPiBtX2tl
eWJvYXJkRGVsZWdhdGVTdXBwb3J0c0ltYWdlUGFzdGVTd2l6emxlcjsKLSNlbmRpZgogI2VuZGlm
CiAKICAgICBlbnVtIFN0YXRlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1Rlc3RDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVz
dENvbnRyb2xsZXJJT1MubW0KaW5kZXggODY2MjUzNTBiMDZiNTQwM2FkYTUyNmVjNjQ2NDJmZDRl
MzVhYzA3OS4uYjNlZjQ0ZWU1ZmQzNmQ3N2RkZDUzNjY4ZTJmN2Y3ODMxOWEwYTdjZCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KQEAgLTYy
LDE1ICs2Miw2IEBAIHN0YXRpYyB2b2lkIG92ZXJyaWRlUHJlc2VudE1lbnVPclBvcG92ZXJPclZp
ZXdDb250cm9sbGVyKCkKIHsKIH0KIAotI2lmICFIQVZFKE5PTkRFU1RSVUNUSVZFX0lNQUdFX1BB
U1RFX1NVUFBPUlRfUVVFUlkpCi0KLXN0YXRpYyBCT09MIG92ZXJyaWRlS2V5Ym9hcmREZWxlZ2F0
ZVN1cHBvcnRzSW1hZ2VQYXN0ZShpZCwgU0VMKQotewotICAgIHJldHVybiBOTzsKLX0KLQotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXVFIgewogCiBzdGF0aWMgYm9vbCBpc0RvbmVXYWl0aW5nRm9yS2V5
Ym9hcmRUb0Rpc21pc3MgPSB0cnVlOwpAQCAtMTk3LDEyICsxODgsNiBAQCBib29sIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9w
dGlvbnMmIG9wdAogICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB3aGV0aGVyIHRoaXMgY2FuIGJl
IHJlbW92ZWQuIFRoZSBzd2l6emxlZCByZXR1cm4gdmFsdWUgaXMgaW5jb25zaXN0ZW50IHdpdGgg
R1NFdmVudFNldEhhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZC4KICAgICBtZXRob2Rfc2V0SW1wbGVt
ZW50YXRpb24oY2xhc3NfZ2V0Q2xhc3NNZXRob2QoW1VJS2V5Ym9hcmQgY2xhc3NdLCBAc2VsZWN0
b3IoaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKSksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVy
cmlkZUlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSkpOwogCi0jaWYgIUhBVkUoTk9OREVTVFJVQ1RJ
VkVfSU1BR0VfUEFTVEVfU1VQUE9SVF9RVUVSWSkKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
d29ya2Fyb3VuZCBvbmNlIC1bVUlLZXlib2FyZEltcGwgZGVsZWdhdGVTdXBwb3J0c0ltYWdlUGFz
dGVdIG5vIGxvbmdlciBpbmNyZW1lbnRzIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQncyBjaGFuZ2VD
b3VudC4KLSAgICBpZiAoIW1fa2V5Ym9hcmREZWxlZ2F0ZVN1cHBvcnRzSW1hZ2VQYXN0ZVN3aXp6
bGVyKQotICAgICAgICBtX2tleWJvYXJkRGVsZWdhdGVTdXBwb3J0c0ltYWdlUGFzdGVTd2l6emxl
ciA9IG1ha2VVbmlxdWU8SW5zdGFuY2VNZXRob2RTd2l6emxlcj4oVUlLZXlib2FyZEltcGwuY2xh
c3MsIEBzZWxlY3RvcihkZWxlZ2F0ZVN1cHBvcnRzSW1hZ2VQYXN0ZSksIHJlaW50ZXJwcmV0X2Nh
c3Q8SU1QPihvdmVycmlkZUtleWJvYXJkRGVsZWdhdGVTdXBwb3J0c0ltYWdlUGFzdGUpKTsKLSNl
bmRpZgotCiAgICAgaWYgKG1fb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRNb2RlKSB7CiAgICAgICAg
IG1fb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRNb2RlID0gbmlsOwogICAgICAgICBtX2lucHV0TW9k
ZVN3aXp6bGVycy5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436421</attachid>
            <date>2021-08-25 13:54:31 -0700</date>
            <delta_ts>2021-08-25 21:02:52 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>bug-229500-20210825135430.patch</filename>
            <type>text/plain</type>
            <size>36724</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJiYzJlYmI2MjIyNGJiZTExNGU5Yzgx
YjEzOWIwMTYzYmFiMjBiODAuLmYyNGY1ODIwYzYwYzkxYjhmNzczNTJhNmFmNzk0ZTZlNTJjMGEy
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgaU9TLXNwZWNpZmljIGNv
bXBpbGUtdGltZSBndWFyZHMgdGhhdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZW1vdmUgdGhlIGZlYXR1cmUgZmxhZ3Mu
IFNlZSBXZWJLaXQvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1IYXZlLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlLmg6CisKIDIwMjEtMDgt
MjQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBB
ZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDZkNzJiNWU2ODBkYjJhYTNk
MjJiMjQwZmMxMTBhY2U1ZjBkY2NlZS4uNWNjYTY1ODRiYWZiM2I0Y2U3YjQ2NDc3YjhhMDhiN2Q0
NjZjZmMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA4LTI1ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzb21lIGlP
Uy1zcGVjaWZpYyBjb21waWxlLXRpbWUgZ3VhcmRzIHRoYXQgYXJlIG5vIGxvbmdlciBuZWVkZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTUwMAor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgU2VlIFdlYktpdC9D
aGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmlzRnVuY3Rpb25L
ZXkpOgorCiAyMDIxLTA4LTI1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTEZDXVtJRkNdIExpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzIHNob3VsZCBhbHNvIGJl
IGluIHRoZSBydW4gbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NDcxODFkOGI4YzVmMWRlMWQ0ODU0NTYyYjhh
MzhlMDYyZDIyNzQ2Li5lYjAzYTc3OTgyZDBjNTQ5NGQ5MTkyNzY5OTBhMmExZTI1NjZmNTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTA4LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzb21lIGlPUy1zcGVjaWZpYyBj
b21waWxlLXRpbWUgZ3VhcmRzIHRoYXQgYXJlIG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTUwMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVtb3ZlIHR3byBjb21waWxlLXRpbWUg
ZmxhZ3MgdGhhdCB3ZXJlIG5vIGxvbmdlciBuZWNlc3NhcnkgYWZ0ZXIgV2ViS2l0J3MgbWluaW11
bSBzdXBwb3J0ZWQgaU9TIHZlcnNpb24gYmVjYW1lCisgICAgICAgIGlPUyAxNDogYFVTRShVSUtJ
VF9LRVlCT0FSRF9BRERJVElPTlMpYCBhbmQgYEhBVkUoTk9OREVTVFJVQ1RJVkVfSU1BR0VfUEFT
VEVfU1VQUE9SVF9RVUVSWSlgLgorCisgICAgICAgIGBIQVZFKE5PTkRFU1RSVUNUSVZFX0lNQUdF
X1BBU1RFX1NVUFBPUlRfUVVFUlkpYCB3YXMgb25seSBuZWVkZWQgZm9yIGEgd29ya2Fyb3VuZCBp
biBvdXIgdGVzdCBpbmZyYXN0cnVjdHVyZSwKKyAgICAgICAgd2hpbGUgYFVTRShVSUtJVF9LRVlC
T0FSRF9BRERJVElPTlMpYCB3YXMgb25seSBpbnRyb2R1Y2VkIHRvIG1haW50YWluIGJhc2ljIGhh
cmR3YXJlIGtleWJvYXJkIGZ1bmN0aW9uYWxpdHkgaW4KKyAgICAgICAgaU9TIDEyLCB3aGlsZSBz
dXBwb3J0aW5nIGltcHJvdmVtZW50cyB0byBoYXJkd2FyZSBrZXlib2FyZCBzdXBwb3J0IGluIGlP
UyAxMy4KKworICAgICAgICBUaGUgbGF0dGVyIG5vdyBvbmx5IGd1YXJkcyBgUExBVEZPUk0oSU9T
KSB8fCBQTEFURk9STShNQUNDQVRBTFlTVClgLiBIb3dldmVyLCB0aGVyZSdzIG5vIHJlYXNvbiB0
aGUgY29kZXBhdGhzCisgICAgICAgIGZvciBoYXJkd2FyZSBrZXlib2FyZCBzdXBwb3J0IGNhbid0
IGV4aXN0IG9uIHdhdGNoT1MgYXMgd2VsbCAoZXNwZWNpYWxseSBzaW5jZSBtb3N0IG9mIGhhcmR3
YXJlIGtleWJvYXJkCisgICAgICAgIHN1cHBvcnQgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCB0aGVy
ZSAtLSBqdXN0IHVucmVhY2hhYmxlIGJlY2F1c2UgaXQncyBub3QgcG9zc2libGUgdG8gYXR0YWNo
IGEgaGFyZHdhcmUga2V5Ym9hcmQKKyAgICAgICAgdG8gYW4gQXBwbGUgd2F0Y2gpLiBXZSBjYW4g
cmVtb3ZlIHRoaXMgZmVhdHVyZSBmbGFnLCBhbmQgc2ltcGx5IGRlbGV0ZSBjb2RlIHRoYXQgd2Fz
IGZvcm1lcmx5IGd1YXJkZWQgYnkKKyAgICAgICAgYCFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJ
T05TKWAuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktp
dDJQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OldlYktpdDJQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQb29sOmNvbmZpZ3Vy
YXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZGlzYWJsZUF1dG9tYXRpY0tleWJvYXJkVUldKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWlyZXNLZXlib2FyZFdoZW5GaXJzdFJlc3BvbmRlcl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFwcGx5QXV0b2NvcnJlY3Rpb246dG9TdHJpbmc6
d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlcXVl
c3RBdXRvY29ycmVjdGlvbkNvbnRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfc2V0TWFya2VkVGV4dDpoaWdobGlnaHRzOnNlbGVjdGVkUmFuZ2U6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGV4dElucHV0VHJhaXRzXSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZUtleVVJRXZlbnQ6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRIYW5kbGVLZXlFdmVudDpldmVudFdhc0hhbmRsZWQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnREaWRCbHVyXSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2hhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NlbGVjdGlvbkNoYW5nZWRdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBrZXlDb21tYW5kc10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGhhbmRsZUtleUV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJFdmVudC5tbToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW06CisgICAgICAgICgtW1dL
U2VsZWN0UG9wb3ZlciBpbml0V2l0aFZpZXc6aGFzR3JvdXBzOl0pOgorICAgICAgICAoLVtXS1Nl
bGVjdFRhYmxlVmlld0NvbnRyb2xsZXIgaGFzVGV4dF0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1NlbGVjdFRhYmxlVmlld0NvbnRyb2xsZXIgaW5zZXJ0VGV4dDpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tTZWxlY3RUYWJsZVZpZXdDb250cm9sbGVyIGRlbGV0ZUJhY2t3YXJkXSk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xp
ZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUlucHV0
TWV0aG9kS2V5ZG93bik6CisKIDIwMjEtMDgtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyAxNV0gZWRpdGluZy9pbnB1dC9jb2NvYS9hdXRv
Y29ycmVjdC1vbi5odG1sIHRpbWVzIG91dCB3aGVuIHJ1biBhZnRlciBlZGl0aW5nL2lucHV0L2Nv
Y29hL2F1dG9jb3JyZWN0LW9mZi5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDQyMjZlYTI5
OTVjNGEwZWQ5MjY0NDhiODRhMDIzOGM2ZmE4NDQ0ZjYuLjRjNWYxZDI5YTFlZTJkZWE3OWE4OGQw
MjRlMDMwNGMzNjFlZTkwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04NSwxMCArODUsNiBA
QAogI2RlZmluZSBIQVZFX0FWU1RSRUFNU0VTU0lPTiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVk
KFVTRV9VSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpICYmIChQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKSkKLSNkZWZpbmUgVVNFX1VJS0lUX0tFWUJPQVJEX0FERElUSU9OUyAx
Ci0jZW5kaWYKLQogI2lmICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KSkKICNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZIDEKICNlbmRpZgpAQCAtNzMyLDEwICs3Mjgs
NiBAQAogI2RlZmluZSBIQVZFX0RJU1BMQVlfTEFZRVJfQklQTEFOQVJfU1VQUE9SVCAxCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTQwMDAwCi0jZGVmaW5lIEhBVkVfTk9OREVTVFJVQ1RJVkVfSU1BR0VfUEFTVEVfU1VQ
UE9SVF9RVUVSWSAxCi0jZW5kaWYKLQogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQogI2RlZmluZSBI
QVZFX0xPR0dJTkdfUFJJVkFDWV9MRVZFTCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtVXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCmluZGV4
IDQ4YjM2MDBkODY3YWVjNDZmYzFjOWM0N2E2NDRjODY4MGEyMmQ4NGYuLjNjZDE1MWRkN2ZiMmEz
YjZjNjFkNjY5ZTA0ZDExMzZjYTcxOTBmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtVXNlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2UuaApAQCAtMTIzLDEw
ICsxMjMsNiBAQAogI2RlZmluZSBVU0VfV0VCX1RIUkVBRCAxCiAjZW5kaWYKIAotI2lmICFkZWZp
bmVkKFVTRV9VSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpICYmIChQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSkKLSNkZWZpbmUgVVNFX1VJS0lUX0tFWUJPQVJEX0FERElUSU9O
UyAxCi0jZW5kaWYKLQogI2lmIE9TKFVOSVgpCiAjZGVmaW5lIFVTRV9QVEhSRUFEUyAxCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCBhY2YzYmExYzVlNTZmOTEy
NGQwNjE1YzBiMzc0ZDVhN2VhNmYyMTFmLi4wMWExZTU5MjQ1NzM4ZTkzMjcyNTMyMTYzM2VlMzA1
ZTc5ZTZhNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCkBAIC0xMTIsNyAr
MTEyLDcgQEAgaW5saW5lIEtleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQoY29uc3QgUGxhdGZv
cm1LZXlib2FyZEV2ZW50JiBrZXksIFJlZlB0cjxXaW4KICAgICAsIG1fbG9jYXRpb24oa2V5TG9j
YXRpb25Db2RlKGtleSkpCiAgICAgLCBtX3JlcGVhdChrZXkuaXNBdXRvUmVwZWF0KCkpCiAgICAg
LCBtX2lzQ29tcG9zaW5nKHZpZXcgJiYgaXM8RE9NV2luZG93Pih2aWV3LT53aW5kb3coKSkgJiYg
ZG93bmNhc3Q8RE9NV2luZG93Pigqdmlldy0+d2luZG93KCkpLmZyYW1lKCkgJiYgZG93bmNhc3Q8
RE9NV2luZG93Pigqdmlldy0+d2luZG93KCkpLmZyYW1lKCktPmVkaXRvcigpLmhhc0NvbXBvc2l0
aW9uKCkpCi0jaWYgVVNFKEFQUEtJVCkgfHwgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykK
KyNpZiBVU0UoQVBQS0lUKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9oYW5kbGVk
QnlJbnB1dE1ldGhvZChrZXkuaGFuZGxlZEJ5SW5wdXRNZXRob2QoKSkKICNlbmRpZgogI2lmIFVT
RShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oCmluZGV4IGY5MGYxZGFkNmI3YjRlNjcwMzc0NWM5Y2I5N2EzMmM4NzJmYTFhYTguLjFk
M2VkZDk1ODUzMzg4MjhjNzA3NGZkODM4OWU0MzdjMTZjNDJkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC05MCw3ICs5MCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9CiAgICAgICAgIHZvaWQg
c2V0V2luZG93c1ZpcnR1YWxLZXlDb2RlKGludCBjb2RlKSB7IG1fd2luZG93c1ZpcnR1YWxLZXlD
b2RlID0gY29kZTsgfQogCi0jaWYgVVNFKEFQUEtJVCkgfHwgVVNFKFVJS0lUX0tFWUJPQVJEX0FE
RElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQorI2lmIFVTRShBUFBLSVQp
IHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkK
ICAgICAgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFu
ZGxlZEJ5SW5wdXRNZXRob2Q7IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJ
QldQRSkKQEAgLTE1OSw3ICsxNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGlu
dCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7IDAgfTsKIAogICAgICAgICBib29sIG1faXNTeW50
aGV0aWNFdmVudCB7IGZhbHNlIH07Ci0jaWYgVVNFKEFQUEtJVCkgfHwgVVNFKFVJS0lUX0tFWUJP
QVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQorI2lmIFVTRShB
UFBLSVQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJ
QldQRSkKICAgICAgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQppbmRleCBlNTgwMzczMjNkZjJhZWE0M2VjNWM1MmNi
ODU4NjM0MzVkMDk2Njc5Li40OTI1M2E0YzJlMmNkODExMjA1Y2IyMzE3ODhlNzg2NjAyNWE0MjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCkBAIC0yNzQs
MTQgKzI3NCw2IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNv
ZGUpCiBzdGF0aWMgYm9vbCBpc0Z1bmN0aW9uS2V5KFVDaGFyIGNoYXJDb2RlKQogewogICAgIHN3
aXRjaCAoY2hhckNvZGUpIHsKLSNpZiAhVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKLSAg
ICBjYXNlIDE6IC8vIEhvbWUKLSAgICBjYXNlIDQ6IC8vIEVuZAotICAgIGNhc2UgNTogLy8gRklY
TUU6IEZvciBzb21lIHJlYXNvbiBXZWJLaXRUZXN0UnVubmVyIGdlbmVyYXRlcyB0aGlzIGNvZGUg
Zm9yIEYxNCAod2h5PykuCi0gICAgY2FzZSAweDdGOiAvLyBGb3J3YXJkIERlbGV0ZQotICAgIGNh
c2UgMHgxMDogLy8gRnVuY3Rpb24ga2V5IChlLmcuIEYxLCBGMiwgLi4uKQotI2VuZGlmCi0KICAg
ICAvLyBXZWJLaXQgdXNlcyBVbmljb2RlIFBVQSBjb2RlcyBpbiB0aGUgT3BlblN0ZXAgcmVzZXJ2
ZSByYW5nZSBmb3Igc29tZSBzcGVjaWFsIGtleXMuCiAgICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlv
bktleToKICAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6CkBAIC0yOTAsMTggKzI4Miwx
NCBAQCBzdGF0aWMgYm9vbCBpc0Z1bmN0aW9uS2V5KFVDaGFyIGNoYXJDb2RlKQogICAgIGNhc2Ug
TlNQYWdlVXBGdW5jdGlvbktleToKICAgICBjYXNlIE5TUGFnZURvd25GdW5jdGlvbktleToKICAg
ICBjYXNlIE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk6IC8vIE51bSBMb2NrIC8gQ2xlYXIKLSNpZiBV
U0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGNhc2UgTlNEZWxldGVGdW5jdGlvbktl
eTogLy8gRm9yd2FyZCBkZWxldGUKICAgICBjYXNlIE5TRW5kRnVuY3Rpb25LZXk6CiAgICAgY2Fz
ZSBOU0luc2VydEZ1bmN0aW9uS2V5OgogICAgIGNhc2UgTlNIb21lRnVuY3Rpb25LZXk6Ci0jZW5k
aWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9B
RERJVElPTlMpCiAgICAgaWYgKGNoYXJDb2RlID49IE5TRjFGdW5jdGlvbktleSAmJiBjaGFyQ29k
ZSA8PSBOU0YyNEZ1bmN0aW9uS2V5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRT
UEkuaAppbmRleCA1YTlkN2MzMTVhMTAwNDc4ZmZlNTI3OWNkZTM3ZGUxZjNmN2VlMWMzLi41ZWVl
ZGFhN2U2Nzg3OTE0ZTI0NTk4YTRkMWM5NjhjMjgwZmU0NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtMzU0LDYgKzM1NCwxMCBAQCB0eXBlZGVmIGVu
dW0gewogKyAoVUlLZXlib2FyZEltcGwgKilhY3RpdmVJbnN0YW5jZTsKICsgKFVJS2V5Ym9hcmRJ
bXBsICopc2hhcmVkSW5zdGFuY2U7CiArIChDR1NpemUpZGVmYXVsdFNpemVGb3JJbnRlcmZhY2VP
cmllbnRhdGlvbjooVUlJbnRlcmZhY2VPcmllbnRhdGlvbilvcmllbnRhdGlvbjsKKy0gKEJPT0wp
aGFuZGxlS2V5VGV4dENvbW1hbmRGb3JDdXJyZW50RXZlbnQ7CistIChCT09MKWhhbmRsZUtleUFw
cENvbW1hbmRGb3JDdXJyZW50RXZlbnQ7CistIChCT09MKWhhbmRsZUtleUlucHV0TWV0aG9kQ29t
bWFuZEZvckN1cnJlbnRFdmVudDsKKy0gKEJPT0wpaXNDYWxsaW5nSW5wdXREZWxlZ2F0ZTsKIC0g
KHZvaWQpYWRkSW5wdXRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhGbGFnczooTlNVSW50
ZWdlcilmbGFnczsKIC0gKHZvaWQpYWRkSW5wdXRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdp
dGhGbGFnczooTlNVSW50ZWdlcilmbGFncyB3aXRoSW5wdXRNYW5hZ2VySGludDooTlNTdHJpbmcg
KiloaW50OwogLSAoQk9PTClhdXRvY29ycmVjdFNwZWxsaW5nRW5hYmxlZDsKQEAgLTU0MCw5ICs1
NDQsNyBAQCB0eXBlZGVmIGVudW0gewogLSAodm9pZClpbnNlcnREaWN0YXRpb25SZXN1bHQ6KE5T
QXJyYXkgKilkaWN0YXRpb25SZXN1bHQgd2l0aENvcnJlY3Rpb25JZGVudGlmaWVyOihpZCljb3Jy
ZWN0aW9uSWRlbnRpZmllcjsKIC0gKHZvaWQpcmVwbGFjZVJhbmdlV2l0aFRleHRXaXRob3V0Q2xv
c2luZ1R5cGluZzooVUlUZXh0UmFuZ2UgKilyYW5nZSByZXBsYWNlbWVudFRleHQ6KE5TU3RyaW5n
ICopdGV4dDsKIC0gKHZvaWQpc2V0Qm90dG9tQnVmZmVySGVpZ2h0OihDR0Zsb2F0KWJvdHRvbUJ1
ZmZlcjsKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogLSAodm9pZCltb2RpZmll
ckZsYWdzRGlkQ2hhbmdlRnJvbTooVUlLZXlNb2RpZmllckZsYWdzKW9sZEZsYWdzIHRvOihVSUtl
eU1vZGlmaWVyRmxhZ3MpbmV3RmxhZ3M7Ci0jZW5kaWYKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBV
SVRleHRHcmFudWxhcml0eSBzZWxlY3Rpb25HcmFudWxhcml0eTsKIEByZXF1aXJlZAogLSAoQk9P
TCloYXNDb250ZW50OwpAQCAtMTQxMywxMSArMTQxNSw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJ
bnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogQGludGVyZmFjZSBVSUtleWJvYXJkSW1w
bCAoSVBJKQogLSAodm9pZClzZXRJbml0aWFsRGlyZWN0aW9uOwogLSAodm9pZClwcmVwYXJlS2V5
Ym9hcmRJbnB1dE1vZGVGcm9tUHJlZmVyZW5jZXM6KFVJS2V5Ym9hcmRJbnB1dE1vZGUgKilsYXN0
VXNlZE1vZGU7Ci0tIChCT09MKWhhbmRsZUtleVRleHRDb21tYW5kRm9yQ3VycmVudEV2ZW50Owot
LSAoQk9PTCloYW5kbGVLZXlBcHBDb21tYW5kRm9yQ3VycmVudEV2ZW50OwotLSAoQk9PTCloYW5k
bGVLZXlJbnB1dE1ldGhvZENvbW1hbmRGb3JDdXJyZW50RXZlbnQ7Ci0tIChCT09MKWlzQ2FsbGlu
Z0lucHV0RGVsZWdhdGU7Ci0tIChCT09MKWRlbGVnYXRlU3VwcG9ydHNJbWFnZVBhc3RlOwogLSAo
dm9pZClzeW5jSW5wdXRNYW5hZ2VyVG9BY2NlcHRlZEF1dG9jb3JyZWN0aW9uOihUSUtleWJvYXJk
Q2FuZGlkYXRlICopYXV0b2NvcnJlY3Rpb24gZm9ySW5wdXQ6KFRJS2V5Ym9hcmRJbnB1dCAqKWlu
cHV0RXZlbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJS2V5Ym9hcmRJbnB1
dE1vZGUgKmN1cnJlbnRJbnB1dE1vZGVJblByZWZlcmVuY2U7CiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCBkM2Q4MTJhN2VjZDJhN2M2NzA3
NWIxMzk4OWE1OGM3NjkyNjBhODMzLi5mOWU5Y2I2M2RjZWY3ZjYyNjIyNDAwNWM1NjMyMGMzNTIx
YTJlODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTIyMyw3ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fY29kZSA9IHdlYkV2ZW50LmNv
ZGUoKTsKICAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gd2ViRXZlbnQua2V5SWRlbnRpZmllcigp
OwogICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IHdlYkV2ZW50LndpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpOwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FSRF9BRERJ
VElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyNpZiBVU0UoQVBQS0lUKSB8
fCBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAg
ICAgICAgIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgPSB3ZWJFdmVudC5oYW5kbGVkQnlJbnB1dE1l
dGhvZCgpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRleCBhNzBlYjc2YzVjMjJhMmM3
NzljMzA4NzQ0MzNhYzE5MDM2YjVmMWE0Li4zNjc5NzM2OTczZWJjMDY3NzFjN2Q5NDU5MTkwOTY4
OGYyOGE3MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApA
QCAtOTEsOSArOTEsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgLCBtX3dpbmRvd3NW
aXJ0dWFsS2V5Q29kZSh3aW5kb3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBtX25hdGl2ZVZpcnR1
YWxLZXlDb2RlKG5hdGl2ZVZpcnR1YWxLZXlDb2RlKQogICAgICwgbV9tYWNDaGFyQ29kZShtYWND
aGFyQ29kZSkKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgICwgbV9oYW5k
bGVkQnlJbnB1dE1ldGhvZChoYW5kbGVkQnlJbnB1dE1ldGhvZCkKLSNlbmRpZgogICAgICwgbV9p
c0F1dG9SZXBlYXQoaXNBdXRvUmVwZWF0KQogICAgICwgbV9pc0tleXBhZChpc0tleXBhZCkKICAg
ICAsIG1faXNTeXN0ZW1LZXkoaXNTeXN0ZW1LZXkpCkBAIC0xNjAsNyArMTU4LDcgQEAgdm9pZCBX
ZWJLZXlib2FyZEV2ZW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbV93aW5kb3dzVmlydHVhbEtleUNvZGU7CiAgICAgZW5jb2RlciA8PCBtX25h
dGl2ZVZpcnR1YWxLZXlDb2RlOwogICAgIGVuY29kZXIgPDwgbV9tYWNDaGFyQ29kZTsKLSNpZiBV
U0UoQVBQS0lUKSB8fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShH
VEspIHx8IFVTRShMSUJXUEUpCisjaWYgVVNFKEFQUEtJVCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGVuY29kZXIgPDwgbV9oYW5k
bGVkQnlJbnB1dE1ldGhvZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQ
RSkKQEAgLTE5Niw3ICsxOTQsNyBAQCBib29sIFdlYktleWJvYXJkRXZlbnQ6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIFdlYktleWJvYXJkRXZlbnQmIHJlc3VsdCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fbWFjQ2hhckNvZGUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jaWYgVVNFKEFQUEtJVCkgfHwgVVNFKFVJS0lUX0tF
WUJPQVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQorI2lmIFVT
RShBUFBLSVQpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNF
KExJQldQRSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2hhbmRsZWRCeUlucHV0
TWV0aG9kKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggN2E1ODkzZWI2OGFkMjRjZjkyYzgzMjA3MDQ4NTQ4
OWI3Y2ZhZmEwYy4uMTgxNzY5MWQzZTEyZGRlYzgxNjkyNDhjNzkxODI2Y2MxM2IwNTdlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApAQCAtNjEsNyArNjEsNyBAQCBw
dWJsaWM6CiAgICAgaW50MzJfdCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVy
biBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZTsgfQogICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtl
eUNvZGUoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOyB9CiAgICAgaW50
MzJfdCBtYWNDaGFyQ29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KLSNpZiBV
U0UoQVBQS0lUKSB8fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShH
VEspIHx8IFVTRShMSUJXUEUpCisjaWYgVVNFKEFQUEtJVCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQogICAgIGJvb2wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZWRCeUlucHV0TWV0aG9kOyB9CiAjZW5k
aWYKICNpZiBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCkBAIC05MSw3ICs5MSw3IEBAIHBy
aXZhdGU6CiAgICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7IDAgfTsKICAgICBp
bnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07CiAgICAgaW50MzJfdCBtX21hY0No
YXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FSRF9BRERJ
VElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyNpZiBVU0UoQVBQS0lUKSB8
fCBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCiAg
ICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0KaW5kZXggZjYyMDIyYzM5ZDEzNTllMDZkMzMwOTFkMWZjMGFhNmJj
NTNhMWEwZi4uZDExZjcxZmIxMWQyMWZhYTVmNzE5M2JkZjUwMWU4ZmFlMGRkMGEyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTE1Miw4ICsx
NTIsNiBAQCBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyB7CiAgICAgVmVjdG9yPFJldGFp
blB0cjxOU1VSTD4+IF90ZW1wb3JhcnlVUkxzVG9EZWxldGVXaGVuRGVhbGxvY2F0ZWQ7CiB9CiAK
LSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotCiAvLyBFdmVybm90ZSBleHBlY3Rz
IHRvIHN3aXp6bGUgLWtleUNvbW1hbmRzIG9uIFdLQ29udGVudFZpZXcgb3IgdGhleSBjcmFzaC4g
UmVtb3ZlIHRoaXMgaGFjawogLy8gYXMgc29vbiBhcyByZWFzb25hYmx5IHBvc3NpYmxlLiBTZWUg
PHJkYXI6Ly9wcm9ibGVtLzUxNzU5MjQ3Pi4KIHN0YXRpYyBOU0FycmF5ICprZXlDb21tYW5kc1Bs
YWNlaG9sZGVySGFja0ZvckV2ZXJub3RlKGlkIHNlbGYsIFNFTCBfY21kKQpAQCAtMTYzLDggKzE2
MSw2IEBAIHN0YXRpYyBOU0FycmF5ICprZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJu
b3RlKGlkIHNlbGYsIFNFTCBfY21kKQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFN1cGVy
S2V5Q29tbWFuZHNGdW5jdGlvbj4oJm9iamNfbXNnU2VuZFN1cGVyKSgmc3VwZXIsIEBzZWxlY3Rv
cihrZXlDb21tYW5kcykpOwogfQogCi0jZW5kaWYKLQogLSAoaW5zdGFuY2V0eXBlKV9jb21tb25J
bml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJv
Y2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29u
ZmlndXJhdGlvbgogewogICAgIEFTU0VSVChfcGFnZUNsaWVudCk7CkBAIC0yMjYsMTAgKzIyMiw4
IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRp
b25dXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5h
bWU6VUlTY3JlZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVu
IG1haW5TY3JlZW5dXTsKIAotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAg
aWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JB
ZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RP
dmVycmlkZUtleUNvbW1hbmRzKSkKICAgICAgICAgY2xhc3NfYWRkTWV0aG9kKHNlbGYuY2xhc3Ms
IEBzZWxlY3RvcihrZXlDb21tYW5kcyksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPigma2V5Q29tbWFu
ZHNQbGFjZWhvbGRlckhhY2tGb3JFdmVybm90ZSksIG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoY2xh
c3NfZ2V0SW5zdGFuY2VNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1hbmRzKSkp
KTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMzU1NmRm
N2QyN2U4NmM2ZTg4MzZmZGQ5ZjhlY2NhMDQ1OGE5NTdkZi4uNjA0MzI0YzAyNmQ2YjMwZTBjMjQy
NGE1MTEyZWUyMDBlZjBmMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzgzLDkgKzM4Myw2IEBAIHVz
aW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1h
Z2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbiBfcG9zaXRpb25JbmZvcm1hdGlvbjsKICAgICBXZWJLaXQ6OkZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24gX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiAgICAgUmV0YWluUHRy
PE5TT2JqZWN0PFdLRm9ybVBlcmlwaGVyYWw+PiBfaW5wdXRQZXJpcGhlcmFsOwotI2lmICFVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotICAgIFJldGFpblB0cjxVSUV2ZW50PiBfdWlFdmVu
dEJlaW5nUmVzZW50OwotI2VuZGlmCiAgICAgQmxvY2tQdHI8dm9pZCg6OldlYkV2ZW50ICosIEJP
T0wpPiBfa2V5V2ViRXZlbnRIYW5kbGVyOwogCiAgICAgQ0dQb2ludCBfbGFzdEludGVyYWN0aW9u
TG9jYXRpb247CkBAIC00MzYsMTAgKzQzMyw4IEBAIHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAK
ICAgICBCT09MIF9rZXlib2FyZERpZFJlcXVlc3REaXNtaXNzYWw7CiAKLSNpZiBVU0UoVUlLSVRf
S0VZQk9BUkRfQURESVRJT05TKQogICAgIEJPT0wgX2NhbmRpZGF0ZVZpZXdOZWVkc1VwZGF0ZTsK
ICAgICBCT09MIF9zZWVuSGFyZHdhcmVLZXlEb3duSW5Ob25FZGl0YWJsZUVsZW1lbnQ7Ci0jZW5k
aWYKIAogICAgIEJPT0wgX2JlY29taW5nRmlyc3RSZXNwb25kZXI7CiAgICAgQk9PTCBfcmVzaWdu
aW5nRmlyc3RSZXNwb25kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiZDQzYTdhMDQ5YTE4NmI4ZTgy
N2U5ZTY5MGRjY2FmOGIxZWQ4Y2MyLi5lZjE0Y2Y4OGZkZmM1ZTA4NjcxNWE0MDM2NmIwNTE0MGFl
OGRkMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE3MiwxMCArMTcyLDYgQEAKICNpbXBvcnQgIldL
Rm9ybUNvbG9yQ29udHJvbC5oIgogI2VuZGlmCiAKLSNpZiAhVVNFKFVJS0lUX0tFWUJPQVJEX0FE
RElUSU9OUykKLSNpbXBvcnQgIldLV2ViRXZlbnQuaCIKLSNlbmRpZgotCiAjaWYgSEFWRShQRVBQ
RVJfVUlfQ09SRSkKICNpbXBvcnQgIlBlcHBlclVJQ29yZVNQSS5oIgogI2VuZGlmCkBAIC0xMDg0
LDEwICsxMDgwLDggQEAgLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb24KIAogICAgIF9sYXN0QXV0
b2NvcnJlY3Rpb25Db250ZXh0ID0geyB9OwogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElU
SU9OUykKICAgICBfY2FuZGlkYXRlVmlld05lZWRzVXBkYXRlID0gTk87CiAgICAgX3NlZW5IYXJk
d2FyZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwotI2VuZGlmCiAKICAgICBfdGV4
dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQgPSBOTzsKICAgICBfYWN0aXZlVGV4
dEludGVyYWN0aW9uQ291bnQgPSAwOwpAQCAtMjI3MSwyMyArMjI2NSwxNyBAQCAtIChCT09MKV9z
aG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSUlnbm9yaW5nSW5wdXRNb2RlCiAgICAgcmV0dXJu
IE5POwogfQogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKIC0gKEJPT0wpX2Rp
c2FibGVBdXRvbWF0aWNLZXlib2FyZFVJCiB7CiAgICAgLy8gQWx3YXlzIGVuYWJsZSBhdXRvbWF0
aWMga2V5Ym9hcmQgVUkgaWYgd2UgYXJlIG5vdCB0aGUgZmlyc3QgcmVzcG9uZGVyIHRvIGF2b2lk
CiAgICAgLy8gaW50ZXJmZXJpbmcgd2l0aCBvdGhlciBmb2N1c2VkIHZpZXdzIChlLmcuIEZpbmQt
aW4tcGFnZSkuCiAgICAgcmV0dXJuIFtzZWxmIGlzRmlyc3RSZXNwb25kZXJdICYmICFbc2VsZiBz
aG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSV07CiB9Ci0jZW5kaWYKIAogLSAoQk9PTClfcmVx
dWlyZXNLZXlib2FyZFdoZW5GaXJzdFJlc3BvbmRlcgogewogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgYWRkIHRoZSBsb2dpYyB0byBoYW5kbGUga2V5Ym9hcmQgdmlzaWJpbGl0eSBkdXJpbmcgZm9j
dXMgcmVkaXJlY3RzLgotICAgIHJldHVybiBbc2VsZiBfc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJv
YXJkVUlJZ25vcmluZ0lucHV0TW9kZV0KLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05T
KQotICAgICAgICB8fCBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVtZW50Ci0j
ZW5kaWYKLSAgICAgICAgOworICAgIHJldHVybiBbc2VsZiBfc2hvdWxkU2hvd0F1dG9tYXRpY0tl
eWJvYXJkVUlJZ25vcmluZ0lucHV0TW9kZV0gfHwgX3NlZW5IYXJkd2FyZUtleURvd25Jbk5vbkVk
aXRhYmxlRWxlbWVudDsKIH0KIAogLSAoQk9PTClfcmVxdWlyZXNLZXlib2FyZFJlc2V0T25SZWxv
YWQKQEAgLTQ2MjUsMTMgKzQ2MTMsMTEgQEAgLSAodm9pZClyZXF1ZXN0RGljdGF0aW9uQ29udGV4
dDoodm9pZCAoXikoTlNTdHJpbmcgKnNlbGVjdGVkVGV4dCwgTlNTdHJpbmcgKmJlZm8KIC8vIFRo
ZSBjb21wbGV0aW9uIGhhbmRsZXIgc2hvdWxkIHBhc3MgdGhlIHJlY3Qgb2YgdGhlIGNvcnJlY3Rp
b24gdGV4dCBhZnRlciByZXBsYWNpbmcgdGhlIGlucHV0IHRleHQsIG9yIG5pbCBpZiB0aGUgcmVw
bGFjZW1lbnQgY291bGQgbm90IGJlIHBlcmZvcm1lZC4KIC0gKHZvaWQpYXBwbHlBdXRvY29ycmVj
dGlvbjooTlNTdHJpbmcgKiljb3JyZWN0aW9uIHRvU3RyaW5nOihOU1N0cmluZyAqKWlucHV0IHdp
dGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoVUlXS0F1dG9jb3JyZWN0aW9uUmVjdHMgKnJl
Y3RzRm9yQ29ycmVjdGlvbikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBVU0UoVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKQogICAgIGlmIChbc2VsZiBfZGlzYWJsZUF1dG9tYXRpY0tleWJvYXJk
VUldKSB7CiAgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG5pbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhlIHN5bmNocm9ub3VzIGNhbGwgd2hlbiA8cmRhcjovL3Byb2Js
ZW0vMTYyMDcwMDI+IGlzIGZpeGVkLgogICAgIGNvbnN0IGJvb2wgdXNlU3luY1JlcXVlc3QgPSB0
cnVlOwpAQCAtNDY2NiwxMiArNDY1MiwxMCBAQCAtICh2b2lkKXJlcXVlc3RBdXRvY29ycmVjdGlv
bkNvbnRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJV0tBdXRvY29ycgogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykK
ICAgICBpZiAoW3NlbGYgX2Rpc2FibGVBdXRvbWF0aWNLZXlib2FyZFVJXSkgewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXS0F1dG9jb3JyZWN0aW9uQ29udGV4dC5lbXB0eUF1dG9jb3JyZWN0
aW9uQ29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmICgh
X3BhZ2UtPmhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V0tBdXRvY29ycmVjdGlvbkNvbnRleHQuZW1wdHlBdXRvY29ycmVjdGlvbkNvbnRleHQpOwpAQCAt
NDc2OSw5ICs0NzUzLDggQEAgLSAodm9pZClfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWlu
RnJhbWUKIAogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQogewotI2lmIFVTRShV
SUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgX3NlZW5IYXJkd2FyZUtleURvd25Jbk5vbkVk
aXRhYmxlRWxlbWVudCA9IE5POwotI2VuZGlmCisKICAgICBbc2VsZiBfZWxlbWVudERpZEJsdXJd
OwogICAgIFtzZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CiAgICAgW3Nl
bGYgX3JlbW92ZUNvbnRhaW5lckZvckNvbnRleHRNZW51SGludFByZXZpZXdzXTsKQEAgLTQ3ODks
MjAgKzQ3NzIsNiBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAjZW5kaWYK
IH0KIAotI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotLSAoTlNBcnJheSAqKWtl
eUNvbW1hbmRzCi17Ci0gICAgaWYgKCFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0
YWJsZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZXRhaW5QdHI8TlNBcnJheT4+IGVkaXRhYmxlS2V5Q29tbWFuZHMgPSBAWwotICAgICAgICBbVUlL
ZXlDb21tYW5kIGtleUNvbW1hbmRXaXRoSW5wdXQ6QCJcdCIgbW9kaWZpZXJGbGFnczowIGFjdGlv
bjpAc2VsZWN0b3IoX25leHRBY2Nlc3NvcnlUYWI6KV0sCi0gICAgICAgIFtVSUtleUNvbW1hbmQg
a2V5Q29tbWFuZFdpdGhJbnB1dDpAIlx0IiBtb2RpZmllckZsYWdzOlVJS2V5TW9kaWZpZXJTaGlm
dCBhY3Rpb246QHNlbGVjdG9yKF9wcmV2aW91c0FjY2Vzc29yeVRhYjopXQotICAgIF07Ci0gICAg
cmV0dXJuIGVkaXRhYmxlS2V5Q29tbWFuZHMuZ2V0KCkuZ2V0KCk7Ci19Ci0jZW5kaWYKLQogLSAo
dm9pZClfbmV4dEFjY2Vzc29yeVRhYkZvcldlYlZpZXc6KGlkKXNlbmRlcgogewogICAgIFtzZWxm
IGFjY2Vzc29yeVRhYjpZRVNdOwpAQCAtNTIxMCw5ICs1MTc5LDcgQEAgLSAodm9pZClzZXRNYXJr
ZWRUZXh0OihOU1N0cmluZyAqKW1hcmtlZFRleHQgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSlzZWxl
Y3RlZFJhbmcKIAogLSAodm9pZClfc2V0TWFya2VkVGV4dDooTlNTdHJpbmcgKiltYXJrZWRUZXh0
IGhpZ2hsaWdodHM6KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvbkhpZ2hsaWdodD4m
KWhpZ2hsaWdodHMgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSlzZWxlY3RlZFJhbmdlCiB7Ci0jaWYg
VVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKICAgICBfY2FuZGlkYXRlVmlld05lZWRzVXBk
YXRlID0gIXNlbGYuaGFzTWFya2VkVGV4dDsKLSNlbmRpZgogICAgIF9tYXJrZWRUZXh0ID0gbWFy
a2VkVGV4dDsKICAgICBfcGFnZS0+c2V0Q29tcG9zaXRpb25Bc3luYyhtYXJrZWRUZXh0LCB7IH0s
IGhpZ2hsaWdodHMsIHNlbGVjdGVkUmFuZ2UsIHsgfSk7CiB9CkBAIC01NDk0LDExICs1NDYxLDkg
QEAgLSAoVUlUZXh0SW5wdXRUcmFpdHMgKil0ZXh0SW5wdXRUcmFpdHMKICAgICBpZiAoIV90cmFp
dHMpCiAgICAgICAgIF90cmFpdHMgPSBhZG9wdE5TKFtbVUlUZXh0SW5wdXRUcmFpdHMgYWxsb2Nd
IGluaXRdKTsKIAotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgLy8gRG8g
bm90IGNoYW5nZSB0cmFpdHMgd2hlbiBkaXNtaXNzaW5nIHRoZSBrZXlib2FyZC4KICAgICBpZiAo
X2lzQmx1cnJpbmdGb2N1c2VkRWxlbWVudCkKICAgICAgICAgcmV0dXJuIF90cmFpdHMuZ2V0KCk7
Ci0jZW5kaWYKIAogICAgIFtzZWxmIF91cGRhdGVUZXh0SW5wdXRUcmFpdHM6X3RyYWl0cy5nZXQo
KV07CiAgICAgcmV0dXJuIF90cmFpdHMuZ2V0KCk7CkBAIC01NzkzLDggKzU3NTgsNiBAQCAtICh2
b2lkKV9kaWRGaW5pc2hUZXh0SW50ZXJhY3Rpb25JblRleHRJbnB1dENvbnRleHQ6KF9XS1RleHRJ
bnB1dENvbnRleHQgKiljb250ZQogICAgIF9wYWdlLT5zZXRTaG91bGRSZXZlYWxDdXJyZW50U2Vs
ZWN0aW9uQWZ0ZXJJbnNlcnRpb24odHJ1ZSk7CiB9CiAKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRf
QURESVRJT05TKQotCiAtICh2b2lkKW1vZGlmaWVyRmxhZ3NEaWRDaGFuZ2VGcm9tOihVSUtleU1v
ZGlmaWVyRmxhZ3Mpb2xkRmxhZ3MgdG86KFVJS2V5TW9kaWZpZXJGbGFncyluZXdGbGFncwogewog
ICAgIGF1dG8gZGlzcGF0Y2hTeW50aGV0aWNGbGFnc0NoYW5nZWRFdmVudHMgPSBbJl0gKFVJS2V5
TW9kaWZpZXJGbGFncyBmbGFncywgYm9vbCBrZXlEb3duKSB7CkBAIC01ODE3LDggKzU3ODAsNiBA
QCAtIChCT09MKXNob3VsZFN1cHByZXNzVXBkYXRlQ2FuZGlkYXRlVmlldwogICAgIHJldHVybiBf
Y2FuZGlkYXRlVmlld05lZWRzVXBkYXRlOwogfQogCi0jZW5kaWYKLQogLy8gV2ViIGV2ZW50cy4K
IC0gKEJPT0wpcmVxdWlyZXNLZXlFdmVudHMKIHsKQEAgLTU4MzUsMTUgKzU3OTYsMTEgQEAgLSAo
dm9pZClfaGFuZGxlS2V5VUlFdmVudDooOjpVSUV2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGlm
IChbX2lucHV0UGVyaXBoZXJhbCBoYW5kbGVLZXlFdmVudDpldmVudF0pCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9Ci0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykK
ICAgICAgICAgaWYgKCFfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVtZW50KSB7
CiAgICAgICAgICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVtZW50ID0g
WUVTOwogICAgICAgICAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107CiAgICAgICAgIH0KICAg
ICAgICAgW3N1cGVyIF9oYW5kbGVLZXlVSUV2ZW50OmV2ZW50XTsKLSNlbHNlCi0gICAgICAgIFtz
ZWxmIGhhbmRsZUtleUV2ZW50OmV2ZW50XTsKLSNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC01ODU1LDE5ICs1ODEyLDYgQEAgLSAodm9pZClnZW5lcmF0ZVN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kOihXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSljb20KICAgICBf
cGFnZS0+Z2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChjb21tYW5kKTsKIH0KIAotI2lm
ICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQotLSAodm9pZCloYW5kbGVLZXlFdmVudDoo
OjpVSUV2ZW50ICopZXZlbnQKLXsKLSAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhl
IGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KLSAgICBpZiAoZXZlbnQgPT0g
X3VpRXZlbnRCZWluZ1Jlc2VudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byB3ZWJFdmVu
dCA9IGFkb3B0TlMoW1tXS1dlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEV2ZW50OmV2ZW50XSk7Ci0g
ICAgCi0gICAgW3NlbGYgaGFuZGxlS2V5V2ViRXZlbnQ6d2ViRXZlbnQuZ2V0KCldOwotfQotI2Vu
ZGlmCi0KIC0gKHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KDo6V2ViRXZlbnQgKil0aGVFdmVudAog
ewogICAgIF9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCh0aGVFdmVudCwgV2ViS2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpIYW5kbGVk
QnlJbnB1dE1ldGhvZDo6Tm8pKTsKQEAgLTU4ODQsMTQgKzU4MjgsMTMgQEAgLSAodm9pZCloYW5k
bGVLZXlXZWJFdmVudDooOjpXZWJFdmVudCAqKXRoZUV2ZW50IHdpdGhDb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikKICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKIAogICAg
IHVzaW5nIEhhbmRsZWRCeUlucHV0TWV0aG9kID0gV2ViS2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2
ZW50OjpIYW5kbGVkQnlJbnB1dE1ldGhvZDsKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJ
T05TKQogICAgIGF1dG8qIGtleWJvYXJkID0gW1VJS2V5Ym9hcmRJbXBsIHNoYXJlZEluc3RhbmNl
XTsKICAgICBpZiAoKF9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlIHx8IF90
cmVhdEFzQ29udGVudEVkaXRhYmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRhdGUpICYmIFtrZXli
b2FyZCBoYW5kbGVLZXlJbnB1dE1ldGhvZENvbW1hbmRGb3JDdXJyZW50RXZlbnRdKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHRoZUV2ZW50LCBZRVMpOwogICAgICAgICBfcGFnZS0+aGFu
ZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhlRXZlbnQs
IEhhbmRsZWRCeUlucHV0TWV0aG9kOjpZZXMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNl
bmRpZgorCiAgICAgaWYgKF9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZl
V2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgSGFuZGxlZEJ5SW5wdXRNZXRob2Q6Ok5vKSkpCiAg
ICAgICAgIF9rZXlXZWJFdmVudEhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpOwogICAgIGVsc2UKQEAgLTU5MDAsMTAgKzU4NDMsOCBAQCAtICh2b2lkKWhhbmRsZUtleVdl
YkV2ZW50Oig6OldlYkV2ZW50ICopdGhlRXZlbnQgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKQogCiAtICh2b2lkKV9kaWRIYW5kbGVLZXlFdmVudDooOjpXZWJFdmVudCAqKWV2ZW50IGV2
ZW50V2FzSGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQKIHsKLSNpZiBVU0UoVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKQogICAgIGlmIChbZXZlbnQgaXNLaW5kT2ZDbGFzczpbV0tTeW50aGV0
aWNGbGFnc0NoYW5nZWRXZWJFdmVudCBjbGFzc11dKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYK
IAogICAgIGlmICghKGV2ZW50LmtleWJvYXJkRmxhZ3MgJiBXZWJFdmVudEtleWJvYXJkSW5wdXRN
b2RpZmllckZsYWdzQ2hhbmdlZCkpCiAgICAgICAgIFtfa2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRv
ciBoYW5kbGVLZXlFdmVudDpldmVudF07CkBAIC01OTEyLDI3ICs1ODUzLDYgQEAgLSAodm9pZClf
ZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJP
T0wpZXZlbnRXYXNIYW4KICAgICAgICAgaGFuZGxlcihldmVudCwgZXZlbnRXYXNIYW5kbGVkKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJ
T05TKQotICAgIC8vIElmIHdlIGFyZW4ndCBpbnRlcmFjdGluZyB3aXRoIGVkaXRhYmxlIGNvbnRl
bnQsIHdlIHN0aWxsIG5lZWQgdG8gY2FsbCBbc3VwZXIgX2hhbmRsZUtleVVJRXZlbnQ6XQotICAg
IC8vIHNvIHRoYXQga2V5Ym9hcmQgcmVwZWF0IHdpbGwgd29yayBjb3JyZWN0bHkuIElmIHdlIGFy
ZSBpbnRlcmFjdGluZyB3aXRoIGVkaXRhYmxlIGNvbnRlbnQsCi0gICAgLy8gd2UgYWxyZWFkeSBk
aWQgc28gaW4gX2hhbmRsZUtleVVJRXZlbnQuCi0gICAgaWYgKGV2ZW50V2FzSGFuZGxlZCAmJiBf
cGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKCFbZXZlbnQgaXNLaW5kT2ZDbGFzczpbV0tXZWJFdmVudCBjbGFzc11dKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyBSZXNlbmRpbmcgdGhlIGV2ZW50IG1heSBkZXN0cm95IHRo
aXMgV0tDb250ZW50Vmlldy4KLSAgICBSZXRhaW5QdHI8V0tDb250ZW50Vmlldz4gcHJvdGVjdG9y
KHNlbGYpOwotCi0gICAgLy8gV2Uga2VlcCBoZXJlIHRoZSBldmVudCB3aGVuIHJlc2VuZGluZyBp
dCB0byB0aGUgYXBwbGljYXRpb24gdG8gZGlzdGluZ3Vpc2gKLSAgICAvLyB0aGUgY2FzZSBvZiBh
IG5ldyBldmVudCBmcm9tIG9uZSB0aGF0IGhhcyBiZWVuIGFscmVhZHkgc2VudCB0byBXZWJDb3Jl
LgotICAgIEFTU0VSVCghX3VpRXZlbnRCZWluZ1Jlc2VudCk7Ci0gICAgX3VpRXZlbnRCZWluZ1Jl
c2VudCA9IFsoV0tXZWJFdmVudCAqKWV2ZW50IHVpRXZlbnRdOwotICAgIFtzdXBlciBfaGFuZGxl
S2V5VUlFdmVudDpfdWlFdmVudEJlaW5nUmVzZW50LmdldCgpXTsKLSAgICBfdWlFdmVudEJlaW5n
UmVzZW50ID0gbmlsOwotI2VuZGlmCiB9CiAKIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50Oig6
OldlYkV2ZW50ICopZXZlbnQgaXNDaGFyRXZlbnQ6KEJPT0wpaXNDaGFyRXZlbnQKQEAgLTY1Nzks
OSArNjQ5OSw3IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVyCiB7CiAgICAgU2V0Rm9yU2NvcGU8
Qk9PTD4gaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50Rm9yU2NvcGUgeyBfaXNCbHVycmluZ0ZvY3Vz
ZWRFbGVtZW50LCBZRVMgfTsKIAotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAg
ICAgW3NlbGYgX2VuZEVkaXRpbmddOwotI2VuZGlmCiAKICAgICBbX2Zvcm1JbnB1dFNlc3Npb24g
aW52YWxpZGF0ZV07CiAgICAgX2Zvcm1JbnB1dFNlc3Npb24gPSBuaWw7CkBAIC02NjAzLDEyICs2
NTIxLDEwIEBAIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVyCiAgICAgX2ZvY3VzUmVxdWlyZXNTdHJv
bmdQYXNzd29yZEFzc2lzdGFuY2UgPSBOTzsKICAgICBfYWRkaXRpb25hbENvbnRleHRGb3JTdHJv
bmdQYXNzd29yZEFzc2lzdGFuY2UgPSBuaWw7CiAKLSNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURE
SVRJT05TKQogICAgIC8vIFdoZW4gZGVmb2N1c2luZyBhbiBlZGl0YWJsZSBlbGVtZW50IHJlc2V0
IGEgc2VlbiBrZXlkb3duIGJlZm9yZSBjYWxsaW5nIC1faGlkZUtleWJvYXJkIHNvIHRoYXQgd2UK
ICAgICAvLyByZS1ldmFsdWF0ZSB3aGV0aGVyIHdlIHN0aWxsIG5lZWQgYSBrZXlib2FyZCB3aGVu
IFVJS2l0IGNhbGxzIHVzIGJhY2sgaW4gLV9yZXF1aXJlc0tleWJvYXJkV2hlbkZpcnN0UmVzcG9u
ZGVyLgogICAgIGlmIChlZGl0YWJsZUNoYW5nZWQpCiAgICAgICAgIF9zZWVuSGFyZHdhcmVLZXlE
b3duSW5Ob25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKLSNlbmRpZgogCiAgICAgW3NlbGYgX2hpZGVL
ZXlib2FyZF07CiAKQEAgLTY2NTgsOSArNjU3NCw3IEBAIC0gKEJPT0wpc2hvdWxkSWdub3JlS2V5
Ym9hcmRXaWxsSGlkZU5vdGlmaWNhdGlvbgogCiAtICh2b2lkKV9oYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZAogewotI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAg
ICAgX3NlZW5IYXJkd2FyZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwotI2VuZGlm
CiAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107CiB9CiAKQEAgLTcyMjksMTMgKzcxNDMsMTEg
QEAgLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogICAgIGlmIChfdXNpbmdHZXN0dXJlRm9yU2Vs
ZWN0aW9uKQogICAgICAgICBbc2VsZiBfdXBkYXRlQ2hhbmdlZFNlbGVjdGlvbl07CiAKLSNpZiBV
U0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGlmIChfY2FuZGlkYXRlVmlld05lZWRz
VXBkYXRlKSB7CiAgICAgICAgIF9jYW5kaWRhdGVWaWV3TmVlZHNVcGRhdGUgPSBOTzsKICAgICAg
ICAgaWYgKFtzZWxmLmlucHV0RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihs
YXlvdXRIYXNDaGFuZ2VkKV0pCiAgICAgICAgICAgICBbKGlkIDxVSVRleHRJbnB1dERlbGVnYXRl
UHJpdmF0ZT4pc2VsZi5pbnB1dERlbGVnYXRlIGxheW91dEhhc0NoYW5nZWRdOwogICAgIH0KLSNl
bmRpZgogICAgIAogICAgIFtfd2ViVmlldyBfZGlkQ2hhbmdlRWRpdG9yU3RhdGVdOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5n
ZWRXZWJFdmVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3ludGhldGljRmxh
Z3NDaGFuZ2VkV2ViRXZlbnQuaAppbmRleCAwNWU0NTBmYjQ5OWQ4NzVlYWUzOTViM2JmYzM5OTM4
NjQxYzM2MWVkLi4zZTRiNWM1ZGE2OWYwZDdjNmU0ZmU5MjEzOGVhNWJmY2M4YzBlYjg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5n
ZWRXZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRp
Y0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmgKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElU
SU9OUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAKQEAgLTM0LDQgKzM0LDQgQEAKIAogQGVu
ZAogCi0jZW5kaWYgLy8gVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykgJiYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3ludGhldGljRmxhZ3NDaGFuZ2VkV2ViRXZl
bnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5n
ZWRXZWJFdmVudC5tbQppbmRleCA4MDgyZWNkOWVkZGZkODYzZDU4Yzg4Mzg5YzA1MGU4ZjIzM2Zi
ZTg2Li5kOWE3N2NlYThkMWIxNzYxNzM2MjllYTA2ZmViN2IzZjdkMjVlOWMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFnc0NoYW5nZWRXZWJF
dmVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNGbGFn
c0NoYW5nZWRXZWJFdmVudC5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJXS1N5bnRoZXRpY0ZsYWdzQ2hhbmdlZFdlYkV2ZW50LmgiCiAKLSNpZiBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvSU9LaXRTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KQEAgLTUxLDQgKzUx
LDQgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU2hpZnRTdGF0ZTooQk9PTClrZXlEb3duCiAK
IEBlbmQKIAotI2VuZGlmIC8vIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpICYmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92
ZXIubW0KaW5kZXggZTcyOTkzYmM1MmMyYzhmOTYxNDcxMDAxOGIzMTIxYzViOTE1Y2MyNC4uNDZi
YmVjOGMxY2Y0YmMzOTMyZjhmNzFlZjEyZGE5NmM4MjJkZDgzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW0K
QEAgLTc5LDExICs3OSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiBA
Y2xhc3MgV0tTZWxlY3RQb3BvdmVyOwogCi0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9O
UykKIEBpbnRlcmZhY2UgV0tTZWxlY3RUYWJsZVZpZXdDb250cm9sbGVyIDogVUlUYWJsZVZpZXdD
b250cm9sbGVyCi0jZWxzZQotQGludGVyZmFjZSBXS1NlbGVjdFRhYmxlVmlld0NvbnRyb2xsZXIg
OiBVSVRhYmxlVmlld0NvbnRyb2xsZXIgPFVJS2V5SW5wdXQ+Ci0jZW5kaWYKIHsKICAgICBOU1VJ
bnRlZ2VyIF9zaW5nbGVTZWxlY3Rpb25JbmRleDsKICAgICBOU1VJbnRlZ2VyIF9zaW5nbGVTZWxl
Y3Rpb25TZWN0aW9uOwpAQCAtMzY5LDI0ICszNjUsNiBAQCAtIChCT09MKXNob3VsZERpc21pc3NX
aXRoQW5pbWF0aW9uCiAgICAgcmV0dXJuIF9jb250ZW50Vmlldy5fc2hvdWxkVXNlTGVnYWN5U2Vs
ZWN0UG9wb3ZlckRpc21pc3NhbEJlaGF2aW9yOwogfQogCi0jaWYgIVVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpCi0jcHJhZ21hIG1hcmsgVUlLZXlJbnB1dCBkZWxlZ2F0ZSBtZXRob2RzCi0K
LS0gKEJPT0wpaGFzVGV4dAotewotICAgIHJldHVybiBOTzsKLX0KLQotLSAodm9pZClpbnNlcnRU
ZXh0OihOU1N0cmluZyAqKXRleHQKLXsKLX0KLQotLSAodm9pZClkZWxldGVCYWNrd2FyZAotewot
fQotCi0jZW5kaWYKLQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tTZWxlY3RQb3BvdmVyIHsK
QEAgLTQxNSwxMCArMzkzLDYgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tDb250
ZW50VmlldyAqKXZpZXcgaGFzR3JvdXBzOihCT09MKWhhc0dyb3VwcwogICAgIHNlbGYucG9wb3Zl
ckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdp
dGhDb250ZW50Vmlld0NvbnRyb2xsZXI6cG9wb3ZlclZpZXdDb250cm9sbGVyLmdldCgpXSkuZ2V0
KCk7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKLSNpZiAhVVNFKFVJ
S0lUX0tFWUJPQVJEX0FERElUSU9OUykKLSAgICBbW1VJS2V5Ym9hcmRJbXBsIHNoYXJlZEluc3Rh
bmNlXSBzZXREZWxlZ2F0ZTpfdGFibGVWaWV3Q29udHJvbGxlci5nZXQoKV07Ci0jZW5kaWYKLSAg
ICAKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5t
bQppbmRleCBhZmIzODYxMDNjNmM3ODhhZjk5OWI1ZTQwMjhiNGM0MGI5NjczYzQ2Li42MzgwYTMw
YTc3YjVmMjU4YzYwN2I2OTViNDBkZTIwMTM1MGEwNjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRv
ckNsaWVudElPUy5tbQpAQCAtNDQsMTMgKzQ0LDggQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6Omhh
bmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKIHZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7
Ci0jaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKICAgICBpZiAoZXZlbnQuaGFuZGxl
ZEJ5SW5wdXRNZXRob2QoKSkKICAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKLSNl
bHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnNlcnRpb25QYXN0ZWJvYXJkKGNv
bnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjE0OWZkZWRjZmIzMmZhZmNiZjUyMTFmOGIyMzllMjI4NTM3ZjMyOS4uYjhiM2Fm
NGM4YjUyNDE5N2FlNzY0Y2M3NmYxZDQ2NDhhMDJiOGUwYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTI1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBzb21lIGlPUy1zcGVjaWZpYyBjb21waWxlLXRpbWUgZ3VhcmRzIHRoYXQgYXJlIG5vIGxvbmdl
ciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyOTUwMAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVt
b3ZlIHRoaXMgd29ya2Fyb3VuZCwgd2hpY2ggd2FzIG9ubHkgcmVxdWlyZWQgdG8ga2VlcCBhbiBB
UEkgdGVzdCBwYXNzaW5nIG9uIGlPUyAxMy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChvdmVycmlkZUtleWJvYXJkRGVs
ZWdhdGVTdXBwb3J0c0ltYWdlUGFzdGUpOiBEZWxldGVkLgorCiAyMDIxLTA4LTI1ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgMTVdIGVkaXRp
bmcvaW5wdXQvY29jb2EvYXV0b2NvcnJlY3Qtb24uaHRtbCB0aW1lcyBvdXQgd2hlbiBydW4gYWZ0
ZXIgZWRpdGluZy9pbnB1dC9jb2NvYS9hdXRvY29ycmVjdC1vZmYuaHRtbApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDI2OTU2YWY4NjIyZWQ2NTA3YmRmZjllYzk3
NzU1Yzc3YWYwZGNjNzIuLmY1MTU4MDMxZDhhZjZhNjA1MzA4Yjc0ZTIzMjI3MzVhMTVlYzk5MWQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTU2MCw5ICs1NjAs
NiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8SW5zdGFuY2VNZXRob2RT
d2l6emxlcj4+IG1faW5wdXRNb2RlU3dpenpsZXJzOwogICAgIFJldGFpblB0cjxVSUtleWJvYXJk
SW5wdXRNb2RlPiBtX292ZXJyaWRkZW5LZXlib2FyZElucHV0TW9kZTsKICAgICBWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPEluc3RhbmNlTWV0aG9kU3dpenpsZXI+PiBtX3ByZXNlbnRQb3BvdmVyU3dp
enpsZXJzOwotI2lmICFIQVZFKE5PTkRFU1RSVUNUSVZFX0lNQUdFX1BBU1RFX1NVUFBPUlRfUVVF
UlkpCi0gICAgc3RkOjp1bmlxdWVfcHRyPEluc3RhbmNlTWV0aG9kU3dpenpsZXI+IG1fa2V5Ym9h
cmREZWxlZ2F0ZVN1cHBvcnRzSW1hZ2VQYXN0ZVN3aXp6bGVyOwotI2VuZGlmCiAjZW5kaWYKIAog
ICAgIGVudW0gU3RhdGUgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3Mv
VGVzdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29u
dHJvbGxlcklPUy5tbQppbmRleCA4NjYyNTM1MGIwNmI1NDAzYWRhNTI2ZWM2NDY0MmZkNGUzNWFj
MDc5Li5iM2VmNDRlZTVmZDM2ZDc3ZGRkNTM2NjhlMmY3Zjc4MzE5YTBhN2NkIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQpAQCAtNjIsMTUg
KzYyLDYgQEAgc3RhdGljIHZvaWQgb3ZlcnJpZGVQcmVzZW50TWVudU9yUG9wb3Zlck9yVmlld0Nv
bnRyb2xsZXIoKQogewogfQogCi0jaWYgIUhBVkUoTk9OREVTVFJVQ1RJVkVfSU1BR0VfUEFTVEVf
U1VQUE9SVF9RVUVSWSkKLQotc3RhdGljIEJPT0wgb3ZlcnJpZGVLZXlib2FyZERlbGVnYXRlU3Vw
cG9ydHNJbWFnZVBhc3RlKGlkLCBTRUwpCi17Ci0gICAgcmV0dXJuIE5POwotfQotCi0jZW5kaWYK
LQogbmFtZXNwYWNlIFdUUiB7CiAKIHN0YXRpYyBib29sIGlzRG9uZVdhaXRpbmdGb3JLZXlib2Fy
ZFRvRGlzbWlzcyA9IHRydWU7CkBAIC0xOTcsMTIgKzE4OCw2IEBAIGJvb2wgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9u
cyYgb3B0CiAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIHdoZXRoZXIgdGhpcyBjYW4gYmUgcmVt
b3ZlZC4gVGhlIHN3aXp6bGVkIHJldHVybiB2YWx1ZSBpcyBpbmNvbnNpc3RlbnQgd2l0aCBHU0V2
ZW50U2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkLgogICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRh
dGlvbihjbGFzc19nZXRDbGFzc01ldGhvZChbVUlLZXlib2FyZCBjbGFzc10sIEBzZWxlY3Rvcihp
c0luSGFyZHdhcmVLZXlib2FyZE1vZGUpKSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRl
SXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKSk7CiAKLSNpZiAhSEFWRShOT05ERVNUUlVDVElWRV9J
TUFHRV9QQVNURV9TVVBQT1JUX1FVRVJZKQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3b3Jr
YXJvdW5kIG9uY2UgLVtVSUtleWJvYXJkSW1wbCBkZWxlZ2F0ZVN1cHBvcnRzSW1hZ2VQYXN0ZV0g
bm8gbG9uZ2VyIGluY3JlbWVudHMgdGhlIGdlbmVyYWwgcGFzdGVib2FyZCdzIGNoYW5nZUNvdW50
LgotICAgIGlmICghbV9rZXlib2FyZERlbGVnYXRlU3VwcG9ydHNJbWFnZVBhc3RlU3dpenpsZXIp
Ci0gICAgICAgIG1fa2V5Ym9hcmREZWxlZ2F0ZVN1cHBvcnRzSW1hZ2VQYXN0ZVN3aXp6bGVyID0g
bWFrZVVuaXF1ZTxJbnN0YW5jZU1ldGhvZFN3aXp6bGVyPihVSUtleWJvYXJkSW1wbC5jbGFzcywg
QHNlbGVjdG9yKGRlbGVnYXRlU3VwcG9ydHNJbWFnZVBhc3RlKSwgcmVpbnRlcnByZXRfY2FzdDxJ
TVA+KG92ZXJyaWRlS2V5Ym9hcmREZWxlZ2F0ZVN1cHBvcnRzSW1hZ2VQYXN0ZSkpOwotI2VuZGlm
Ci0KICAgICBpZiAobV9vdmVycmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGUpIHsKICAgICAgICAgbV9v
dmVycmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGUgPSBuaWw7CiAgICAgICAgIG1faW5wdXRNb2RlU3dp
enpsZXJzLmNsZWFyKCk7Cg==
</data>
<flag name="commit-queue"
          id="459504"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>