<?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>137735</bug_id>
          
          <creation_ts>2014-10-15 01:10:20 -0700</creation_ts>
          <short_desc>[GTK] Move touch events handling from Platform to WebKit2</short_desc>
          <delta_ts>2014-10-17 03:04:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (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>
          
          <blocked>137812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041816</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-15 01:10:20 -0700</bug_when>
    <thetext>GtkTouchContextHelper is only used by WebKitWebViewBase, since it&apos;s the only one that can create touch events. The code can be simplified if the events are processed in the view, and the native touch events are created with the native event and touch points.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041818</commentid>
    <comment_count>1</comment_count>
      <attachid>239857</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-15 01:16:56 -0700</bug_when>
    <thetext>Created attachment 239857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041819</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 01:18:34 -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>1042337</commentid>
    <comment_count>3</comment_count>
      <attachid>239857</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-10-17 02:21:26 -0700</bug_when>
    <thetext>Comment on attachment 239857
Patch

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

Another file nuked yay!

Everything seems to be right, it&apos;s a r+ for me, but consider my suggestions before landing.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:806
&gt; +static void webkitWebViewBaseGetTouchPointForEvent(WebKitWebViewBase* webViewBase, GdkEvent* event, Vector&lt;WebPlatformTouchPoint&gt;&amp; touchPoints)

Nit: GetTouchPoints

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:811
&gt; +    for (auto it = priv-&gt;touchEvents.begin(); it != priv-&gt;touchEvents.end(); ++it) {

You can use a modern for loop here.

for (auto&amp; touchEvent : priv-&gt;touchEvents)

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:828
&gt; +    }

I am not sure a lambda is appropriate here, for me it seems far more confusing than calling a function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042350</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-17 03:04:43 -0700</bug_when>
    <thetext>Committed r174817: &lt;http://trac.webkit.org/changeset/174817&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239857</attachid>
            <date>2014-10-15 01:16:56 -0700</date>
            <delta_ts>2014-10-17 02:21:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-touch-events.diff</filename>
            <type>text/plain</type>
            <size>19375</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YWQ4YzdlLi4zY2MxODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTQtMTAtMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIE1vdmUgdG91Y2ggZXZlbnRzIGhhbmRsaW5nIGZyb20gUGxhdGZv
cm0gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM3NzM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIEd0a1RvdWNoQ29udGV4dEhlbHBlci4KKworICAgICAgICAqIFBsYXRmb3Jt
R1RLLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxwZXIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxw
ZXIuaDogUmVtb3ZlZC4KKwogMjAxNC0xMC0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTW92ZSBjbGljayBjb3VudGVyIGxvZ2lj
IGJhY2sgdG8gV2ViS2l0V2ViVmlld0Jhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
NWYwOTA5OC4uYjczM2ZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTIyNCw3ICsy
MjQsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlUGxhdGZvcm1HVEtfU09VUkNFUwogICAgIHBsYXRm
b3JtL2d0ay9HUmVmUHRyR3RrLmNwcAogICAgIHBsYXRmb3JtL2d0ay9HdGtEcmFnQW5kRHJvcEhl
bHBlci5jcHAKICAgICBwbGF0Zm9ybS9ndGsvR3RrSW5wdXRNZXRob2RGaWx0ZXIuY3BwCi0gICAg
cGxhdGZvcm0vZ3RrL0d0a1RvdWNoQ29udGV4dEhlbHBlci5jcHAKICAgICBwbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmMKICAgICBw
bGF0Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVG91Y2hDb250ZXh0SGVscGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxwZXIuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1N2YyZjgwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxwZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBDYXJsb3MgR2FybmFjaG8g
PGNhcmxvc2dAZ25vbWUub3JnPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiR3RrVG91Y2hDb250ZXh0SGVscGVyLmgiCi0KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotYm9vbCBHdGtUb3VjaENvbnRleHRIZWxwZXI6OmhhbmRs
ZUV2ZW50KEdka0V2ZW50KiB0b3VjaEV2ZW50KQotewotI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05f
MgotICAgIHVpbnQzMl90IHNlcXVlbmNlID0gR1BPSU5URVJfVE9fVUlOVChnZGtfZXZlbnRfZ2V0
X2V2ZW50X3NlcXVlbmNlKHRvdWNoRXZlbnQpKTsKLQotICAgIHN3aXRjaCAodG91Y2hFdmVudC0+
dHlwZSkgewotICAgIGNhc2UgR0RLX1RPVUNIX0JFR0lOOiB7Ci0gICAgICAgIEFTU0VSVCghbV90
b3VjaEV2ZW50cy5jb250YWlucyhzZXF1ZW5jZSkpOwotICAgICAgICBHVW5pcXVlUHRyPEdka0V2
ZW50PiBldmVudChnZGtfZXZlbnRfY29weSh0b3VjaEV2ZW50KSk7Ci0gICAgICAgIG1fdG91Y2hF
dmVudHMuYWRkKHNlcXVlbmNlLCBXVEY6Om1vdmUoZXZlbnQpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotICAgIGNhc2UgR0RLX1RPVUNIX1VQREFURTogewotICAgICAgICBhdXRvIGl0ID0gbV90
b3VjaEV2ZW50cy5maW5kKHNlcXVlbmNlKTsKLSAgICAgICAgQVNTRVJUKGl0ICE9IG1fdG91Y2hF
dmVudHMuZW5kKCkpOwotICAgICAgICBpdC0+dmFsdWUucmVzZXQoZ2RrX2V2ZW50X2NvcHkodG91
Y2hFdmVudCkpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHREtfVE9VQ0hfRU5E
OgotICAgICAgICBBU1NFUlQobV90b3VjaEV2ZW50cy5jb250YWlucyhzZXF1ZW5jZSkpOwotICAg
ICAgICBtX3RvdWNoRXZlbnRzLnJlbW92ZShzZXF1ZW5jZSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNF
RF9QQVJBTSh0b3VjaEV2ZW50KTsKLSNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtUb3VjaENvbnRleHRIZWxwZXIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmIyODVhMC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvR3RrVG91Y2hDb250ZXh0SGVscGVyLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIENhcmxvcyBHYXJuYWNobyA8
Y2FybG9zZ0Bnbm9tZS5vcmc+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR3RrVG91Y2hDb250ZXh0SGVs
cGVyX2gKLSNkZWZpbmUgR3RrVG91Y2hDb250ZXh0SGVscGVyX2gKLQotI2luY2x1ZGUgIkdVbmlx
dWVQdHJHdGsuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSGFzaE1hcDx1aW50
MzJfdCwgR1VuaXF1ZVB0cjxHZGtFdmVudD4+IFRvdWNoRXZlbnRzTWFwOwotCi1jbGFzcyBHdGtU
b3VjaENvbnRleHRIZWxwZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEd0a1RvdWNoQ29u
dGV4dEhlbHBlcik7Ci1wdWJsaWM6Ci0gICAgR3RrVG91Y2hDb250ZXh0SGVscGVyKCkgeyB9Owot
ICAgIGJvb2wgaGFuZGxlRXZlbnQoR2RrRXZlbnQqKTsKLSAgICBjb25zdCBUb3VjaEV2ZW50c01h
cCYgdG91Y2hFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRzOyB9OwotCi1wcml2
YXRlOgotICAgIFRvdWNoRXZlbnRzTWFwIG1fdG91Y2hFdmVudHM7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZhZjMzOTYuLmQ5NmYzMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxNC0xMC0xNSAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gTW92ZSB0b3VjaCBldmVu
dHMgaGFuZGxpbmcgZnJvbSBQbGF0Zm9ybSB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc3MzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHdGtUb3VjaENvbnRleHRIZWxwZXIgd2FzIG9u
bHkgdXNlZCBieSBXZWJLaXRXZWJWaWV3QmFzZSwgc2luY2UKKyAgICAgICAgaXQncyB0aGUgb25s
eSBvbmUgdGhhdCBjYW4gY3JlYXRlIHRvdWNoIGV2ZW50cy4gVGhlIGNvZGUgaGFzIGJlZW4KKyAg
ICAgICAgc2ltcGxpZmllZCBieSBwcm9jZXNzaW5nIHRoZSBldmVudHMgaW4gdGhlIHZpZXcsIGFu
ZCB0aGUgbmF0aXZlCisgICAgICAgIHRvdWNoIGV2ZW50cyBhcmUgbm93IGNyZWF0ZWQgd2l0aCB0
aGUgbmF0aXZlIGV2ZW50IGFuZCB0b3VjaCBwb2ludHMuCisKKyAgICAgICAgKiBTaGFyZWQvTmF0
aXZlV2ViVG91Y2hFdmVudC5oOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50
Ojp0b3VjaENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9ndGsvTmF0aXZlV2Vi
VG91Y2hFdmVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQ6
Ok5hdGl2ZVdlYlRvdWNoRXZlbnQpOiBQYXNzIHRvdWNoCisgICAgICAgIHBvaW50cyBpbnN0ZWFk
IG9mIHRvdWNoIGNvbnRleHQgdG8gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50
KCkuCisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOiBDcmVhdGUgdGhl
CisgICAgICAgIFdlYlRvdWNoRXZlbnQgZm9yIHRoZSBnaXZlbiBuYXRpdmUgZXZlbnQgYW5kIHBv
aW50cy4KKyAgICAgICAgKFdlYktpdDo6dG91Y2hQaGFzZUZyb21FdmVudHMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjphcHBlbmRUb3VjaEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBT
aGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKGFwcGVuZFRvdWNoRXZlbnQpOiBIZWxw
ZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEKKyAgICAgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50IGZv
ciB0aGUgZ2l2ZW4gbmF0aXZlIGV2ZW50IGFuZCBhZGQgaXQgdG8gdGhlCisgICAgICAgIGxpc3Qg
b2YgdG91Y2ggcG9pbnRzLgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VHZXRUb3VjaFBvaW50
Rm9yRXZlbnQpOiBCdWlsZCB0aGUgdG91Y2ggcG9pbnQKKyAgICAgICAgbGlzdCBmb3IgdGhlIGV2
ZW50LgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VUb3VjaEV2ZW50KTogUHJvY2VzcyB0aGUg
dG91Y2ggZXZlbnQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZURyYWdEYXRhUmVjZWl2ZWQp
OiBEZWxldGVkLgorCiAyMDE0LTEwLTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBNb3ZlIGNsaWNrIGNvdW50ZXIgbG9naWMgYmFj
ayB0byBXZWJLaXRXZWJWaWV3QmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJU
b3VjaEV2ZW50LmgKaW5kZXggZGJjM2UzNC4uMTAxNzMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC0zNCw3ICszNCw2IEBACiBzdHJ1Y3QgX1VJ
V2ViVG91Y2hFdmVudDsKICNlbGlmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxXZWJDb3JlL0dV
bmlxdWVQdHJHdGsuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0d0a1RvdWNoQ29udGV4dEhlbHBlci5o
PgogI2VsaWYgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgIkV3a1RvdWNoRXZlbnQuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgpAQCAtNDksOSArNDgsOCBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBfVUlXZWJUb3VjaEV2ZW50
Kik7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBO
YXRpdmVXZWJUb3VjaEV2ZW50Jik7Ci0gICAgTmF0aXZlV2ViVG91Y2hFdmVudChHZGtFdmVudCos
IFdlYkNvcmU6Okd0a1RvdWNoQ29udGV4dEhlbHBlciYpOworICAgIE5hdGl2ZVdlYlRvdWNoRXZl
bnQoR2RrRXZlbnQqLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYpOwogICAg
IGNvbnN0IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZl
bnQuZ2V0KCk7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpHdGtUb3VjaENvbnRleHRIZWxwZXImIHRv
dWNoQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hDb250ZXh0OyB9CiAjZWxpZiBQTEFU
Rk9STShFRkwpCiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChFd2tUb3VjaEV2ZW50KiwgY29uc3Qg
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7CiAgICAgY29uc3QgRXdrVG91Y2hFdmVudCogbmF0
aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CkBAIC02MCw3
ICs1OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEdVbmlx
dWVQdHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7Ci0gICAgY29uc3QgV2ViQ29yZTo6R3RrVG91
Y2hDb250ZXh0SGVscGVyJiBtX3RvdWNoQ29udGV4dDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKICAg
ICBSZWZQdHI8RXdrVG91Y2hFdmVudD4gbV9uYXRpdmVFdmVudDsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9OYXRpdmVXZWJUb3VjaEV2ZW50R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvTmF0aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAKaW5k
ZXggYjJjZDRhNS4uNjMyMmNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0
ay9OYXRpdmVXZWJUb3VjaEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Z3RrL05hdGl2ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCkBAIC0zMSwxNyArMzEsMTUgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLU5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZl
bnQoR2RrRXZlbnQqIGV2ZW50LCBXZWJDb3JlOjpHdGtUb3VjaENvbnRleHRIZWxwZXImIGNvbnRl
eHQpCi0gICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hF
dmVudChldmVudCwgY29udGV4dCkpCitOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3Vj
aEV2ZW50KEdka0V2ZW50KiBldmVudCwgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mIHRvdWNoUG9pbnRzKQorICAgIDogV2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYlRvdWNoRXZlbnQoZXZlbnQsIHRvdWNoUG9pbnRzKSkKICAgICAsIG1fbmF0aXZlRXZl
bnQoZ2RrX2V2ZW50X2NvcHkoZXZlbnQpKQotICAgICwgbV90b3VjaENvbnRleHQoY29udGV4dCkK
IHsKIH0KIAogTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBO
YXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKLSAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCksIGV2ZW50LnRv
dWNoQ29udGV4dCgpKSkKKyAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJUb3VjaEV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCksIGV2ZW50LnRvdWNoUG9pbnRzKCkp
KQogICAgICwgbV9uYXRpdmVFdmVudChnZGtfZXZlbnRfY29weShldmVudC5uYXRpdmVFdmVudCgp
KSkKLSAgICAsIG1fdG91Y2hDb250ZXh0KGV2ZW50LnRvdWNoQ29udGV4dCgpKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggNDYy
YjExYi4uYTBhMjg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJF
dmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViRXZlbnRG
YWN0b3J5LmNwcApAQCAtMjA0LDQ2ICsyMDQsMTAgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOwog
fQogCi0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCi1zdGF0aWMgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFBvaW50U3RhdGUgdG91Y2hQaGFzZUZyb21FdmVudHMoY29uc3QgR2RrRXZlbnQq
IGN1cnJlbnQsIGNvbnN0IEdka0V2ZW50KiBldmVudCkKLXsKLSAgICBpZiAoZ2RrX2V2ZW50X2dl
dF9ldmVudF9zZXF1ZW5jZShjdXJyZW50KSAhPSBnZGtfZXZlbnRfZ2V0X2V2ZW50X3NlcXVlbmNl
KGV2ZW50KSkKLSAgICAgICAgcmV0dXJuIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0
aW9uYXJ5OwotCi0gICAgc3dpdGNoIChjdXJyZW50LT50eXBlKSB7Ci0gICAgY2FzZSBHREtfVE9V
Q0hfVVBEQVRFOgotICAgICAgICByZXR1cm4gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaE1v
dmVkOwotICAgIGNhc2UgR0RLX1RPVUNIX0JFR0lOOgotICAgICAgICByZXR1cm4gV2ViUGxhdGZv
cm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7Ci0gICAgY2FzZSBHREtfVE9VQ0hfRU5EOgotICAg
ICAgICByZXR1cm4gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIHJldHVybiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlv
bmFyeTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIGFwcGVuZFRvdWNoRXZlbnQoVmVjdG9yPFdl
YlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRMaXN0LCBjb25zdCBHZGtFdmVudCogZXZl
bnQsIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlKQotewotICAg
IHVpbnQzMl90IGlkZW50aWZpZXIgPSBHUE9JTlRFUl9UT19VSU5UKGdka19ldmVudF9nZXRfZXZl
bnRfc2VxdWVuY2UoZXZlbnQpKTsKLQotICAgIGdkb3VibGUgeCwgeTsKLSAgICBnZGtfZXZlbnRf
Z2V0X2Nvb3JkcyhldmVudCwgJngsICZ5KTsKLQotICAgIGdkb3VibGUgeFJvb3QsIHlSb290Owot
ICAgIGdka19ldmVudF9nZXRfcm9vdF9jb29yZHMoZXZlbnQsICZ4Um9vdCwgJnlSb290KTsKLQot
ICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCB0b3VjaFBvaW50KGlkZW50aWZpZXIsIHN0YXRlLCBJ
bnRQb2ludCh4Um9vdCwgeVJvb3QpLCBJbnRQb2ludCh4LCB5KSk7Ci0gICAgdG91Y2hQb2ludExp
c3QudW5jaGVja2VkQXBwZW5kKHRvdWNoUG9pbnQpOwotfQotI2VuZGlmIC8vIEdUS19BUElfVkVS
U0lPTl8yCi0KLVdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2
ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6R3RrVG91Y2hDb250ZXh0
SGVscGVyJiB0b3VjaENvbnRleHQpCitXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViVG91Y2hFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cykKIHsKICNpZm5kZWYgR1RLX0FQSV9WRVJT
SU9OXzIKICAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0gV2ViRXZlbnQ6Ok5vVHlwZTsKLSAgICBj
b25zdCBhdXRvJiB0b3VjaEV2ZW50cyA9IHRvdWNoQ29udGV4dC50b3VjaEV2ZW50cygpOwotICAg
IGludCBudW1FdmVudHMgPSB0b3VjaEV2ZW50cy5zaXplKCk7Ci0KICAgICBzd2l0Y2ggKGV2ZW50
LT50eXBlKSB7CiAgICAgY2FzZSBHREtfVE9VQ0hfQkVHSU46CiAgICAgICAgIHR5cGUgPSBXZWJF
dmVudDo6VG91Y2hTdGFydDsKQEAgLTI1MywyMyArMjE3LDEyIEBAIFdlYlRvdWNoRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwg
Y29uc3QKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHREtfVE9VQ0hfRU5EOgogICAgICAgICB0
eXBlID0gV2ViRXZlbnQ6OlRvdWNoRW5kOwotICAgICAgICArK251bUV2ZW50czsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQogCi0gICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gdG91Y2hQb2ludExpc3Q7Ci0g
ICAgdG91Y2hQb2ludExpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1FdmVudHMpOwotCi0g
ICAgZm9yIChhdXRvIGl0ID0gdG91Y2hFdmVudHMuYmVnaW4oKTsgaXQgIT0gdG91Y2hFdmVudHMu
ZW5kKCk7ICsraXQpCi0gICAgICAgIGFwcGVuZFRvdWNoRXZlbnQodG91Y2hQb2ludExpc3QsIGl0
LT52YWx1ZS5nZXQoKSwgdG91Y2hQaGFzZUZyb21FdmVudHMoaXQtPnZhbHVlLmdldCgpLCBldmVu
dCkpOwotCi0gICAgLy8gVG91Y2ggd2FzIGFscmVhZHkgcmVtb3ZlZCBmcm9tIHRoZSBHdGtUb3Vj
aENvbnRleHRIZWxwZXIsIGFkZCBpdCBoZXJlLgotICAgIGlmIChldmVudC0+dHlwZSA9PSBHREtf
VE9VQ0hfRU5EKQotICAgICAgICBhcHBlbmRUb3VjaEV2ZW50KHRvdWNoUG9pbnRMaXN0LCBldmVu
dCwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkKTsKLQotICAgIHJldHVybiBX
ZWJUb3VjaEV2ZW50KHR5cGUsIHRvdWNoUG9pbnRMaXN0LCBtb2RpZmllcnNGb3JFdmVudChldmVu
dCksIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50
KHR5cGUsIHRvdWNoUG9pbnRzLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGdka19ldmVudF9n
ZXRfdGltZShldmVudCkpOwogI2Vsc2UKICAgICByZXR1cm4gV2ViVG91Y2hFdmVudCgpOwogI2Vu
ZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJF
dmVudEZhY3RvcnkuaAppbmRleCBmYzMwMjk2Li5mNWU2YWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1
ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db21wb3NpdGlvblJlc3VsdHMuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0d0a1RvdWNoQ29udGV4dEhlbHBlci5oPgogCiB0eXBlZGVmIHVu
aW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIApAQCAtNDAsNyArMzksNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCos
IGludCk7CiAgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxFdmVudChjb25z
dCBHZGtFdmVudCopOwogICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJv
YXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3Vs
dHMmKTsKLSAgICBzdGF0aWMgV2ViVG91Y2hFdmVudCBjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0
IEdka0V2ZW50KiwgY29uc3QgV2ViQ29yZTo6R3RrVG91Y2hDb250ZXh0SGVscGVyJik7CisgICAg
c3RhdGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChjb25zdCBHZGtFdmVudCos
IGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+Jik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBjYWQwOGQ2Li4zZTE4NTRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2Uu
Y3BwCkBAIC01NCw3ICs1NCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnSWNvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrRHJh
Z0FuZERyb3BIZWxwZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0d0a1RvdWNoQ29udGV4dEhlbHBl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HdGtWZXJzaW9uaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpA
QCAtODcsNiArODYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIHR5cGVkZWYgSGFzaE1hcDxHdGtXaWRnZXQqLCBJbnRSZWN0PiBXZWJLaXRX
ZWJWaWV3Q2hpbGRyZW5NYXA7Cit0eXBlZGVmIEhhc2hNYXA8dWludDMyX3QsIEdVbmlxdWVQdHI8
R2RrRXZlbnQ+PiBUb3VjaEV2ZW50c01hcDsKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkg
JiYgUExBVEZPUk0oWDExKQogdm9pZCByZWRpcmVjdGVkV2luZG93RGFtYWdlZENhbGxiYWNrKHZv
aWQqIGRhdGEpOwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VQ
cml2YXRlIHsKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBjb250ZXh0TWVudUV2ZW50OwogICAg
IFdlYkNvbnRleHRNZW51UHJveHlHdGsqIGFjdGl2ZUNvbnRleHRNZW51UHJveHk7CiAgICAgV2Vi
Vmlld0Jhc2VJbnB1dE1ldGhvZEZpbHRlciBpbnB1dE1ldGhvZEZpbHRlcjsKLSAgICBHdGtUb3Vj
aENvbnRleHRIZWxwZXIgdG91Y2hDb250ZXh0OworICAgIFRvdWNoRXZlbnRzTWFwIHRvdWNoRXZl
bnRzOwogCiAgICAgR3RrV2luZG93KiB0b3BsZXZlbE9uU2NyZWVuV2luZG93OwogI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCAxMywgNCkKQEAgLTc5MSw2ICs3OTEsNDcgQEAgc3RhdGljIGdib29s
ZWFuIHdlYmtpdFdlYlZpZXdCYXNlTW90aW9uTm90aWZ5RXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQs
IEdka0V2ZW50TW8KICAgICByZXR1cm4gVFJVRTsKIH0KIAorc3RhdGljIHZvaWQgYXBwZW5kVG91
Y2hFdmVudChWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIGNvbnN0
IEdka0V2ZW50KiBldmVudCwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUg
c3RhdGUpCit7CisgICAgZ2RvdWJsZSB4LCB5OworICAgIGdka19ldmVudF9nZXRfY29vcmRzKGV2
ZW50LCAmeCwgJnkpOworCisgICAgZ2RvdWJsZSB4Um9vdCwgeVJvb3Q7CisgICAgZ2RrX2V2ZW50
X2dldF9yb290X2Nvb3JkcyhldmVudCwgJnhSb290LCAmeVJvb3QpOworCisgICAgdWludDMyX3Qg
aWRlbnRpZmllciA9IEdQT0lOVEVSX1RPX1VJTlQoZ2RrX2V2ZW50X2dldF9ldmVudF9zZXF1ZW5j
ZShldmVudCkpOworICAgIHRvdWNoUG9pbnRzLnVuY2hlY2tlZEFwcGVuZChXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQoaWRlbnRpZmllciwgc3RhdGUsIEludFBvaW50KHhSb290LCB5Um9vdCksIEludFBv
aW50KHgsIHkpKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlR2V0VG91Y2hQ
b2ludEZvckV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgR2RrRXZlbnQqIGV2
ZW50LCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMpCit7CisgICAg
V2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAg
dG91Y2hQb2ludHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShldmVudC0+dHlwZSA9PSBHREtfVE9V
Q0hfRU5EID8gcHJpdi0+dG91Y2hFdmVudHMuc2l6ZSgpICsgMSA6IHByaXYtPnRvdWNoRXZlbnRz
LnNpemUoKSk7CisKKyAgICBmb3IgKGF1dG8gaXQgPSBwcml2LT50b3VjaEV2ZW50cy5iZWdpbigp
OyBpdCAhPSBwcml2LT50b3VjaEV2ZW50cy5lbmQoKTsgKytpdCkgeworICAgICAgICBjb25zdCBH
ZGtFdmVudCogY3VycmVudCA9IGl0LT52YWx1ZS5nZXQoKTsKKyAgICAgICAgYXBwZW5kVG91Y2hF
dmVudCh0b3VjaFBvaW50cywgY3VycmVudCwgW2N1cnJlbnQsIGV2ZW50XSgpIC0+IFdlYlBsYXRm
b3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgICAgIGlmIChnZGtfZXZl
bnRfZ2V0X2V2ZW50X3NlcXVlbmNlKGN1cnJlbnQpICE9IGdka19ldmVudF9nZXRfZXZlbnRfc2Vx
dWVuY2UoZXZlbnQpKQorICAgICAgICAgICAgICAgIHJldHVybiBXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OlRvdWNoU3RhdGlvbmFyeTsKKworICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50LT50eXBl
KSB7CisgICAgICAgICAgICBjYXNlIEdES19UT1VDSF9VUERBVEU6CisgICAgICAgICAgICAgICAg
cmV0dXJuIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDsKKyAgICAgICAgICAgIGNh
c2UgR0RLX1RPVUNIX0JFR0lOOgorICAgICAgICAgICAgICAgIHJldHVybiBXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDsKKyAgICAgICAgICAgIGNhc2UgR0RLX1RPVUNIX0VORDoK
KyAgICAgICAgICAgICAgICByZXR1cm4gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0oKSk7CisgICAgfQorCisgICAgLy8gVG91Y2ggd2FzIGFscmVhZHkgcmVtb3ZlZCBmcm9tIHRo
ZSBUb3VjaEV2ZW50c01hcCwgYWRkIGl0IGhlcmUuCisgICAgaWYgKGV2ZW50LT50eXBlID09IEdE
S19UT1VDSF9FTkQpCisgICAgICAgIGFwcGVuZFRvdWNoRXZlbnQodG91Y2hQb2ludHMsIGV2ZW50
LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQpOworfQorCiBzdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0V2ViVmlld0Jhc2VUb3VjaEV2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtF
dmVudFRvdWNoKiBldmVudCkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYg
PSBXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2OwpAQCAtNzk4LDggKzgzOSwzMyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VUb3VjaEV2ZW50KEd0a1dpZGdldCog
d2lkZ2V0LCBHZGtFdmVudFRvdWNoKiBldgogICAgIGlmIChwcml2LT5hdXRoZW50aWNhdGlvbkRp
YWxvZykKICAgICAgICAgcmV0dXJuIFRSVUU7CiAKLSAgICBwcml2LT50b3VjaENvbnRleHQuaGFu
ZGxlRXZlbnQocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7Ci0gICAgcHJpdi0+
cGFnZVByb3h5LT5oYW5kbGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQocmVpbnRlcnBy
ZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgcHJpdi0+dG91Y2hDb250ZXh0KSk7CisgICAgR2Rr
RXZlbnQqIHRvdWNoRXZlbnQgPSByZWludGVycHJldF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpOwor
ICAgIHVpbnQzMl90IHNlcXVlbmNlID0gR1BPSU5URVJfVE9fVUlOVChnZGtfZXZlbnRfZ2V0X2V2
ZW50X3NlcXVlbmNlKHRvdWNoRXZlbnQpKTsKKworICAgIHN3aXRjaCAodG91Y2hFdmVudC0+dHlw
ZSkgeworICAgIGNhc2UgR0RLX1RPVUNIX0JFR0lOOiB7CisgICAgICAgIEFTU0VSVCghcHJpdi0+
dG91Y2hFdmVudHMuY29udGFpbnMoc2VxdWVuY2UpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxHZGtF
dmVudD4gZXZlbnQoZ2RrX2V2ZW50X2NvcHkodG91Y2hFdmVudCkpOworICAgICAgICBwcml2LT50
b3VjaEV2ZW50cy5hZGQoc2VxdWVuY2UsIFdURjo6bW92ZShldmVudCkpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBHREtfVE9VQ0hfVVBEQVRFOiB7CisgICAgICAgIGF1dG8gaXQg
PSBwcml2LT50b3VjaEV2ZW50cy5maW5kKHNlcXVlbmNlKTsKKyAgICAgICAgQVNTRVJUKGl0ICE9
IHByaXYtPnRvdWNoRXZlbnRzLmVuZCgpKTsKKyAgICAgICAgaXQtPnZhbHVlLnJlc2V0KGdka19l
dmVudF9jb3B5KHRvdWNoRXZlbnQpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
R0RLX1RPVUNIX0VORDoKKyAgICAgICAgQVNTRVJUKHByaXYtPnRvdWNoRXZlbnRzLmNvbnRhaW5z
KHNlcXVlbmNlKSk7CisgICAgICAgIHByaXYtPnRvdWNoRXZlbnRzLnJlbW92ZShzZXF1ZW5jZSk7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IHRvdWNoUG9pbnRzOworICAgIHdlYmtp
dFdlYlZpZXdCYXNlR2V0VG91Y2hQb2ludEZvckV2ZW50KFdFQktJVF9XRUJfVklFV19CQVNFKHdp
ZGdldCksIHRvdWNoRXZlbnQsIHRvdWNoUG9pbnRzKTsKKyAgICBwcml2LT5wYWdlUHJveHktPmhh
bmRsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudChyZWludGVycHJldF9jYXN0PEdka0V2
ZW50Kj4oZXZlbnQpLCB0b3VjaFBvaW50cykpOwogCiAgICAgcmV0dXJuIFRSVUU7CiB9Cg==
</data>
<flag name="review"
          id="264603"
          type_id="1"
          status="+"
          setter="svillar"
    />
    <flag name="commit-queue"
          id="264757"
          type_id="3"
          status="-"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>