<?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>136385</bug_id>
          
          <creation_ts>2014-08-29 13:07:24 -0700</creation_ts>
          <short_desc>Remove Windows WebKit2 code from TestWebKitAPI</short_desc>
          <delta_ts>2014-08-29 15:56:08 -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>Tools / Tests</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032225</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-29 13:07:24 -0700</bug_when>
    <thetext>There are some remnants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032230</commentid>
    <comment_count>1</comment_count>
      <attachid>237369</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-29 13:14:57 -0700</bug_when>
    <thetext>Created attachment 237369
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032232</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-29 13:15:52 -0700</bug_when>
    <thetext>I will try to remember to make sure the win/ directory actually goes away when I land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032277</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-29 15:56:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/173126</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237369</attachid>
            <date>2014-08-29 13:14:57 -0700</date>
            <delta_ts>2014-08-29 15:53:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>win.diff</filename>
            <type>text/plain</type>
            <size>29627</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiYTIy
NzJmLi42ZmI1ZTQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTQtMDgtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFdpbmRvd3MgV2ViS2l0MiBjb2Rl
IGZyb20gVGVzdFdlYktpdEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM2Mzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmg6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2V0UGFyZW50V2luZG93TWVzc2FnZU9ic2VydmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvTW91c2VNb3ZlQWZ0
ZXJDcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU3BhY2ViYXJTY3JvbGxpbmcuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9BbHRL
ZXlHZW5lcmF0ZXNXTVN5c0NvbW1hbmQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vRG9Ob3RDb3B5QU51bGxDRlVSTFJlc3BvbnNlLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL0hpZGVG
aW5kSW5kaWNhdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvd2luL1Jlc2l6ZVZpZXdXaGlsZUhpZGRlbi5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9UcmFuc2xhdGVNZXNzYWdlR2VuZXJh
dGVzV01DaGFyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvd2luL1dNQ2xvc2VDYWxsc1VJQ2xpZW50Q2xvc2UuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vV01QcmludC5jcHA6IFJlbW92ZWQu
CisKIDIwMTQtMDgtMjkgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0pTQ10gU29tZSBKU0MgdGVzdHMgYXJlIGRlcGVuZGVudCBvbiB0
aGUgbWFjaGluZSB0aW1lIHpvbmUuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVz
LmgKaW5kZXggODU4ZTZiNy4uZjAzYTc0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybVV0aWxpdGllcy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1V
dGlsaXRpZXMuaApAQCAtNDAsMTAgKzQwLDYgQEAgbmFtZXNwYWNlIFV0aWwgewogLy8gUnVucyBh
IHBsYXRmb3JtIHJ1bmxvb3AgdW50aWwgdGhlICdkb25lJyBpcyB0cnVlLiAKIHZvaWQgcnVuKGJv
b2wqIGRvbmUpOwogCi0jaWYgUExBVEZPUk0oV0lOKQotYm9vbCBzaG91bGRUcmFuc2xhdGVNZXNz
YWdlKGNvbnN0IE1TRyYpOwotI2VuZGlmCi0KIHZvaWQgc2xlZXAoZG91YmxlIHNlY29uZHMpOwog
CiBXS0NvbnRleHRSZWYgY3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggMDFmOGU0Yy4uNmZjYzdmYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCkBAIC00MCw5ICs0MCw2IEBAIGNsYXNzIE5T
V2luZG93OwogI2VuZGlmCiB0eXBlZGVmIFdLVmlldyAqUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVm
IE5TV2luZG93ICpQbGF0Zm9ybVdpbmRvdzsKLSNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmlu
ZWQoX1dJTjMyKQotdHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Ci10eXBlZGVmIEhX
TkQgUGxhdGZvcm1XaW5kb3c7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIFdLVmlld1Jl
ZiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKQEAg
LTUzLDEwICs1MCw2IEBAIHR5cGVkZWYgRWNvcmVfRXZhcyogUGxhdGZvcm1XaW5kb3c7CiAKIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAotI2lmIFBMQVRGT1JNKFdJTikKLWNsYXNzIFdpbmRv
d01lc3NhZ2VPYnNlcnZlcjsKLSNlbmRpZgotCiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXcgewogcHVi
bGljOgogICAgIFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmID0g
MCk7CkBAIC03MiwyMyArNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaW11bGF0ZVJpZ2h0Q2xp
Y2sodW5zaWduZWQgeCwgdW5zaWduZWQgeSk7CiAgICAgdm9pZCBzaW11bGF0ZU1vdXNlTW92ZSh1
bnNpZ25lZCB4LCB1bnNpZ25lZCB5KTsKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkIHNp
bXVsYXRlQUtleURvd24oKTsKLSAgICB2b2lkIHNldFBhcmVudFdpbmRvd01lc3NhZ2VPYnNlcnZl
cihXaW5kb3dNZXNzYWdlT2JzZXJ2ZXIqIG9ic2VydmVyKSB7IG1fcGFyZW50V2luZG93TWVzc2Fn
ZU9ic2VydmVyID0gb2JzZXJ2ZXI7IH0KLSNlbmRpZgotCiBwcml2YXRlOgotI2lmIFBMQVRGT1JN
KFdJTikKLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlcldpbmRvd0NsYXNzKCk7Ci0gICAgc3RhdGlj
IExSRVNVTFQgQ0FMTEJBQ0sgd25kUHJvYyhIV05ELCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSwgTFBB
UkFNKTsKLSNlbmRpZgotCiAgICAgUGxhdGZvcm1XS1ZpZXcgbV92aWV3OwogICAgIFBsYXRmb3Jt
V2luZG93IG1fd2luZG93OwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIFdpbmRvd01lc3NhZ2VP
YnNlcnZlciogbV9wYXJlbnRXaW5kb3dNZXNzYWdlT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9Nb3VzZU1vdmVBZnRlckNyYXNoLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9Nb3VzZU1vdmVBZnRlckNyYXNoLmNwcAppbmRleCBiNzViZTZh
Li40NjNhODVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
TW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL01vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwCkBAIC00OCwxMSArNDgsNyBAQCBzdGF0aWMg
dm9pZCBzZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlKQogICAgIFdLUGFnZVNldFBh
Z2VMb2FkZXJDbGllbnQocGFnZSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIH0KIAotI2lmIFBMQVRG
T1JNKFdJTikKLVRFU1QoV2ViS2l0MiwgRElTQUJMRURfTW91c2VNb3ZlQWZ0ZXJDcmFzaCkKLSNl
bHNlCiBURVNUKFdlYktpdDIsIE1vdXNlTW92ZUFmdGVyQ3Jhc2gpCi0jZW5kaWYKIHsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIk1vdXNlTW92ZUFmdGVyQ3Jhc2hUZXN0IikpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1NwYWNlYmFy
U2Nyb2xsaW5nLmNwcAppbmRleCAzNjEzNzI2Li5lMTYzZDUzIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU3BhY2ViYXJTY3JvbGxpbmcuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9TcGFjZWJhclNjcm9sbGluZy5jcHAKQEAg
LTg2LDEzICs4NiwxMSBAQCBURVNUKFdlYktpdDIsIFNwYWNlYmFyU2Nyb2xsaW5nKQogICAgIEVY
UEVDVF9KU19GQUxTRSh3ZWJWaWV3LnBhZ2UoKSwgImlzRG9jdW1lbnRTY3JvbGxlZCgpIik7CiAg
ICAgRVhQRUNUX0pTX1RSVUUod2ViVmlldy5wYWdlKCksICJ0ZXh0RmllbGRDb250YWluc1NwYWNl
KCkiKTsKIAotICAgIC8vIE9uIE1hYywgYSBrZXkgZG93biBldmVudCByZXByZXNlbnRzIGJvdGgg
YSByYXcga2V5IGRvd24gYW5kIGEga2V5IHByZXNzLiBPbiBXaW5kb3dzLCBhIGtleQotICAgIC8v
IGRvd24gZXZlbnQgb25seSByZXByZXNlbnRzIGEgcmF3IGtleSBkb3duLiBXZSBleHBlY3QgdGhl
IGtleSBwcmVzcyB0byBiZSBoYW5kbGVkIChiZWNhdXNlIGl0Ci0gICAgLy8gaW5zZXJ0cyB0ZXh0
IGludG8gdGhlIHRleHQgZmllbGQpLiBCdXQgdGhlIHJhdyBrZXkgZG93biBzaG91bGQgbm90IGJl
IGhhbmRsZWQuCisgICAgLy8gT24gTWFjLCBhIGtleSBkb3duIGV2ZW50IHJlcHJlc2VudHMgYm90
aCBhIHJhdyBrZXkgZG93biBhbmQgYSBrZXkgcHJlc3MuCisgICAgLy8gV2UgZXhwZWN0IHRoZSBr
ZXkgcHJlc3MgdG8gYmUgaGFuZGxlZCAoYmVjYXVzZSBpdCBpbnNlcnRzIHRleHQgaW50byB0aGUg
dGV4dCBmaWVsZCksCisgICAgLy8gYnV0IHRoZSByYXcga2V5IGRvd24gc2hvdWxkIG5vdCBiZSBo
YW5kbGVkLgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEVYUEVDVF9GQUxTRShkaWROb3RIYW5k
bGVLZXlEb3duRXZlbnQpOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIEVYUEVDVF9UUlVFKGRp
ZE5vdEhhbmRsZUtleURvd25FdmVudCk7CiAjZW5kaWYKIAogICAgIEVYUEVDVF9KU19FUSh3ZWJW
aWV3LnBhZ2UoKSwgImJsdXJUZXh0RmllbGQoKSIsICJ1bmRlZmluZWQiKTsKQEAgLTEwMCwxNyAr
OTgsMTEgQEAgVEVTVChXZWJLaXQyLCBTcGFjZWJhclNjcm9sbGluZykKICAgICBkaWROb3RIYW5k
bGVLZXlEb3duRXZlbnQgPSBmYWxzZTsKICAgICB3ZWJWaWV3LnNpbXVsYXRlU3BhY2ViYXJLZXlQ
cmVzcygpOwogCi0gICAgLy8gVGhpcyBFWFBFQ1RfSlNfVFJVRSB0ZXN0IGZhaWxzIG9uIFdpbmRv
d3MgcG9ydAotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDk2MQotI2lmICFQTEFURk9STShXSU4pCiAgICAgRVhQRUNUX0pTX1RSVUUod2ViVmlldy5wYWdl
KCksICJpc0RvY3VtZW50U2Nyb2xsZWQoKSIpOwotI2VuZGlmCiAgICAgRVhQRUNUX0pTX1RSVUUo
d2ViVmlldy5wYWdlKCksICJ0ZXh0RmllbGRDb250YWluc1NwYWNlKCkiKTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIEVYUEVDVF9GQUxTRShkaWROb3RIYW5kbGVLZXlEb3duRXZlbnQpOwot
I2VsaWYgUExBVEZPUk0oV0lOKQotICAgIEVYUEVDVF9UUlVFKGRpZE5vdEhhbmRsZUtleURvd25F
dmVudCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDM4MTgzZTAuLmU1YTZmMmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHAK
QEAgLTQxLDE1ICs0MSw3IEBAIFRFU1QoV2ViS2l0MiwgV0tQcmVmZXJlbmNlc0Jhc2ljKQogCiBU
RVNUKFdlYktpdDIsIFdLUHJlZmVyZW5jZXNEZWZhdWx0cykKIHsKLSNpZiBQTEFURk9STShXSU4p
Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkU3RhbmRhcmRGb250RmFtaWx5ID0gIlRp
bWVzIE5ldyBSb21hbiI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkRml4ZWRGb250
RmFtaWx5ID0gIkNvdXJpZXIgTmV3IjsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRT
ZXJpZkZvbnRGYW1pbHkgPSAiVGltZXMgTmV3IFJvbWFuIjsKLSAgICBzdGF0aWMgY29uc3QgY2hh
ciogZXhwZWN0ZWRTYW5zU2VyaWZGb250RmFtaWx5ID0gIkFyaWFsIjsKLSAgICBzdGF0aWMgY29u
c3QgY2hhciogZXhwZWN0ZWRDdXJzaXZlRm9udEZhbWlseSA9ICJDb21pYyBTYW5zIE1TIjsKLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRGYW50YXN5Rm9udEZhbWlseSA9ICJDb21pYyBT
YW5zIE1TIjsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRQaWN0b2dyYXBoRm9udEZh
bWlseSA9ICJUaW1lcyBOZXcgUm9tYW4iOwotI2VsaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTdGFuZGFyZEZvbnRGYW1p
bHkgPSAiVGltZXMiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleHBlY3RlZEZpeGVkRm9udEZh
bWlseSA9ICJDb3VyaWVyIjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZXhwZWN0ZWRTZXJpZkZv
bnRGYW1pbHkgPSAiVGltZXMiOwpAQCAtOTksMTEgKzkxLDcgQEAgVEVTVChXZWJLaXQyLCBXS1By
ZWZlcmVuY2VzRGVmYXVsdHMpCiAgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKHByZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfVFJVRShXS1ByZWZl
cmVuY2VzR2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKHByZWZlcmVuY2UpKTsKIAotI2lmIFBMQVRG
T1JNKFdJTikKLSAgICBFWFBFQ1RfRVEoa1dLRm9udFNtb290aGluZ0xldmVsV2luZG93cywgV0tQ
cmVmZXJlbmNlc0dldEZvbnRTbW9vdGhpbmdMZXZlbChwcmVmZXJlbmNlKSk7Ci0jZWxzZQogICAg
IEVYUEVDVF9FUShrV0tGb250U21vb3RoaW5nTGV2ZWxNZWRpdW0sIFdLUHJlZmVyZW5jZXNHZXRG
b250U21vb3RoaW5nTGV2ZWwocHJlZmVyZW5jZSkpOwotI2VuZGlmCiAKICAgICBFWFBFQ1RfVFJV
RShXS1ByZWZlcmVuY2VzR2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQocHJlZmVyZW5j
ZSkpOwogICAgIEVYUEVDVF9GQUxTRShXS1ByZWZlcmVuY2VzR2V0Q29tcG9zaXRpbmdCb3JkZXJz
VmlzaWJsZShwcmVmZXJlbmNlKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvd2luL0FsdEtleUdlbmVyYXRlc1dNU3lzQ29tbWFuZC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL0FsdEtleUdlbmVyYXRlc1dNU3lzQ29tbWFu
ZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwY2QwNzIuLjAwMDAwMDAKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9BbHRLZXlHZW5lcmF0ZXNX
TVN5c0NvbW1hbmQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgIldpbmRvd01lc3NhZ2VPYnNl
cnZlci5oIgotI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgotCi1uYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7Ci0KLWNsYXNzIFdNU3lzQ29tbWFuZE9ic2VydmVyIDogcHVibGljIFdpbmRv
d01lc3NhZ2VPYnNlcnZlciB7Ci1wdWJsaWM6Ci0gICAgV01TeXNDb21tYW5kT2JzZXJ2ZXIoKSA6
IG1fd2luZG93RGlkUmVjZWl2ZVdNU3lzQ29tbWFuZChmYWxzZSkgeyB9Ci0KLSAgICBib29sIHdp
bmRvd0RpZFJlY2VpdmVXTVN5c0NvbW1hbmQoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd0RpZFJl
Y2VpdmVXTVN5c0NvbW1hbmQ7IH0KLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgd2luZG93
UmVjZWl2ZWRNZXNzYWdlKEhXTkQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNLCBMUEFSQU0pCi0gICAg
ewotICAgICAgICBpZiAobWVzc2FnZSA9PSBXTV9TWVNDT01NQU5EKQotICAgICAgICAgICAgbV93
aW5kb3dEaWRSZWNlaXZlV01TeXNDb21tYW5kID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBib29sIG1f
d2luZG93RGlkUmVjZWl2ZVdNU3lzQ29tbWFuZDsKLX07Ci0KLXN0YXRpYyBib29sIGRpZE5vdEhh
bmRsZVdNU3lzS2V5VXA7Ci0KLXN0YXRpYyB2b2lkIGRpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJh
Y2soV0tQYWdlUmVmLCBXS05hdGl2ZUV2ZW50UHRyIGV2ZW50LCBjb25zdCB2b2lkKikKLXsKLSAg
ICBpZiAoZXZlbnQtPm1lc3NhZ2UgIT0gV01fU1lTS0VZVVApCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGRpZE5vdEhhbmRsZVdNU3lzS2V5VXAgPSB0cnVlOwotfQotCi1URVNUKFdlYktpdDIsIEFs
dEtleUdlbmVyYXRlc1dNU3lzQ29tbWFuZCkKLXsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRS
ZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOwotICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwotCi0gICAgV0tQYWdlVUlDbGllbnQgdWlDbGll
bnQ7Ci0gICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7Ci0KLSAgICB1
aUNsaWVudC5kaWROb3RIYW5kbGVLZXlFdmVudCA9IGRpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJh
Y2s7Ci0gICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQp
OwotCi0gICAgV01TeXNDb21tYW5kT2JzZXJ2ZXIgb2JzZXJ2ZXI7Ci0gICAgd2ViVmlldy5zZXRQ
YXJlbnRXaW5kb3dNZXNzYWdlT2JzZXJ2ZXIoJm9ic2VydmVyKTsKLQotICAgIHdlYlZpZXcuc2lt
dWxhdGVBbHRLZXlQcmVzcygpOwotCi0gICAgVXRpbDo6cnVuKCZkaWROb3RIYW5kbGVXTVN5c0tl
eVVwKTsKLQotICAgIHdlYlZpZXcuc2V0UGFyZW50V2luZG93TWVzc2FnZU9ic2VydmVyKDApOwot
Ci0gICAgLy8gVGhlIFdNX1NZU0tFWVVQIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgZ2VuZXJhdGVkIGEg
V01fU1lTQ09NTUFORCBtZXNzYWdlIHRoYXQgd2FzIHNlbnQgdG8gdGhlCi0gICAgLy8gV0tWaWV3
J3MgcGFyZW50IHdpbmRvdy4KLSAgICBFWFBFQ1RfVFJVRShvYnNlcnZlci53aW5kb3dEaWRSZWNl
aXZlV01TeXNDb21tYW5kKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL0RvTm90Q29w
eUFOdWxsQ0ZVUkxSZXNwb25zZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvd2luL0RvTm90Q29weUFOdWxsQ0ZVUkxSZXNwb25zZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY1MTNmNTAuLjAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL3dpbi9Eb05vdENvcHlBTnVsbENGVVJMUmVzcG9uc2UuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tVUkxS
ZXNwb25zZUNGLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1uYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7Ci0KLVRFU1QoV2ViS2l0MiwgRG9Ob3RDb3B5QU51bGxDRlVSTFJlc3BvbnNl
KQotewotICAgIC8vIE5laXRoZXIgb2YgdGhlc2UgY2FsbHMgc2hvdWxkIGNhdXNlIGEgY3Jhc2gu
Ci0gICAgV0tSZXRhaW5QdHI8V0tVUkxSZXNwb25zZVJlZj4gbnVsbFdLUmVzcG9uc2UoQWRvcHRX
SywgV0tVUkxSZXNwb25zZUNyZWF0ZVdpdGhDRlVSTFJlc3BvbnNlKDApKTsKLSAgICBSZXRhaW5Q
dHI8Q0ZVUkxSZXNwb25zZVJlZj4gbnVsbENGUmVzcG9uc2UgPSBhZG9wdENGKFdLVVJMUmVzcG9u
c2VDb3B5Q0ZVUkxSZXNwb25zZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxsV0tSZXNwb25zZS5n
ZXQoKSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL0hpZGVGaW5kSW5kaWNhdG9yLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vSGlkZUZpbmRJbmRpY2F0
b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTM1MGZmLi4wMDAwMDAwCi0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vSGlkZUZpbmRJbmRpY2F0
b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgIlRlc3QuaCIKLQotbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgewotCi1zdGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkOwotc3RhdGljIGJvb2wgZmlu
ZEluZGljYXRvckNhbGxiYWNrV2FzQ2FsbGVkOwotc3RhdGljIEhCSVRNQVAgYml0bWFwOwotCi1z
dGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgZmluZEluZGljYXRv
ckNhbGxiYWNrKFdLVmlld1JlZiwgSEJJVE1BUCBzZWxlY3Rpb25CaXRtYXAsIFJFQ1QsIGJvb2ws
IHZvaWQqKQotewotICAgIGZpbmRJbmRpY2F0b3JDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7Ci0g
ICAgYml0bWFwID0gc2VsZWN0aW9uQml0bWFwOwotfQotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXpl
KGNvbnN0IFBsYXRmb3JtV2ViVmlldyYgd2ViVmlldykKLXsKLSAgICBXS1BhZ2VMb2FkZXJDbGll
bnQgbG9hZGVyQ2xpZW50OwotICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9h
ZGVyQ2xpZW50KSk7Ci0KLSAgICBsb2FkZXJDbGllbnQudmVyc2lvbiA9IDA7Ci0gICAgbG9hZGVy
Q2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRGb3JGcmFtZTsKLSAg
ICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50
KTsKLQotICAgIFdLVmlld1NldEZpbmRJbmRpY2F0b3JDYWxsYmFjayh3ZWJWaWV3LnBsYXRmb3Jt
VmlldygpLCBmaW5kSW5kaWNhdG9yQ2FsbGJhY2ssIDApOwotfQotCi1URVNUKFdlYktpdDIsIEhp
ZGVGaW5kSW5kaWNhdG9yKQotewotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7Ci0gICAgaW5pdGlhbGl6ZSh3ZWJWaWV3KTsKLQotICAgIFdLUmV0
YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNl
KCJmaW5kIiwgImh0bWwiKSk7Ci0gICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJs
LmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOwotICAgIGRpZEZpbmlzaExv
YWQgPSBmYWxzZTsKLQotICAgIFdLUGFnZUZpbmRTdHJpbmcod2ViVmlldy5wYWdlKCksIFV0aWw6
OnRvV0soIkhlbGxvIikuZ2V0KCksIGtXS0ZpbmRPcHRpb25zU2hvd0ZpbmRJbmRpY2F0b3IsIDEw
MCk7Ci0gICAgVXRpbDo6cnVuKCZmaW5kSW5kaWNhdG9yQ2FsbGJhY2tXYXNDYWxsZWQpOwotICAg
IGZpbmRJbmRpY2F0b3JDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwotCi0gICAgRVhQRUNUX05P
VF9OVUxMKGJpdG1hcCk7Ci0gICAgOjpEZWxldGVPYmplY3QoYml0bWFwKTsKLSAgICBiaXRtYXAg
PSAwOwotCi0gICAgV0tQYWdlSGlkZUZpbmRVSSh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgVXRpbDo6
cnVuKCZmaW5kSW5kaWNhdG9yQ2FsbGJhY2tXYXNDYWxsZWQpOwotCi0gICAgRVhQRUNUX05VTEwo
Yml0bWFwKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9SZXNpemVWaWV3V2hpbGVIaWRk
ZW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9SZXNpemVWaWV3
V2hpbGVIaWRkZW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTUxMGIyLi4w
MDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vUmVzaXpl
Vmlld1doaWxlSGlkZGVuLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW5jbHVkZSA8V2ViS2l0L1dLUmV0
YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotc3RhdGljIGJvb2wgZGlk
RmluaXNoTG9hZDsKLQotc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKLXsKLSAgICBkaWRGaW5pc2hM
b2FkID0gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgc2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VS
ZWYgcGFnZSkKLXsKLSAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OwotICAgIG1l
bXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7Ci0gICAgbG9hZGVy
Q2xpZW50LnZlcnNpb24gPSAwOwotICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJh
bWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7Ci0KLSAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xp
ZW50KHBhZ2UsICZsb2FkZXJDbGllbnQpOwotfQotCi1zdGF0aWMgdm9pZCBmbHVzaE1lc3NhZ2Vz
KFdLUGFnZVJlZiBwYWdlKQotewotICAgIC8vIEluIG9yZGVyIHRvIGVuc3VyZSBhbGwgcGVuZGlu
ZyBtZXNzYWdlcyBoYXZlIGJlZW4gaGFuZGxlZCBieSB0aGUgVUkgYW5kIHdlYiBwcm9jZXNzZXMs
IHdlCi0gICAgLy8gbG9hZCBhIFVSTCBhbmQgd2FpdCBmb3IgdGhlIGxvYWQgdG8gZmluaXNoLgot
Ci0gICAgc2V0UGFnZUxvYWRlckNsaWVudChwYWdlKTsKLQotICAgIFdLUGFnZUxvYWRVUkwocGFn
ZSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSku
Z2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7Ci0gICAgZGlkRmluaXNoTG9h
ZCA9IGZhbHNlOwotCi0gICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlLCAwKTsKLX0K
LQotc3RhdGljIGJvb2wgdGltZXJGaXJlZDsKLXN0YXRpYyB2b2lkIENBTExCQUNLIHRpbWVyQ2Fs
bGJhY2soSFdORCBod25kLCBVSU5ULCBVSU5UX1BUUiB0aW1lcklELCBEV09SRCkKLXsKLSAgICA6
OktpbGxUaW1lcihod25kLCB0aW1lcklEKTsKLSAgICB0aW1lckZpcmVkID0gdHJ1ZTsKLX0KLQot
c3RhdGljIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIHNlY29uZHMpCi17Ci0gICAgOjpTZXRU
aW1lcigwLCAwLCBzZWNvbmRzICogMTAwMCwgdGltZXJDYWxsYmFjayk7Ci0gICAgVXRpbDo6cnVu
KCZ0aW1lckZpcmVkKTsKLSAgICB0aW1lckZpcmVkID0gZmFsc2U7Ci19Ci0KLXN0YXRpYyB2b2lk
IHdhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGUoV0tQYWdlUmVmIHBhZ2UpCi17Ci0gICAgLy8gV2Fp
dCBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIGhhbmRsZSB0aGUgY2hhbmdlcyB3ZSBqdXN0IG1hZGUs
IHRvIHBlcmZvcm0gYSBkaXNwbGF5ICh3aGljaAotICAgIC8vIGhhcHBlbnMgb24gYSB0aW1lciks
IGFuZCB0byB0ZWxsIHRoZSBVSSBwcm9jZXNzIGFib3V0IHRoZSBkaXNwbGF5ICh3aGljaCB1cGRh
dGVzIHRoZSBiYWNraW5nCi0gICAgLy8gc3RvcmUpLgotICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBi
ZSBtdWNoIGxlc3MgZnJhZ2lsZSAoYW5kIG1heWJlIGZhc3RlcikgdG8gaGF2ZSBhbiBleHBsaWNp
dCB3YXkgdG8gd2FpdAotICAgIC8vIHVudGlsIHRoZSBiYWNraW5nIHN0b3JlIGlzIHVwZGF0ZWQu
Ci0gICAgcnVuRm9yRHVyYXRpb24oMC41KTsKLSAgICBmbHVzaE1lc3NhZ2VzKHBhZ2UpOwotfQot
Ci1URVNUKFdlYktpdDIsIFJlc2l6ZVZpZXdXaGlsZUhpZGRlbikKLXsKLSAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOwotICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwotCi0gICAgSFdORCB3aW5k
b3cgPSBXS1ZpZXdHZXRXaW5kb3cod2ViVmlldy5wbGF0Zm9ybVZpZXcoKSk7Ci0KLSAgICBSRUNU
IG9yaWdpbmFsUmVjdDsKLSAgICA6OkdldENsaWVudFJlY3Qod2luZG93LCAmb3JpZ2luYWxSZWN0
KTsKLSAgICBSRUNUIG5ld1JlY3QgPSBvcmlnaW5hbFJlY3Q7Ci0gICAgOjpJbmZsYXRlUmVjdCgm
bmV3UmVjdCwgMSwgMSk7Ci0KLSAgICAvLyBTaG93IHRoZSBXS1ZpZXcgYW5kIHJlc2l6ZSBpdCBz
byB0aGF0IHRoZSBXS1ZpZXcncyBiYWNraW5nIHN0b3JlIHdpbGwgYmUgY3JlYXRlZC4gSWRlYWxs
eQotICAgIC8vIHdlJ2QgaGF2ZSBzb21lIG1vcmUgZXhwbGljaXQgd2F5IG9mIGZvcmNpbmcgdGhl
IGJhY2tpbmcgc3RvcmUgdG8gYmUgY3JlYXRlZC4KLSAgICA6OlNob3dXaW5kb3cod2luZG93LCBT
V19TSE9XKTsKLSAgICB3ZWJWaWV3LnJlc2l6ZVRvKG5ld1JlY3QucmlnaHQgLSBuZXdSZWN0Lmxl
ZnQsIG5ld1JlY3QuYm90dG9tIC0gbmV3UmVjdC50b3ApOwotCi0gICAgd2FpdEZvckJhY2tpbmdT
dG9yZVVwZGF0ZSh3ZWJWaWV3LnBhZ2UoKSk7Ci0KLSAgICAvLyBSZXNpemUgdGhlIHdpbmRvdyB3
aGlsZSBoaWRkZW4gYW5kIHNob3cgaXQgYWdhaW4gc28gdGhhdCBpdCB3aWxsIHVwZGF0ZSBpdHMg
YmFja2luZyBzdG9yZSBhdAotICAgIC8vIHRoZSBuZXcgc2l6ZS4KLSAgICA6OlNob3dXaW5kb3co
d2luZG93LCBTV19ISURFKTsKLSAgICB3ZWJWaWV3LnJlc2l6ZVRvKG9yaWdpbmFsUmVjdC5yaWdo
dCAtIG9yaWdpbmFsUmVjdC5sZWZ0LCBvcmlnaW5hbFJlY3QuYm90dG9tIC0gb3JpZ2luYWxSZWN0
LnRvcCk7Ci0gICAgOjpTaG93V2luZG93KHdpbmRvdywgU1dfU0hPVyk7Ci0KLSAgICAvLyBGb3Jj
ZSB0aGUgV0tWaWV3IHRvIHBhaW50IHRvIHRyeSB0byB0cmlnZ2VyIDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzU0MTQyPi4KLSAgICA6OlNlbmRNZXNzYWdlKHdpbmRvdywgV01fUEFJTlQsIDAsIDApOwot
Ci0gICAgLy8gSW4gRGVidWcgYnVpbGRzIHdpdGhvdXQgdGhlIGZpeCBmb3IgPGh0dHA6Ly93ZWJr
aXQub3JnL2IvNTQxNDE+LCB0aGUgd2ViIHByb2Nlc3Mgd2lsbCBhc3NlcnQKLSAgICAvLyBhdCB0
aGlzIHBvaW50LgotICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBnb29kIHRvIGhhdmUgYSB3YXkg
dG8gY2hlY2sgdGhhdCBvdXIgYmVoYXZpb3IgaXMgY29ycmVjdCBpbiBSZWxlYXNlCi0gICAgLy8g
YnVpbGRzLCB0b28hCi0gICAgd2FpdEZvckJhY2tpbmdTdG9yZVVwZGF0ZSh3ZWJWaWV3LnBhZ2Uo
KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vVHJhbnNsYXRlTWVzc2FnZUdlbmVyYXRl
c1dNQ2hhci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL1RyYW5z
bGF0ZU1lc3NhZ2VHZW5lcmF0ZXNXTUNoYXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyYWE4NmZhLi4wMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi93aW4vVHJhbnNsYXRlTWVzc2FnZUdlbmVyYXRlc1dNQ2hhci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw5MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3Lmgi
Ci0jaW5jbHVkZSAiV2luZG93TWVzc2FnZU9ic2VydmVyLmgiCi0jaW5jbHVkZSA8V2ViS2l0L1dL
UmV0YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotc3RhdGljIGJvb2wg
ZGlkU2VlV01DaGFyOwotc3RhdGljIGJvb2wgZGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsZWQ7Ci0K
LXN0YXRpYyB2b2lkIGRpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2soV0tQYWdlUmVmLCBXS05h
dGl2ZUV2ZW50UHRyIGV2ZW50LCBjb25zdCB2b2lkKikKLXsKLSAgICBpZiAoZXZlbnQtPm1lc3Nh
Z2UgIT0gV01fS0VZRE9XTikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIERvbid0IGNh
bGwgVHJhbnNsYXRlTWVzc2FnZSgpIGhlcmUgc28gYSBXTV9DSEFSIGlzbid0IGdlbmVyYXRlZC4K
LSAgICBkaWROb3RIYW5kbGVLZXlFdmVudENhbGxlZCA9IHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lk
IHJ1bkFuZFdhdGNoRm9yV01DaGFyKGJvb2wqIGRvbmUpCi17Ci0gICAgd2hpbGUgKCEqZG9uZSkg
ewotICAgICAgICBNU0cgbXNnOwotICAgICAgICBCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZVco
Jm1zZywgMCwgMCwgMCk7Ci0gICAgICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdCA9PSAtMSkKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICAgICAgaWYgKG1zZy5tZXNzYWdlID09IFdN
X0NIQVIpCi0gICAgICAgICAgICBkaWRTZWVXTUNoYXIgPSB0cnVlOwotICAgICAgICAKLSAgICAg
ICAgaWYgKFV0aWw6OnNob3VsZFRyYW5zbGF0ZU1lc3NhZ2UobXNnKSkKLSAgICAgICAgICAgIDo6
VHJhbnNsYXRlTWVzc2FnZSgmbXNnKTsKLSAgICAgICAgCi0gICAgICAgIDo6RGlzcGF0Y2hNZXNz
YWdlKCZtc2cpOwotICAgIH0KLX0KLQotVEVTVChXZWJLaXQyLCBUcmFuc2xhdGVNZXNzYWdlR2Vu
ZXJhdGVzV01DaGFyKQotewotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChB
ZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSk7Ci0KLSAgICB3ZWJWaWV3LnNpbXVsYXRlQUtleURvd24oKTsKLQotICAg
IC8vIFdlYktpdCBzaG91bGQgY2FsbCBUcmFuc2xhdGVNZXNzYWdlKCkgb24gdGhlIFdNX0tFWURP
V04gbWVzc2FnZSB0byBnZW5lcmF0ZSB0aGUgV01fQ0hBUiBtZXNzYWdlLgotICAgIHJ1bkFuZFdh
dGNoRm9yV01DaGFyKCZkaWRTZWVXTUNoYXIpOwotICAgIAotICAgIGRpZFNlZVdNQ2hhciA9IGZh
bHNlOwotCi0gICAgV0tQYWdlVUlDbGllbnQgdWlDbGllbnQ7Ci0gICAgbWVtc2V0KCZ1aUNsaWVu
dCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7Ci0KLSAgICB1aUNsaWVudC5kaWROb3RIYW5kbGVLZXlF
dmVudCA9IGRpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2s7Ci0gICAgV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQpOwotCi0gICAgd2ViVmlldy5zaW11bGF0
ZUFLZXlEb3duKCk7Ci0KLSAgICBydW5BbmRXYXRjaEZvcldNQ2hhcigmZGlkTm90SGFuZGxlS2V5
RXZlbnRDYWxsZWQpOwotCi0gICAgLy8gV2ViS2l0IHNob3VsZCBub3QgaGF2ZSBjYWxsZWQgVHJh
bnNsYXRlTWVzc2FnZSgpIG9uIHRoZSBXTV9LRVlET1dOIG1lc3NhZ2Ugc2luY2Ugd2UgaW5zdGFs
bGVkIGEgZGlkTm90SGFuZGxlS2V5RXZlbnQgY2FsbGJhY2suCi0gICAgRVhQRUNUX0ZBTFNFKGRp
ZFNlZVdNQ2hhcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vV01DbG9zZUNhbGxzVUlD
bGllbnRDbG9zZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL1dN
Q2xvc2VDYWxsc1VJQ2xpZW50Q2xvc2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZTJiNDEyLi4wMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi93aW4vV01DbG9zZUNhbGxzVUlDbGllbnRDbG9zZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW5jbHVk
ZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQot
c3RhdGljIGJvb2wgZGlkUmVjZWl2ZUNsb3NlOwotCi1zdGF0aWMgdm9pZCBjbG9zZShXS1BhZ2VS
ZWYsIGNvbnN0IHZvaWQqKQotewotICAgIGRpZFJlY2VpdmVDbG9zZSA9IHRydWU7Ci19Ci0KLVRF
U1QoV2ViS2l0MiwgV01DbG9zZUNhbGxzVUlDbGllbnRDbG9zZSkKLXsKLSAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOwotICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwotCi0gICAgV0tQYWdlVUlD
bGllbnQgdWlDbGllbnQ7Ci0gICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50
KSk7Ci0KLSAgICB1aUNsaWVudC5jbG9zZSA9IGNsb3NlOwotICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50KTsKLQotICAgIDo6U2VuZE1lc3NhZ2VXKFdL
Vmlld0dldFdpbmRvdyh3ZWJWaWV3LnBsYXRmb3JtVmlldygpKSwgV01fQ0xPU0UsIDAsIDApOwot
Ci0gICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlQ2xvc2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvd2luL1dNUHJpbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dp
bi9XTVByaW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2QxZWUxNC4uMDAw
MDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL1dNUHJpbnQu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgotCi1uYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLVRFU1QoV2ViS2l0MiwgV01QcmludCkKLXsKLSAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRl
KCkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwotCi0gICAg
SFdORCB3aW5kb3cgPSBXS1ZpZXdHZXRXaW5kb3cod2ViVmlldy5wbGF0Zm9ybVZpZXcoKSk7Ci0g
ICAgSERDIGRjID0gOjpDcmVhdGVDb21wYXRpYmxlREMoMCk7Ci0gICAgLy8gRklYTUU6IEl0IHdv
dWxkIGJlIG5pY2UgdG8gdGVzdCB0aGF0IHRoaXMgYWN0dWFsbHkgcGFpbnRzIHRoZSB2aWV3IGlu
dG8gZGMuCi0gICAgOjpTZW5kTWVzc2FnZSh3aW5kb3csIFdNX1BSSU5ULCByZWludGVycHJldF9j
YXN0PFdQQVJBTT4oZGMpLCBQUkZfQ0xJRU5UIHwgUFJGX0NISUxEUkVOKTsKLSAgICA6OkRlbGV0
ZURDKGRjKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="262096"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>