<?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>203896</bug_id>
          
          <creation_ts>2019-11-06 05:22:52 -0800</creation_ts>
          <short_desc>[GTK] Add pointer lock permission request API</short_desc>
          <delta_ts>2019-11-08 01:19:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587754</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-06 05:22:52 -0800</bug_when>
    <thetext>Now that we have pointer lock support, we should provide API to be able to deny a pointer lock request or notify the user before locking the pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587756</commentid>
    <comment_count>1</comment_count>
      <attachid>382921</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-06 05:25:15 -0800</bug_when>
    <thetext>Created attachment 382921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587757</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-11-06 05:26:05 -0800</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>1587787</commentid>
    <comment_count>3</comment_count>
      <attachid>382921</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-11-06 08:45:27 -0800</bug_when>
    <thetext>Comment on attachment 382921
Patch

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

&gt; Source/WebKit/UIProcess/API/gtk/WebKitPointerLockPermissionRequest.h:37
&gt; +#define WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST            (webkit_pointer_lock_permission_request_get_type())
&gt; +#define WEBKIT_POINTER_LOCK_PERMISSION_REQUEST(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST, WebKitPointerLockPermissionRequest))
&gt; +#define WEBKIT_POINTER_LOCK_PERMISSION_REQUEST_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST, WebKitPointerLockPermissionRequestClass))
&gt; +#define WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST))
&gt; +#define WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST))
&gt; +#define WEBKIT_POINTER_LOCK_PERMISSION_REQUEST_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST, WebKitPointerLockPermissionRequestClass))

Isn&apos;t missing to add WebKitPointerLockPermissionRequest to WebKitAutocleanups.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588134</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-07 00:26:19 -0800</bug_when>
    <thetext>Yes, I always forget to add the autocleanups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588161</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-11-07 03:08:23 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; Yes, I always forget to add the autocleanups.

Ok.

r=me once added the autocleanups.

It still needs another review to land since it adds new public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588177</commentid>
    <comment_count>6</comment_count>
      <attachid>382921</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-11-07 05:40:56 -0800</bug_when>
    <thetext>Comment on attachment 382921
Patch

LGTM, please remember to add the autocleanup as suggested by
Carlos López before landing. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588595</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-08 01:19:09 -0800</bug_when>
    <thetext>Committed r252234: &lt;https://trac.webkit.org/changeset/252234&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382921</attachid>
            <date>2019-11-06 05:25:15 -0800</date>
            <delta_ts>2019-11-07 05:40:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-pointer-lock-permission-request.diff</filename>
            <type>text/plain</type>
            <size>26928</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMjNhZTRkYWI5MGEuLmFlYTE2NTZlNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisyMDE5LTExLTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgcG9pbnRlciBsb2NrIHBlcm1pc3Npb24gcmVxdWVz
dCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
Mzg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIFdlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QgY2xhc3MgdG8gaGFuZGxlIHBv
aW50ZXIgbG9jayBwZXJtaXNzaW9ucy4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgICh3
ZWJraXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAod2Via2l0
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdERlbnkpOgorICAgICAgICAod2Via2l0X3Blcm1p
c3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdCk6CisgICAgICAgICh3ZWJraXRQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0RGlzcG9zZSk6CisgICAgICAgICh3ZWJraXRfcG9pbnRlcl9sb2Nr
X3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdFBvaW50ZXJM
b2NrUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAgICAgICAod2Via2l0UG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdERpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6Cisg
ICAgICAgIChVSUNsaWVudDo6flVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UGVybWlzc2lvblJl
cXVlc3QpOgorICAgICAgICAod2Via2l0V2ViVmlld0RlbnlQb2ludGVyTG9ja1JlcXVlc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3QuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLTQuMC50eXBlczoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDoK
KwogMjAxOS0xMS0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFBvaW50ZXIgTG9jayBBUEkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGFlYzg3YWUwMTEyLi5mYzQ5Y2I4YjU5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC05NSw2ICs5NSw3IEBAIHNldChXZWJLaXQyR1RLX0lO
U1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRPcHRpb25NZW51SXRlbS5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQbHVnaW4uaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lEZWNpc2lvbi5oCiAgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludEN1c3RvbVdpZGdldC5oCiAgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
R1RLLnR4dAppbmRleCBlNzY1MDY2NmExMC4uZmI4MDE0OGYzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4
dApAQCAtMTU4LDYgKzE1OCw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRQbHVnaW4uY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFBvbGljeURlY2lzaW9uLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRQcml2YXRlLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MzI2MzQ4M2Q5NTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5o
IgorCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJL
aXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktp
dFdlYlZpZXdQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KKworLyoq
CisgKiBTRUNUSU9OOiBXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0CisgKiBAU2hv
cnRfZGVzY3JpcHRpb246IEEgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBsb2NraW5nIHRoZSBwb2lu
dGVyCisgKiBAVGl0bGU6IFdlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QKKyAqIEBT
ZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAq
IFdlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3Qg
Zm9yCisgKiBwZXJtaXNzaW9uIHRvIGRlY2lkZSB3aGV0aGVyIFdlYktpdCBjYW4gbG9jayB0aGUg
cG9pbnRlciBkZXZpY2Ugd2hlbgorICogcmVxdWVzdGVkIGJ5IHdlYiBjb250ZW50LgorICoKKyAq
IFdoZW4gYSBXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0IGlzIG5vdCBoYW5kbGVk
IGJ5IHRoZSB1c2VyLAorICogaXQgaXMgYWxsb3dlZCBieSBkZWZhdWx0LgorICoKKyAqIFNpbmNl
OiAyLjI4CisgKi8KKworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRl
cmZhY2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKik7CisKK3N0cnVjdCBfV2Vi
S2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgeworICAgIEdSZWZQdHI8V2Vi
S2l0V2ViVmlldz4gd2ViVmlldzsKKyAgICBib29sIG1hZGVEZWNpc2lvbjsKK307CisKK1dFQktJ
VF9ERUZJTkVfVFlQRV9XSVRIX0NPREUoCisgICAgV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdCwgd2Via2l0X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVlc3QsIEdfVFlQRV9P
QkpFQ1QsCisgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9UWVBFX1BFUk1JU1NJT05f
UkVRVUVTVCwgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdCkpCisKK3N0
YXRpYyB2b2lkIHdlYmtpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQ
ZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQoV0VCS0lUX0lTX1BPSU5U
RVJfTE9DS19QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0UG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfUE9JTlRFUl9MT0NL
X1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRl
Y2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICB3ZWJraXRXZWJWaWV3UmVxdWVzdFBvaW50ZXJMb2NrKHByaXYtPndlYlZp
ZXcuZ2V0KCkpOworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Cit9CisKK3N0YXRpYyB2
b2lkIHdlYmtpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3REZW55KFdlYktpdFBlcm1pc3Np
b25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfUE9JTlRFUl9MT0NL
X1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRQb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9QT0lOVEVSX0xPQ0tfUEVSTUlT
U0lPTl9SRVFVRVNUKHJlcXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24g
YXQgYSB0aW1lLgorICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsK
KworICAgIHdlYmtpdFdlYlZpZXdEZW55UG9pbnRlckxvY2tSZXF1ZXN0KHByaXYtPndlYlZpZXcu
Z2V0KCkpOworICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lv
blJlcXVlc3RJZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmFsbG93ID0gd2Via2l0UG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdEFsbG93OworICAgIGlmYWNlLT5kZW55ID0gd2Via2l0UG9p
bnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdERlbnk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICAvLyBEZWZhdWx0IGJlaGF2aW91ciB3aGVuIG5vIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUgaXMg
YWxsb3dpbmcgdGhlIHJlcXVlc3QuCisgICAgd2Via2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdEFsbG93KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KSk7CisgICAgR19PQkpF
Q1RfQ0xBU1Mod2Via2l0X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2Ns
YXNzKS0+ZGlzcG9zZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcG9pbnRlcl9s
b2NrX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdFBvaW50ZXJMb2NrUGVybWlz
c2lvblJlcXVlc3RDbGFzcyoga2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+ZGlzcG9zZSA9IHdl
YmtpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3REaXNwb3NlOworfQorCitXZWJLaXRQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0Q3JlYXRlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgV2ViS2l0UG9pbnRlckxv
Y2tQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9QT0lOVEVSX0xPQ0tfUEVSTUlT
U0lPTl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9QT0lOVEVSX0xPQ0tfUEVSTUlT
U0lPTl9SRVFVRVNULCBudWxscHRyKSk7CisgICAgcmVxdWVzdC0+cHJpdi0+d2ViVmlldyA9IHdl
YlZpZXc7CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK3ZvaWQgd2Via2l0UG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdERpZExvc2VQb2ludGVyTG9jayhXZWJLaXRQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIHJlcXVlc3QtPnByaXYtPm1hZGVEZWNpc2lv
biA9IHRydWU7CisgICAgcmVxdWVzdC0+cHJpdi0+d2ViVmlldyA9IG51bGxwdHI7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGJlYTI4NzExNjMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQorCisjaW5jbHVkZSAiV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dC5oIgorI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKKworV2ViS2l0UG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdCogd2Via2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShX
ZWJLaXRXZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RE
aWRMb3NlUG9pbnRlckxvY2soV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCopOwor
CisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBiMjQzMjFmOGZjOC4u
OTcwNjBhNzY5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJLaXRH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdE5h
dmlnYXRpb25BY3Rpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCkBAIC01MCw2ICs1MSwxNCBAQCBw
dWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIH5VSUNsaWVudCgpCisgICAgeworI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCisgICAgICAgIGlmIChtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3QpCisgICAgICAgICAgICBnX29iamVjdF9yZW1vdmVfd2Vha19wb2ludGVyKEdfT0JKRUNUKG1f
cG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigm
bV9wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KSk7CisjZW5kaWYKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgdm9pZCBjcmVhdGVOZXdQYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMmJiB3aW5kb3dGZWF0dXJlcywgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlv
bj4mJiBhcGlOYXZpZ2F0aW9uQWN0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxX
ZWJQYWdlUHJveHk+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgIHsKQEAgLTI1
MywxNyArMjYyLDI4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICB2
b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXZWJQYWdlUHJveHkqIHBhZ2UpIGZpbmFsCiAgICAgewot
ICAgICAgICB3ZWJraXRXZWJWaWV3UmVxdWVzdFBvaW50ZXJMb2NrKG1fd2ViVmlldyk7CisgICAg
ICAgIEdSZWZQdHI8V2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdD4gcGVybWlzc2lv
blJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdENy
ZWF0ZShtX3dlYlZpZXcpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fcG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgICAgIG1fcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dCA9IHBlcm1pc3Npb25SZXF1ZXN0LmdldCgpOworICAgICAgICBnX29iamVjdF9hZGRfd2Vha19w
b2ludGVyKEdfT0JKRUNUKG1fcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCksIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCoqPigmbV9wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KSk7CisgICAg
ICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRf
UEVSTUlTU0lPTl9SRVFVRVNUKHBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViUGFnZVByb3h5KikgZmluYWwKICAgICB7Cisg
ICAgICAgIGlmIChtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QpIHsKKyAgICAgICAgICAg
IHdlYmtpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3REaWRMb3NlUG9pbnRlckxvY2sobV9w
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KTsKKyAgICAgICAgICAgIGdfb2JqZWN0X3JlbW92
ZV93ZWFrX3BvaW50ZXIoR19PQkpFQ1QobV9wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KSwg
cmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Qp
KTsKKyAgICAgICAgICAgIG1fcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCA9IG51bGxwdHI7
CisgICAgICAgIH0KICAgICAgICAgd2Via2l0V2ViVmlld0RpZExvc2VQb2ludGVyTG9jayhtX3dl
YlZpZXcpOwogICAgIH0KICNlbmRpZgogCi0KICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0KiBtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QgeyBudWxscHRyIH07Cisj
ZW5kaWYKIH07CiAKIHZvaWQgYXR0YWNoVUlDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlldy5jcHAKaW5kZXggM2UzNzYxM2RkMTYuLjQ3ODYwZWZjNjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtODEsNiAr
ODEsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIFBMQVRG
T1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiV2ViS2l0UHJpbnRPcGVyYXRpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViSW5zcGVjdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlUHJp
dmF0ZS5oIgpAQCAtNTA2LDYgKzUwNywxMyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmll
d0RlY2lkZVBvbGljeShXZWJLaXRXZWJWaWV3KiwgV2ViS2l0UG9saWN5RGVjaXNpb24qCiAKIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmll
dyosIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQogeworI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgaWYgKFdFQktJVF9JU19QT0lOVEVSX0xPQ0tfUEVSTUlTU0lPTl9SRVFV
RVNUKHJlcXVlc3QpKSB7CisgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfYWxsb3co
cmVxdWVzdCk7CisgICAgICAgIHJldHVybiBUUlVFOworICAgIH0KKyNlbmRpZgorCiAgICAgd2Vi
a2l0X3Blcm1pc3Npb25fcmVxdWVzdF9kZW55KHJlcXVlc3QpOwogICAgIHJldHVybiBUUlVFOwog
fQpAQCAtMjYzNSw2ICsyNjQzLDExIEBAIHZvaWQgd2Via2l0V2ViVmlld1JlcXVlc3RQb2ludGVy
TG9jayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogI2VuZGlmCiB9CiAKK3ZvaWQgd2Via2l0V2Vi
Vmlld0RlbnlQb2ludGVyTG9ja1JlcXVlc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAg
ICBnZXRQYWdlKHdlYlZpZXcpLmRpZERlbnlQb2ludGVyTG9jaygpOworfQorCiB2b2lkIHdlYmtp
dFdlYlZpZXdEaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKICNp
ZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaAppbmRleCAxMzgwMWMzZWQ3Yy4uYTVmOTliMzI1
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaApAQCAtMTA2LDUgKzEwNiw2IEBAIHZvaWQgd2Via2l0V2ViVmll
d0RpZFJlY2VpdmVVc2VyTWVzc2FnZShXZWJLaXRXZWJWaWV3KiwgV2ViS2l0OjpVc2VyTWVzc2Fn
ZSYmLCBDCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogdm9pZCB3ZWJraXRXZWJWaWV3UmVx
dWVzdFBvaW50ZXJMb2NrKFdlYktpdFdlYlZpZXcqKTsKK3ZvaWQgd2Via2l0V2ViVmlld0RlbnlQ
b2ludGVyTG9ja1JlcXVlc3QoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJraXRXZWJWaWV3RGlk
TG9zZVBvaW50ZXJMb2NrKFdlYktpdFdlYlZpZXcqKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25S
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvaW50ZXJM
b2NrUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZWFjYzViOWMyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVm
aW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElP
TikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJl
Y3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0X2gKKyNkZWZpbmUgV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5o
PgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfUE9JTlRFUl9MT0NLX1BF
Uk1JU1NJT05fUkVRVUVTVCAgICAgICAgICAgICh3ZWJraXRfcG9pbnRlcl9sb2NrX3Blcm1pc3Np
b25fcmVxdWVzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfUE9JTlRFUl9MT0NLX1BFUk1J
U1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9QT0lOVEVSX0xPQ0tfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJL
aXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX1BPSU5URVJf
TE9DS19QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfUE9JTlRFUl9MT0NLX1BFUk1JU1NJT05fUkVR
VUVTVCwgV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUg
V0VCS0lUX0lTX1BPSU5URVJfTE9DS19QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfUE9JTlRFUl9MT0NL
X1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9JU19QT0lOVEVSX0xPQ0tfUEVS
TUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX1BPSU5URVJfTE9DS19QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2Rl
ZmluZSBXRUJLSVRfUE9JTlRFUl9MT0NLX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9QT0lOVEVS
X0xPQ0tfUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdCAgICAgICAgV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVk
ZWYgc3RydWN0IF9XZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJL
aXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0UG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0UG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICBXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsK
K307CisKK3N0cnVjdCBfV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsK
KyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7Cisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRf
cmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfcG9pbnRl
cl9sb2NrX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xT
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXggNTg1NmNjNDQ3
NDkuLjM0OTVkNTFmMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTcz
MCw2ICs3MzAsMjQgQEAgV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQog
d2Via2l0X2RldmljZV9pbmZvX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9O
PgogCis8U0VDVElPTj4KKzxGSUxFPldlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q8
L0ZJTEU+CitXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0CisKKzxTVUJTRUNUSU9O
IFN0YW5kYXJkPgorV2ViS2l0UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJL
SVRfVFlQRV9QT0lOVEVSX0xPQ0tfUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfUE9JTlRFUl9M
T0NLX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX0lTX1BPSU5URVJfTE9DS19QRVJNSVNTSU9O
X1JFUVVFU1QKK1dFQktJVF9QT0lOVEVSX0xPQ0tfUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitX
RUJLSVRfSVNfUE9JTlRFUl9MT0NLX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX1BP
SU5URVJfTE9DS19QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFBy
aXZhdGU+CitXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQord2Via2l0
X3BvaW50ZXJfbG9ja19wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwog
PFNFQ1RJT04+CiA8RklMRT5XZWJLaXROYXZpZ2F0aW9uQWN0aW9uPC9GSUxFPgogV2ViS2l0TmF2
aWdhdGlvbkFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLnR5cGVzCmluZGV4IGFkNWIwMjZiNjdjLi40OTM3YWJi
NTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLnR5cGVzCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLTQuMC50eXBlcwpAQCAtNDEsNCArNDEsNSBAQCB3ZWJraXRfb3B0aW9u
X21lbnVfZ2V0X3R5cGUKIHdlYmtpdF9vcHRpb25fbWVudV9pdGVtX2dldF90eXBlCiB3ZWJraXRf
ZGV2aWNlX2luZm9fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiB3ZWJraXRfZ2VvbG9jYXRp
b25fbWFuYWdlcl9nZXRfdHlwZQotd2Via2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9uX2dldF90eXBl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0X2dlb2xvY2F0aW9uX3Bvc2l0aW9u
X2dldF90eXBlCit3ZWJraXRfcG9pbnRlcl9sb2NrX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlw
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCA1ZGFh
YjA4NmU4Ny4uN2FhMzA1MTJjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTY0LDYgKzY0LDcg
QEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0QXBwbGljYXRpb25JbmZvLnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIueG1s
Ii8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVzZXJNZXNzYWdlLnhtbCIvPgor
ICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0LnhtbCIvPgogICA8L2NoYXB0ZXI+CiAKICAgPGNoYXB0ZXI+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCmluZGV4IDE2ZWY3ZWI2ZDQyLi40YzE5NjIxN2U2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTY0LDYgKzY0
LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdE9wdGlvbk1lbnVJdGVtLmg+CiAjaW5jbHVk
ZSA8d2Via2l0Mi9XZWJLaXRQZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0UGx1Z2luLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRQcmludEN1c3RvbVdpZGdl
dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0UHJpbnRPcGVyYXRpb24uaD4KICNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjUzOTViMjBkMi4uYjUxMzUz
NmVjZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxOS0xMS0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIHBvaW50ZXIgbG9jayBwZXJtaXNz
aW9uIHJlcXVlc3QgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM4OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBIYW5kbGUgcG9pbnRlciBsb2NrIHBlcm1pc3Npb24gcmVxdWVzdHMgaW4gTWluaUJy
b3dzZXIgYW5kIGFkZCBhIG5ldyB0ZXN0cyBjYXNlIHRvIGNoZWNrIHRoZSBuZXcgQVBJLgorCisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAgICAgKHBvaW50ZXJM
b2NrTWVzc2FnZVRpbWVvdXRDYWxsYmFjayk6CisgICAgICAgIChkZWNpZGVQZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChicm93c2VyVGFiRmluYWxpemUpOgorICAgICAgICAoYnJvd3NlclRh
YkNvbnN0cnVjdGVkKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3UG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgIChiZWZvcmVBbGwpOgorCiAyMDE5LTExLTA2ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbXBs
ZW1lbnQgc3VwcG9ydCBmb3IgUG9pbnRlciBMb2NrIEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
VGFiLmMKaW5kZXggMDdiMzg0NDllMzQuLjllOTk3OGVmZDNkIDEwMDY0NAotLS0gYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyVGFiLmMKQEAgLTQ4LDYgKzQ4LDggQEAgc3RydWN0IF9Ccm93c2VyVGFiIHsKICAgICBn
Ym9vbGVhbiBpbnNwZWN0b3JJc1Zpc2libGU7CiAgICAgR3RrV2lkZ2V0ICpmdWxsU2NyZWVuTWVz
c2FnZUxhYmVsOwogICAgIGd1aW50IGZ1bGxTY3JlZW5NZXNzYWdlTGFiZWxJZDsKKyAgICBHdGtX
aWRnZXQgKnBvaW50ZXJMb2NrTWVzc2FnZUxhYmVsOworICAgIGd1aW50IHBvaW50ZXJMb2NrTWVz
c2FnZUxhYmVsSWQ7CiAKICAgICAvKiBUYWIgVGl0bGUgKi8KICAgICBHdGtXaWRnZXQgKnRpdGxl
Qm94OwpAQCAtMjA0LDYgKzIwNiwxMyBAQCBzdGF0aWMgZ2Jvb2xlYW4gbG9hZEZhaWxlZFdpdGhU
TFNlcnJvcnMoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgY29uc3QgY2hhciAqZmFpbAogICAgIHJl
dHVybiBUUlVFOwogfQogCitzdGF0aWMgZ2Jvb2xlYW4gcG9pbnRlckxvY2tNZXNzYWdlVGltZW91
dENhbGxiYWNrKEJyb3dzZXJUYWIgKnRhYikKK3sKKyAgICBndGtfd2lkZ2V0X2hpZGUodGFiLT5w
b2ludGVyTG9ja01lc3NhZ2VMYWJlbCk7CisgICAgdGFiLT5wb2ludGVyTG9ja01lc3NhZ2VMYWJl
bElkID0gMDsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2b2lkIHBlcm1pc3Npb25S
ZXF1ZXN0RGlhbG9nUmVzcG9uc2UoR3RrV2lkZ2V0ICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFBl
cm1pc3Npb25SZXF1ZXN0RGF0YSAqcmVxdWVzdERhdGEpCiB7CiAgICAgc3dpdGNoIChyZXNwb25z
ZSkgewpAQCAtMjYyLDYgKzI3MSwxOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gZGVjaWRlUGVybWlzc2lv
blJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UGVybWlzc2lvbgogICAgICAg
ICB9CiAgICAgICAgIGdfZnJlZShvcmlnaW4pOwogICAgICAgICByZXR1cm4gRkFMU0U7CisgICAg
fSBlbHNlIGlmIChXRUJLSVRfSVNfUE9JTlRFUl9MT0NLX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KSkgeworICAgICAgICBjb25zdCBnY2hhciAqdGl0bGVPclVSSSA9IHdlYmtpdF93ZWJfdmll
d19nZXRfdGl0bGUodGFiLT53ZWJWaWV3KTsKKyAgICAgICAgaWYgKCF0aXRsZU9yVVJJIHx8ICF0
aXRsZU9yVVJJWzBdKQorICAgICAgICAgICAgdGl0bGVPclVSSSA9IHdlYmtpdF93ZWJfdmlld19n
ZXRfdXJpKHRhYi0+d2ViVmlldyk7CisKKyAgICAgICAgY2hhciAqbWVzc2FnZSA9IGdfc3RyZHVw
X3ByaW50ZigiJXMgd2FudHMgdG8gbG9jayB0aGUgcG9pbnRlci4gUHJlc3MgRVNDIHRvIGdldCB0
aGUgcG9pbnRlciBiYWNrLiIsIHRpdGxlT3JVUkkpOworICAgICAgICBndGtfbGFiZWxfc2V0X3Rl
eHQoR1RLX0xBQkVMKHRhYi0+cG9pbnRlckxvY2tNZXNzYWdlTGFiZWwpLCBtZXNzYWdlKTsKKyAg
ICAgICAgZ19mcmVlKG1lc3NhZ2UpOworICAgICAgICBndGtfd2lkZ2V0X3Nob3codGFiLT5wb2lu
dGVyTG9ja01lc3NhZ2VMYWJlbCk7CisKKyAgICAgICAgdGFiLT5wb2ludGVyTG9ja01lc3NhZ2VM
YWJlbElkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzKDIsIChHU291cmNlRnVuYylwb2ludGVyTG9j
a01lc3NhZ2VUaW1lb3V0Q2FsbGJhY2ssIHRhYik7CisgICAgICAgIGdfc291cmNlX3NldF9uYW1l
X2J5X2lkKHRhYi0+cG9pbnRlckxvY2tNZXNzYWdlTGFiZWxJZCwgIltXZWJLaXRdcG9pbnRlckxv
Y2tNZXNzYWdlVGltZW91dENhbGxiYWNrIik7CisgICAgICAgIHJldHVybiBUUlVFOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGdfcHJpbnQoIiVzIHJlcXVlc3Qgbm90IGhhbmRsZWRcbiIsIEdfT0JK
RUNUX1RZUEVfTkFNRShyZXF1ZXN0KSk7CiAgICAgICAgIHJldHVybiBGQUxTRTsKQEAgLTM1Myw2
ICszNzUsOCBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiRmluYWxpemUoR09iamVjdCAqZ09iamVj
dCkKIAogICAgIGlmICh0YWItPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWxJZCkKICAgICAgICAgZ19z
b3VyY2VfcmVtb3ZlKHRhYi0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJlbElkKTsKKyAgICBpZiAodGFi
LT5wb2ludGVyTG9ja01lc3NhZ2VMYWJlbElkKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUodGFi
LT5wb2ludGVyTG9ja01lc3NhZ2VMYWJlbElkKTsKIAogICAgIEdfT0JKRUNUX0NMQVNTKGJyb3dz
ZXJfdGFiX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKGdPYmplY3QpOwogfQpAQCAtMzkwLDYgKzQx
NCwxMiBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVj
dCkKICAgICBndGtfd2lkZ2V0X3NldF9ub19zaG93X2FsbCh0YWItPmZ1bGxTY3JlZW5NZXNzYWdl
TGFiZWwsIFRSVUUpOwogICAgIGd0a19vdmVybGF5X2FkZF9vdmVybGF5KEdUS19PVkVSTEFZKG92
ZXJsYXkpLCB0YWItPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWwpOwogCisgICAgdGFiLT5wb2ludGVy
TG9ja01lc3NhZ2VMYWJlbCA9IGd0a19sYWJlbF9uZXcoTlVMTCk7CisgICAgZ3RrX3dpZGdldF9z
ZXRfaGFsaWduKHRhYi0+cG9pbnRlckxvY2tNZXNzYWdlTGFiZWwsIEdUS19BTElHTl9DRU5URVIp
OworICAgIGd0a193aWRnZXRfc2V0X3ZhbGlnbih0YWItPnBvaW50ZXJMb2NrTWVzc2FnZUxhYmVs
LCBHVEtfQUxJR05fU1RBUlQpOworICAgIGd0a193aWRnZXRfc2V0X25vX3Nob3dfYWxsKHRhYi0+
cG9pbnRlckxvY2tNZXNzYWdlTGFiZWwsIFRSVUUpOworICAgIGd0a19vdmVybGF5X2FkZF9vdmVy
bGF5KEdUS19PVkVSTEFZKG92ZXJsYXkpLCB0YWItPnBvaW50ZXJMb2NrTWVzc2FnZUxhYmVsKTsK
KwogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIob3ZlcmxheSksIEdUS19XSURH
RVQodGFiLT53ZWJWaWV3KSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQodGFiLT53
ZWJWaWV3KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggZWIxYmQzYTEzYTEuLjdmNzE2YzY4MTc4IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xp
ZW50LmNwcApAQCAtMjE4LDcgKzIxOCw4IEBAIHB1YmxpYzoKIAogICAgICAgICB0ZXN0LT5tX21v
dXNlVGFyZ2V0SGl0VGVzdFJlc3VsdCA9IGhpdFRlc3RSZXN1bHQ7CiAgICAgICAgIHRlc3QtPm1f
bW91c2VUYXJnZXRNb2RpZmllcnMgPSBtb2RpZmllcnM7Ci0gICAgICAgIGdfbWFpbl9sb29wX3F1
aXQodGVzdC0+bV9tYWluTG9vcCk7CisgICAgICAgIGlmICh0ZXN0LT5tX3dhaXRpbmdGb3JNb3Vz
ZVRhcmdldENoYW5nZSkKKyAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWlu
TG9vcCk7CiAgICAgfQogCiAgICAgc3RhdGljIGdib29sZWFuIHBlcm1pc3Npb25SZXF1ZXN0ZWQo
V2ViS2l0V2ViVmlldyosIFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0LCBVSUNsaWVu
dFRlc3QqIHRlc3QpCkBAIC0zMDgsOCArMzA5LDEwIEBAIHB1YmxpYzoKIAogICAgIFdlYktpdEhp
dFRlc3RSZXN1bHQqIG1vdmVNb3VzZUFuZFdhaXRVbnRpbE1vdXNlVGFyZ2V0Q2hhbmdlZChpbnQg
eCwgaW50IHksIHVuc2lnbmVkIG1vdXNlTW9kaWZpZXJzID0gMCkKICAgICB7CisgICAgICAgIG1f
d2FpdGluZ0Zvck1vdXNlVGFyZ2V0Q2hhbmdlID0gdHJ1ZTsKICAgICAgICAgbW91c2VNb3ZlVG8o
eCwgeSwgbW91c2VNb2RpZmllcnMpOwogICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9v
cCk7CisgICAgICAgIG1fd2FpdGluZ0Zvck1vdXNlVGFyZ2V0Q2hhbmdlID0gZmFsc2U7CiAgICAg
ICAgIHJldHVybiBtX21vdXNlVGFyZ2V0SGl0VGVzdFJlc3VsdC5nZXQoKTsKICAgICB9CiAKQEAg
LTM4NCw2ICszODcsNyBAQCBwdWJsaWM6CiAgICAgR1JlZlB0cjxXZWJLaXRIaXRUZXN0UmVzdWx0
PiBtX21vdXNlVGFyZ2V0SGl0VGVzdFJlc3VsdDsKICAgICB1bnNpZ25lZCBtX21vdXNlVGFyZ2V0
TW9kaWZpZXJzOwogICAgIEdVbmlxdWVQdHI8Y2hhcj4gbV9wZXJtaXNzaW9uUmVzdWx0OworICAg
IGJvb2wgbV93YWl0aW5nRm9yTW91c2VUYXJnZXRDaGFuZ2UgeyBmYWxzZSB9OwogfTsKIAogc3Rh
dGljIHZvaWQgdGVzdFdlYlZpZXdDcmVhdGVSZWFkeUNsb3NlKFVJQ2xpZW50VGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKQEAgLTk0Nyw2ICs5NTEsNDQgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZp
ZXdBdWRpb09ubHlVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0ZXN0
LAogfQogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0KFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyNpZiBQTEFURk9STShH
VEspCisgICAgdGVzdC0+c2hvd0luV2luZG93QW5kV2FpdFVudGlsTWFwcGVkKEdUS19XSU5ET1df
VE9QTEVWRUwpOworI2VuZGlmCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogcG9pbnRlckxvY2tS
ZXF1ZXN0SFRNTCA9CisgICAgICAgICI8aHRtbD4iCisgICAgICAgICIgIDxzY3JpcHQ+IgorICAg
ICAgICAiICBmdW5jdGlvbiBydW5UZXN0KCkiCisgICAgICAgICIgIHsiCisgICAgICAgICIgICAg
ZG9jdW1lbnQub25wb2ludGVybG9ja2NoYW5nZSA9IGZ1bmN0aW9uICgpIHsgZG9jdW1lbnQudGl0
bGUgPSBcIkxvY2tlZFwiIH07IgorICAgICAgICAiICAgIGRvY3VtZW50Lm9ucG9pbnRlcmxvY2tl
cnJvciA9IGZ1bmN0aW9uICgpIHsgZG9jdW1lbnQudGl0bGUgPSBcIkVycm9yXCIgfTsiCisgICAg
ICAgICIgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnJlcXVlc3RQb2ludGVy
TG9jaygpOyIKKyAgICAgICAgIiAgfSIKKyAgICAgICAgIiAgPC9zY3JpcHQ+IgorICAgICAgICAi
ICA8Ym9keT4iCisgICAgICAgICIgICA8aW5wdXQgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlOyBs
ZWZ0OjA7IHRvcDowOyBtYXJnaW46MDsgcGFkZGluZzowJyB0eXBlPSdidXR0b24nIHZhbHVlPSdj
bGljayB0byBsb2NrIHBvaW50ZXInIG9uY2xpY2s9J3J1blRlc3QoKScvPiIKKyAgICAgICAgIiAg
IDxkaXYgaWQ9J3RhcmdldCc+PC9kaXY+IgorICAgICAgICAiICA8L2JvZHk+IgorICAgICAgICAi
PC9odG1sPiI7CisKKyAgICB0ZXN0LT5sb2FkSHRtbChwb2ludGVyTG9ja1JlcXVlc3RIVE1MLCBu
dWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAgIC8vIFRl
c3QgZGVueWluZyBhIHBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICB0ZXN0LT5tX2FsbG93UGVybWlz
c2lvblJlcXVlc3RzID0gZmFsc2U7CisgICAgdGVzdC0+Y2xpY2tNb3VzZUJ1dHRvbig1LCA1LCAx
KTsKKyAgICB0ZXN0LT53YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiRXJyb3IiKTsKKworICAgIC8v
IFRlc3QgYWxsb3dpbmcgYSBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgdGVzdC0+bV9hbGxvd1Bl
cm1pc3Npb25SZXF1ZXN0cyA9IHRydWU7CisgICAgdGVzdC0+Y2xpY2tNb3VzZUJ1dHRvbig1LCA1
LCAxKTsKKyAgICB0ZXN0LT53YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiTG9ja2VkIik7Cit9Cisj
ZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKIGNsYXNzIEZpbGVDaG9vc2VyVGVzdDogcHVibGlj
IFVJQ2xpZW50VGVzdCB7CiBwdWJsaWM6CkBAIC0xMjA0LDYgKzEyNDYsOSBAQCB2b2lkIGJlZm9y
ZUFsbCgpCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIENvbG9yQ2hvb3NlclRlc3Q6OmFkZCgiV2Vi
S2l0V2ViVmlldyIsICJjb2xvci1jaG9vc2VyLXJlcXVlc3QiLCB0ZXN0V2ViVmlld0NvbG9yQ2hv
b3NlclJlcXVlc3QpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBVSUNs
aWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJwb2ludGVyLWxvY2stcGVybWlzc2lvbi1y
ZXF1ZXN0IiwgdGVzdFdlYlZpZXdQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KTsKKyNlbmRp
ZgogfQogCiB2b2lkIGFmdGVyQWxsKCkK
</data>
<flag name="review"
          id="398680"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>