<?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>226456</bug_id>
          
          <creation_ts>2021-05-31 00:12:00 -0700</creation_ts>
          <short_desc>[WPE] Rework touch-based gesture controller</short_desc>
          <delta_ts>2021-06-18 07:02:30 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>alex</cc>
    
    <cc>clord</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765338</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2021-05-31 00:12:00 -0700</bug_when>
    <thetext>[WPE] Rework touch-based gesture controller</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765340</commentid>
    <comment_count>1</comment_count>
      <attachid>430181</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2021-05-31 00:18:58 -0700</bug_when>
    <thetext>Created attachment 430181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770996</commentid>
    <comment_count>2</comment_count>
      <attachid>430181</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2021-06-18 06:31:41 -0700</bug_when>
    <thetext>Comment on attachment 430181
Patch

LGTM, great patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771005</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-18 07:01:55 -0700</bug_when>
    <thetext>Committed r279037 (238957@main): &lt;https://commits.webkit.org/238957@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771006</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-18 07:02:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/79504325&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430181</attachid>
            <date>2021-05-31 00:18:58 -0700</date>
            <delta_ts>2021-06-18 07:01:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226456-20210531091856.patch</filename>
            <type>text/plain</type>
            <size>30703</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzYTZkZTRmM2Y1YzAyMmM5
YjY5OTFiYTgxZTEwNDdhMDI1ZDkzNDMuLjE1YWQ2MzMzY2M0NGVjMWY1ZThmZTU5YTAzNTExNTgx
ZDNhNDU0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDUtMzEgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIFJld29yayB0b3Vj
aC1iYXNlZCBnZXN0dXJlIGNvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjQ1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBXUEUncyBTY3JvbGxHZXN0dXJlQ29udHJvbGxlciB0
byBUb3VjaEdlc3R1cmVDb250cm9sbGVyIHNpbmNlIG5vdworICAgICAgICBpdCBhbHNvIGhhbmRs
ZXMgcHJvZHVjdGlvbiBvZiB0b3VjaC1iYXNlZCBjbGljayBldmVudHMuCisKKyAgICAgICAgVG91
Y2hHZXN0dXJlQ29udHJvbGxlciBub3cgaW50ZXJuYWxseSBtYW5hZ2VzIGFsbCB0aGUgcmVsYXRl
ZCBzdGF0ZSwKKyAgICAgICAgdHJhY2tpbmcgdGhlIHRvdWNoIGludGVyYWN0aW9uIGFuZCBkZXRl
cm1pbmluZyB3aGV0aGVyIGl0IHByb2dyZXNzZXMKKyAgICAgICAgaW50byBhIHNjcm9sbGluZyBn
ZXN0dXJlIG9yIHdoZXRoZXIsIHVwb24gZmluaXNoaW5nLCBpdCBzaG91bGQgYmUKKyAgICAgICAg
dHJhbnNsYXRlZCBpbnRvIGEgc2ltcGxlIGNsaWNrIGV2ZW50LgorCisgICAgICAgIEluIFBhZ2VD
bGllbnRJbXBsLCBhbnkgdW5oYW5kbGVkIGV2ZW50IGlzIHB1c2hlZCBpbnRvCisgICAgICAgIFRv
dWNoR2VzdHVyZUNvbnRyb2xsZXIgYW5kIGEgdmFyaWFudCBvZiBkaWZmZXJlbnQgb3V0Y29tZXMg
aXMgcmV0dXJuZWQuCisgICAgICAgIE5vLWV2ZW50IHJlc3VsdCBpcyBpZ25vcmVkLCBhbmQgY2xp
Y2sgb3IgYXhpcyBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXMKKyAgICAgICAgYXBwcm9wcmlhdGUu
CisKKyAgICAgICAgSW4gV1BFVmlldywgd2hlcmUgdGhlIHRvdWNoIGV2ZW50cyBhcnJpdmUgaW50
byB0aGUgZW5naW5lLCB3ZSBrZWVwIHRoZQorICAgICAgICBzaG9ydGN1dCB3aGVyZSB0b3VjaCBl
dmVudHMgYXJlIHBpcGVkIGRpcmVjdGx5IGludG8gdGhlIGNvbnRyb2xsZXIgaWYKKyAgICAgICAg
c2FpZCBjb250cm9sbGVyIGlzIGFscmVhZHkgZ2VzdHVyaW5nIHNjcm9sbGluZyBiZWhhdmlvci4g
SW4gdGhhdCBjYXNlCisgICAgICAgIHRoZSB0b3VjaCBldmVudHMgYXJlIG5vdCBkaXNwYXRjaGVk
IGludG8gdGhlIGVuZ2luZSwgd2l0aCB0aGUgZXhjZXB0aW9uCisgICAgICAgIG9mIHRvdWNoLXVw
IGV2ZW50cyB3aGljaCBhcmUsIHRvIHByb3ZpZGUgbWF0Y2hpbmcgY2xvc3VyZSBmb3IgdGhlCisg
ICAgICAgIHRvdWNoLWRvd24gZXZlbnRzLgorCisgICAgICAgICogU291cmNlc1dQRS50eHQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9Ub3VjaEdlc3R1cmVDb250cm9sbGVyLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIu
Y3BwLgorICAgICAgICAoV2ViS2l0OjpUb3VjaEdlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvVG91Y2hHZXN0dXJlQ29udHJvbGxlci5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0
dXJlQ29udHJvbGxlci5oLgorICAgICAgICAoV2ViS2l0OjpUb3VjaEdlc3R1cmVDb250cm9sbGVy
OjpnZXN0dXJlZEV2ZW50IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcDoKKyAgICAgICAgKFdLV1BFOjpWaWV3OjpWaWV3KToKKyAgICAgICAgKFdLV1BFOjpt
X2JhY2tlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaDoKKyAgICAg
ICAgKFdLV1BFOjpWaWV3Ojp0b3VjaEdlc3R1cmVDb250cm9sbGVyIGNvbnN0KToKKyAgICAgICAg
KFdLV1BFOjpWaWV3OjpzY3JvbGxHZXN0dXJlQ29udHJvbGxlciBjb25zdCk6IERlbGV0ZWQuCisK
IDIwMjEtMDUtMjggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENs
aWVudHMgb2Ygb3B0aW9uYWwgc2hvdWxkIHVzZSBoYXNfdmFsdWUgaW5zdGVhZCBvZiByZWx5aW5n
IG9uIGhhc1ZhbHVlIG1hY3JvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCAwNzc1YWNlYzI3OWM4NzNi
MmZkODFjMDJjMjk2Mjc2M2ZmNDk3ZGI1Li5mOGZiMTUxMWYyYTAxOWEwOGE4OTZmN2NiZjQ1Y2E0
NzBkYTI4MTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTE4MCw3ICsxODAsNyBAQCBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZVBvbGljaWVzLmNwcCBAbm8tdW5pZnkKIAogVUlQcm9j
ZXNzL0FQSS93cGUvSW5wdXRNZXRob2RGaWx0ZXJXUEUuY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIEBuby11bmlmeQotVUlQcm9jZXNzL0FQSS93cGUv
U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS93cGUv
VG91Y2hHZXN0dXJlQ29udHJvbGxlci5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRDb2xvci5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRJbnB1dE1l
dGhvZENvbnRleHRXUEUuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0UG9w
dXBNZW51LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggZWIzYmU2NTdkZTgyMTgxMjk2YTZhZmM1NTA3
MjU0OGQ2YjJlYTMzZS4uNzRjNTEzYjYzZTJmNjc4MzUwNTFlNzQ5NGY0NDA4MjFiYjg3ZmEzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5Q29vcmRp
bmF0ZWRHcmFwaGljcy5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNs
dWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCi0jaW5jbHVkZSAiU2Nyb2xsR2VzdHVyZUNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJUb3VjaEdlc3R1cmVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
V1BFVmlldy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudVByb3h5V1BFLmgiCkBAIC0yMTIsNDIgKzIxMiw0NCBAQCB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYg
dG91Y2hFdmVudCwgYgogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvJiBwYWdlID0gbV92aWV3
LnBhZ2UoKTsKLSAgICBhdXRvJiBzY3JvbGxHZXN0dXJlQ29udHJvbGxlciA9IG1fdmlldy5zY3Jv
bGxHZXN0dXJlQ29udHJvbGxlcigpOwotCi0gICAgaWYgKHNjcm9sbEdlc3R1cmVDb250cm9sbGVy
LmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7Ci0gICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhp
c19ldmVudCogYXhpc0V2ZW50ID0gc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuYXhpc0V2ZW50KCk7
Ci0gICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlw
ZV9udWxsKQotICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZl
V2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3Io
KSwgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6
OlBoYXNlTm9uZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc3RydWN0IHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7Ci0gICAgICAgIHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKLSAgICAgICAgdG91Y2hQb2lu
dC0+eCwgdG91Y2hQb2ludC0+eSwKLSAgICAgICAgMSwgMCwgMAotICAgIH07Ci0KLSAgICBzd2l0
Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKLSAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX2Rvd246Ci0gICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnRfdHlwZV9idXR0b247Ci0gICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7Ci0gICAg
ICAgIHBvaW50ZXJFdmVudC5tb2RpZmllcnMgfD0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJf
YnV0dG9uMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
dHlwZV9tb3Rpb246Ci0gICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50
ZXJfZXZlbnRfdHlwZV9tb3Rpb247Ci0gICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6Ci0g
ICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9i
dXR0b247Ci0gICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDA7Ci0gICAgICAgIHBvaW50ZXJF
dmVudC5tb2RpZmllcnMgJj0gfndwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjE7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2
ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICBhdXRvJiB0b3VjaEdlc3R1cmVD
b250cm9sbGVyID0gbV92aWV3LnRvdWNoR2VzdHVyZUNvbnRyb2xsZXIoKTsKKworICAgIGF1dG8g
Z2VuZXJhdGVkRXZlbnQgPSB0b3VjaEdlc3R1cmVDb250cm9sbGVyLmhhbmRsZUV2ZW50KHRvdWNo
UG9pbnQpOworICAgIFdURjo6c3dpdGNoT24oZ2VuZXJhdGVkRXZlbnQsCisgICAgICAgIFtdKFRv
dWNoR2VzdHVyZUNvbnRyb2xsZXI6Ok5vRXZlbnQmKSB7IH0sCisgICAgICAgIFsmXShUb3VjaEdl
c3R1cmVDb250cm9sbGVyOjpDbGlja0V2ZW50JiBjbGlja0V2ZW50KQorICAgICAgICB7CisgICAg
ICAgICAgICBhdXRvKiBldmVudCA9ICZjbGlja0V2ZW50LmV2ZW50OworCisgICAgICAgICAgICAv
LyBNb3VzZSBtb3Rpb24gdG93YXJkcyB0aGUgcG9pbnQgb2YgdGhlIGNsaWNrLgorICAgICAgICAg
ICAgZXZlbnQtPnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjsKKyAg
ICAgICAgICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KGV2ZW50
LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKworICAgICAgICAgICAgZXZlbnQtPnR5cGUg
PSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICAgICAgICAgIGV2ZW50
LT5idXR0b24gPSAxOworCisgICAgICAgICAgICAvLyBNb3VzZSBkb3duIG9uIHRoZSBwb2ludCBv
ZiB0aGUgY2xpY2suCisgICAgICAgICAgICBldmVudC0+c3RhdGUgPSAxOworICAgICAgICAgICAg
ZXZlbnQtPm1vZGlmaWVycyB8PSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24xOwor
ICAgICAgICAgICAgcGFnZS5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZl
bnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworCisgICAgICAgICAgICAvLyBNb3VzZSB1
cCBvbiB0aGUgc2FtZSBsb2NhdGlvbi4KKyAgICAgICAgICAgIGV2ZW50LT5zdGF0ZSA9IDA7Cisg
ICAgICAgICAgICBldmVudC0+bW9kaWZpZXJzICY9IH53cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmll
cl9idXR0b24xOworICAgICAgICAgICAgcGFnZS5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1v
dXNlRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAor
ICAgICAgICBbJl0oVG91Y2hHZXN0dXJlQ29udHJvbGxlcjo6QXhpc0V2ZW50JiBheGlzRXZlbnQp
CisgICAgICAgIHsKKyNpZiBXUEVfQ0hFQ0tfVkVSU0lPTigxLCA1LCAwKQorICAgICAgICAgICAg
YXV0byogZXZlbnQgPSAmYXhpc0V2ZW50LmV2ZW50LmJhc2U7CisjZWxzZQorICAgICAgICAgICAg
YXV0byogZXZlbnQgPSAmYXhpc0V2ZW50LmV2ZW50OworI2VuZGlmCisgICAgICAgICAgICBpZiAo
ZXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKSB7CisgICAgICAg
ICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVu
dChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpLAorICAgICAgICAgICAgICAgICAgICBh
eGlzRXZlbnQucGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE0YjVhMzQ2ODM0YzA3MWM4YmNmMjg2Zjdl
MDA5YTliMWRjYTk5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9s
bGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgotCi0jaW5jbHVkZSAiV2ViS2l0U2V0
dGluZ3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotLy8gRklYTUU6IFRoZXNlIG91Z2h0IHRvIGJlIGVpdGhlciBjb25maWd1cmFibGUg
b3IgZGVyaXZlZCBmcm9tIHN5c3RlbQotLy8gICAgICAgIHByb3BlcnRpZXMsIHN1Y2ggYXMgc2Ny
ZWVuIHNpemUgYW5kIHBpeGVsIGRlbnNpdHkuCi1zdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHNj
cm9sbENhcHR1cmVUaHJlc2hvbGQgeyAyMDAgfTsKLXN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
YXhpc0xvY2tNb3ZlbWVudFRocmVzaG9sZCB7IDggfTsKLXN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgYXhpc0xvY2tBY3RpdmF0aW9uVGhyZXNob2xkIHsgMTUgfTsKLXN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgYXhpc0xvY2tSZWxlYXNlVGhyZXNob2xkIHsgMzAgfTsKLQotYm9vbCBTY3JvbGxH
ZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCi17Ci0gICAgc3dpdGNoICh0b3VjaFBvaW50LT50eXBl
KSB7Ci0gICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgotICAgICAgICBt
X3N0YXJ0LmFjdGl2ZSA9IHRydWU7Ci0gICAgICAgIG1fc3RhcnQudGltZSA9IHRvdWNoUG9pbnQt
PnRpbWU7Ci0gICAgICAgIG1fc3RhcnQueCA9IHRvdWNoUG9pbnQtPng7Ci0gICAgICAgIG1fc3Rh
cnQueSA9IHRvdWNoUG9pbnQtPnk7Ci0gICAgICAgIG1fb2Zmc2V0LnggPSB0b3VjaFBvaW50LT54
OwotICAgICAgICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+eTsKLSAgICAgICAgbV94QXhpc0xv
Y2tCcm9rZW4gPSBmYWxzZTsKLSAgICAgICAgbV95QXhpc0xvY2tCcm9rZW4gPSBmYWxzZTsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVf
bW90aW9uOgotICAgICAgICBpZiAobV9zdGFydC5hY3RpdmUgJiYgIW1faGFuZGxpbmcpIHsKLSAg
ICAgICAgICAgIGludDMyX3QgZGVsdGFYID0gdG91Y2hQb2ludC0+eCAtIG1fc3RhcnQueDsKLSAg
ICAgICAgICAgIGludDMyX3QgZGVsdGFZID0gdG91Y2hQb2ludC0+eSAtIG1fc3RhcnQueTsKLSAg
ICAgICAgICAgIHVpbnQzMl90IGRlbHRhVGltZSA9IHRvdWNoUG9pbnQtPnRpbWUgLSBtX3N0YXJ0
LnRpbWU7Ci0KLSAgICAgICAgICAgIGludCBwaXhlbHNQZXJMaW5lU3RlcCA9IFdlYkNvcmU6OlNj
cm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKTsKLSAgICAgICAgICAgIG1faGFuZGxpbmcgPSBz
dGQ6OmFicyhkZWx0YVgpID49IHBpeGVsc1BlckxpbmVTdGVwCi0gICAgICAgICAgICAgICAgfHwg
c3RkOjphYnMoZGVsdGFZKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAotICAgICAgICAgICAgICAgIHx8
IGRlbHRhVGltZSA+PSBzY3JvbGxDYXB0dXJlVGhyZXNob2xkOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChtX2hhbmRsaW5nKSB7Ci0jaWYgV1BFX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKLSAgICAg
ICAgICAgIG1fYXhpc0V2ZW50LmJhc2UgPSB7Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
ZW51bSB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlPih3cGVfaW5wdXRfYXhpc19ldmVudF90eXBl
X21hc2tfMmQgfCB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbl9zbW9vdGgpLAotICAg
ICAgICAgICAgICAgIHRvdWNoUG9pbnQtPnRpbWUsIG1fc3RhcnQueCwgbV9zdGFydC55LAotICAg
ICAgICAgICAgICAgIDAsIDAsIDAsCi0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICB1aW50
MzJfdCB4T2Zmc2V0ID0gc3RkOjphYnModG91Y2hQb2ludC0+eCAtIG1fc3RhcnQueCk7Ci0gICAg
ICAgICAgICB1aW50MzJfdCB5T2Zmc2V0ID0gc3RkOjphYnModG91Y2hQb2ludC0+eSAtIG1fc3Rh
cnQueSk7Ci0KLSAgICAgICAgICAgIGlmICh4T2Zmc2V0ID49IGF4aXNMb2NrUmVsZWFzZVRocmVz
aG9sZCkKLSAgICAgICAgICAgICAgICBtX3hBeGlzTG9ja0Jyb2tlbiA9IHRydWU7Ci0gICAgICAg
ICAgICBpZiAoeU9mZnNldCA+PSBheGlzTG9ja1JlbGVhc2VUaHJlc2hvbGQpCi0gICAgICAgICAg
ICAgICAgbV95QXhpc0xvY2tCcm9rZW4gPSB0cnVlOwotCi0gICAgICAgICAgICBpZiAoeE9mZnNl
dCA+PSBheGlzTG9ja01vdmVtZW50VGhyZXNob2xkICYmIHlPZmZzZXQgPj0gYXhpc0xvY2tNb3Zl
bWVudFRocmVzaG9sZCAmJiB4T2Zmc2V0IDwgYXhpc0xvY2tBY3RpdmF0aW9uVGhyZXNob2xkICYm
IHlPZmZzZXQgPCBheGlzTG9ja0FjdGl2YXRpb25UaHJlc2hvbGQpIHsKLSAgICAgICAgICAgICAg
ICBtX3hBeGlzTG9ja0Jyb2tlbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgbV95QXhpc0xvY2tC
cm9rZW4gPSB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtX2F4aXNFdmVudC54
X2F4aXMgPSAobV94QXhpc0xvY2tCcm9rZW4gfHwgeU9mZnNldCA8IGF4aXNMb2NrQWN0aXZhdGlv
blRocmVzaG9sZCkgPyAgLShtX29mZnNldC54IC0gdG91Y2hQb2ludC0+eCkgOiAwOwotICAgICAg
ICAgICAgbV9heGlzRXZlbnQueV9heGlzID0gKG1feUF4aXNMb2NrQnJva2VuIHx8IHhPZmZzZXQg
PCBheGlzTG9ja0FjdGl2YXRpb25UaHJlc2hvbGQpID8gIC0obV9vZmZzZXQueSAtIHRvdWNoUG9p
bnQtPnkpIDogMDsKLSNlbHNlCi0gICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKLSAgICAgICAg
ICAgICAgICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKLSAgICAgICAgICAgICAg
ICB0b3VjaFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKLSAgICAgICAgICAgICAg
ICAyLCAodG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpLCAwCi0gICAgICAgICAgICB9OwotI2Vu
ZGlmCi0gICAgICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKLSAgICAgICAgICAg
IG1fb2Zmc2V0LnkgPSB0b3VjaFBvaW50LT55OwotICAgICAgICAgICAgbV9waGFzZSA9IFdlYldo
ZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUNoYW5nZWQ7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfdHlwZV91cDoKLSAgICAgICAgaWYgKG1faGFuZGxpbmcpIHsKLSAgICAgICAgICAg
IG1fc3RhcnQuYWN0aXZlID0gZmFsc2U7Ci0gICAgICAgICAgICBtX2hhbmRsaW5nID0gZmFsc2U7
Ci0jaWYgV1BFX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKLSAgICAgICAgICAgIG1fYXhpc0V2ZW50
LmJhc2UgPSB7Ci0gICAgICAgICAgICAgICAgbV9heGlzRXZlbnQuYmFzZS50eXBlLAotICAgICAg
ICAgICAgICAgIHRvdWNoUG9pbnQtPnRpbWUsIG1fc3RhcnQueCwgbV9zdGFydC55LAotICAgICAg
ICAgICAgICAgIDAsIDAsIDAKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBtX2F4aXNFdmVu
dC54X2F4aXMgPSBtX2F4aXNFdmVudC55X2F4aXMgPSAwOwotI2Vsc2UKLSAgICAgICAgICAgIG1f
YXhpc0V2ZW50ID0gewotICAgICAgICAgICAgICAgIG1fYXhpc0V2ZW50LnR5cGUsCi0gICAgICAg
ICAgICAgICAgdG91Y2hQb2ludC0+dGltZSwgbV9zdGFydC54LCBtX3N0YXJ0LnksCi0gICAgICAg
ICAgICAgICAgMCwgMCwgMAotICAgICAgICAgICAgfTsKLSNlbmRpZgotICAgICAgICAgICAgbV9v
ZmZzZXQueCA9IG1fb2Zmc2V0LnkgPSAwOwotICAgICAgICAgICAgbV9waGFzZSA9IFdlYldoZWVs
RXZlbnQ6OlBoYXNlOjpQaGFzZUVuZGVkOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjE4NmMyNmZlMjc1Yjg2ZTdiMDQ5MzlkMmIxNDc4ZDk4NzBjZjE5Yi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw3NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgotI2lu
Y2x1ZGUgPHdwZS93cGUuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFNjcm9sbEdl
c3R1cmVDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoK
LSAgICBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcigpID0gZGVmYXVsdDsKLQotICAgIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50KCkKLSAgICB7Ci0jaWYgV1BFX0NIRUNLX1ZF
UlNJT04oMSwgNSwgMCkKLSAgICAgICAgcmV0dXJuICZtX2F4aXNFdmVudC5iYXNlOwotI2Vsc2UK
LSAgICAgICAgcmV0dXJuICZtX2F4aXNFdmVudDsKLSNlbmRpZgotICAgIH0KLQotICAgIFdlYldo
ZWVsRXZlbnQ6OlBoYXNlIHBoYXNlKCkgeyByZXR1cm4gbV9waGFzZTsgfQotCi0gICAgYm9vbCBp
c0hhbmRsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGluZzsgfQotICAgIGJvb2wgaGFuZGxl
RXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqKTsKLQotcHJpdmF0
ZToKLSAgICBzdHJ1Y3QgewotICAgICAgICBib29sIGFjdGl2ZSB7IGZhbHNlIH07Ci0gICAgICAg
IHVpbnQzMl90IHRpbWUgeyAwIH07Ci0gICAgICAgIGludDMyX3QgeCB7IDAgfTsKLSAgICAgICAg
aW50MzJfdCB5IHsgMCB9OwotICAgIH0gbV9zdGFydDsKLQotICAgIHN0cnVjdCB7Ci0gICAgICAg
IGludDMyX3QgeCB7IDAgfTsKLSAgICAgICAgaW50MzJfdCB5IHsgMCB9OwotICAgIH0gbV9vZmZz
ZXQ7Ci0KLSAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OwotI2lmIFdQRV9DSEVDS19WRVJT
SU9OKDEsIDUsIDApCi0gICAgc3RydWN0IHdwZV9pbnB1dF9heGlzXzJkX2V2ZW50IG1fYXhpc0V2
ZW50OwotI2Vsc2UKLSAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgbV9heGlzRXZlbnQ7
Ci0jZW5kaWYKLSAgICBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtX3BoYXNlIHsgV2ViV2hlZWxFdmVu
dDo6UGhhc2U6OlBoYXNlTm9uZSB9OwotCi0gICAgYm9vbCBtX3hBeGlzTG9ja0Jyb2tlbiB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX3lBeGlzTG9ja0Jyb2tlbiB7IGZhbHNlIH07Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvVG91Y2hHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1RvdWNoR2VzdHVyZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTkwNWY4
ZTA3ZmRkOGI0ZjBiMjQ1ODQ2NDQwMzJjN2IwNDhkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1RvdWNoR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBA
IC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUb3VjaEdlc3R1cmVDb250
cm9sbGVyLmgiCisKKyNpbmNsdWRlICJXZWJLaXRTZXR0aW5ncy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Nyb2xsYmFyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBGSVhNRTogVGhlc2Ug
b3VnaHQgdG8gYmUgZWl0aGVyIGNvbmZpZ3VyYWJsZSBvciBkZXJpdmVkIGZyb20gc3lzdGVtCisv
LyAgICAgICAgcHJvcGVydGllcywgc3VjaCBhcyBzY3JlZW4gc2l6ZSBhbmQgcGl4ZWwgZGVuc2l0
eS4KK3N0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qgc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZCB7IDIw
MCB9Oworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBheGlzTG9ja01vdmVtZW50VGhyZXNob2xk
IHsgOCB9Oworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBheGlzTG9ja0FjdGl2YXRpb25UaHJl
c2hvbGQgeyAxNSB9Oworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBheGlzTG9ja1JlbGVhc2VU
aHJlc2hvbGQgeyAzMCB9OworCitUb3VjaEdlc3R1cmVDb250cm9sbGVyOjpFdmVudFZhcmlhbnQg
VG91Y2hHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1
dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dpdGNoICh0b3VjaFBvaW50
LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgorICAg
ICAgICAvLyBTdGFydCBvZiB0aGUgdG91Y2ggaW50ZXJhY3Rpb24sIGZpcnN0IHBvc3NpYmxlIGV2
ZW50IGlzIGEgbW91c2UgY2xpY2suCisgICAgICAgIG1fZ2VzdHVyZWRFdmVudCA9IEdlc3R1cmVk
RXZlbnQ6OkNsaWNrOworICAgICAgICBtX3N0YXJ0ID0geyB0cnVlLCB0b3VjaFBvaW50LT50aW1l
LCB0b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55IH07CisgICAgICAgIG1fb2Zmc2V0ID0geyB0
b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55IH07CisgICAgICAgIG1feEF4aXNMb2NrQnJva2Vu
ID0gbV95QXhpc0xvY2tCcm9rZW4gPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3
cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgeworICAgICAgICBzd2l0Y2gg
KG1fZ2VzdHVyZWRFdmVudCkgeworICAgICAgICBjYXNlIEdlc3R1cmVkRXZlbnQ6Ok5vbmU6Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXN0dXJlZEV2ZW50OjpDbGljazoKKyAg
ICAgICAgeworICAgICAgICAgICAgLy8gSWYgY3VycmVudGx5IG9ubHkgZ2VzdHVyaW5nIGEgY2xp
Y2ssIGRldGVybWluZSBpZiB0aGUgdG91Y2ggaGFzIHByb2dyZXNzZWQKKyAgICAgICAgICAgIC8v
IHNvIGZhciB0aGF0IGl0IHNob3VsZCBiZWNvbWUgYSBzY3JvbGxpbmcgZ2VzdHVyZS4KKyAgICAg
ICAgICAgIGludDMyX3QgZGVsdGFYID0gdG91Y2hQb2ludC0+eCAtIG1fc3RhcnQueDsKKyAgICAg
ICAgICAgIGludDMyX3QgZGVsdGFZID0gdG91Y2hQb2ludC0+eSAtIG1fc3RhcnQueTsKKyAgICAg
ICAgICAgIHVpbnQzMl90IGRlbHRhVGltZSA9IHRvdWNoUG9pbnQtPnRpbWUgLSBtX3N0YXJ0LnRp
bWU7CisKKyAgICAgICAgICAgIGludCBwaXhlbHNQZXJMaW5lU3RlcCA9IFdlYkNvcmU6OlNjcm9s
bGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKTsKKyAgICAgICAgICAgIGJvb2wgb3ZlclRocmVzaG9s
ZCA9IHN0ZDo6YWJzKGRlbHRhWCkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAg
ICB8fCBzdGQ6OmFicyhkZWx0YVkpID49IHBpeGVsc1BlckxpbmVTdGVwCisgICAgICAgICAgICAg
ICAgfHwgZGVsdGFUaW1lID49IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CisgICAgICAgICAgICBp
ZiAoIW92ZXJUaHJlc2hvbGQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
IC8vIE92ZXIgdGhyZXNob2xkLCBidW1wIHRoZSBnZXN0dXJlZCBldmVudCBhbmQgZGlyZWN0bHkg
ZmFsbCB0aHJvdWdoIHRvIGhhbmRsaW5nIGl0LgorICAgICAgICAgICAgbV9nZXN0dXJlZEV2ZW50
ID0gR2VzdHVyZWRFdmVudDo6QXhpczsKKyAgICAgICAgICAgIEZBTExUSFJPVUdIOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgR2VzdHVyZWRFdmVudDo6QXhpczoKKyAgICAgICAgeworICAgICAg
ICAgICAgQXhpc0V2ZW50IGdlbmVyYXRlZEV2ZW50OworICAgICAgICAgICAgZ2VuZXJhdGVkRXZl
bnQucGhhc2UgPSBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VDaGFuZ2VkOworCisjaWYgV1BF
X0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKKyAgICAgICAgICAgIGdlbmVyYXRlZEV2ZW50LmV2ZW50
LmJhc2UgPSB7CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZW51bSB3cGVfaW5wdXRfYXhp
c19ldmVudF90eXBlPih3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21hc2tfMmQgfCB3cGVfaW5w
dXRfYXhpc19ldmVudF90eXBlX21vdGlvbl9zbW9vdGgpLAorICAgICAgICAgICAgICAgIHRvdWNo
UG9pbnQtPnRpbWUsIG1fc3RhcnQueCwgbV9zdGFydC55LAorICAgICAgICAgICAgICAgIDAsIDAs
IDAsCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICB1aW50MzJfdCB4T2Zmc2V0ID0gc3Rk
OjphYnModG91Y2hQb2ludC0+eCAtIG1fc3RhcnQueCk7CisgICAgICAgICAgICB1aW50MzJfdCB5
T2Zmc2V0ID0gc3RkOjphYnModG91Y2hQb2ludC0+eSAtIG1fc3RhcnQueSk7CisKKyAgICAgICAg
ICAgIGlmICh4T2Zmc2V0ID49IGF4aXNMb2NrUmVsZWFzZVRocmVzaG9sZCkKKyAgICAgICAgICAg
ICAgICBtX3hBeGlzTG9ja0Jyb2tlbiA9IHRydWU7CisgICAgICAgICAgICBpZiAoeU9mZnNldCA+
PSBheGlzTG9ja1JlbGVhc2VUaHJlc2hvbGQpCisgICAgICAgICAgICAgICAgbV95QXhpc0xvY2tC
cm9rZW4gPSB0cnVlOworCisgICAgICAgICAgICBpZiAoeE9mZnNldCA+PSBheGlzTG9ja01vdmVt
ZW50VGhyZXNob2xkICYmIHlPZmZzZXQgPj0gYXhpc0xvY2tNb3ZlbWVudFRocmVzaG9sZCAmJiB4
T2Zmc2V0IDwgYXhpc0xvY2tBY3RpdmF0aW9uVGhyZXNob2xkICYmIHlPZmZzZXQgPCBheGlzTG9j
a0FjdGl2YXRpb25UaHJlc2hvbGQpIHsKKyAgICAgICAgICAgICAgICBtX3hBeGlzTG9ja0Jyb2tl
biA9IHRydWU7CisgICAgICAgICAgICAgICAgbV95QXhpc0xvY2tCcm9rZW4gPSB0cnVlOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBnZW5lcmF0ZWRFdmVudC5ldmVudC54X2F4aXMgPSAo
bV94QXhpc0xvY2tCcm9rZW4gfHwgeU9mZnNldCA8IGF4aXNMb2NrQWN0aXZhdGlvblRocmVzaG9s
ZCkgPyAgLShtX29mZnNldC54IC0gdG91Y2hQb2ludC0+eCkgOiAwOworICAgICAgICAgICAgZ2Vu
ZXJhdGVkRXZlbnQuZXZlbnQueV9heGlzID0gKG1feUF4aXNMb2NrQnJva2VuIHx8IHhPZmZzZXQg
PCBheGlzTG9ja0FjdGl2YXRpb25UaHJlc2hvbGQpID8gIC0obV9vZmZzZXQueSAtIHRvdWNoUG9p
bnQtPnkpIDogMDsKKyNlbHNlCisgICAgICAgICAgICBnZW5lcmF0ZWRFdmVudC5ldmVudCA9IHsK
KyAgICAgICAgICAgICAgICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAg
ICAgICAgICAgICB0b3VjaFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAg
ICAgICAgICAgICAyLCAodG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpLCAwCisgICAgICAgICAg
ICB9OworI2VuZGlmCisgICAgICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAg
ICAgICAgICAgIG1fb2Zmc2V0LnkgPSB0b3VjaFBvaW50LT55OworICAgICAgICAgICAgcmV0dXJu
IGdlbmVyYXRlZEV2ZW50OworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgeworICAg
ICAgICBzd2l0Y2ggKG1fZ2VzdHVyZWRFdmVudCkgeworICAgICAgICBjYXNlIEdlc3R1cmVkRXZl
bnQ6Ok5vbmU6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXN0dXJlZEV2ZW50
OjpDbGljazoKKyAgICAgICAgeworICAgICAgICAgICAgbV9nZXN0dXJlZEV2ZW50ID0gR2VzdHVy
ZWRFdmVudDo6Tm9uZTsKKworICAgICAgICAgICAgQ2xpY2tFdmVudCBnZW5lcmF0ZWRFdmVudDsK
KyAgICAgICAgICAgIGdlbmVyYXRlZEV2ZW50LmV2ZW50ID0geworICAgICAgICAgICAgICAgIHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwgdG91Y2hQ
b2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLAorICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRFdmVudDsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIEdlc3R1cmVkRXZlbnQ6OkF4aXM6CisgICAgICAgIHsKKyAgICAgICAgICAg
IG1fZ2VzdHVyZWRFdmVudCA9IEdlc3R1cmVkRXZlbnQ6Ok5vbmU7CisKKyAgICAgICAgICAgIEF4
aXNFdmVudCBnZW5lcmF0ZWRFdmVudDsKKyAgICAgICAgICAgIGdlbmVyYXRlZEV2ZW50LnBoYXNl
ID0gV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlRW5kZWQ7CisKKyNpZiBXUEVfQ0hFQ0tfVkVS
U0lPTigxLCA1LCAwKQorICAgICAgICAgICAgZ2VuZXJhdGVkRXZlbnQuZXZlbnQuYmFzZSA9IHsK
KyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxlbnVtIHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5
cGU+KHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbWFza18yZCB8IHdwZV9pbnB1dF9heGlzX2V2
ZW50X3R5cGVfbW90aW9uX3Ntb290aCksCisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC0+dGlt
ZSwgbV9zdGFydC54LCBtX3N0YXJ0LnksCisgICAgICAgICAgICAgICAgMCwgMCwgMAorICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIGdlbmVyYXRlZEV2ZW50LmV2ZW50LnhfYXhpcyA9IGdlbmVy
YXRlZEV2ZW50LmV2ZW50LnlfYXhpcyA9IDA7CisjZWxzZQorICAgICAgICAgICAgZ2VuZXJhdGVk
RXZlbnQuZXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlw
ZV9tb3Rpb24sCisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC0+dGltZSwgbV9zdGFydC54LCBt
X3N0YXJ0LnksCisgICAgICAgICAgICAgICAgMCwgMCwgMAorICAgICAgICAgICAgfTsKKyNlbmRp
ZgorICAgICAgICAgICAgbV9vZmZzZXQueCA9IG1fb2Zmc2V0LnkgPSAwOworICAgICAgICAgICAg
cmV0dXJuIGdlbmVyYXRlZEV2ZW50OworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJl
dHVybiBOb0V2ZW50IHsgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1RvdWNoR2VzdHVyZUNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvVG91Y2hHZXN0dXJlQ29udHJvbGxl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0NGZkOTcxOGZmNGYyYWRlM2U4NDExMTFiNDFkYjExZGFiZjFhNzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1RvdWNo
R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
V2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgPHdwZS93cGUuaD4KKyNpbmNsdWRlIDx3dGYvVmFy
aWFudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVG91Y2hHZXN0dXJlQ29udHJv
bGxlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgVG91Y2hH
ZXN0dXJlQ29udHJvbGxlcigpID0gZGVmYXVsdDsKKworICAgIGVudW0gY2xhc3MgR2VzdHVyZWRF
dmVudCB7CisgICAgICAgIE5vbmUsCisgICAgICAgIENsaWNrLAorICAgICAgICBBeGlzLAorICAg
IH07CisKKyAgICBzdHJ1Y3QgTm9FdmVudCB7IH07CisKKyAgICBzdHJ1Y3QgQ2xpY2tFdmVudCB7
CisgICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVudDsKKyAgICB9Owor
CisgICAgc3RydWN0IEF4aXNFdmVudCB7CisjaWYgV1BFX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkK
KyAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzXzJkX2V2ZW50IGV2ZW50OworI2Vsc2UKKyAg
ICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50IGV2ZW50OworI2VuZGlmCisgICAgICAg
IFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBoYXNlOworICAgIH07CisKKyAgICB1c2luZyBFdmVudFZh
cmlhbnQgPSBWYXJpYW50PE5vRXZlbnQsIENsaWNrRXZlbnQsIEF4aXNFdmVudD47CisKKyAgICBH
ZXN0dXJlZEV2ZW50IGdlc3R1cmVkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVkRXZl
bnQ7IH0KKyAgICBFdmVudFZhcmlhbnQgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1
dF90b3VjaF9ldmVudF9yYXcqKTsKKworcHJpdmF0ZToKKyAgICBHZXN0dXJlZEV2ZW50IG1fZ2Vz
dHVyZWRFdmVudCB7IEdlc3R1cmVkRXZlbnQ6Ok5vbmUgfTsKKworICAgIHN0cnVjdCB7CisgICAg
ICAgIGJvb2wgYWN0aXZlIHsgZmFsc2UgfTsKKyAgICAgICAgdWludDMyX3QgdGltZSB7IDAgfTsK
KyAgICAgICAgaW50MzJfdCB4IHsgMCB9OworICAgICAgICBpbnQzMl90IHkgeyAwIH07CisgICAg
fSBtX3N0YXJ0OworCisgICAgc3RydWN0IHsKKyAgICAgICAgaW50MzJfdCB4IHsgMCB9OworICAg
ICAgICBpbnQzMl90IHkgeyAwIH07CisgICAgfSBtX29mZnNldDsKKworICAgIGJvb2wgbV94QXhp
c0xvY2tCcm9rZW4geyBmYWxzZSB9OworICAgIGJvb2wgbV95QXhpc0xvY2tCcm9rZW4geyBmYWxz
ZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCBkYzJiOGE4YTY1NjBiZjQ5MTVlMGQwNTU2MTM5
MWIwMmZhMGM3Zjc3Li5hMWY4OTNkMWU3MmRiYzgyYjNkMTJlNTlmMzU5YmYzMTdiMjZkNjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTM1LDcg
KzM1LDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0
aXZlV2ViVG91Y2hFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKLSNp
bmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlRvdWNoR2VzdHVy
ZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25VbmRlcmxpbmUuaD4K
QEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdLV1BFIHsKIAogVmlldzo6VmlldyhzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYg
YmFzZUNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX2NsaWVudChtYWtlVW5pcXVlPEFQSTo6Vmlld0Ns
aWVudD4oKSkKLSAgICAsIG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIobWFrZVVuaXF1ZTxTY3Jv
bGxHZXN0dXJlQ29udHJvbGxlcj4oKSkKKyAgICAsIG1fdG91Y2hHZXN0dXJlQ29udHJvbGxlciht
YWtlVW5pcXVlPFRvdWNoR2VzdHVyZUNvbnRyb2xsZXI+KCkpCiAgICAgLCBtX3BhZ2VDbGllbnQo
bWFrZVVuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oKnRoaXMpKQogICAgICwgbV9zaXplIHsgODAwLCA2
MDAgfQogICAgICwgbV92aWV3U3RhdGVGbGFncyB7IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oldp
bmRvd0lzQWN0aXZlLCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQsIFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNJbldp
bmRvdyB9CkBAIC0yMTYsMTMgKzIxNiwzNSBAQCBWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kKiBiYWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQwogCiAg
ICAgICAgICAgICBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQgdG91Y2hFdmVudChldmVudCwg
cGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAotICAgICAgICAgICAgYXV0byYgc2Nyb2xsR2Vz
dHVyZUNvbnRyb2xsZXIgPSAqdmlldy5tX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOwotICAgICAg
ICAgICAgaWYgKHNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmlzSGFuZGxpbmcoKSkgewotICAgICAg
ICAgICAgICAgIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBv
aW50ID0gdG91Y2hFdmVudC5uYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQoKTsKLSAgICAgICAgICAg
ICAgICBpZiAodG91Y2hQb2ludC0+dHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9u
dWxsICYmIHNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2
ZVdlYldoZWVsRXZlbnQoc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuYXhpc0V2ZW50KCksIHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKSwgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2Vi
V2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOworICAgICAgICAgICAgLy8gSWYgYWxyZWFk
eSBnZXN0dXJpbmcgYXhpcyBldmVudHMsIHNob3J0LWN1dCBkaXJlY3RseSB0byB0aGUgY29udHJv
bGxlciwKKyAgICAgICAgICAgIC8vIGF2b2lkaW5nIHRoZSB1c3VhbCByb3VuZHRyaXAuCisgICAg
ICAgICAgICBhdXRvJiB0b3VjaEdlc3R1cmVDb250cm9sbGVyID0gKnZpZXcubV90b3VjaEdlc3R1
cmVDb250cm9sbGVyOworICAgICAgICAgICAgaWYgKHRvdWNoR2VzdHVyZUNvbnRyb2xsZXIuZ2Vz
dHVyZWRFdmVudCgpID09IFRvdWNoR2VzdHVyZUNvbnRyb2xsZXI6Okdlc3R1cmVkRXZlbnQ6OkF4
aXMpIHsKKyAgICAgICAgICAgICAgICBib29sIGhhbmRsZWRUaHJvdWdoR2VzdHVyZUNvbnRyb2xs
ZXIgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGF1dG8gZ2VuZXJhdGVkRXZlbnQgPSB0b3Vj
aEdlc3R1cmVDb250cm9sbGVyLmhhbmRsZUV2ZW50KHRvdWNoRXZlbnQubmF0aXZlRmFsbGJhY2tU
b3VjaFBvaW50KCkpOworICAgICAgICAgICAgICAgIFdURjo6c3dpdGNoT24oZ2VuZXJhdGVkRXZl
bnQsCisgICAgICAgICAgICAgICAgICAgIFtdKFRvdWNoR2VzdHVyZUNvbnRyb2xsZXI6Ok5vRXZl
bnQmKSB7IH0sCisgICAgICAgICAgICAgICAgICAgIFtdKFRvdWNoR2VzdHVyZUNvbnRyb2xsZXI6
OkNsaWNrRXZlbnQmKSB7IH0sCisgICAgICAgICAgICAgICAgICAgIFsmXShUb3VjaEdlc3R1cmVD
b250cm9sbGVyOjpBeGlzRXZlbnQmIGF4aXNFdmVudCkKKyAgICAgICAgICAgICAgICAgICAgewor
I2lmIFdQRV9DSEVDS19WRVJTSU9OKDEsIDUsIDApCisgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvKiBldmVudCA9ICZheGlzRXZlbnQuZXZlbnQuYmFzZTsKKyNlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvKiBldmVudCA9ICZheGlzRXZlbnQuZXZlbnQ7CisjZW5kaWYKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChldmVudC0+dHlwZSAhPSB3cGVfaW5wdXRfYXhpc19ldmVu
dF90eXBlX251bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLmhhbmRsZVdo
ZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGV2ZW50LCBwYWdlLmRldmljZVNj
YWxlRmFjdG9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aXNFdmVudC5w
aGFzZSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhhbmRsZWRUaHJvdWdoR2VzdHVyZUNvbnRyb2xsZXIgPSB0cnVlOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgICAgIC8vIEluIGNhc2Ugb2YgdGhlIGF4aXMgZXZlbnQgZ2VzdHVyaW5nLCB0aGUgZ2Vu
ZXJpYyB0b3VjaCBldmVudCBoYW5kbGluZyBzaG91bGQgYmUgc2tpcHBlZC4KKyAgICAgICAgICAg
ICAgICAvLyBFeGNlcHRpb24gdG8gdGhpcyBhcmUgdG91Y2gtdXAgZXZlbnRzIHRoYXQgc2hvdWxk
IHN0aWxsIGJlIGhhbmRsZWQganVzdCBsaWtlIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAg
ICAgICAgLy8gdG91Y2gtZG93biBldmVudHMgd2VyZS4KKyAgICAgICAgICAgICAgICBpZiAoaGFu
ZGxlZFRocm91Z2hHZXN0dXJlQ29udHJvbGxlciAmJiBldmVudC0+dHlwZSAhPSB3cGVfaW5wdXRf
dG91Y2hfZXZlbnRfdHlwZV91cCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3Vj
aEV2ZW50KHRvdWNoRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZp
ZXcuaAppbmRleCBiOTQ4NTI1NTQzMTNlY2VkYzBlYWRlZTA2MWM0ZGY2ZjY3NTU2YzUwLi44NjJi
OTFjODc3ZWQ3NWFiYzUzMDg5MjRlYzBlYzliYmM0NWViNmE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgQ29tcG9z
aXRpb25VbmRlcmxpbmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgRG93bmxvYWRQcm94
eTsKLWNsYXNzIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOworY2xhc3MgVG91Y2hHZXN0dXJlQ29u
dHJvbGxlcjsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogc3Ry
dWN0IEVkaXRpbmdSYW5nZTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgV2ViS2l0
V2ViVmlld0FjY2Vzc2libGUqIGFjY2Vzc2libGUoKSBjb25zdDsKICNlbmRpZgogCi0gICAgV2Vi
S2l0OjpTY3JvbGxHZXN0dXJlQ29udHJvbGxlciYgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiAqbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsgfQorICAgIFdlYktpdDo6
VG91Y2hHZXN0dXJlQ29udHJvbGxlciYgdG91Y2hHZXN0dXJlQ29udHJvbGxlcigpIGNvbnN0IHsg
cmV0dXJuICptX3RvdWNoR2VzdHVyZUNvbnRyb2xsZXI7IH0KIAogcHJpdmF0ZToKICAgICBWaWV3
KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYp
OwpAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJ
OjpWaWV3Q2xpZW50PiBtX2NsaWVudDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlNj
cm9sbEdlc3R1cmVDb250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlRvdWNoR2VzdHVyZUNvbnRyb2xsZXI+IG1fdG91Y2hHZXN0
dXJlQ29udHJvbGxlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlQ2xpZW50SW1w
bD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gbV9wYWdl
UHJveHk7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>