<?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>188301</bug_id>
          
          <creation_ts>2018-08-03 03:13:26 -0700</creation_ts>
          <short_desc>[WPE] WebDriver: add support for action commands</short_desc>
          <delta_ts>2018-08-03 03:43:25 -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>WPE WebKit</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1447570</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 03:13:26 -0700</bug_when>
    <thetext>WPE doesn&apos;t support action commands because the platform specific code for handling events is not implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447571</commentid>
    <comment_count>1</comment_count>
      <attachid>346468</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 03:26:38 -0700</bug_when>
    <thetext>Created attachment 346468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447573</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-03 03:29: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>1447578</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 03:43:25 -0700</bug_when>
    <thetext>Committed r234543: &lt;https://trac.webkit.org/changeset/234543&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346468</attachid>
            <date>2018-08-03 03:26:38 -0700</date>
            <delta_ts>2018-08-03 03:34:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-wd-events.diff</filename>
            <type>text/plain</type>
            <size>25303</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNmY2YmIzNGZkOGUuLmZmNzVhNmZkYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM4IEBACisyMDE4LTA4LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBXZWJEcml2ZXI6IGFkZCBzdXBwb3J0IGZvciBhY3Rpb24g
Y29tbWFuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4ODMwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdQRSBkb2Vzbid0IHN1cHBvcnQgYWN0aW9uIGNvbW1hbmRzIGJlY2F1c2UgdGhlIHBsYXRmb3Jt
IHNwZWNpZmljIGNvZGUgZm9yIGhhbmRsaW5nIGV2ZW50cyBpcyBub3QgaW1wbGVtZW50ZWQuCisK
KyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDogQWRkIG5ldyBmaWxlIHRvIGNvbXBpbGF0aW9uLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6IFVzZSB0aGUg
ZHJhd2luZyBhcmVhIHNpemUgYXMgd2luZG93IHNpemUgaW4gV1BFLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnZpZXdCYWNrZW5kKTogUmV0dXJuIHRoZSBXUEUgYmFja2VuZCBvZiB0aGUgdmll
dy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1Nb3VzZUludGVyYWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1LZXlib2Fy
ZEludGVyYWN0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpw
ZXJmb3JtSW50ZXJhY3Rpb25TZXF1ZW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpjYW5jZWxJbnRlcmFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Npb25XUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6bW9kaWZpZXJzVG9FdmVudFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
bW91c2VCdXR0b25Ub1dQRUJ1dHRvbik6CisgICAgICAgIChXZWJLaXQ6OnN0YXRlTW9kaWZpZXJG
b3JXUEVCdXR0b24pOgorICAgICAgICAoV2ViS2l0Ojpkb01vdXNlRXZlbnQpOgorICAgICAgICAo
V2ViS2l0Ojpkb01vdGlvbkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6ZG9LZXlTdHJva2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OmtleUNvZGVGb3JWaXJ0dWFs
S2V5KToKKyAgICAgICAgKFdlYktpdDo6bW9kaWZpZXJzRm9yS2V5Q29kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9y
bVNpbXVsYXRlS2V5U2VxdWVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0JhY2tlbmQpOiBSZXR1cm4gdGhlIFdQRSBiYWNr
ZW5kLgorCiAyMDE4LTA4LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbV1BFXSBJbXBsZW1lbnQgTW91c2VFdmVudC5idXR0b25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzV1BFLnR4dAppbmRleCA3NTg0NDc0ZjQzYi4uYzcxYWU1YzExY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BF
LnR4dApAQCAtMTcyLDYgKzE3Miw4IEBAIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIEBu
by11bmlmeQogCiBVSVByb2Nlc3MvQXV0b21hdGlvbi9jYWlyby9XZWJBdXRvbWF0aW9uU2Vzc2lv
bkNhaXJvLmNwcAogCitVSVByb2Nlc3MvQXV0b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Np
b25XUEUuY3BwCisKIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL1Byb2Nlc3NMYXVuY2hlckdMaWIu
Y3BwCiAKIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBmNWRhYjFlOWE3NS4uYzZjMjFkMGQ4YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRVSUNsaWVudC5oIgog
CiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCIKQEAgLTE2MCw3ICsxNjEsMTEgQEAgcHJp
dmF0ZToKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RmxvYXRSZWN0KGdlb21l
dHJ5KSk7CiAjZWxpZiBQTEFURk9STShXUEUpCiAgICAgICAgIC8vIEZJWE1FOiBJIGd1ZXNzIHRo
aXMgaXMgYWN0dWFsbHkgdGhlIHZpZXcgc2l6ZSBpbiBXUEUuIFdlIG5lZWQgbW9yZSByZWZhY3Rv
cmluZyBoZXJlLgotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICBXZWJD
b3JlOjpGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAgYXV0byYgcGFnZSA9IHdlYmtpdFdlYlZpZXdH
ZXRQYWdlKG1fd2ViVmlldyk7CisgICAgICAgIGlmIChwYWdlLmRyYXdpbmdBcmVhKCkpCisgICAg
ICAgICAgICByZWN0LnNldFNpemUocGFnZS5kcmF3aW5nQXJlYSgpLT5zaXplKCkpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlY3QpKTsKICNlbmRpZgogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApp
bmRleCA5OGE4N2I1MjFiMy4uZDg3ZjJmZGJhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBQ
YWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tXUEU6OlZpZXcmIHZpZXcpCiAKIFBhZ2VD
bGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwoKSA9IGRlZmF1bHQ7CiAKK3N0cnVjdCB3cGVfdmll
d19iYWNrZW5kKiBQYWdlQ2xpZW50SW1wbDo6dmlld0JhY2tlbmQoKQoreworICAgIHJldHVybiBt
X3ZpZXcuYmFja2VuZCgpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogewogICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPEFjY2VsZXJhdGVkRHJhd2luZ0FyZWFQcm94eT4obV92aWV3LnBhZ2Uo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
LmgKaW5kZXggNGUwNGQzOTRkYWQuLjI0ZDlmODMzZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCkBAIC0yOCw2ICsyOCw4IEBACiAj
aW5jbHVkZSAiUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuaCIKIAorc3RydWN0IHdwZV92aWV3X2JhY2tlbmQ7CisKIG5hbWVzcGFjZSBXS1dQRSB7CiBj
bGFzcyBWaWV3OwogfQpAQCAtNDcsNiArNDksOCBAQCBwdWJsaWM6CiAgICAgUGFnZUNsaWVudElt
cGwoV0tXUEU6OlZpZXcmKTsKICAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50SW1wbCgpOwogCisgICAg
c3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIHZpZXdCYWNrZW5kKCk7CisKIHByaXZhdGU6CiAgICAg
Ly8gUGFnZUNsaWVudAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVh
dGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4
IDMxODRmMjUwMjU0Li5mNjNiYjJiYWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTE0
OTYsNyArMTQ5Niw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNpbXVsYXRlS2V5Ym9h
cmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEtleWJvCiAgICAgLy8gV2FpdCBmb3Ig
a2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2sgdG8gcnVuIHdoZW4gYWxsIGV2ZW50cyBhcmUg
aGFuZGxlZC4KIH0KIAotI2lmIFVTRShBUFBLSVQpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBVU0Uo
QVBQS0lUKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIHN0YXRpYyBXZWJFdmVu
dDo6TW9kaWZpZXJzIHByb3RvY29sTW9kaWZpZXJUb1dlYkV2ZW50TW9kaWZpZXIoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5TW9kaWZpZXIgbW9kaWZpZXIpCiB7CiAgICAgc3dp
dGNoIChtb2RpZmllcikgewpAQCAtMTUzMCwxMSArMTUzMCwxMSBAQCBzdGF0aWMgV2ViTW91c2VF
dmVudDo6QnV0dG9uIHByb3RvY29sTW91c2VCdXR0b25Ub1dlYk1vdXNlRXZlbnRCdXR0b24oSW5z
cGVjdG9yOgogCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KLSNlbmRpZiAv
LyBVU0UoQVBQS0lUKSB8fCBQTEFURk9STShHVEspCisjZW5kaWYgLy8gVVNFKEFQUEtJVCkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnBlcmZvcm1Nb3VzZUludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBK
U09OOjpPYmplY3QmIHJlcXVlc3RlZFBvc2l0aW9uT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1vdXNl
QnV0dG9uU3RyaW5nLCBjb25zdCBTdHJpbmcmIG1vdXNlSW50ZXJhY3Rpb25TdHJpbmcsIGNvbnN0
IEpTT046OkFycmF5JiBrZXlNb2RpZmllclN0cmluZ3MsIFJlZjxQZXJmb3JtTW91c2VJbnRlcmFj
dGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewotI2lmICFVU0UoQVBQS0lUKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmICFVU0UoQVBQS0lUKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
V1BFKQogICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKE5vdEltcGxlbWVudGVk
KTsKICNlbHNlCiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxl
KGhhbmRsZSk7CkBAIC0xNjAzLDEyICsxNjAzLDEyIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnBlcmZvcm1Nb3VzZUludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBK
CiAgICAgICAgICAgICBjYWxsYmFja1RvQ2FuY2VsKHN0ZDo6bnVsbG9wdCk7CiAgICAgICAgIH0K
ICAgICB9KTsKLSNlbmRpZiAvLyBVU0UoQVBQS0lUKSB8fCBQTEFURk9STShHVEspCisjZW5kaWYg
Ly8gVVNFKEFQUEtJVCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB9CiAKIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyhjb25z
dCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSlNPTjo6QXJyYXkmIGludGVyYWN0aW9ucywgUmVmPFBl
cmZvcm1LZXlib2FyZEludGVyYWN0aW9uc0NhbGxiYWNrPiYmIGNhbGxiYWNrKQogewotI2lmICFQ
TEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoTm90SW1wbGVtZW50ZWQpOwogI2Vsc2UKICAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKQEAgLTE2ODUsMTAgKzE2ODUs
MTAgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rp
b25zKGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb24KIAogICAgIGZvciAoYXV0byYgYWN0aW9uIDog
YWN0aW9uc1RvUGVyZm9ybSkKICAgICAgICAgYWN0aW9uKCk7Ci0jZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB9CiAKLSNpZiBVU0UoQVBQS0lUKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgVVNFKEFQUEtJVCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiBzdGF0aWMgU2ltdWxhdGVkSW5wdXRTb3VyY2VUeXBlIHNpbXVsYXRlZElucHV0U291cmNl
VHlwZUZyb21Qcm90b2NvbFNvdXJjZVR5cGUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6SW5wdXRTb3VyY2VUeXBlIHByb3RvY29sVHlwZSkKIHsKICAgICBzd2l0Y2ggKHByb3RvY29s
VHlwZSkgewpAQCAtMTcwNCwxMyArMTcwNCwxMyBAQCBzdGF0aWMgU2ltdWxhdGVkSW5wdXRTb3Vy
Y2VUeXBlIHNpbXVsYXRlZElucHV0U291cmNlVHlwZUZyb21Qcm90b2NvbFNvdXJjZVR5cGUoSQog
CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KLSNlbmRpZiAvLyBVU0UoQVBQ
S0lUKSB8fCBQTEFURk9STShHVEspCisjZW5kaWYgLy8gVVNFKEFQUEtJVCkgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBlcmZv
cm1JbnRlcmFjdGlvblNlcXVlbmNlKGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcq
IG9wdGlvbmFsRnJhbWVIYW5kbGUsIGNvbnN0IEpTT046OkFycmF5JiBpbnB1dFNvdXJjZXMsIGNv
bnN0IEpTT046OkFycmF5JiBzdGVwcywgUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9uOjpQZXJmb3Jt
SW50ZXJhY3Rpb25TZXF1ZW5jZUNhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIC8vIFRoaXMg
Y29tbWFuZCBpbXBsZW1lbnRzIFdlYktpdCBzdXBwb3J0IGZvciDCpzE3LjUgUGVyZm9ybSBBY3Rp
b25zLgogCi0jaWYgIVVTRShBUFBLSVQpICYmICFQTEFURk9STShHVEspCisjaWYgIVVTRShBUFBL
SVQpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiAgICAgQVNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1IoTm90SW1wbGVtZW50ZWQpOwogI2Vsc2UKICAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKQEAgLTE4NjEsMTQg
KzE4NjEsMTQgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGVyZm9ybUludGVyYWN0aW9u
U2VxdWVuY2UoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnMKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKCk7CiAgICAgfSk7Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OmNhbmNlbEludGVyYWN0aW9uU2VxdWVuY2UoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNv
bnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSwgUmVmPENhbmNlbEludGVyYWN0aW9uU2Vx
dWVuY2VDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICAvLyBUaGlzIGNvbW1hbmQgaW1wbGVt
ZW50cyBXZWJLaXQgc3VwcG9ydCBmb3IgwqcxNy42IFJlbGVhc2UgQWN0aW9ucy4KIAotI2lmICFV
U0UoQVBQS0lUKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFVU0UoQVBQS0lUKSAmJiAhUExBVEZP
Uk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SKE5vdEltcGxlbWVudGVkKTsKICNlbHNlCiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0g
d2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7CkBAIC0xODg5LDcgKzE4ODksNyBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjYW5jZWxJbnRlcmFjdGlvblNlcXVlbmNlKGNvbnN0IFN0
cmluZyYgaGFuZGxlLCBjb25zdAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsYmFjay0+
c2VuZFN1Y2Nlc3MoKTsKICAgICB9KTsKLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKQorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVl
bnNob3QoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhh
bmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbE5vZGVIYW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlv
bmFsU2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgY29uc3QgYm9vbCogb3B0aW9uYWxDbGlwVG9WaWV3
cG9ydCwgUmVmPFRha2VTY3JlZW5zaG90Q2FsbGJhY2s+JiYgY2FsbGJhY2spCkBAIC0xOTMyLDE5
ICsxOTMyLDE5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpZFRha2VTY3JlZW5zaG90
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFNoYXJlYWJsCiAKIC8vIFBsYXRmb3JtLWRlcGVu
ZGVudCBJbXBsZW1lbnRhdGlvbiBTdHVicy4KIAotI2lmICFQTEFURk9STShNQUMpICYmICFQTEFU
Rk9STShHVEspCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRG
T1JNKFdQRSkKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3Vz
ZUludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIE1vdXNlSW50ZXJhY3Rpb24sIFdlYk1vdXNlRXZl
bnQ6OkJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJFdmVudDo6TW9kaWZpZXJz
KQogewogfQotI2VuZGlmIC8vICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShHVEspCisjZW5k
aWYgLy8gIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkK
IAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKKyNpZiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiAKIAogdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2Vi
UGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXks
IENoYXJLZXk+JiYpCiB7CiB9Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykgJiYg
IVBMQVRGT1JNKFdQRSkKIAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShDQUlSTykKIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNl
NjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL3dwZS9XZWJBdXRvbWF0aW9u
U2Vzc2lvbldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL3dwZS9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmY1NGMyMWVkNmMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi93cGUvV2ViQXV0b21hdGlvblNlc3Npb25XUEUuY3BwCkBAIC0w
LDAgKzEsMzE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oIgorCisjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworc3RhdGljIHVpbnQzMl90IG1vZGlmaWVyc1RvRXZlbnRTdGF0ZShXZWJFdmVu
dDo6TW9kaWZpZXJzIG1vZGlmaWVycykKK3sKKyAgICB1aW50MzJfdCBzdGF0ZSA9IDA7CisKKyAg
ICBpZiAobW9kaWZpZXJzICYgV2ViRXZlbnQ6OkNvbnRyb2xLZXkpCisgICAgICAgIHN0YXRlIHw9
IHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9jb250cm9sOworICAgIGlmIChtb2RpZmllcnMg
JiBXZWJFdmVudDo6U2hpZnRLZXkpCisgICAgICAgIHN0YXRlIHw9IHdwZV9pbnB1dF9rZXlib2Fy
ZF9tb2RpZmllcl9zaGlmdDsKKyAgICBpZiAobW9kaWZpZXJzICYgV2ViRXZlbnQ6OkFsdEtleSkK
KyAgICAgICAgc3RhdGUgfD0gd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX2FsdDsKKworICAg
IHJldHVybiBzdGF0ZTsKK30KKworc3RhdGljIHVuc2lnbmVkIG1vdXNlQnV0dG9uVG9XUEVCdXR0
b24oV2ViTW91c2VFdmVudDo6QnV0dG9uIGJ1dHRvbikKK3sKKyAgICBzd2l0Y2ggKGJ1dHRvbikg
eworICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9CdXR0b246CisgICAgY2FzZSBXZWJNb3VzZUV2
ZW50OjpMZWZ0QnV0dG9uOgorICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6Ok1pZGRsZUJ1dHRvbjoKKyAgICAgICAgcmV0dXJuIDM7CisgICAgY2FzZSBXZWJNb3VzZUV2
ZW50OjpSaWdodEJ1dHRvbjoKKyAgICAgICAgcmV0dXJuIDI7CisgICAgfQorICAgIHJldHVybiAx
OworfQorCitzdGF0aWMgdW5zaWduZWQgc3RhdGVNb2RpZmllckZvcldQRUJ1dHRvbih1bnNpZ25l
ZCBidXR0b24pCit7CisgICAgdWludDMyX3Qgc3RhdGUgPSAwOworCisgICAgc3dpdGNoIChidXR0
b24pIHsKKyAgICBjYXNlIDE6CisgICAgICAgIHN0YXRlIHw9IHdwZV9pbnB1dF9wb2ludGVyX21v
ZGlmaWVyX2J1dHRvbjE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgc3Rh
dGUgfD0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJfYnV0dG9uMjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSAzOgorICAgICAgICBzdGF0ZSB8PSB3cGVfaW5wdXRfcG9pbnRlcl9tb2RpZmll
cl9idXR0b24zOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICByZXR1cm4gc3RhdGU7Cit9CisKK3N0YXRpYyB2b2lkIGRvTW91c2VFdmVu
dChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogdmlld0JhY2tlbmQsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBsb2NhdGlvbiwgdW5zaWduZWQgYnV0dG9uLCB1bnNpZ25lZCBzdGF0ZSwgdWludDMy
X3QgbW9kaWZpZXJzKQoreworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBldmVu
dCB7IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uLCAwLCBsb2NhdGlvbi54KCks
IGxvY2F0aW9uLnkoKSwgYnV0dG9uLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3RhdGUgPyAxIDog
MCksIG1vZGlmaWVycyB9OworICAgIHdwZV92aWV3X2JhY2tlbmRfZGlzcGF0Y2hfcG9pbnRlcl9l
dmVudCh2aWV3QmFja2VuZCwgJmV2ZW50KTsKK30KKworc3RhdGljIHZvaWQgZG9Nb3Rpb25FdmVu
dChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogdmlld0JhY2tlbmQsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBsb2NhdGlvbiwgdWludDMyX3QgbW9kaWZpZXJzKQoreworICAgIHN0cnVjdCB3cGVf
aW5wdXRfcG9pbnRlcl9ldmVudCBldmVudCB7IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uLCAwLCBsb2NhdGlvbi54KCksIGxvY2F0aW9uLnkoKSwgMCwgMCwgbW9kaWZpZXJzIH07
CisgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNwYXRjaF9wb2ludGVyX2V2ZW50KHZpZXdCYWNrZW5k
LCAmZXZlbnQpOworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlTW91c2VJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIE1vdXNlSW50ZXJhY3Rpb24g
aW50ZXJhY3Rpb24sIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBsb2NhdGlvbkluVmlldywgV2ViRXZlbnQ6Ok1vZGlmaWVycyBrZXlNb2RpZmll
cnMpCit7CisgICAgdW5zaWduZWQgd3BlQnV0dG9uID0gbW91c2VCdXR0b25Ub1dQRUJ1dHRvbihi
dXR0b24pOworICAgIGF1dG8gbW9kaWZpZXIgPSBzdGF0ZU1vZGlmaWVyRm9yV1BFQnV0dG9uKHdw
ZUJ1dHRvbik7CisgICAgdWludDMyX3Qgc3RhdGUgPSBtb2RpZmllcnNUb0V2ZW50U3RhdGUoa2V5
TW9kaWZpZXJzKSB8IG1fY3VycmVudE1vZGlmaWVyczsKKworICAgIHN3aXRjaCAoaW50ZXJhY3Rp
b24pIHsKKyAgICBjYXNlIE1vdXNlSW50ZXJhY3Rpb246Ok1vdmU6CisgICAgICAgIGRvTW90aW9u
RXZlbnQocGFnZS52aWV3QmFja2VuZCgpLCBsb2NhdGlvbkluVmlldywgc3RhdGUpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1vdXNlSW50ZXJhY3Rpb246OkRvd246CisgICAgICAgIG1fY3Vy
cmVudE1vZGlmaWVycyB8PSBtb2RpZmllcjsKKyAgICAgICAgZG9Nb3VzZUV2ZW50KHBhZ2Uudmll
d0JhY2tlbmQoKSwgbG9jYXRpb25JblZpZXcsIHdwZUJ1dHRvbiwgMSwgc3RhdGUgfCBtb2RpZmll
cik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW91c2VJbnRlcmFjdGlvbjo6VXA6CisgICAg
ICAgIG1fY3VycmVudE1vZGlmaWVycyAmPSB+bW9kaWZpZXI7CisgICAgICAgIGRvTW91c2VFdmVu
dChwYWdlLnZpZXdCYWNrZW5kKCksIGxvY2F0aW9uSW5WaWV3LCB3cGVCdXR0b24sIDAsIHN0YXRl
ICYgfm1vZGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3VzZUludGVyYWN0aW9u
OjpTaW5nbGVDbGljazoKKyAgICAgICAgZG9Nb3VzZUV2ZW50KHBhZ2Uudmlld0JhY2tlbmQoKSwg
bG9jYXRpb25JblZpZXcsIHdwZUJ1dHRvbiwgMSwgc3RhdGUgfCBtb2RpZmllcik7CisgICAgICAg
IGRvTW91c2VFdmVudChwYWdlLnZpZXdCYWNrZW5kKCksIGxvY2F0aW9uSW5WaWV3LCB3cGVCdXR0
b24sIDAsIHN0YXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3VzZUludGVyYWN0aW9u
OjpEb3VibGVDbGljazoKKyAgICAgICAgZG9Nb3VzZUV2ZW50KHBhZ2Uudmlld0JhY2tlbmQoKSwg
bG9jYXRpb25JblZpZXcsIHdwZUJ1dHRvbiwgMSwgc3RhdGUgfCBtb2RpZmllcik7CisgICAgICAg
IGRvTW91c2VFdmVudChwYWdlLnZpZXdCYWNrZW5kKCksIGxvY2F0aW9uSW5WaWV3LCB3cGVCdXR0
b24sIDAsIHN0YXRlKTsKKyAgICAgICAgZG9Nb3VzZUV2ZW50KHBhZ2Uudmlld0JhY2tlbmQoKSwg
bG9jYXRpb25JblZpZXcsIHdwZUJ1dHRvbiwgMSwgc3RhdGUgfCBtb2RpZmllcik7CisgICAgICAg
IGRvTW91c2VFdmVudChwYWdlLnZpZXdCYWNrZW5kKCksIGxvY2F0aW9uSW5WaWV3LCB3cGVCdXR0
b24sIDAsIHN0YXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBk
b0tleVN0cm9rZUV2ZW50KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiB2aWV3QmFja2VuZCwgYm9v
bCBwcmVzc2VkLCB1aW50MzJfdCBrZXlDb2RlLCB1aW50MzJfdCBtb2RpZmllcnMsIGJvb2wgZG9S
ZWxlYXNlQWZ0ZXJQcmVzcyA9IGZhbHNlKQoreworICAgIHN0cnVjdCB3cGVfaW5wdXRfeGtiX2tl
eW1hcF9lbnRyeSogZW50cmllczsKKyAgICB1aW50MzJfdCBlbnRyaWVzQ291bnQ7CisgICAgd3Bl
X2lucHV0X3hrYl9jb250ZXh0X2dldF9lbnRyaWVzX2Zvcl9rZXlfY29kZSh3cGVfaW5wdXRfeGti
X2NvbnRleHRfZ2V0X2RlZmF1bHQoKSwga2V5Q29kZSwgJmVudHJpZXMsICZlbnRyaWVzQ291bnQp
OworICAgIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQgZXZlbnQgPSB7IDAsIGtleUNv
ZGUsIGVudHJpZXNDb3VudCA/IGVudHJpZXNbMF0uaGFyZHdhcmVfa2V5X2NvZGUgOiAwLCBwcmVz
c2VkLCBtb2RpZmllcnMgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX2Rpc3BhdGNoX2tleWJvYXJk
X2V2ZW50KHZpZXdCYWNrZW5kLCAmZXZlbnQpOworICAgIGZyZWUoZW50cmllcyk7CisKKyAgICBp
ZiAoZG9SZWxlYXNlQWZ0ZXJQcmVzcykgeworICAgICAgICBBU1NFUlQocHJlc3NlZCk7CisgICAg
ICAgIGV2ZW50LnByZXNzZWQgPSBmYWxzZTsKKyAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNw
YXRjaF9rZXlib2FyZF9ldmVudCh2aWV3QmFja2VuZCwgJmV2ZW50KTsKKyAgICB9Cit9CisKK3N0
YXRpYyB1aW50MzJfdCBrZXlDb2RlRm9yVmlydHVhbEtleShJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkKK3sKKyAgICBzd2l0Y2ggKGtleSkgeworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6Cisg
ICAgICAgIHJldHVybiBXUEVfS0VZX1NoaWZ0X1I7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb250cm9sOgorICAgICAgICByZXR1cm4gV1BF
X0tFWV9Db250cm9sX1I7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpBbHRlcm5hdGU6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0FsdF9MOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TWV0
YToKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfTWV0YV9SOworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKKyAgICAgICAgcmV0dXJu
IFdQRV9LRVlfRXhlY3V0ZTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkhlbHA6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0hlbHA7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpCYWNrc3Bh
Y2U6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0JhY2tTcGFjZTsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlRhYjoKKyAgICAgICAgcmV0dXJu
IFdQRV9LRVlfVGFiOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6Q2xlYXI6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0NsZWFyOworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW50ZXI6Cisg
ICAgICAgIHJldHVybiBXUEVfS0VZX1JldHVybjsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhdXNlOgorICAgICAgICByZXR1cm4gV1BFX0tF
WV9QYXVzZTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkNhbmNlbDoKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfQ2FuY2VsOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXNjYXBlOgorICAg
ICAgICByZXR1cm4gV1BFX0tFWV9Fc2NhcGU7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6CisgICAgICAgIHJldHVybiBXUEVfS0VZ
X1BhZ2VfVXA7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpQYWdlRG93bjoKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfUGFnZV9Eb3duOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgor
ICAgICAgICByZXR1cm4gV1BFX0tFWV9FbmQ7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpIb21lOgorICAgICAgICByZXR1cm4gV1BFX0tFWV9I
b21lOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TGVmdEFycm93OgorICAgICAgICByZXR1cm4gV1BFX0tFWV9MZWZ0OworICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VXBBcnJvdzoKKyAgICAg
ICAgcmV0dXJuIFdQRV9LRVlfVXA7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93OgorICAgICAgICByZXR1cm4gV1BFX0tFWV9S
aWdodDsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkRvd25BcnJvdzoKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRG93bjsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Okluc2VydDoKKyAgICAg
ICAgcmV0dXJuIFdQRV9LRVlfSW5zZXJ0OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RGVsZXRlOgorICAgICAgICByZXR1cm4gV1BFX0tFWV9E
ZWxldGU7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpTcGFjZToKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfc3BhY2U7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTZW1pY29sb246CisgICAg
ICAgIHJldHVybiBXUEVfS0VZX3NlbWljb2xvbjsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKKyAgICAgICAgcmV0dXJuIFdQRV9L
RVlfZXF1YWw7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpSZXR1cm46CisgICAgICAgIHJldHVybiBXUEVfS0VZX1JldHVybjsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDA6
CisgICAgICAgIHJldHVybiBXUEVfS0VZX0tQXzA7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgorICAgICAgICByZXR1cm4g
V1BFX0tFWV9LUF8xOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TnVtYmVyUGFkMjoKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfS1BfMjsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZDM6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0tQXzM7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0OgorICAgICAgICBy
ZXR1cm4gV1BFX0tFWV9LUF80OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNToKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfS1Bf
NTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
Ok51bWJlclBhZDY6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0tQXzY7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3OgorICAg
ICAgICByZXR1cm4gV1BFX0tFWV9LUF83OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkODoKKyAgICAgICAgcmV0dXJuIFdQRV9L
RVlfS1BfODsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZDk6CisgICAgICAgIHJldHVybiBXUEVfS0VZX0tQXzk7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRN
dWx0aXBseToKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfS1BfTXVsdGlwbHk7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6
CisgICAgICAgIHJldHVybiBXUEVfS0VZX0tQX0FkZDsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0OgorICAgICAg
ICByZXR1cm4gV1BFX0tFWV9LUF9TdWJ0cmFjdDsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKKyAgICAgICAg
cmV0dXJuIFdQRV9LRVlfS1BfU2VwYXJhdG9yOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVjaW1hbDoKKyAgICAgICAgcmV0
dXJuIFdQRV9LRVlfS1BfRGVjaW1hbDsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERpdmlkZToKKyAgICAgICAgcmV0dXJuIFdQ
RV9LRVlfS1BfRGl2aWRlOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6RnVuY3Rpb24xOgorICAgICAgICByZXR1cm4gV1BFX0tFWV9GMTsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uMjoKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjI7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjM6CisgICAgICAgIHJldHVy
biBXUEVfS0VZX0YzOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6RnVuY3Rpb240OgorICAgICAgICByZXR1cm4gV1BFX0tFWV9GNDsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9u
NToKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjU7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjY6CisgICAgICAgIHJldHVybiBX
UEVfS0VZX0Y2OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RnVuY3Rpb243OgorICAgICAgICByZXR1cm4gV1BFX0tFWV9GNzsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uODoK
KyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjg7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6CisgICAgICAgIHJldHVybiBXUEVf
S0VZX0Y5OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb24xMDoKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjEwOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMToK
KyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjExOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKKyAgICAgICAgcmV0dXJuIFdQ
RV9LRVlfRjEyOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAwOworfQorCitzdGF0aWMgdWludDMyX3QgbW9kaWZpZXJzRm9yS2V5Q29kZSh1bnNpZ25lZCBr
ZXlDb2RlKQoreworICAgIHN3aXRjaCAoa2V5Q29kZSkgeworICAgIGNhc2UgV1BFX0tFWV9TaGlm
dF9SOgorICAgICAgICByZXR1cm4gd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3NoaWZ0Owor
ICAgIGNhc2UgV1BFX0tFWV9Db250cm9sX1I6CisgICAgICAgIHJldHVybiB3cGVfaW5wdXRfa2V5
Ym9hcmRfbW9kaWZpZXJfY29udHJvbDsKKyAgICBjYXNlIFdQRV9LRVlfQWx0X0w6CisgICAgICAg
IHJldHVybiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfYWx0OworICAgIGNhc2UgV1BFX0tF
WV9NZXRhX1I6CisgICAgICAgIHJldHVybiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfbWV0
YTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwg
S2V5Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXks
IENoYXJLZXk+JiYga2V5KQoreworICAgIHVpbnQzMl90IGtleUNvZGU7CisgICAgV1RGOjpzd2l0
Y2hPbihrZXksCisgICAgICAgIFsmXSAoVmlydHVhbEtleSB2aXJ0dWFsS2V5KSB7CisgICAgICAg
ICAgICBrZXlDb2RlID0ga2V5Q29kZUZvclZpcnR1YWxLZXkodmlydHVhbEtleSk7CisgICAgICAg
IH0sCisgICAgICAgIFsmXSAoQ2hhcktleSBjaGFyS2V5KSB7CisgICAgICAgICAgICBrZXlDb2Rl
ID0gd3BlX3VuaWNvZGVfdG9fa2V5X2NvZGUoZ191dGY4X2dldF9jaGFyKCZjaGFyS2V5KSk7Cisg
ICAgICAgIH0KKyAgICApOworICAgIHVpbnQzMl90IG1vZGlmaWVycyA9IG1vZGlmaWVyc0Zvcktl
eUNvZGUoa2V5Q29kZSk7CisKKyAgICBzd2l0Y2ggKGludGVyYWN0aW9uKSB7CisgICAgY2FzZSBL
ZXlib2FyZEludGVyYWN0aW9uOjpLZXlQcmVzczoKKyAgICAgICAgbV9jdXJyZW50TW9kaWZpZXJz
IHw9IG1vZGlmaWVyczsKKyAgICAgICAgZG9LZXlTdHJva2VFdmVudChwYWdlLnZpZXdCYWNrZW5k
KCksIHRydWUsIGtleUNvZGUsIG1fY3VycmVudE1vZGlmaWVycyk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgS2V5Ym9hcmRJbnRlcmFjdGlvbjo6S2V5UmVsZWFzZToKKyAgICAgICAgbV9jdXJy
ZW50TW9kaWZpZXJzICY9IH5tb2RpZmllcnM7CisgICAgICAgIGRvS2V5U3Ryb2tlRXZlbnQocGFn
ZS52aWV3QmFja2VuZCgpLCBmYWxzZSwga2V5Q29kZSwgbV9jdXJyZW50TW9kaWZpZXJzKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBLZXlib2FyZEludGVyYWN0aW9uOjpJbnNlcnRCeUtleToK
KyAgICAgICAgZG9LZXlTdHJva2VFdmVudChwYWdlLnZpZXdCYWNrZW5kKCksIHRydWUsIGtleUNv
ZGUsIG1fY3VycmVudE1vZGlmaWVycywgdHJ1ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30K
Kwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNl
KFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKK3sKKyAgICBD
U3RyaW5nIGtleVNlcXVlbmNlVVRGOCA9IGtleVNlcXVlbmNlLnV0ZjgoKTsKKyAgICBjb25zdCBj
aGFyKiBwID0ga2V5U2VxdWVuY2VVVEY4LmRhdGEoKTsKKyAgICBkbyB7CisgICAgICAgIGRvS2V5
U3Ryb2tlRXZlbnQocGFnZS52aWV3QmFja2VuZCgpLCB0cnVlLCB3cGVfdW5pY29kZV90b19rZXlf
Y29kZShnX3V0ZjhfZ2V0X2NoYXIocCkpLCBtX2N1cnJlbnRNb2RpZmllcnMsIHRydWUpOworICAg
ICAgICBwID0gZ191dGY4X25leHRfY2hhcihwKTsKKyAgICB9IHdoaWxlICgqcCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDhjMmIyYjQ1ZmE1Li42YTViMjU5ZmNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTIwNSw2ICsyMDUsMTAgQEAgc3RydWN0IEF0dGFjaG1lbnRJbmZv
OwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShXUEUpCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVKU0NvbnRleHQq
IEpTR2xvYmFsQ29udGV4dFJlZjsKICNlbmRpZgpAQCAtNzExLDYgKzcxNSw5IEBAIHB1YmxpYzoK
ICNpZiBQTEFURk9STShXSU4pCiAgICAgUGxhdGZvcm1XaWRnZXQgdmlld1dpZGdldCgpOwogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiB2aWV3
QmFja2VuZCgpOworI2VuZGlmCiAKICAgICBib29sIGlzUHJvY2Vzc2luZ01vdXNlRXZlbnRzKCkg
Y29uc3Q7CiAgICAgdm9pZCBwcm9jZXNzTmV4dFF1ZXVlZE1vdXNlRXZlbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKaW5kZXggNjhmM2M1
OGEwMzUuLmUyMGI1NmI3NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
cGUvV2ViUGFnZVByb3h5V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUv
V2ViUGFnZVByb3h5V1BFLmNwcApAQCAtMzgsNiArMzgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorc3RydWN0
IHdwZV92aWV3X2JhY2tlbmQqIFdlYlBhZ2VQcm94eTo6dmlld0JhY2tlbmQoKQoreworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50SW1wbCY+KG1fcGFnZUNsaWVudCkudmlld0JhY2tl
bmQoKTsKK30KKwogU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3Qg
U3RyaW5nJiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCiB7CiAgICAgcmV0dXJuIFdlYkNv
cmU6OnN0YW5kYXJkVXNlckFnZW50KGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCk7Cg==
</data>
<flag name="review"
          id="364329"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>