<?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>211128</bug_id>
          
          <creation_ts>2020-04-28 08:27:34 -0700</creation_ts>
          <short_desc>[GTK4] Add support for key events</short_desc>
          <delta_ts>2020-05-05 13:01:10 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211465</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646493</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-28 08:27:34 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646494</commentid>
    <comment_count>1</comment_count>
      <attachid>397840</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-28 08:33:22 -0700</bug_when>
    <thetext>Created attachment 397840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646495</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-04-28 08:34:27 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646622</commentid>
    <comment_count>3</comment_count>
      <attachid>397840</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-28 12:38:28 -0700</bug_when>
    <thetext>Comment on attachment 397840
Patch

Is it me, or using event controllers is actually quite neat? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646843</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-28 22:29:35 -0700</bug_when>
    <thetext>Committed r260869: &lt;https://trac.webkit.org/changeset/260869&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397840</attachid>
            <date>2020-04-28 08:33:22 -0700</date>
            <delta_ts>2020-04-28 12:38:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk4-keys.diff</filename>
            <type>text/plain</type>
            <size>18818</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzOTdjNmM1NTFkOTkuLjFkOWFlYjkwYzlhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIwLTA0LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLNF0gQWRkIHN1cHBvcnQgZm9yIGtleSBldmVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTEyOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0d0a1ZlcnNpb25pbmcuaDoKKyAgICAgICAgKGdka19ldmVudF9nZXRfa2V5dmFsKToK
KyAgICAgICAgKGdka19ldmVudF9nZXRfa2V5Y29kZSk6CisKIDIwMjAtMDQtMjggIENoYXJsaWUg
VHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtFTUVdW0NETVByb3h5XSBE
ZWZhdWx0IGluaXRpYWxpemUgbV9udW1EZWNyeXB0b3JzV2FpdGluZ0ZvcktleSBtZW1iZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oCmluZGV4IGE4MmVmYTVl
ZjNhNS4uM2MwNTljZjAxODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvR3RrVmVyc2lvbmluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtW
ZXJzaW9uaW5nLmgKQEAgLTEzNSw0ICsxMzUsMjAgQEAgZ2RrX2V2ZW50X2dldF9idXR0b24oY29u
c3QgR2RrRXZlbnQqIGV2ZW50LCBndWludCogYnV0dG9uKQogICAgICAgICAqYnV0dG9uID0gZ2Rr
X2J1dHRvbl9ldmVudF9nZXRfYnV0dG9uKGNvbnN0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOwog
ICAgIHJldHVybiB0cnVlOwogfQorCitzdGF0aWMgaW5saW5lIGdib29sZWFuCitnZGtfZXZlbnRf
Z2V0X2tleXZhbChjb25zdCBHZGtFdmVudCogZXZlbnQsIGd1aW50KiBrZXl2YWwpCit7CisgICAg
aWYgKGtleXZhbCkKKyAgICAgICAgKmtleXZhbCA9IGdka19rZXlfZXZlbnRfZ2V0X2tleXZhbChj
b25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpKTsKKyAgICByZXR1cm4gVFJVRTsKK30KKworc3Rh
dGljIGlubGluZSBnYm9vbGVhbgorZ2RrX2V2ZW50X2dldF9rZXljb2RlKGNvbnN0IEdka0V2ZW50
KiBldmVudCwgZ3VpbnQxNioga2V5Y29kZSkKK3sKKyAgICBpZiAoa2V5Y29kZSkKKyAgICAgICAg
KmtleWNvZGUgPSBnZGtfa2V5X2V2ZW50X2dldF9rZXljb2RlKGNvbnN0X2Nhc3Q8R2RrRXZlbnQq
PihldmVudCkpOworICAgIHJldHVybiBUUlVFOworfQogI2VuZGlmIC8vIFVTRShHVEs0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBmNjA2NDFhNWVjNmYuLjc3M2QxNGI3MDRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NyBAQAorMjAyMC0wNC0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dUSzRdIEFkZCBzdXBwb3J0IGZvciBrZXkgZXZlbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUga2V5LXByZXNz
ZWQgYW5kIGtleS1yZWxlYXNlZCBldmVudHMgdXNpbmcgYSBHdGtFdmVudENvbnRyb2xsZXJLZXku
IFRvIHJlY2VpdmUga2V5IGV2ZW50cyB0aGUgd2lkZ2V0IG5lZWRzCisgICAgICAgIHRvIGJlIGZv
Y3VzZWQsIHNvIGFsc28gaW1wbGVtZW50IEd0a1dpZGdldENsYXNzOjpncmFiX2ZvY3VzIGFuZCBo
YW5kbGUgZW50ZXIgYW5kIGxlYXZlIGZvY3VzIGV2ZW50cy4gR1RLNCBuZWVkcworICAgICAgICB0
aGUgd2lkZ2V0IHVzZWQgYnkgdGhlIGtleSBiaW5kaW5ncyB0cmFuc2xhdG9yIHRvIGJlIGFkZGVk
IHRvIGEgcGFyZW50IHRvIGJlIGFibGUgdG8gZm9yd2FyZCBrZXkgZXZlbnRzLCBzbyBpdCdzCisg
ICAgICAgIG5vdyBhZGRlZCBhcyBhIGNoaWxkIGludGVybmFsIHdpZGdldCBvZiB0aGUgV2ViS2l0
V2VWaWV3QmFzZS4KKworICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3Q2hpbGRJc0ludGVybmFsV2lkZ2V0KToKKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdCYXNlQ29udGFpbmVyUmVtb3ZlKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdC
YXNlQ29udGFpbmVyRm9yYWxsKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRm9jdXNFbnRl
cik6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUZvY3VzTGVhdmUpOgorICAgICAgICAod2Vi
a2l0V2ViVmlld0Jhc2VLZXlQcmVzc2VkKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlS2V5
UmVsZWFzZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VHcmFiRm9jdXMpOgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VDb25zdHJ1Y3RlZCk6CisgICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfYmFzZV9jbGFzc19pbml0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdU
cmFuc2xhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6S2V5QmluZGluZ1RyYW5zbGF0b3I6Oktl
eUJpbmRpbmdUcmFuc2xhdG9yKToKKyAgICAgICAgKFdlYktpdDo6S2V5QmluZGluZ1RyYW5zbGF0
b3I6On5LZXlCaW5kaW5nVHJhbnNsYXRvcik6CisgICAgICAgIChXZWJLaXQ6OmhhbmRsZUN1c3Rv
bUtleUJpbmRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6S2V5QmluZGluZ1RyYW5zbGF0b3I6OmNv
bW1hbmRzRm9yS2V5RXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1Ry
YW5zbGF0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6S2V5QmluZGluZ1RyYW5zbGF0b3I6OndpZGdl
dCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OktleUJpbmRpbmdUcmFuc2xhdG9yOjpkZXN0cm95
ZWQpOgorCiAyMDIwLTA0LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLNF0gQWRkIHN1cHBvcnQgZm9yIG1vdGlvbiBldmVudHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZmM0M2Qw
Mjk1MTliLi5kMDZmZTc3YjgxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0
ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJF
dmVudEZhY3RvcnkuY3BwCkBAIC0yODEsMTUgKzI4MSwxMCBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGNv
bnN0CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+
PiYmIHByZWVkaXRVbmRlcmxpbmVzLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYgcHJlZWRpdFNl
bGVjdGlvblJhbmdlLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKQogewotI2lmIFVTRShHVEs0
KQotICAgIGd1aW50IGtleXZhbCA9IDA7Ci0gICAgZ3VpbnQxNiBrZXljb2RlID0gMDsKLSNlbHNl
CiAgICAgZ3VpbnQga2V5dmFsOwogICAgIGdka19ldmVudF9nZXRfa2V5dmFsKGV2ZW50LCAma2V5
dmFsKTsKICAgICBndWludDE2IGtleWNvZGU7CiAgICAgZ2RrX2V2ZW50X2dldF9rZXljb2RlKGV2
ZW50LCAma2V5Y29kZSk7Ci0jZW5kaWYKICAgICBHZGtFdmVudFR5cGUgdHlwZSA9IGdka19ldmVu
dF9nZXRfZXZlbnRfdHlwZShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpKTsKIAogICAgIHJl
dHVybiBXZWJLZXlib2FyZEV2ZW50KApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCAzMjEyY2Q3MDU0MDcuLjZiYjQy
MDBhYjI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTQ2Niw3ICs0NjYsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZVVucmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkKIHN0YXRpYyBib29sIHdl
YmtpdFdlYlZpZXdDaGlsZElzSW50ZXJuYWxXaWRnZXQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZp
ZXdCYXNlLCBHdGtXaWRnZXQqIHdpZGdldCkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKLSAgICByZXR1cm4gd2lkZ2V0ID09IHByaXYt
Pmluc3BlY3RvclZpZXcgfHwgd2lkZ2V0ID09IHByaXYtPmRpYWxvZzsKKyAgICByZXR1cm4gd2lk
Z2V0ID09IHByaXYtPmluc3BlY3RvclZpZXcgfHwgd2lkZ2V0ID09IHByaXYtPmRpYWxvZyB8fCB3
aWRnZXQgPT0gcHJpdi0+a2V5QmluZGluZ1RyYW5zbGF0b3Iud2lkZ2V0KCk7CiB9CiAKIHN0YXRp
YyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29udGFpbmVyQWRkKEd0a0NvbnRhaW5lciogY29udGFp
bmVyLCBHdGtXaWRnZXQqIHdpZGdldCkKQEAgLTUyOCw3ICs1MjgsOSBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lclJlbW92ZShHdGtDb250YWluZXIqIGNvbnRhaW5lciwg
R3RrV2lkZ2V0KgogICAgICAgICBwcml2LT5kaWFsb2cgPSBudWxscHRyOwogICAgICAgICBpZiAo
Z3RrX3dpZGdldF9nZXRfdmlzaWJsZSh3aWRnZXRDb250YWluZXIpKQogICAgICAgICAgICAgZ3Rr
X3dpZGdldF9ncmFiX2ZvY3VzKHdpZGdldENvbnRhaW5lcik7Ci0gICAgfSBlbHNlIHsKKyAgICB9
IGVsc2UgaWYgKHByaXYtPmtleUJpbmRpbmdUcmFuc2xhdG9yLndpZGdldCgpID09IHdpZGdldCkK
KyAgICAgICAgcHJpdi0+a2V5QmluZGluZ1RyYW5zbGF0b3IuZGVzdHJveWVkKCk7CisgICAgZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChwcml2LT5jaGlsZHJlbi5jb250YWlucyh3aWRnZXQpKTsKICAg
ICAgICAgcHJpdi0+Y2hpbGRyZW4ucmVtb3ZlKHdpZGdldCk7CiAgICAgfQpAQCAtNTUzLDYgKzU1
NSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29udGFpbmVyRm9yYWxsKEd0a0Nv
bnRhaW5lciogY29udGFpbmVyLCBnYm9vbGVhbiBpCiAgICAgICAgICAgICAoKmNhbGxiYWNrKShj
aGlsZCwgY2FsbGJhY2tEYXRhKTsKICAgICB9CiAKKyAgICBpZiAoaW5jbHVkZUludGVybmFscyAm
JiBwcml2LT5rZXlCaW5kaW5nVHJhbnNsYXRvci53aWRnZXQoKSkKKyAgICAgICAgKCpjYWxsYmFj
aykocHJpdi0+a2V5QmluZGluZ1RyYW5zbGF0b3Iud2lkZ2V0KCksIGNhbGxiYWNrRGF0YSk7CisK
ICAgICBpZiAoaW5jbHVkZUludGVybmFscyAmJiBwcml2LT5pbnNwZWN0b3JWaWV3KQogICAgICAg
ICAoKmNhbGxiYWNrKShwcml2LT5pbnNwZWN0b3JWaWV3LCBjYWxsYmFja0RhdGEpOwogCkBAIC04
NzYsNyArODgxLDcxIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUtleVJlbGVh
c2VFdmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRLZXkqCiAKICAgICByZXR1cm4gR0RL
X0VWRU5UX1NUT1A7CiB9CisjZW5kaWYKKworI2lmIFVTRShHVEs0KQorc3RhdGljIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VGb2N1c0VudGVyKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwg
R3RrRXZlbnRDb250cm9sbGVyKikKK3sKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEZvY3VzKHdl
YlZpZXdCYXNlLCB0cnVlKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VGb2N1
c0xlYXZlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgR3RrRXZlbnRDb250cm9sbGVy
KikKK3sKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEZvY3VzKHdlYlZpZXdCYXNlLCBmYWxzZSk7
Cit9CisKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZUtleVByZXNzZWQoV2ViS2l0
V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCB1bnNpZ25lZCBrZXl2YWwsIHVuc2lnbmVkLCBHZGtN
b2RpZmllclR5cGUgc3RhdGUsIEd0a0V2ZW50Q29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAg
ICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKKwor
I2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgT1MoTElOVVgpCisgICAgaWYgKChzdGF0ZSAm
IEdES19DT05UUk9MX01BU0spICYmIChzdGF0ZSAmIEdES19TSElGVF9NQVNLKSAmJiBrZXl2YWwg
PT0gR0RLX0tFWV9HKSB7CisgICAgICAgIGF1dG8mIHByZWZlcmVuY2VzID0gcHJpdi0+cGFnZVBy
b3h5LT5wcmVmZXJlbmNlcygpOworICAgICAgICBwcmVmZXJlbmNlcy5zZXRSZXNvdXJjZVVzYWdl
T3ZlcmxheVZpc2libGUoIXByZWZlcmVuY2VzLnJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZSgp
KTsKKyAgICAgICAgcmV0dXJuIEdES19FVkVOVF9TVE9QOworICAgIH0KKyNlbmRpZgogCisgICAg
aWYgKHByaXYtPmRpYWxvZykKKyAgICAgICAgcmV0dXJuIGd0a19ldmVudF9jb250cm9sbGVyX2tl
eV9mb3J3YXJkKEdUS19FVkVOVF9DT05UUk9MTEVSX0tFWShjb250cm9sbGVyKSwgcHJpdi0+ZGlh
bG9nKTsKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBpZiAocHJpdi0+ZnVsbFNj
cmVlbk1vZGVBY3RpdmUpIHsKKyAgICAgICAgc3dpdGNoIChrZXl2YWwpIHsKKyAgICAgICAgY2Fz
ZSBHREtfS0VZX0VzY2FwZToKKyAgICAgICAgY2FzZSBHREtfS0VZX2Y6CisgICAgICAgIGNhc2Ug
R0RLX0tFWV9GOgorICAgICAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5mdWxsU2NyZWVuTWFuYWdl
cigpLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgIHJldHVybiBHREtfRVZF
TlRfU1RPUDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorI2VuZGlmCisKKyAgICBhdXRvKiBldmVudCA9IGd0a19ldmVudF9jb250cm9sbGVy
X2dldF9jdXJyZW50X2V2ZW50KGNvbnRyb2xsZXIpOworICAgIGF1dG8gZmlsdGVyUmVzdWx0ID0g
cHJpdi0+aW5wdXRNZXRob2RGaWx0ZXIuZmlsdGVyS2V5RXZlbnQoZXZlbnQpOworICAgIGlmICgh
ZmlsdGVyUmVzdWx0LmhhbmRsZWQpIHsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGZpbHRlclJlc3VsdC5r
ZXlUZXh0LAorICAgICAgICAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6SGFuZGxlZEJ5SW5w
dXRNZXRob2Q6Ok5vLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9wdCwgcHJpdi0+a2V5QmluZGlu
Z1RyYW5zbGF0b3IuY29tbWFuZHNGb3JLZXlFdmVudChHVEtfRVZFTlRfQ09OVFJPTExFUl9LRVko
Y29udHJvbGxlcikpKSk7CisgICAgfQorCisgICAgcmV0dXJuIEdES19FVkVOVF9TVE9QOworfQor
CitzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUtleVJlbGVhc2VkKFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJWaWV3QmFzZSwgdW5zaWduZWQsIHVuc2lnbmVkLCBHZGtNb2RpZmllclR5cGUsIEd0
a0V2ZW50Q29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBXZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKKworICAgIGF1dG8qIGV2ZW50ID0gZ3Rr
X2V2ZW50X2NvbnRyb2xsZXJfZ2V0X2N1cnJlbnRfZXZlbnQoY29udHJvbGxlcik7CisgICAgaWYg
KCFwcml2LT5pbnB1dE1ldGhvZEZpbHRlci5maWx0ZXJLZXlFdmVudChldmVudCkuaGFuZGxlZCkg
eworICAgICAgICBwcml2LT5wYWdlUHJveHktPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudChldmVudCwgeyB9LAorICAgICAgICAgICAgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudDo6SGFuZGxlZEJ5SW5wdXRNZXRob2Q6Ok5vLCBXVEY6Om51bGxvcHQsIFdURjo6bnVsbG9w
dCwgeyB9KSk7CisgICAgfQorfQorI2VuZGlmCisKKyNpZiAhVVNFKEdUSzQpCiBzdGF0aWMgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZUhhbmRsZU1vdXNlRXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdl
YlZpZXdCYXNlLCBHZGtFdmVudCogZXZlbnQpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CkBAIC0xNTI0LDYgKzE1OTMsMTQgQEAgc3Rh
dGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VIaWVyYXJjaHlDaGFuZ2VkKEd0a1dpZGdldCogd2lk
Z2V0LCBHdGtXaWRnZXQqIG9sZFQKIH0KICNlbmRpZgogCisjaWYgVVNFKEdUSzQpCitzdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VHcmFiRm9jdXMoR3RrV2lkZ2V0KiB3aWRnZXQpCit7
CisgICAgZ3RrX3Jvb3Rfc2V0X2ZvY3VzKGd0a193aWRnZXRfZ2V0X3Jvb3Qod2lkZ2V0KSwgd2lk
Z2V0KTsKKyAgICByZXR1cm4gVFJVRTsKK30KKyNlbmRpZgorCiBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld0Jhc2VGb2N1cyhHdGtXaWRnZXQqIHdpZGdldCwgR3RrRGlyZWN0aW9uVHlwZSBk
aXJlY3Rpb24pCiB7CiAgICAgLy8gSWYgYSBkaWFsb2cgaXMgYWN0aXZlLCB3ZSBuZWVkIHRvIGZv
cndhcmQgZm9jdXMgZXZlbnRzIHRoZXJlLiBUaGlzCkBAIC0xNTUzLDE1ICsxNjMwLDE3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQog
CiAgICAgR3RrV2lkZ2V0KiB2aWV3V2lkZ2V0ID0gR1RLX1dJREdFVChvYmplY3QpOwogICAgIGd0
a193aWRnZXRfc2V0X2Nhbl9mb2N1cyh2aWV3V2lkZ2V0LCBUUlVFKTsKKworICAgIFdlYktpdFdl
YlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9XRUJfVklFV19CQVNFKG9iamVjdCktPnBy
aXY7CisgICAgcHJpdi0+cGFnZUNsaWVudCA9IG1ha2VVbmlxdWU8UGFnZUNsaWVudEltcGw+KHZp
ZXdXaWRnZXQpOworICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIodmlld1dpZGdl
dCksIHByaXYtPmtleUJpbmRpbmdUcmFuc2xhdG9yLndpZGdldCgpKTsKKwogI2lmICFVU0UoR1RL
NCkKICAgICBndGtfZHJhZ19kZXN0X3NldCh2aWV3V2lkZ2V0LCBzdGF0aWNfY2FzdDxHdGtEZXN0
RGVmYXVsdHM+KDApLCBudWxscHRyLCAwLAogICAgICAgICBzdGF0aWNfY2FzdDxHZGtEcmFnQWN0
aW9uPihHREtfQUNUSU9OX0NPUFkgfCBHREtfQUNUSU9OX01PVkUgfCBHREtfQUNUSU9OX0xJTksg
fCBHREtfQUNUSU9OX1BSSVZBVEUpKTsKICAgICBndGtfZHJhZ19kZXN0X3NldF90YXJnZXRfbGlz
dCh2aWV3V2lkZ2V0LCBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS50YXJnZXRMaXN0KCkp
OwogI2VuZGlmCiAKLSAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJLSVRf
V0VCX1ZJRVdfQkFTRShvYmplY3QpLT5wcml2OwotICAgIHByaXYtPnBhZ2VDbGllbnQgPSBtYWtl
VW5pcXVlPFBhZ2VDbGllbnRJbXBsPih2aWV3V2lkZ2V0KTsKLQogI2lmIFVTRShHVEs0KQogICAg
IGF1dG8qIGNvbnRyb2xsZXIgPSBndGtfZXZlbnRfY29udHJvbGxlcl9zY3JvbGxfbmV3KEdUS19F
VkVOVF9DT05UUk9MTEVSX1NDUk9MTF9CT1RIX0FYRVMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rf
b2JqZWN0KGNvbnRyb2xsZXIsICJzY3JvbGwiLCBHX0NBTExCQUNLKHdlYmtpdFdlYlZpZXdCYXNl
U2Nyb2xsKSwgdmlld1dpZGdldCwgR19DT05ORUNUX1NXQVBQRUQpOwpAQCAtMTU3Miw2ICsxNjUx
LDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29uc3RydWN0ZWQoR09iamVjdCog
b2JqZWN0KQogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0KGNvbnRyb2xsZXIsICJtb3Rpb24i
LCBHX0NBTExCQUNLKHdlYmtpdFdlYlZpZXdCYXNlTW90aW9uKSwgdmlld1dpZGdldCwgR19DT05O
RUNUX1NXQVBQRUQpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0KGNvbnRyb2xsZXIsICJs
ZWF2ZSIsIEdfQ0FMTEJBQ0sod2Via2l0V2ViVmlld0Jhc2VMZWF2ZSksIHZpZXdXaWRnZXQsIEdf
Q09OTkVDVF9TV0FQUEVEKTsKICAgICBndGtfd2lkZ2V0X2FkZF9jb250cm9sbGVyKHZpZXdXaWRn
ZXQsIGNvbnRyb2xsZXIpOworCisgICAgY29udHJvbGxlciA9IGd0a19ldmVudF9jb250cm9sbGVy
X2ZvY3VzX25ldygpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0KGNvbnRyb2xsZXIsICJl
bnRlciIsIEdfQ0FMTEJBQ0sod2Via2l0V2ViVmlld0Jhc2VGb2N1c0VudGVyKSwgdmlld1dpZGdl
dCwgR19DT05ORUNUX1NXQVBQRUQpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0KGNvbnRy
b2xsZXIsICJsZWF2ZSIsIEdfQ0FMTEJBQ0sod2Via2l0V2ViVmlld0Jhc2VGb2N1c0xlYXZlKSwg
dmlld1dpZGdldCwgR19DT05ORUNUX1NXQVBQRUQpOworICAgIGd0a193aWRnZXRfYWRkX2NvbnRy
b2xsZXIodmlld1dpZGdldCwgY29udHJvbGxlcik7CisKKyAgICBjb250cm9sbGVyID0gZ3RrX2V2
ZW50X2NvbnRyb2xsZXJfa2V5X25ldygpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0KGNv
bnRyb2xsZXIsICJrZXktcHJlc3NlZCIsIEdfQ0FMTEJBQ0sod2Via2l0V2ViVmlld0Jhc2VLZXlQ
cmVzc2VkKSwgdmlld1dpZGdldCwgR19DT05ORUNUX1NXQVBQRUQpOworICAgIGdfc2lnbmFsX2Nv
bm5lY3Rfb2JqZWN0KGNvbnRyb2xsZXIsICJrZXktcmVsZWFzZWQiLCBHX0NBTExCQUNLKHdlYmtp
dFdlYlZpZXdCYXNlS2V5UmVsZWFzZWQpLCB2aWV3V2lkZ2V0LCBHX0NPTk5FQ1RfU1dBUFBFRCk7
CisgICAgZ3RrX3dpZGdldF9hZGRfY29udHJvbGxlcih2aWV3V2lkZ2V0LCBjb250cm9sbGVyKTsK
ICNlbmRpZgogfQogCkBAIC0xNTk0LDggKzE2ODMsMTAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJW
aWUKICNlbmRpZgogICAgIHdpZGdldENsYXNzLT5tYXAgPSB3ZWJraXRXZWJWaWV3QmFzZU1hcDsK
ICAgICB3aWRnZXRDbGFzcy0+dW5tYXAgPSB3ZWJraXRXZWJWaWV3QmFzZVVubWFwOwotI2lmICFV
U0UoR1RLNCkKKyNpZiBVU0UoR1RLNCkKKyAgICB3aWRnZXRDbGFzcy0+Z3JhYl9mb2N1cyA9IHdl
YmtpdFdlYlZpZXdCYXNlR3JhYkZvY3VzOwogICAgIHdpZGdldENsYXNzLT5mb2N1cyA9IHdlYmtp
dFdlYlZpZXdCYXNlRm9jdXM7CisjZWxzZQogICAgIHdpZGdldENsYXNzLT5mb2N1c19pbl9ldmVu
dCA9IHdlYmtpdFdlYlZpZXdCYXNlRm9jdXNJbkV2ZW50OwogICAgIHdpZGdldENsYXNzLT5mb2N1
c19vdXRfZXZlbnQgPSB3ZWJraXRXZWJWaWV3QmFzZUZvY3VzT3V0RXZlbnQ7CiAgICAgd2lkZ2V0
Q2xhc3MtPmtleV9wcmVzc19ldmVudCA9IHdlYmtpdFdlYlZpZXdCYXNlS2V5UHJlc3NFdmVudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNs
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0
b3IuY3BwCmluZGV4IDdlNjUyMjUyYzVlMS4uODcyM2VlNTVkNDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKQEAgLTE3
MywyMyArMTczLDI4IEBAIHN0YXRpYyB2b2lkIG1vdmVDdXJzb3JDYWxsYmFjayhHdGtXaWRnZXQq
IHdpZGdldCwgR3RrTW92ZW1lbnRTdGVwIHN0ZXAsIGdpbnQgY291CiBLZXlCaW5kaW5nVHJhbnNs
YXRvcjo6S2V5QmluZGluZ1RyYW5zbGF0b3IoKQogICAgIDogbV9uYXRpdmVXaWRnZXQoZ3RrX3Rl
eHRfdmlld19uZXcoKSkKIHsKLSAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0Lmdl
dCgpLCAiYmFja3NwYWNlIiwgR19DQUxMQkFDSyhiYWNrc3BhY2VDYWxsYmFjayksIHRoaXMpOwot
ICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQuZ2V0KCksICJjdXQtY2xpcGJvYXJk
IiwgR19DQUxMQkFDSyhjdXRDbGlwYm9hcmRDYWxsYmFjayksIHRoaXMpOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQuZ2V0KCksICJjb3B5LWNsaXBib2FyZCIsIEdfQ0FMTEJB
Q0soY29weUNsaXBib2FyZENhbGxiYWNrKSwgdGhpcyk7Ci0gICAgZ19zaWduYWxfY29ubmVjdCht
X25hdGl2ZVdpZGdldC5nZXQoKSwgInBhc3RlLWNsaXBib2FyZCIsIEdfQ0FMTEJBQ0socGFzdGVD
bGlwYm9hcmRDYWxsYmFjayksIHRoaXMpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVX
aWRnZXQuZ2V0KCksICJzZWxlY3QtYWxsIiwgR19DQUxMQkFDSyhzZWxlY3RBbGxDYWxsYmFjayks
IHRoaXMpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVXaWRnZXQuZ2V0KCksICJtb3Zl
LWN1cnNvciIsIEdfQ0FMTEJBQ0sobW92ZUN1cnNvckNhbGxiYWNrKSwgdGhpcyk7Ci0gICAgZ19z
aWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5nZXQoKSwgImRlbGV0ZS1mcm9tLWN1cnNvciIs
IEdfQ0FMTEJBQ0soZGVsZXRlRnJvbUN1cnNvckNhbGxiYWNrKSwgdGhpcyk7Ci0gICAgZ19zaWdu
YWxfY29ubmVjdChtX25hdGl2ZVdpZGdldC5nZXQoKSwgInRvZ2dsZS1vdmVyd3JpdGUiLCBHX0NB
TExCQUNLKHRvZ2dsZU92ZXJ3cml0ZUNhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29u
bmVjdChtX25hdGl2ZVdpZGdldCwgImJhY2tzcGFjZSIsIEdfQ0FMTEJBQ0soYmFja3NwYWNlQ2Fs
bGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LCAiY3V0
LWNsaXBib2FyZCIsIEdfQ0FMTEJBQ0soY3V0Q2xpcGJvYXJkQ2FsbGJhY2spLCB0aGlzKTsKKyAg
ICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LCAiY29weS1jbGlwYm9hcmQiLCBHX0NB
TExCQUNLKGNvcHlDbGlwYm9hcmRDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5l
Y3QobV9uYXRpdmVXaWRnZXQsICJwYXN0ZS1jbGlwYm9hcmQiLCBHX0NBTExCQUNLKHBhc3RlQ2xp
cGJvYXJkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lk
Z2V0LCAic2VsZWN0LWFsbCIsIEdfQ0FMTEJBQ0soc2VsZWN0QWxsQ2FsbGJhY2spLCB0aGlzKTsK
KyAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LCAibW92ZS1jdXJzb3IiLCBHX0NB
TExCQUNLKG1vdmVDdXJzb3JDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
bV9uYXRpdmVXaWRnZXQsICJkZWxldGUtZnJvbS1jdXJzb3IiLCBHX0NBTExCQUNLKGRlbGV0ZUZy
b21DdXJzb3JDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVX
aWRnZXQsICJ0b2dnbGUtb3ZlcndyaXRlIiwgR19DQUxMQkFDSyh0b2dnbGVPdmVyd3JpdGVDYWxs
YmFjayksIHRoaXMpOwogI2lmICFVU0UoR1RLNCkKLSAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0
aXZlV2lkZ2V0LmdldCgpLCAicG9wdXAtbWVudSIsIEdfQ0FMTEJBQ0socG9wdXBNZW51Q2FsbGJh
Y2spLCB0aGlzKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KG1fbmF0aXZlV2lkZ2V0LmdldCgpLCAi
c2hvdy1oZWxwIiwgR19DQUxMQkFDSyhzaG93SGVscENhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19z
aWduYWxfY29ubmVjdChtX25hdGl2ZVdpZGdldCwgInBvcHVwLW1lbnUiLCBHX0NBTExCQUNLKHBv
cHVwTWVudUNhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtX25hdGl2ZVdp
ZGdldCwgInNob3ctaGVscCIsIEdfQ0FMTEJBQ0soc2hvd0hlbHBDYWxsYmFjayksIHRoaXMpOwog
I2VuZGlmCiAjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMjQsIDApCi0gICAgZ19zaWduYWxfY29u
bmVjdChtX25hdGl2ZVdpZGdldC5nZXQoKSwgImluc2VydC1lbW9qaSIsIEdfQ0FMTEJBQ0soaW5z
ZXJ0RW1vamlDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9uYXRpdmVX
aWRnZXQsICJpbnNlcnQtZW1vamkiLCBHX0NBTExCQUNLKGluc2VydEVtb2ppQ2FsbGJhY2spLCB0
aGlzKTsKICNlbmRpZgogfQogCitLZXlCaW5kaW5nVHJhbnNsYXRvcjo6fktleUJpbmRpbmdUcmFu
c2xhdG9yKCkKK3sKKyAgICBBU1NFUlQoIW1fbmF0aXZlV2lkZ2V0KTsKK30KKwogc3RydWN0IEtl
eUNvbWJpbmF0aW9uRW50cnkgewogICAgIHVuc2lnbmVkIGdka0tleUNvZGU7CiAgICAgdW5zaWdu
ZWQgc3RhdGU7CkBAIC0yMTEsMjQgKzIxNiw4IEBAIHN0YXRpYyBjb25zdCBLZXlDb21iaW5hdGlv
bkVudHJ5IGN1c3RvbUtleUJpbmRpbmdzW10gPSB7CiAgICAgeyBHREtfS0VZX0lTT19FbnRlciwg
R0RLX1NISUZUX01BU0ssICAgIkluc2VydExpbmVCcmVhayIgfSwKIH07CiAKLVZlY3RvcjxTdHJp
bmc+IEtleUJpbmRpbmdUcmFuc2xhdG9yOjpjb21tYW5kc0ZvcktleUV2ZW50KEdka0V2ZW50S2V5
KiBldmVudCkKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiBoYW5kbGVDdXN0b21LZXlCaW5kaW5ncyh1
bnNpZ25lZCBrZXl2YWwsIEdka01vZGlmaWVyVHlwZSBzdGF0ZSkKIHsKLSAgICBBU1NFUlQobV9w
ZW5kaW5nRWRpdG9yQ29tbWFuZHMuaXNFbXB0eSgpKTsKLQotICAgIGd1aW50IGtleXZhbDsKLSAg
ICBHZGtNb2RpZmllclR5cGUgc3RhdGU7Ci0jaWYgVVNFKEdUSzQpCi0gICAga2V5dmFsID0gMDsK
LSAgICBzdGF0ZSA9IHN0YXRpY19jYXN0PEdka01vZGlmaWVyVHlwZT4oMCk7Ci0jZWxzZQotICAg
IGdka19ldmVudF9nZXRfa2V5dmFsKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCks
ICZrZXl2YWwpOwotICAgIGdka19ldmVudF9nZXRfc3RhdGUocmVpbnRlcnByZXRfY2FzdDxHZGtF
dmVudCo+KGV2ZW50KSwgJnN0YXRlKTsKLQotICAgIGd0a19iaW5kaW5nc19hY3RpdmF0ZV9ldmVu
dChHX09CSkVDVChtX25hdGl2ZVdpZGdldC5nZXQoKSksIGV2ZW50KTsKLSNlbmRpZgotICAgIGlm
ICghbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gV1RG
TW92ZShtX3BlbmRpbmdFZGl0b3JDb21tYW5kcyk7Ci0KICAgICAvLyBGb3Iga2V5cHJlc3MgZXZl
bnRzLCB3ZSB3YW50IGNoYXJDb2RlKCksIGJ1dCBrZXlDb2RlKCkgZG9lcyB0aGF0LgogICAgIHVu
c2lnbmVkIG1hcEtleSA9IChzdGF0ZSAmIChHREtfU0hJRlRfTUFTSyB8IEdES19DT05UUk9MX01B
U0sgfCBHREtfTU9EMV9NQVNLKSkgPDwgMTYgfCBrZXl2YWw7CiAgICAgaWYgKCFtYXBLZXkpCkBA
IC0yNDIsNCArMjMxLDMzIEBAIFZlY3RvcjxTdHJpbmc+IEtleUJpbmRpbmdUcmFuc2xhdG9yOjpj
b21tYW5kc0ZvcktleUV2ZW50KEdka0V2ZW50S2V5KiBldmVudCkKICAgICByZXR1cm4geyB9Owog
fQogCisjaWYgVVNFKEdUSzQpCitWZWN0b3I8U3RyaW5nPiBLZXlCaW5kaW5nVHJhbnNsYXRvcjo6
Y29tbWFuZHNGb3JLZXlFdmVudChHdGtFdmVudENvbnRyb2xsZXJLZXkqIGNvbnRyb2xsZXIpCit7
CisgICAgQVNTRVJUKG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmlzRW1wdHkoKSk7CisKKyAgICBn
dGtfZXZlbnRfY29udHJvbGxlcl9rZXlfZm9yd2FyZChHVEtfRVZFTlRfQ09OVFJPTExFUl9LRVko
Y29udHJvbGxlciksIG1fbmF0aXZlV2lkZ2V0KTsKKyAgICBpZiAoIW1fcGVuZGluZ0VkaXRvckNv
bW1hbmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUobV9wZW5kaW5nRWRpdG9y
Q29tbWFuZHMpOworCisgICAgYXV0byogZXZlbnQgPSBndGtfZXZlbnRfY29udHJvbGxlcl9nZXRf
Y3VycmVudF9ldmVudChHVEtfRVZFTlRfQ09OVFJPTExFUihjb250cm9sbGVyKSk7CisgICAgcmV0
dXJuIGhhbmRsZUN1c3RvbUtleUJpbmRpbmdzKGdka19rZXlfZXZlbnRfZ2V0X2tleXZhbChldmVu
dCksIGdka19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUoZXZlbnQpKTsKK30KKyNlbHNlCitWZWN0
b3I8U3RyaW5nPiBLZXlCaW5kaW5nVHJhbnNsYXRvcjo6Y29tbWFuZHNGb3JLZXlFdmVudChHZGtF
dmVudEtleSogZXZlbnQpCit7CisgICAgQVNTRVJUKG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmlz
RW1wdHkoKSk7CisKKyAgICBndGtfYmluZGluZ3NfYWN0aXZhdGVfZXZlbnQoR19PQkpFQ1QobV9u
YXRpdmVXaWRnZXQpLCBldmVudCk7CisgICAgaWYgKCFtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fcGVuZGluZ0VkaXRvckNvbW1hbmRz
KTsKKworICAgIGd1aW50IGtleXZhbDsKKyAgICBnZGtfZXZlbnRfZ2V0X2tleXZhbChyZWludGVy
cHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCAma2V5dmFsKTsKKyAgICBHZGtNb2RpZmllclR5
cGUgc3RhdGU7CisgICAgZ2RrX2V2ZW50X2dldF9zdGF0ZShyZWludGVycHJldF9jYXN0PEdka0V2
ZW50Kj4oZXZlbnQpLCAmc3RhdGUpOworICAgIHJldHVybiBoYW5kbGVDdXN0b21LZXlCaW5kaW5n
cyhrZXl2YWwsIHN0YXRlKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRv
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgK
aW5kZXggOGViYjE0NDBlZTY3Li43ODg3ODQ1Njc3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLCAyMDExLCAyMDIwIElnYWxpYSBTLkwuCiAgKgogICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBA
IC0xNiwxNiArMTYsMTUgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICAqLwogCi0jaWZu
ZGVmIEtleUJpbmRpbmdUcmFuc2xhdG9yX2gKLSNkZWZpbmUgS2V5QmluZGluZ1RyYW5zbGF0b3Jf
aAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0dSZWZQdHJHdGsuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK3R5
cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OworCiAjaWYgVVNFKEdUSzQpCi10eXBl
ZGVmIHN0cnVjdCBfR2RrS2V5RXZlbnQgR2RrS2V5RXZlbnQ7Ci10eXBlZGVmIEdka0tleUV2ZW50
IEdka0V2ZW50S2V5OwordHlwZWRlZiBzdHJ1Y3QgX0d0a0V2ZW50Q29udHJvbGxlcktleSBHdGtF
dmVudENvbnRyb2xsZXJLZXk7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50S2V5IEdk
a0V2ZW50S2V5OwogI2VuZGlmCkBAIC0zNSwxNyArMzQsMjIgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBLZXlCaW5kaW5nVHJhbnNsYXRvciB7CiBwdWJsaWM6CiAgICAgS2V5QmluZGluZ1Ry
YW5zbGF0b3IoKTsKKyAgICB+S2V5QmluZGluZ1RyYW5zbGF0b3IoKTsKKworICAgIEd0a1dpZGdl
dCogd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVXaWRnZXQ7IH0KKyAgICB2b2lkIGRl
c3Ryb3llZCgpIHsgbV9uYXRpdmVXaWRnZXQgPSBudWxscHRyOyB9CiAKKyNpZiBVU0UoR1RLNCkK
KyAgICBWZWN0b3I8U3RyaW5nPiBjb21tYW5kc0ZvcktleUV2ZW50KEd0a0V2ZW50Q29udHJvbGxl
cktleSopOworI2Vsc2UKICAgICBWZWN0b3I8U3RyaW5nPiBjb21tYW5kc0ZvcktleUV2ZW50KEdk
a0V2ZW50S2V5Kik7CisjZW5kaWYKICAgICB2b2lkIGFkZFBlbmRpbmdFZGl0b3JDb21tYW5kKGNv
bnN0IGNoYXIqIGNvbW1hbmQpIHsgbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMuYXBwZW5kKGNvbW1h
bmQpOyB9CiAKIHByaXZhdGU6Ci0gICAgR1JlZlB0cjxHdGtXaWRnZXQ+IG1fbmF0aXZlV2lkZ2V0
OworICAgIEd0a1dpZGdldCogbV9uYXRpdmVXaWRnZXQ7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9w
ZW5kaW5nRWRpdG9yQ29tbWFuZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2Vu
ZGlmCi0KLQo=
</data>
<flag name="review"
          id="413203"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>