<?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>211982</bug_id>
          
          <creation_ts>2020-05-16 05:42:32 -0700</creation_ts>
          <short_desc>[WPE] HeadlessViewBackend should exclusively use software rasterization mode</short_desc>
          <delta_ts>2020-05-18 23:11:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1653306</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-05-16 05:42:32 -0700</bug_when>
    <thetext>[1;5[WPE] HeadlessViewBackend should exclusively use software rasterization mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653308</commentid>
    <comment_count>1</comment_count>
      <attachid>399549</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-05-16 05:54:53 -0700</bug_when>
    <thetext>Created attachment 399549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653918</commentid>
    <comment_count>2</comment_count>
      <attachid>399549</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-05-18 23:10:49 -0700</bug_when>
    <thetext>Comment on attachment 399549
Patch

Clearing flags on attachment: 399549

Committed r261851: &lt;https://trac.webkit.org/changeset/261851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653919</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-05-18 23:10:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399549</attachid>
            <date>2020-05-16 05:54:53 -0700</date>
            <delta_ts>2020-05-18 23:10:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211982-20200516145451.patch</filename>
            <type>text/plain</type>
            <size>27251</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzk1OTA5MThmYjYzYTA4NTMwZGYyZGQ4OGIxZjBhOTFj
MjNlNTk4Zi4uZmIxYTNjNmMwMTY4ZjhjNzY5ZDA1ZTFkZDdmZDg2ZWZkYzMwNmU2NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1
IEBACisyMDIwLTA1LTE2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV1BFXSBIZWFkbGVzc1ZpZXdCYWNrZW5kIHNob3VsZCBleGNsdXNpdmVseSB1c2Ug
c29mdHdhcmUgcmFzdGVyaXphdGlvbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIHVzaW5nIFdQRUJhY2tlbmQtZmRvJ3MgRUdM
IG1vZGUgdGhhdCBvcHRpb25hbGx5IGFsbG93cyB0aGUKKyAgICAgICAgR0wgb3BlcmF0aW9ucyB0
byBiZSBkb25lIHRocm91Z2ggc29mdHdhcmUgcmFzdGVyaXphdGlvbiwgaGF2ZSB0aGUKKyAgICAg
ICAgSGVhZGxlc3NWaWV3QmFja2VuZCB1c2UgdGhlIFNITSBtb2RlIHdoaWNoIGVuZm9yY2VzIHRo
aXMgYmVoYXZpb3IuCisKKyAgICAgICAgVW5kZXIgdGhlIGhvb2QsIHRoZSBncmFwaGljcyBsaWJy
YXJ5IHdpbGwgYmUgZm9yY2VkIHRvIHNldCB1cCBhbmQgdXNlCisgICAgICAgIHRoZSBzb2Z0d2Fy
ZSByYXN0ZXJpemF0aW9uIG1lY2hhbmlzbXMsIGFuZCBvbiBvdXIgc2lkZSB3ZSBhcmUgcmVxdWly
ZWQKKyAgICAgICAgdG8gcHJvcGVybHkgaGFuZGxlIFNITS1iYWNrZWQgYnVmZmVycy4gVGhpcyBh
dm9pZHMgYW55IHVzZSBvZiBFR0wgb3IKKyAgICAgICAgR0wgb3BlcmF0aW9ucyBpbnNpZGUgSGVh
ZGxlc3NWaWV3QmFja2VuZCwgZW5hYmxpbmcgdG8gdXNlIHRoaXMgc2V0dXAKKyAgICAgICAgaW4g
c3lzdGVtcyBhbmQgZW52aXJvbm1lbnRzIHRoYXQgZG9uJ3QgaGF2ZSBHUFVzIGF2YWlsYWJsZS4K
KworICAgICAgICBBbGwgR0wteSB0aGluZ3MgYXJlIHB1c2hlZCBpbnRvIHRoZSBXaW5kb3dWaWV3
QmFja2VuZCBjbGFzcy4gSW5zaWRlCisgICAgICAgIEhlYWRsZXNzVmlld0JhY2tlbmQsIHRoZSB3
aG9sZSBTSE0gbG9naWMgcmVxdWlyZXMgV1BFQmFja2VuZC1mZG8gQVBJcworICAgICAgICB0aGF0
IGFyZSBwYXJ0IG9mIHRoZSBjdXJyZW50IDEuNyBkZXZlbG9wbWVudCBjeWNsZS4gV2hlbiBidWls
ZGluZworICAgICAgICBhZ2FpbnN0IG9sZGVyIHZlcnNpb25zLCBIZWFkbGVzc1ZpZXdCYWNrZW5k
IGl0c2VsZiByZW1haW5zIGJ1aWxkYWJsZQorICAgICAgICBidXQgaXMgbm90IG9wZXJhdGlvbmFs
IG90aGVyd2lzZS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2Vi
Vmlld1dQRS5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNo
b3RJbWFnZSk6CisgICAgICAgICogd3BlL2JhY2tlbmRzL0hlYWRsZXNzVmlld0JhY2tlbmQuY3Bw
OgorICAgICAgICAoV1BFVG9vbGluZ0JhY2tlbmRzOjpIZWFkbGVzc0luc3RhbmNlOjpzaW5nbGV0
b24pOgorICAgICAgICAoV1BFVG9vbGluZ0JhY2tlbmRzOjpIZWFkbGVzc1ZpZXdCYWNrZW5kOjpI
ZWFkbGVzc1ZpZXdCYWNrZW5kKToKKyAgICAgICAgKFdQRVRvb2xpbmdCYWNrZW5kczo6SGVhZGxl
c3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQpOgorICAgICAgICAoV1BFVG9vbGlu
Z0JhY2tlbmRzOjpIZWFkbGVzc1ZpZXdCYWNrZW5kOjpiYWNrZW5kIGNvbnN0KToKKyAgICAgICAg
KFdQRVRvb2xpbmdCYWNrZW5kczo6SGVhZGxlc3NWaWV3QmFja2VuZDo6c25hcHNob3QpOgorICAg
ICAgICAoV1BFVG9vbGluZ0JhY2tlbmRzOjpIZWFkbGVzc1ZpZXdCYWNrZW5kOjp1cGRhdGVTbmFw
c2hvdCk6CisgICAgICAgIChXUEVUb29saW5nQmFja2VuZHM6OkhlYWRsZXNzVmlld0JhY2tlbmQ6
OnZzeW5jKToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXUEVUb29saW5nQmFja2Vu
ZHM6OkhlYWRsZXNzRUdMQ29ubmVjdGlvbjo6c2luZ2xldG9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdQRVRvb2xpbmdCYWNrZW5kczo6SGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25hcHNob3Qp
OiBEZWxldGVkLgorICAgICAgICAoV1BFVG9vbGluZ0JhY2tlbmRzOjpIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjpjcmVhdGVFR0xTbmFwc2hvdCk6IERlbGV0ZWQuCisgICAgICAgIChXUEVUb29saW5nQmFj
a2VuZHM6OkhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNITVNuYXBzaG90KTogRGVsZXRlZC4K
KyAgICAgICAgKFdQRVRvb2xpbmdCYWNrZW5kczo6SGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9y
bVVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXUEVUb29saW5nQmFja2VuZHM6OkhlYWRsZXNz
Vmlld0JhY2tlbmQ6OmRpc3BsYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHdwZS9iYWNr
ZW5kcy9IZWFkbGVzc1ZpZXdCYWNrZW5kLmg6CisgICAgICAgICogd3BlL2JhY2tlbmRzL1ZpZXdC
YWNrZW5kLmNwcDoKKyAgICAgICAgKFdQRVRvb2xpbmdCYWNrZW5kczo6Vmlld0JhY2tlbmQ6Omlu
aXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAoV1BFVG9vbGluZ0JhY2tlbmRzOjpWaWV3QmFj
a2VuZDo6ZGVpbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdQRVRvb2xpbmdCYWNrZW5k
czo6Vmlld0JhY2tlbmQ6OmJhY2tlbmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHdwZS9i
YWNrZW5kcy9WaWV3QmFja2VuZC5oOgorICAgICAgICAqIHdwZS9iYWNrZW5kcy9XaW5kb3dWaWV3
QmFja2VuZC5jcHA6CisgICAgICAgIChXUEVUb29saW5nQmFja2VuZHM6OldpbmRvd1ZpZXdCYWNr
ZW5kOjpiYWNrZW5kIGNvbnN0KToKKyAgICAgICAgKFdQRVRvb2xpbmdCYWNrZW5kczo6V2luZG93
Vmlld0JhY2tlbmQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV1BFVG9vbGluZ0JhY2tlbmRzOjpX
aW5kb3dWaWV3QmFja2VuZDo6ZGVpbml0aWFsaXplKToKKyAgICAgICAgKiB3cGUvYmFja2VuZHMv
V2luZG93Vmlld0JhY2tlbmQuaDoKKwogMjAyMC0wNS0xNSAgTGF1cm8gTW91cmEgIDxsbW91cmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBkZWZhdWx0IGluaXRpYWxpemF0
aW9uIG9mIFdlYnNpdGVEYXRhU3RvcmUgdG8gV2ViS2l0VGVzdFJ1bm5lciBhZnRlciByMjYxNzU4
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdX
UEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNw
cAppbmRleCBkNDMzMzIyNGQ3ZWNiNzM5MTM2NGZhNGZkZDNkZmQwNDQ3ZmJjMjk3Li5mMWMwMThh
OTljNjMxYmRmMmJhYzM1Y2U3ZjhlY2Y3YjM2OTU0YmU4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTExOCw4ICsxMTgsNyBA
QCBjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSgp
CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5ydW4oKTsKICAgICB9CiAKLSAgICBjYWlyb19zdXJm
YWNlX3QqIGltYWdlU3VyZmFjZSA9IG1fd2luZG93LT5jcmVhdGVTbmFwc2hvdCgpOwotICAgIHJl
dHVybiBpbWFnZVN1cmZhY2U7CisgICAgcmV0dXJuIG1fd2luZG93LT5zbmFwc2hvdCgpOwogfQog
CiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZChmbG9hdCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcCBi
L1Rvb2xzL3dwZS9iYWNrZW5kcy9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcAppbmRleCAyMWY1NzQz
ZGFlYmM5ZDQ3YTY5YjA1NzkwMjE0NTkxOGU4NDEyOGRlLi5kMGFmMTlhOWFiYTlhZWFiOGFhM2Fj
YjJmOGMxMTI5ZjgzZTA3Y2Q3IDEwMDY0NAotLS0gYS9Ub29scy93cGUvYmFja2VuZHMvSGVhZGxl
c3NWaWV3QmFja2VuZC5jcHAKKysrIGIvVG9vbHMvd3BlL2JhY2tlbmRzL0hlYWRsZXNzVmlld0Jh
Y2tlbmQuY3BwCkBAIC0zMCw0NyArMzAsMzAgQEAKICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRl
IDx1bmlzdGQuaD4KIAotLy8gVGhpcyBpbmNsdWRlIG9yZGVyIGlzIG5lY2Vzc2FyeSB0byBlbmZv
cmNlIHRoZSBHQk0gRUdMIHBsYXRmb3JtLgotI2luY2x1ZGUgPGdibS5oPgotI2luY2x1ZGUgPGVw
b3h5L2VnbC5oPgorI2lmIFdQRV9GRE9fQ0hFQ0tfVkVSU0lPTigxLDcsMCkKICNpbmNsdWRlIDx3
YXlsYW5kLXNlcnZlci5oPgotI2luY2x1ZGUgPHdwZS9mZG8tZWdsLmg+Ci0KLSNpZm5kZWYgRUdM
X1dMX2JpbmRfd2F5bGFuZF9kaXNwbGF5Ci0jZGVmaW5lIEVHTF9XTF9iaW5kX3dheWxhbmRfZGlz
cGxheSAxCi10eXBlZGVmIEVHTEJvb2xlYW4gKEVHTEFQSUVOVFJZUCBQRk5FR0xRVUVSWVdBWUxB
TkRCVUZGRVJXTCkgKEVHTERpc3BsYXkgZHB5LCBzdHJ1Y3Qgd2xfcmVzb3VyY2UqIGJ1ZmZlciwg
RUdMaW50IGF0dHJpYnV0ZSwgRUdMaW50KiB2YWx1ZSk7Ci0KLSNkZWZpbmUgRUdMX1dBWUxBTkRf
QlVGRkVSX1dMIDB4MzFENSAvLyBlZ2xDcmVhdGVJbWFnZUtIUiB0YXJnZXQKLSNkZWZpbmUgRUdM
X1dBWUxBTkRfUExBTkVfV0wgIDB4MzFENiAvLyBlZ2xDcmVhdGVJbWFnZUtIUiB0YXJnZXQKKyNp
bmNsdWRlIDx3cGUvdW5zdGFibGUvZmRvLXNobS5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXUEVU
b29saW5nQmFja2VuZHMgewogCi1zdHJ1Y3QgSGVhZGxlc3NFR0xDb25uZWN0aW9uIHsKLSAgICBF
R0xEaXNwbGF5IGVnbERpc3BsYXkgeyBFR0xfTk9fRElTUExBWSB9OwotCi0gICAgc3RhdGljIGNv
bnN0IEhlYWRsZXNzRUdMQ29ubmVjdGlvbiYgc2luZ2xldG9uKCkKK3N0cnVjdCBIZWFkbGVzc0lu
c3RhbmNlIHsKKyAgICBzdGF0aWMgY29uc3QgSGVhZGxlc3NJbnN0YW5jZSYgc2luZ2xldG9uKCkK
ICAgICB7CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBzX29uY2VGbGFnOwotICAgICAg
ICBzdGF0aWMgSGVhZGxlc3NFR0xDb25uZWN0aW9uIHNfY29ubmVjdGlvbjsKKyAgICAgICAgc3Rh
dGljIEhlYWRsZXNzSW5zdGFuY2Ugc19pbnN0YW5jZTsKICAgICAgICAgc3RkOjpjYWxsX29uY2Uo
c19vbmNlRmxhZywKICAgICAgICAgICAgIFtdIHsKLSAgICAgICAgICAgICAgICBFR0xEaXNwbGF5
IGVnbERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwotICAgICAg
ICAgICAgICAgIGlmIChlZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBpZiAoIWVnbEluaXRpYWxpemUoZWds
RGlzcGxheSwgbnVsbHB0ciwgbnVsbHB0cikgfHwgIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19B
UEkpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBzX2Nv
bm5lY3Rpb24uZWdsRGlzcGxheSA9IGVnbERpc3BsYXk7Ci0gICAgICAgICAgICAgICAgd3BlX2Zk
b19pbml0aWFsaXplX2Zvcl9lZ2xfZGlzcGxheShzX2Nvbm5lY3Rpb24uZWdsRGlzcGxheSk7Cisj
aWYgV1BFX0ZET19DSEVDS19WRVJTSU9OKDEsNywwKQorICAgICAgICAgICAgICAgIHdwZV9mZG9f
aW5pdGlhbGl6ZV9zaG0oKTsKKyNlbmRpZgogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgcmV0
dXJuIHNfY29ubmVjdGlvbjsKKyAgICAgICAgcmV0dXJuIHNfaW5zdGFuY2U7CiAgICAgfQogfTsK
IAotc3RhdGljIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0
VGV4dHVyZTJET0VTOworc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBzX2J1ZmZlcktleTsK
IAogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB3dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3Jp
dHkuaC4KIHN0YXRpYyBpbnQga1J1bkxvb3BTb3VyY2VQcmlvcml0eURpc3BhdGNoZXIgPSAtNzA7
CkBAIC03OCwxMjkgKzYxLDk0IEBAIHN0YXRpYyBpbnQga1J1bkxvb3BTb3VyY2VQcmlvcml0eURp
c3BhdGNoZXIgPSAtNzA7CiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFkbGVzc1ZpZXdCYWNrZW5k
KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCiAgICAgOiBWaWV3QmFja2VuZCh3aWR0
aCwgaGVpZ2h0KQogewotICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBIZWFkbGVzc0VHTENvbm5lY3Rp
b246OnNpbmdsZXRvbigpOwotICAgIGlmIChjb25uZWN0aW9uLmVnbERpc3BsYXkgPT0gRUdMX05P
X0RJU1BMQVkgfHwgIWluaXRpYWxpemUoY29ubmVjdGlvbi5lZ2xEaXNwbGF5KSkKLSAgICAgICAg
cmV0dXJuOworICAgIC8vIFRoaXMgc2hvdWxkIGluaXRpYWxpemUgdGhlIFNITSBtb2RlLgorICAg
IEhlYWRsZXNzSW5zdGFuY2U6OnNpbmdsZXRvbigpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2NsaWVudCBleHBvcnRhYmxlQ2xpZW50ID0gewor
ICAgICAgICBudWxscHRyLAorICAgICAgICBudWxscHRyLAorI2lmIFdQRV9GRE9fQ0hFQ0tfVkVS
U0lPTigxLDcsMCkKKyAgICAgICAgLy8gZXhwb3J0X3NobV9idWZmZXIKKyAgICAgICAgW10odm9p
ZCogZGF0YSwgc3RydWN0IHdwZV9mZG9fc2htX2V4cG9ydGVkX2J1ZmZlciogYnVmZmVyKQorICAg
ICAgICB7CisgICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNz
Vmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tlbmQubV91cGRhdGUucGVuZGlu
ZyA9IHRydWU7CisKKyAgICAgICAgICAgIGJhY2tlbmQudXBkYXRlU25hcHNob3QoYnVmZmVyKTsK
KyAgICAgICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZGlzcGF0Y2hfcmVs
ZWFzZV9zaG1fZXhwb3J0ZWRfYnVmZmVyKGJhY2tlbmQubV9leHBvcnRhYmxlLCBidWZmZXIpOwor
ICAgICAgICB9LAorI2Vsc2UKKyAgICAgICAgbnVsbHB0ciwKKyNlbmRpZgorICAgICAgICBudWxs
cHRyLAorICAgICAgICBudWxscHRyLAorICAgIH07CisgICAgbV9leHBvcnRhYmxlID0gd3BlX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19jcmVhdGUoJmV4cG9ydGFibGVDbGllbnQsIHRoaXMs
IHdpZHRoLCBoZWlnaHQpOwogCiAgICAgYWRkQWN0aXZpdHlTdGF0ZSh3cGVfdmlld19hY3Rpdml0
eV9zdGF0ZV92aXNpYmxlIHwgd3BlX3ZpZXdfYWN0aXZpdHlfc3RhdGVfZm9jdXNlZCB8IHdwZV92
aWV3X2FjdGl2aXR5X3N0YXRlX2luX3dpbmRvdyk7CiAKLSAgICBpZiAoIWVnbE1ha2VDdXJyZW50
KGNvbm5lY3Rpb24uZWdsRGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBt
X2VnbENvbnRleHQpKQotICAgICAgICByZXR1cm47CisgICAgeworICAgICAgICB1aW50MzJfdCBz
dHJpZGUgPSBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMy
LCBtX3dpZHRoKTsKKyAgICAgICAgdWludDhfdCogYnVmZmVyID0gbmV3IHVpbnQ4X3Rbc3RyaWRl
ICogbV9oZWlnaHRdOworICAgICAgICBtZW1zZXQoYnVmZmVyLCAwLCBzdHJpZGUgKiBtX2hlaWdo
dCk7CisKKyAgICAgICAgbV9zbmFwc2hvdCA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zv
cl9kYXRhKGJ1ZmZlciwgQ0FJUk9fRk9STUFUX0FSR0IzMiwKKyAgICAgICAgICAgIG1fd2lkdGgs
IG1faGVpZ2h0LCBzdHJpZGUpOwogCi0gICAgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMgPSByZWlu
dGVycHJldF9jYXN0PFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DPihlZ2xHZXRQ
cm9jQWRkcmVzcygiZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyIpKTsKKyAgICAgICAgY2Fp
cm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKG1fc25hcHNob3QsICZzX2J1ZmZlcktleSwgYnVmZmVy
LAorICAgICAgICAgICAgW10odm9pZCogZGF0YSkgeworICAgICAgICAgICAgICAgIGF1dG8qIGJ1
ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKKyAgICAgICAgICAgICAgICBkZWxl
dGVbXSBidWZmZXI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9tYXJr
X2RpcnR5KG1fc25hcHNob3QpOworICAgIH0KIAotICAgIG1fdXBkYXRlU291cmNlID0gZ190aW1l
b3V0X3NvdXJjZV9uZXcobV9mcmFtZVJhdGUgLyAxMDAwKTsKLSAgICBnX3NvdXJjZV9zZXRfY2Fs
bGJhY2sobV91cGRhdGVTb3VyY2UsIFtdKGdwb2ludGVyIGRhdGEpIC0+IGdib29sZWFuIHsKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpLT5wZXJmb3JtVXBk
YXRlKCk7CisgICAgbV91cGRhdGUuc291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXcoR19VU0VD
X1BFUl9TRUMgLyA2MDAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlLnNv
dXJjZSwgW10oZ3BvaW50ZXIgZGF0YSkgLT4gZ2Jvb2xlYW4geworICAgICAgICBzdGF0aWNfY2Fz
dDxIZWFkbGVzc1ZpZXdCYWNrZW5kKj4oZGF0YSktPnZzeW5jKCk7CiAgICAgICAgIHJldHVybiBU
UlVFOwogICAgIH0sIHRoaXMsIG51bGxwdHIpOwotICAgIGdfc291cmNlX3NldF9wcmlvcml0eSht
X3VwZGF0ZVNvdXJjZSwga1J1bkxvb3BTb3VyY2VQcmlvcml0eURpc3BhdGNoZXIpOwotICAgIGdf
c291cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsK
KyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV91cGRhdGUuc291cmNlLCBrUnVuTG9vcFNvdXJj
ZVByaW9yaXR5RGlzcGF0Y2hlcik7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdXBkYXRlLnNvdXJj
ZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsKIH0KIAogSGVhZGxlc3NWaWV3QmFja2VuZDo6
fkhlYWRsZXNzVmlld0JhY2tlbmQoKQogewotICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkgewotICAg
ICAgICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291cmNlKTsKLSAgICAgICAgZ19zb3VyY2Vf
dW5yZWYobV91cGRhdGVTb3VyY2UpOworICAgIGlmIChtX3VwZGF0ZS5zb3VyY2UpIHsKKyAgICAg
ICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZS5zb3VyY2UpOworICAgICAgICBnX3NvdXJjZV91
bnJlZihtX3VwZGF0ZS5zb3VyY2UpOwogICAgIH0KIAotICAgIGlmIChtX2VnbC5sb2NrZWRJbWFn
ZSkKLSAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19lZ2xfZGlzcGF0Y2hf
cmVsZWFzZV9leHBvcnRlZF9pbWFnZShtX2V4cG9ydGFibGUsIG1fZWdsLmxvY2tlZEltYWdlKTsK
LSAgICBpZiAobV9lZ2wucGVuZGluZ0ltYWdlKQotICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4
cG9ydGFibGVfZmRvX2VnbF9kaXNwYXRjaF9yZWxlYXNlX2V4cG9ydGVkX2ltYWdlKG1fZXhwb3J0
YWJsZSwgbV9lZ2wucGVuZGluZ0ltYWdlKTsKLQotI2lmIFdQRV9GRE9fQ0hFQ0tfVkVSU0lPTigx
LCA1LCAwKQotICAgIGlmIChtX3NobS5sb2NrZWRCdWZmZXIpCi0gICAgICAgIHdwZV92aWV3X2Jh
Y2tlbmRfZXhwb3J0YWJsZV9mZG9fZWdsX2Rpc3BhdGNoX3JlbGVhc2Vfc2htX2V4cG9ydGVkX2J1
ZmZlcihtX2V4cG9ydGFibGUsIG1fc2htLmxvY2tlZEJ1ZmZlcik7Ci0gICAgaWYgKG1fc2htLnBl
bmRpbmdCdWZmZXIpCi0gICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZWds
X2Rpc3BhdGNoX3JlbGVhc2Vfc2htX2V4cG9ydGVkX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fc2ht
LnBlbmRpbmdCdWZmZXIpOwotI2VuZGlmCisgICAgaWYgKG1fc25hcHNob3QpCisgICAgICAgIGNh
aXJvX3N1cmZhY2VfZGVzdHJveShtX3NuYXBzaG90KTsKIAotICAgIGRlaW5pdGlhbGl6ZShIZWFk
bGVzc0VHTENvbm5lY3Rpb246OnNpbmdsZXRvbigpLmVnbERpc3BsYXkpOworICAgIGlmIChtX2V4
cG9ydGFibGUpCisgICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZGVzdHJv
eShtX2V4cG9ydGFibGUpOwogfQogCi1jYWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tl
bmQ6OmNyZWF0ZVNuYXBzaG90KCkKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBIZWFkbGVzc1Zp
ZXdCYWNrZW5kOjpiYWNrZW5kKCkgY29uc3QKIHsKLSAgICBwZXJmb3JtVXBkYXRlKCk7Ci0KLSAg
ICBpZiAobV9lZ2wubG9ja2VkSW1hZ2UpCi0gICAgICAgIHJldHVybiBjcmVhdGVFR0xTbmFwc2hv
dCgpOwotI2lmIFdQRV9GRE9fQ0hFQ0tfVkVSU0lPTigxLCA1LCAwKQotICAgIGlmIChtX3NobS5s
b2NrZWRCdWZmZXIpCi0gICAgICAgIHJldHVybiBjcmVhdGVTSE1TbmFwc2hvdCgpOwotI2VuZGlm
CisgICAgaWYgKG1fZXhwb3J0YWJsZSkKKyAgICAgICAgcmV0dXJuIHdwZV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9mZG9fZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpOwogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1jYWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNy
ZWF0ZUVHTFNuYXBzaG90KCkKK2NhaXJvX3N1cmZhY2VfdCogSGVhZGxlc3NWaWV3QmFja2VuZDo6
c25hcHNob3QoKQogewotICAgIGlmICghbV9lZ2xDb250ZXh0KQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1aW50OF90WzQgKiBtX3dpZHRoICog
bV9oZWlnaHRdOwotICAgIGJvb2wgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7Ci0KLSAgICBp
ZiAoIWVnbE1ha2VDdXJyZW50KEhlYWRsZXNzRUdMQ29ubmVjdGlvbjo6c2luZ2xldG9uKCkuZWds
RGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbENvbnRleHQpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEdMdWludCBpbWFnZVRleHR1cmU7Ci0gICAg
Z2xHZW5UZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKLSAgICBnbEJpbmRUZXh0dXJlKEdMX1RF
WFRVUkVfMkQsIGltYWdlVGV4dHVyZSk7Ci0gICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVf
MkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICBnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOwotICAg
IGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xB
TVBfVE9fRURHRSk7Ci0gICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICBnbFRleEltYWdlMkQoR0xfVEVYVFVS
RV8yRCwgMCwgR0xfQkdSQV9FWFQsIG1fd2lkdGgsIG1faGVpZ2h0LCAwLCBHTF9CR1JBX0VYVCwg
R0xfVU5TSUdORURfQllURSwgbnVsbHB0cik7Ci0KLSAgICBpbWFnZVRhcmdldFRleHR1cmUyRE9F
UyhHTF9URVhUVVJFXzJELCB3cGVfZmRvX2VnbF9leHBvcnRlZF9pbWFnZV9nZXRfZWdsX2ltYWdl
KG1fZWdsLmxvY2tlZEltYWdlKSk7Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAw
KTsKLQotICAgIEdMdWludCBpbWFnZUZyYW1lYnVmZmVyOwotICAgIGdsR2VuRnJhbWVidWZmZXJz
KDEsICZpbWFnZUZyYW1lYnVmZmVyKTsKLSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgaW1hZ2VGcmFtZWJ1ZmZlcik7Ci0gICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9G
UkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGltYWdlVGV4
dHVyZSwgMCk7Ci0KLSAgICBnbEZsdXNoKCk7Ci0gICAgaWYgKGdsQ2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhHTF9GUkFNRUJVRkZFUikgPT0gR0xfRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAg
ICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIG1fd2lkdGgsIG1faGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xf
VU5TSUdORURfQllURSwgYnVmZmVyKTsKLSAgICAgICAgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1
ZTsKLSAgICB9Ci0KLSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgMCk7Ci0g
ICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZmZXIpOwotICAgIGdsRGVs
ZXRlVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFw
c2hvdCkgewotICAgICAgICBkZWxldGVbXSBidWZmZXI7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KLQotICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLAotICAgICAgICBDQUlST19GT1JNQVRf
QVJHQjMyLCBtX3dpZHRoLCBtX2hlaWdodCwgY2Fpcm9fZm9ybWF0X3N0cmlkZV9mb3Jfd2lkdGgo
Q0FJUk9fRk9STUFUX0FSR0IzMiwgbV93aWR0aCkpOwotICAgIGNhaXJvX3N1cmZhY2VfbWFya19k
aXJ0eShpbWFnZVN1cmZhY2UpOwotCi0gICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBi
dWZmZXJLZXk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdlU3VyZmFjZSwg
JmJ1ZmZlcktleSwgYnVmZmVyLAotICAgICAgICBbXSh2b2lkKiBkYXRhKSB7Ci0gICAgICAgICAg
ICBhdXRvKiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7Ci0gICAgICAgICAg
ICBkZWxldGVbXSBidWZmZXI7Ci0gICAgICAgIH0pOwotCi0gICAgcmV0dXJuIGltYWdlU3VyZmFj
ZTsKKyAgICByZXR1cm4gY2Fpcm9fc3VyZmFjZV9yZWZlcmVuY2UobV9zbmFwc2hvdCk7CiB9CiAK
LSNpZiBXUEVfRkRPX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKLWNhaXJvX3N1cmZhY2VfdCogSGVh
ZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU0hNU25hcHNob3QoKQordm9pZCBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjp1cGRhdGVTbmFwc2hvdChzdHJ1Y3Qgd3BlX2Zkb19zaG1fZXhwb3J0ZWRfYnVmZmVy
KiBleHBvcnRlZEJ1ZmZlcikKIHsKLSAgICBzdHJ1Y3Qgd2xfc2htX2J1ZmZlciogc2htQnVmZmVy
ID0gd3BlX2Zkb19zaG1fZXhwb3J0ZWRfYnVmZmVyX2dldF9zaG1fYnVmZmVyKG1fc2htLmxvY2tl
ZEJ1ZmZlcik7CisjaWYgV1BFX0ZET19DSEVDS19WRVJTSU9OKDEsNywwKQorICAgIHN0cnVjdCB3
bF9zaG1fYnVmZmVyKiBzaG1CdWZmZXIgPSB3cGVfZmRvX3NobV9leHBvcnRlZF9idWZmZXJfZ2V0
X3NobV9idWZmZXIoZXhwb3J0ZWRCdWZmZXIpOwogICAgIHsKICAgICAgICAgYXV0byBmb3JtYXQg
PSB3bF9zaG1fYnVmZmVyX2dldF9mb3JtYXQoc2htQnVmZmVyKTsKICAgICAgICAgaWYgKGZvcm1h
dCAhPSBXTF9TSE1fRk9STUFUX0FSR0I4ODg4ICYmIGZvcm1hdCAhPSBXTF9TSE1fRk9STUFUX1hS
R0I4ODg4KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgdWludDMyX3QgYnVmZmVyU3RyaWRlID0gNCAqIG1fd2lkdGg7CisgICAg
dWludDMyX3QgYnVmZmVyU3RyaWRlID0gY2Fpcm9fZm9ybWF0X3N0cmlkZV9mb3Jfd2lkdGgoQ0FJ
Uk9fRk9STUFUX0FSR0IzMiwgbV93aWR0aCk7CiAgICAgdWludDhfdCogYnVmZmVyID0gbmV3IHVp
bnQ4X3RbYnVmZmVyU3RyaWRlICogbV9oZWlnaHRdOwogICAgIG1lbXNldChidWZmZXIsIDAsIGJ1
ZmZlclN0cmlkZSAqIG1faGVpZ2h0KTsKIApAQCAtMjI0LDY0ICsxNzIsMzEgQEAgY2Fpcm9fc3Vy
ZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTSE1TbmFwc2hvdCgpCiAgICAgICAg
IHdsX3NobV9idWZmZXJfZW5kX2FjY2VzcyhzaG1CdWZmZXIpOwogICAgIH0KIAotICAgIGNhaXJv
X3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9y
X2RhdGEoYnVmZmVyLAotICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMyLCBtX3dpZHRoLCBtX2hl
aWdodCwgY2Fpcm9fZm9ybWF0X3N0cmlkZV9mb3Jfd2lkdGgoQ0FJUk9fRk9STUFUX0FSR0IzMiwg
bV93aWR0aCkpOwotICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOwor
ICAgIGlmIChtX3NuYXBzaG90KQorICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kobV9zbmFw
c2hvdCk7CisKKyAgICBtX3NuYXBzaG90ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9y
X2RhdGEoYnVmZmVyLCBDQUlST19GT1JNQVRfQVJHQjMyLAorICAgICAgICBtX3dpZHRoLCBtX2hl
aWdodCwgY2Fpcm9fZm9ybWF0X3N0cmlkZV9mb3Jfd2lkdGgoQ0FJUk9fRk9STUFUX0FSR0IzMiwg
bV93aWR0aCkpOwogCiAgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7
Ci0gICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktl
eSwgYnVmZmVyLAorICAgIGNhaXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShtX3NuYXBzaG90LCAm
YnVmZmVyS2V5LCBidWZmZXIsCiAgICAgICAgIFtdKHZvaWQqIGRhdGEpIHsKICAgICAgICAgICAg
IGF1dG8qIGJ1ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKICAgICAgICAgICAg
IGRlbGV0ZVtdIGJ1ZmZlcjsKICAgICAgICAgfSk7Ci0KLSAgICByZXR1cm4gaW1hZ2VTdXJmYWNl
OwotfQorICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShtX3NuYXBzaG90KTsKKyNlbHNlCisg
ICAgKHZvaWQpZXhwb3J0ZWRCdWZmZXI7CiAjZW5kaWYKK30KIAotdm9pZCBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpwZXJmb3JtVXBkYXRlKCkKK3ZvaWQgSGVhZGxlc3NWaWV3QmFja2VuZDo6dnN5bmMo
KQogewotICAgIGlmIChtX2VnbC5wZW5kaW5nSW1hZ2UpIHsKLSAgICAgICAgd3BlX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUp
OwotCi0gICAgICAgIGlmIChtX2VnbC5sb2NrZWRJbWFnZSkKLSAgICAgICAgICAgIHdwZV92aWV3
X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZWdsX2Rpc3BhdGNoX3JlbGVhc2VfZXhwb3J0ZWRfaW1h
Z2UobV9leHBvcnRhYmxlLCBtX2VnbC5sb2NrZWRJbWFnZSk7Ci0KLSAgICAgICAgbV9lZ2wubG9j
a2VkSW1hZ2UgPSBtX2VnbC5wZW5kaW5nSW1hZ2U7Ci0gICAgICAgIG1fZWdsLnBlbmRpbmdJbWFn
ZSA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBXUEVfRkRPX0NIRUNL
X1ZFUlNJT04oMSwgNSwgMCkKLSAgICBpZiAobV9zaG0ucGVuZGluZ0J1ZmZlcikgeworI2lmIFdQ
RV9GRE9fQ0hFQ0tfVkVSU0lPTigxLDcsMCkKKyAgICBpZiAobV91cGRhdGUucGVuZGluZykKICAg
ICAgICAgd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9mcmFtZV9jb21w
bGV0ZShtX2V4cG9ydGFibGUpOwotCi0gICAgICAgIGlmIChtX3NobS5sb2NrZWRCdWZmZXIpCi0g
ICAgICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2VnbF9kaXNwYXRjaF9y
ZWxlYXNlX3NobV9leHBvcnRlZF9idWZmZXIobV9leHBvcnRhYmxlLCBtX3NobS5sb2NrZWRCdWZm
ZXIpOwotCi0gICAgICAgIG1fc2htLmxvY2tlZEJ1ZmZlciA9IG1fc2htLnBlbmRpbmdCdWZmZXI7
Ci0gICAgICAgIG1fc2htLnBlbmRpbmdCdWZmZXIgPSBudWxscHRyOwotICAgICAgICByZXR1cm47
Ci0gICAgfQogI2VuZGlmCisgICAgbV91cGRhdGUucGVuZGluZyA9IGZhbHNlOwogfQogCi12b2lk
IEhlYWRsZXNzVmlld0JhY2tlbmQ6OmRpc3BsYXlCdWZmZXIoc3RydWN0IHdwZV9mZG9fZWdsX2V4
cG9ydGVkX2ltYWdlKiBpbWFnZSkKLXsKLSAgICBpZiAobV9lZ2wucGVuZGluZ0ltYWdlKQotICAg
ICAgICBzdGQ6OmFib3J0KCk7Ci0KLSAgICBtX2VnbC5wZW5kaW5nSW1hZ2UgPSBpbWFnZTsKLX0K
LQotI2lmIFdQRV9GRE9fQ0hFQ0tfVkVSU0lPTigxLCA1LCAwKQotdm9pZCBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpkaXNwbGF5QnVmZmVyKHN0cnVjdCB3cGVfZmRvX3NobV9leHBvcnRlZF9idWZmZXIq
IGJ1ZmZlcikKLXsKLSAgICBpZiAobV9zaG0ucGVuZGluZ0J1ZmZlcikKLSAgICAgICAgc3RkOjph
Ym9ydCgpOwotCi0gICAgbV9zaG0ucGVuZGluZ0J1ZmZlciA9IGJ1ZmZlcjsKLX0KLSNlbmRpZgot
CiB9IC8vIG5hbWVzcGFjZSBXUEVUb29saW5nQmFja2VuZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL3dw
ZS9iYWNrZW5kcy9IZWFkbGVzc1ZpZXdCYWNrZW5kLmggYi9Ub29scy93cGUvYmFja2VuZHMvSGVh
ZGxlc3NWaWV3QmFja2VuZC5oCmluZGV4IDk0N2ViMWNlZjhmM2RlNGVmZGQzZmViNDUxYmEyZDYw
OTNlMTNiN2IuLjdjMzJkMjAzZTE1ODhjZjRlZmM2OTk4YzhiNmIyOTdkYTJlNWFkZjMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKKysrIGIvVG9v
bHMvd3BlL2JhY2tlbmRzL0hlYWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMjgsNyArMjgsNiBAQAog
I2luY2x1ZGUgIlZpZXdCYWNrZW5kLmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDxn
bGliLmg+Ci0jaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KIAogbmFtZXNwYWNlIFdQRVRvb2xpbmdC
YWNrZW5kcyB7CiAKQEAgLTM3LDM1ICszNiwyMiBAQCBwdWJsaWM6CiAgICAgSGVhZGxlc3NWaWV3
QmFja2VuZCh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KTsKICAgICB2aXJ0dWFsIH5I
ZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CiAKLSAgICBjYWlyb19zdXJmYWNlX3QqIGNyZWF0ZVNuYXBz
aG90KCk7CisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBjb25zdCBvdmVy
cmlkZTsKIAotcHJpdmF0ZToKLSAgICBjYWlyb19zdXJmYWNlX3QqIGNyZWF0ZUVHTFNuYXBzaG90
KCk7Ci0jaWYgV1BFX0ZET19DSEVDS19WRVJTSU9OKDEsIDUsIDApCi0gICAgY2Fpcm9fc3VyZmFj
ZV90KiBjcmVhdGVTSE1TbmFwc2hvdCgpOwotI2VuZGlmCisgICAgY2Fpcm9fc3VyZmFjZV90KiBz
bmFwc2hvdCgpOwogCi0gICAgdm9pZCBkaXNwbGF5QnVmZmVyKHN0cnVjdCB3cGVfZmRvX2VnbF9l
eHBvcnRlZF9pbWFnZSopIG92ZXJyaWRlOwotI2lmIFdQRV9GRE9fQ0hFQ0tfVkVSU0lPTigxLCA1
LCAwKQotICAgIHZvaWQgZGlzcGxheUJ1ZmZlcihzdHJ1Y3Qgd3BlX2Zkb19zaG1fZXhwb3J0ZWRf
YnVmZmVyKikgb3ZlcnJpZGU7Ci0jZW5kaWYKK3ByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTbmFw
c2hvdChzdHJ1Y3Qgd3BlX2Zkb19zaG1fZXhwb3J0ZWRfYnVmZmVyKik7CisgICAgdm9pZCB2c3lu
YygpOwogCi0gICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisgICAgc3RydWN0IHdwZV92aWV3X2Jh
Y2tlbmRfZXhwb3J0YWJsZV9mZG8qIG1fZXhwb3J0YWJsZSB7IG51bGxwdHIgfTsKIAotICAgIHN0
cnVjdCB7Ci0gICAgICAgIHN0cnVjdCB3cGVfZmRvX2VnbF9leHBvcnRlZF9pbWFnZSogcGVuZGlu
Z0ltYWdlIHsgbnVsbHB0ciB9OwotICAgICAgICBzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRf
aW1hZ2UqIGxvY2tlZEltYWdlIHsgbnVsbHB0ciB9OwotICAgIH0gbV9lZ2w7CisgICAgY2Fpcm9f
c3VyZmFjZV90KiBtX3NuYXBzaG90IHsgbnVsbHB0ciB9OwogCi0jaWYgV1BFX0ZET19DSEVDS19W
RVJTSU9OKDEsIDUsIDApCiAgICAgc3RydWN0IHsKLSAgICAgICAgc3RydWN0IHdwZV9mZG9fc2ht
X2V4cG9ydGVkX2J1ZmZlciogcGVuZGluZ0J1ZmZlciB7IG51bGxwdHIgfTsKLSAgICAgICAgc3Ry
dWN0IHdwZV9mZG9fc2htX2V4cG9ydGVkX2J1ZmZlciogbG9ja2VkQnVmZmVyIHsgbnVsbHB0ciB9
OwotICAgIH0gbV9zaG07Ci0jZW5kaWYKLQotICAgIEdTb3VyY2UqIG1fdXBkYXRlU291cmNlIHsg
bnVsbHB0ciB9OwotICAgIGdpbnQ2NCBtX2ZyYW1lUmF0ZSB7IEdfVVNFQ19QRVJfU0VDIC8gNjAg
fTsKKyAgICAgICAgR1NvdXJjZSogc291cmNlIHsgbnVsbHB0ciB9OworICAgICAgICBib29sIHBl
bmRpbmcgeyBmYWxzZSB9OworICAgIH0gbV91cGRhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
UEVUb29saW5nQmFja2VuZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9WaWV3QmFj
a2VuZC5jcHAgYi9Ub29scy93cGUvYmFja2VuZHMvVmlld0JhY2tlbmQuY3BwCmluZGV4IGRlNGI2
ZmQ3YjgwODhmNDIwYTU0NDcyNTFjYjA2YTc0MjM0YWZkMTEuLjQ2ZTU4YTQ3YTVlYzZhNDY1NDBh
NmZhNjg0MTdlMTU4YmMwY2Q1NjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9WaWV3
QmFja2VuZC5jcHAKKysrIGIvVG9vbHMvd3BlL2JhY2tlbmRzL1ZpZXdCYWNrZW5kLmNwcApAQCAt
MTM4LDc4ICsxMzgsNiBAQCBWaWV3QmFja2VuZDo6Vmlld0JhY2tlbmQodWludDMyX3Qgd2lkdGgs
IHVpbnQzMl90IGhlaWdodCkKIAogVmlld0JhY2tlbmQ6On5WaWV3QmFja2VuZCgpID0gZGVmYXVs
dDsKIAotYm9vbCBWaWV3QmFja2VuZDo6aW5pdGlhbGl6ZShFR0xEaXNwbGF5IGVnbERpc3BsYXkp
Ci17Ci0gICAgc3RhdGljIGNvbnN0IEVHTGludCBjb25maWdBdHRyaWJ1dGVzWzEzXSA9IHsKLSAg
ICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCi0gICAgICAgIEVHTF9SRURf
U0laRSwgMSwKLSAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCi0gICAgICAgIEVHTF9CTFVFX1NJ
WkUsIDEsCi0gICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAotICAgICAgICBFR0xfUkVOREVSQUJM
RV9UWVBFLCBFR0xfT1BFTkdMX0VTMl9CSVQsCi0gICAgICAgIEVHTF9OT05FCi0gICAgfTsKLQot
ICAgIHsKLSAgICAgICAgRUdMaW50IGNvdW50ID0gMDsKLSAgICAgICAgaWYgKCFlZ2xHZXRDb25m
aWdzKGVnbERpc3BsYXksIG51bGxwdHIsIDAsICZjb3VudCkgfHwgY291bnQgPCAxKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIEVHTENvbmZpZyogY29uZmlncyA9IGdfbmV3
MChFR0xDb25maWcsIGNvdW50KTsKLSAgICAgICAgRUdMaW50IG1hdGNoZWQgPSAwOwotICAgICAg
ICBpZiAoZWdsQ2hvb3NlQ29uZmlnKGVnbERpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsIGNvbmZp
Z3MsIGNvdW50LCAmbWF0Y2hlZCkgJiYgISFtYXRjaGVkKQotICAgICAgICAgICAgbV9lZ2xDb25m
aWcgPSBjb25maWdzWzBdOwotICAgICAgICBnX2ZyZWUoY29uZmlncyk7Ci0gICAgfQotCi0gICAg
c3RhdGljIGNvbnN0IEVHTGludCBjb250ZXh0QXR0cmlidXRlc1szXSA9IHsKLSAgICAgICAgRUdM
X0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04sIDIsCi0gICAgICAgIEVHTF9OT05FCi0gICAgfTsKLQot
ICAgIG1fZWdsQ29udGV4dCA9IGVnbENyZWF0ZUNvbnRleHQoZWdsRGlzcGxheSwgbV9lZ2xDb25m
aWcsIEVHTF9OT19DT05URVhULCBjb250ZXh0QXR0cmlidXRlcyk7Ci0gICAgaWYgKCFtX2VnbENv
bnRleHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19lZ2xfY2xpZW50IGV4cG9ydGFibGVDbGllbnQgPSB7
Ci0gICAgICAgIC8vIGV4cG9ydF9lZ2xfaW1hZ2UKLSAgICAgICAgbnVsbHB0ciwKLSAgICAgICAg
Ly8gZXhwb3J0X2Zkb19lZ2xfaW1hZ2UKLSAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdw
ZV9mZG9fZWdsX2V4cG9ydGVkX2ltYWdlKiBpbWFnZSkKLSAgICAgICAgewotICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8Vmlld0JhY2tlbmQqPihkYXRhKS0+ZGlzcGxheUJ1ZmZlcihpbWFnZSk7Ci0g
ICAgICAgIH0sCi0jaWYgV1BFX0ZET19DSEVDS19WRVJTSU9OKDEsIDUsIDApCi0gICAgICAgIC8v
IGV4cG9ydF9zaG1fYnVmZmVyCi0gICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfZmRv
X3NobV9leHBvcnRlZF9idWZmZXIqIGJ1ZmZlcikKLSAgICAgICAgewotICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8Vmlld0JhY2tlbmQqPihkYXRhKS0+ZGlzcGxheUJ1ZmZlcihidWZmZXIpOwotICAg
ICAgICB9LAotICAgICAgICAvLyBwYWRkaW5nCi0gICAgICAgIG51bGxwdHIsIG51bGxwdHIKLSNl
bHNlCi0gICAgICAgIC8vIHBhZGRpbmcKLSAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
cgotI2VuZGlmCi0KLSAgICB9OwotICAgIG1fZXhwb3J0YWJsZSA9IHdwZV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9mZG9fZWdsX2NyZWF0ZSgmZXhwb3J0YWJsZUNsaWVudCwgdGhpcywgbV93aWR0
aCwgbV9oZWlnaHQpOwotCi0gICAgaW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHkoKTsKLQotICAgIHJl
dHVybiB0cnVlOwotfQotCi12b2lkIFZpZXdCYWNrZW5kOjpkZWluaXRpYWxpemUoRUdMRGlzcGxh
eSBlZ2xEaXNwbGF5KQotewotICAgIG1faW5wdXRDbGllbnQgPSBudWxscHRyOwotCi0gICAgaWYg
KG1fZWdsQ29udGV4dCkKLSAgICAgICAgZWdsRGVzdHJveUNvbnRleHQoZWdsRGlzcGxheSwgbV9l
Z2xDb250ZXh0KTsKLQotICAgIGlmIChtX2V4cG9ydGFibGUpCi0gICAgICAgIHdwZV92aWV3X2Jh
Y2tlbmRfZXhwb3J0YWJsZV9mZG9fZGVzdHJveShtX2V4cG9ydGFibGUpOwotfQogCiB2b2lkIFZp
ZXdCYWNrZW5kOjppbml0aWFsaXplQWNjZXNzaWJpbGl0eSgpCiB7CkBAIC0yODEsMTEgKzIwOSw2
IEBAIHZvaWQgVmlld0JhY2tlbmQ6OnNldEFjY2Vzc2libGVDaGlsZChBdGtPYmplY3QqIGNoaWxk
KQogfQogI2VuZGlmCiAKLXN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBWaWV3QmFja2VuZDo6YmFj
a2VuZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZXhwb3J0YWJsZSA/IHdwZV92aWV3X2JhY2tl
bmRfZXhwb3J0YWJsZV9mZG9fZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpIDogbnVsbHB0
cjsKLX0KLQogdm9pZCBWaWV3QmFja2VuZDo6YWRkQWN0aXZpdHlTdGF0ZSh1aW50MzJfdCBmbGFn
cykKIHsKICAgICB1aW50MzJfdCBwcmV2aW91c0ZsYWdzID0gd3BlX3ZpZXdfYmFja2VuZF9nZXRf
YWN0aXZpdHlfc3RhdGUoYmFja2VuZCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9iYWNrZW5k
cy9WaWV3QmFja2VuZC5oIGIvVG9vbHMvd3BlL2JhY2tlbmRzL1ZpZXdCYWNrZW5kLmgKaW5kZXgg
NzQ1ZGI0YWZmZDZlYmMxNzM5YTczMTAwMWU0OGRiMjg0NzEyZWJhZi4uOTkzODhmYzVkNzNlNTdh
MGZiMjExZTQyM2RmYWJkMmFjMThlZDc0NyAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2JhY2tlbmRz
L1ZpZXdCYWNrZW5kLmgKKysrIGIvVG9vbHMvd3BlL2JhY2tlbmRzL1ZpZXdCYWNrZW5kLmgKQEAg
LTQ5LDYgKzQ5LDggQEAgY2xhc3MgVmlld0JhY2tlbmQgewogcHVibGljOgogICAgIHZpcnR1YWwg
flZpZXdCYWNrZW5kKCk7CiAKKyAgICB2aXJ0dWFsIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBi
YWNrZW5kKCkgY29uc3QgPSAwOworCiAgICAgY2xhc3MgSW5wdXRDbGllbnQgewogICAgIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCB+SW5wdXRDbGllbnQoKSA9IGRlZmF1bHQ7CkBAIC02MywxNiAr
NjUsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWNjZXNzaWJsZUNoaWxkKEF0a09iamVjdCop
OwogI2VuZGlmCiAKLSAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIGNvbnN0
OwogICAgIHZvaWQgYWRkQWN0aXZpdHlTdGF0ZSh1aW50MzJfdCk7CiAgICAgdm9pZCByZW1vdmVB
Y3Rpdml0eVN0YXRlKHVpbnQzMl90KTsKIAogcHJvdGVjdGVkOgogICAgIFZpZXdCYWNrZW5kKHVp
bnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpOwogCi0gICAgYm9vbCBpbml0aWFsaXplKEVH
TERpc3BsYXkpOwotICAgIHZvaWQgZGVpbml0aWFsaXplKEVHTERpc3BsYXkpOwotCiAgICAgdm9p
ZCBpbml0aWFsaXplQWNjZXNzaWJpbGl0eSgpOwogICAgIHZvaWQgdXBkYXRlQWNjZXNzaWJpbGl0
eVN0YXRlKHVpbnQzMl90KTsKIApAQCAtODEsMTYgKzc5LDggQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZGlzcGF0Y2hJbnB1dEtleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9l
dmVudCopOwogICAgIHZvaWQgZGlzcGF0Y2hJbnB1dFRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1
dF90b3VjaF9ldmVudCopOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BsYXlCdWZmZXIoc3RydWN0
IHdwZV9mZG9fZWdsX2V4cG9ydGVkX2ltYWdlKikgPSAwOwotI2lmIFdQRV9GRE9fQ0hFQ0tfVkVS
U0lPTigxLCA1LCAwKQotICAgIHZpcnR1YWwgdm9pZCBkaXNwbGF5QnVmZmVyKHN0cnVjdCB3cGVf
ZmRvX3NobV9leHBvcnRlZF9idWZmZXIqKSA9IDA7Ci0jZW5kaWYKLQogICAgIHVpbnQzMl90IG1f
d2lkdGggeyAwIH07CiAgICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07Ci0gICAgRUdMQ29udGV4
dCBtX2VnbENvbnRleHQgeyBudWxscHRyIH07Ci0gICAgRUdMQ29uZmlnIG1fZWdsQ29uZmlnOwot
ICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvKiBtX2V4cG9ydGFibGUg
eyBudWxscHRyIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPElucHV0Q2xpZW50PiBtX2lucHV0Q2xp
ZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNr
ZW5kLmNwcCBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAKaW5kZXgg
ZGU5ODg0YjM0ZTcwYzg4NjkwMDc5OWY5ZDc4YzYxNjY0NmZlMDRkZS4uZWMyZDVhMDkyNmMzYmNm
NmQ4MzJjN2RhZmI0YTlkZTEyYjllYjNiMSAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2JhY2tlbmRz
L1dpbmRvd1ZpZXdCYWNrZW5kLmNwcAorKysgYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmll
d0JhY2tlbmQuY3BwCkBAIC02NjQsNiArNjY0LDExIEBAIGNvbnN0IHN0cnVjdCB3bF9jYWxsYmFj
a19saXN0ZW5lciBXaW5kb3dWaWV3QmFja2VuZDo6c19mcmFtZUxpc3RlbmVyID0gewogICAgIH0K
IH07CiAKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBXaW5kb3dWaWV3QmFja2VuZDo6YmFja2Vu
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZXhwb3J0YWJsZSA/IHdwZV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9mZG9fZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpIDogbnVsbHB0cjsK
K30KKwogdm9pZCBXaW5kb3dWaWV3QmFja2VuZDo6Y3JlYXRlVmlld1RleHR1cmUoKQogewogICAg
IGdsR2VuVGV4dHVyZXMoMSwgJm1fdmlld1RleHR1cmUpOwpAQCAtNjk3LDYgKzcwMiw3OSBAQCB2
b2lkIFdpbmRvd1ZpZXdCYWNrZW5kOjpyZXNpemUodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhl
aWdodCkKICAgICBjcmVhdGVWaWV3VGV4dHVyZSgpOwogfQogCitib29sIFdpbmRvd1ZpZXdCYWNr
ZW5kOjppbml0aWFsaXplKEVHTERpc3BsYXkgZWdsRGlzcGxheSkKK3sKKyAgICBzdGF0aWMgY29u
c3QgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbMTNdID0geworICAgICAgICBFR0xfU1VSRkFDRV9U
WVBFLCBFR0xfV0lORE9XX0JJVCwKKyAgICAgICAgRUdMX1JFRF9TSVpFLCAxLAorICAgICAgICBF
R0xfR1JFRU5fU0laRSwgMSwKKyAgICAgICAgRUdMX0JMVUVfU0laRSwgMSwKKyAgICAgICAgRUdM
X0FMUEhBX1NJWkUsIDEsCisgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xf
RVMyX0JJVCwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9OworCisgICAgeworICAgICAgICBFR0xp
bnQgY291bnQgPSAwOworICAgICAgICBpZiAoIWVnbEdldENvbmZpZ3MoZWdsRGlzcGxheSwgbnVs
bHB0ciwgMCwgJmNvdW50KSB8fCBjb3VudCA8IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgRUdMQ29uZmlnKiBjb25maWdzID0gZ19uZXcwKEVHTENvbmZpZywgY291bnQp
OworICAgICAgICBFR0xpbnQgbWF0Y2hlZCA9IDA7CisgICAgICAgIGlmIChlZ2xDaG9vc2VDb25m
aWcoZWdsRGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgY29uZmlncywgY291bnQsICZtYXRjaGVk
KSAmJiAhIW1hdGNoZWQpCisgICAgICAgICAgICBtX2VnbENvbmZpZyA9IGNvbmZpZ3NbMF07Cisg
ICAgICAgIGdfZnJlZShjb25maWdzKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgRUdMaW50
IGNvbnRleHRBdHRyaWJ1dGVzWzNdID0geworICAgICAgICBFR0xfQ09OVEVYVF9DTElFTlRfVkVS
U0lPTiwgMiwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9OworCisgICAgbV9lZ2xDb250ZXh0ID0g
ZWdsQ3JlYXRlQ29udGV4dChlZ2xEaXNwbGF5LCBtX2VnbENvbmZpZywgRUdMX05PX0NPTlRFWFQs
IGNvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICBpZiAoIW1fZWdsQ29udGV4dCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFi
bGVfZmRvX2VnbF9jbGllbnQgZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAgICAgICAgLy8gZXhwb3J0
X2VnbF9pbWFnZQorICAgICAgICBudWxscHRyLAorICAgICAgICAvLyBleHBvcnRfZmRvX2VnbF9p
bWFnZQorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRf
aW1hZ2UqIGltYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXaW5kb3dW
aWV3QmFja2VuZCo+KGRhdGEpLT5kaXNwbGF5QnVmZmVyKGltYWdlKTsKKyAgICAgICAgfSwKKyNp
ZiBXUEVfRkRPX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKKyAgICAgICAgLy8gZXhwb3J0X3NobV9i
dWZmZXIKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9mZG9fc2htX2V4cG9ydGVk
X2J1ZmZlciogYnVmZmVyKQorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXaW5k
b3dWaWV3QmFja2VuZCo+KGRhdGEpLT5kaXNwbGF5QnVmZmVyKGJ1ZmZlcik7CisgICAgICAgIH0s
CisgICAgICAgIC8vIHBhZGRpbmcKKyAgICAgICAgbnVsbHB0ciwgbnVsbHB0cgorI2Vsc2UKKyAg
ICAgICAgLy8gcGFkZGluZworICAgICAgICBudWxscHRyLCBudWxscHRyLCBudWxscHRyCisjZW5k
aWYKKworICAgIH07CisgICAgbV9leHBvcnRhYmxlID0gd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRh
YmxlX2Zkb19lZ2xfY3JlYXRlKCZleHBvcnRhYmxlQ2xpZW50LCB0aGlzLCBtX3dpZHRoLCBtX2hl
aWdodCk7CisKKyAgICBpbml0aWFsaXplQWNjZXNzaWJpbGl0eSgpOworCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgV2luZG93Vmlld0JhY2tlbmQ6OmRlaW5pdGlhbGl6ZShFR0xEaXNwbGF5
IGVnbERpc3BsYXkpCit7CisgICAgbV9pbnB1dENsaWVudCA9IG51bGxwdHI7CisKKyAgICBpZiAo
bV9lZ2xDb250ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChlZ2xEaXNwbGF5LCBtX2Vn
bENvbnRleHQpOworCisgICAgaWYgKG1fZXhwb3J0YWJsZSkKKyAgICAgICAgd3BlX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2Zkb19kZXN0cm95KG1fZXhwb3J0YWJsZSk7Cit9CisKIHZvaWQgV2lu
ZG93Vmlld0JhY2tlbmQ6OmRpc3BsYXlCdWZmZXIoc3RydWN0IHdwZV9mZG9fZWdsX2V4cG9ydGVk
X2ltYWdlKiBpbWFnZSkKIHsKICAgICBpZiAoIW1fZWdsQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5oIGIvVG9vbHMvd3BlL2JhY2tlbmRz
L1dpbmRvd1ZpZXdCYWNrZW5kLmgKaW5kZXggMTBkMjNjN2ZkYmUwZGQ2NDI3MDdjNDNhMzZjN2M4
NTJkMTAzYzlhYy4uZGFkNzc0ZDhmMzNjYzRkYzYxMTIxZmRlNzk2NmNkNzczMDVhNTc1ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmgKKysrIGIvVG9v
bHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmgKQEAgLTQwLDEzICs0MCwxOCBAQCBw
dWJsaWM6CiAgICAgV2luZG93Vmlld0JhY2tlbmQodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhl
aWdodCk7CiAgICAgdmlydHVhbCB+V2luZG93Vmlld0JhY2tlbmQoKTsKIAorICAgIHN0cnVjdCB3
cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAg
ICAgdm9pZCBjcmVhdGVWaWV3VGV4dHVyZSgpOwogICAgIHZvaWQgcmVzaXplKHVpbnQzMl90IHdp
ZHRoLCB1aW50MzJfdCBoZWlnaHQpOwogCi0gICAgdm9pZCBkaXNwbGF5QnVmZmVyKHN0cnVjdCB3
cGVfZmRvX2VnbF9leHBvcnRlZF9pbWFnZSopIG92ZXJyaWRlOworICAgIGJvb2wgaW5pdGlhbGl6
ZShFR0xEaXNwbGF5KTsKKyAgICB2b2lkIGRlaW5pdGlhbGl6ZShFR0xEaXNwbGF5KTsKKworICAg
IHZvaWQgZGlzcGxheUJ1ZmZlcihzdHJ1Y3Qgd3BlX2Zkb19lZ2xfZXhwb3J0ZWRfaW1hZ2UqKTsK
ICNpZiBXUEVfRkRPX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKLSAgICB2b2lkIGRpc3BsYXlCdWZm
ZXIoc3RydWN0IHdwZV9mZG9fc2htX2V4cG9ydGVkX2J1ZmZlciopIG92ZXJyaWRlOworICAgIHZv
aWQgZGlzcGxheUJ1ZmZlcihzdHJ1Y3Qgd3BlX2Zkb19zaG1fZXhwb3J0ZWRfYnVmZmVyKik7CiAj
ZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2xfcmVnaXN0cnlfbGlzdGVuZXIgc19y
ZWdpc3RyeUxpc3RlbmVyOwpAQCAtMTAzLDYgKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgICAgIHVp
bnQzMl90IGhlaWdodDsKICAgICB9IG1faW5pdGlhbFNpemU7CiAKKyAgICBzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2ZkbyogbV9leHBvcnRhYmxlIHsgbnVsbHB0ciB9OworCiAg
ICAgc3RydWN0IHdsX2Rpc3BsYXkqIG1fZGlzcGxheSB7IG51bGxwdHIgfTsKICAgICBzdHJ1Y3Qg
d2xfY29tcG9zaXRvciogbV9jb21wb3NpdG9yIHsgbnVsbHB0ciB9OwogICAgIHN0cnVjdCB6eGRn
X3NoZWxsX3Y2KiBtX3hkZyB7IG51bGxwdHIgfTsKQEAgLTExMiw2ICsxMTksOCBAQCBwcml2YXRl
OgogICAgIHN0cnVjdCB6eGRnX3N1cmZhY2VfdjYqIG1feGRnU3VyZmFjZSB7IG51bGxwdHIgfTsK
ICAgICBzdHJ1Y3QgenhkZ190b3BsZXZlbF92NiogbV94ZGdUb3BsZXZlbCB7IG51bGxwdHIgfTsK
ICAgICBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyogbV9lZ2xXaW5kb3cgeyBudWxscHRyIH07CisgICAg
RUdMQ29udGV4dCBtX2VnbENvbnRleHQgeyBudWxscHRyIH07CisgICAgRUdMQ29uZmlnIG1fZWds
Q29uZmlnOwogICAgIEVHTFN1cmZhY2UgbV9lZ2xTdXJmYWNlIHsgbnVsbHB0ciB9OwogICAgIHVu
c2lnbmVkIG1fcHJvZ3JhbSB7IDAgfTsKICAgICB1bnNpZ25lZCBtX3RleHR1cmVVbmlmb3JtIHsg
MCB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>