<?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>138834</bug_id>
          
          <creation_ts>2014-11-18 06:43:34 -0800</creation_ts>
          <short_desc>[GTK] Use custom JavaScript instead of DBus to implement WebProcess tests</short_desc>
          <delta_ts>2014-11-28 06:29:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>pnormand</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1049474</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-11-18 06:43:34 -0800</bug_when>
    <thetext>Everything is simpler and tests should run faster too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049475</commentid>
    <comment_count>1</comment_count>
      <attachid>241788</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-11-18 06:49:06 -0800</bug_when>
    <thetext>Created attachment 241788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051214</commentid>
    <comment_count>2</comment_count>
      <attachid>241788</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-11-28 00:32:48 -0800</bug_when>
    <thetext>Comment on attachment 241788
Patch

Very nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051245</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-11-28 06:29:15 -0800</bug_when>
    <thetext>Committed r176563: &lt;http://trac.webkit.org/changeset/176563&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241788</attachid>
            <date>2014-11-18 06:49:06 -0800</date>
            <delta_ts>2014-11-28 00:32:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-web-process-tests-js.diff</filename>
            <type>text/plain</type>
            <size>40816</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiOGYz
ODkwLi44YjRhMTZmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsODIgQEAKIDIwMTQtMTEtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIFVzZSBjdXN0b20gSmF2YVNj
cmlwdCBpbnN0ZWFkIG9mIERCdXMgdG8gaW1wbGVtZW50IFdlYlByb2Nlc3MgdGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODgzNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IG1ha2VzIGV2ZXJ5
dGluZyBzaW1wbGVyIGFuZCB0aGUgdGVzdHMgcnVuIGZhc3RlciB0b28sIHNpbmNlIHdlCisgICAg
ICAgIGRvbid0IG5lZWQgdG8gc3Bhd24gdGhlIHByaXZhdGUgYnVzIGFuZCB3YWl0IHVudGlsIHRo
ZSBEQnVzIG5hbWUKKyAgICAgICAgaXMgcmVnaXN0ZXJlZC4gVGhlIHdlYiBleHRlbnNpb24gcmVn
aXN0ZXJzIGEgbmV3IEphdmFTQ3JpcHQgY2xhc3MKKyAgICAgICAgd2l0aCBhIHN0YXR1cyBtZXRo
b2QgdG8gcnVuIHRoZSB0ZXN0cywgc2ltaWxhciB0byB0aGUgREJ1cworICAgICAgICBtZXRob2Qu
IEluIHRoZSBVSSBwcm9jZXNzIHNpZGUsIHRlc3RzIHVzZSB3ZWJraXRfd2ViX3ZpZXdfcnVuX2ph
dmFfc2NyaXB0KCkKKyAgICAgICAgaW5zdGVhZCBvZiBzZW5kaW5nIGEgREJ1cyBtZXNzYWdlLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0NNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Ob2RlRmlsdGVy
VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRET01Ob2RlRmlsdGVyVGVzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdERPTU5vZGVGaWx0ZXJUZXN0Ojp0ZXN0VHJlZVdhbGtlcik6CisgICAgICAg
IChXZWJLaXRET01Ob2RlRmlsdGVyVGVzdDo6dGVzdE5vZGVJdGVyYXRvcik6CisgICAgICAgIChX
ZWJLaXRET01Ob2RlRmlsdGVyVGVzdDo6d2ViUGFnZUZyb21BcmdzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdERPTU5vZGVGaWx0ZXJUZXN0OjpydW5UZXN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NTm9kZVRlc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0RE9NTm9kZVRlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXRET01Ob2RlVGVz
dDo6dGVzdEhpZXJhcmNoeU5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0RE9NTm9kZVRlc3Q6
OnRlc3RJbnNlcnRpb24pOgorICAgICAgICAoV2ViS2l0RE9NTm9kZVRlc3Q6OnRlc3RUYWdOYW1l
cyk6CisgICAgICAgIChXZWJLaXRET01Ob2RlVGVzdDo6d2ViUGFnZUZyb21BcmdzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdERPTU5vZGVUZXN0OjpydW5UZXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVz
dC5jcHA6CisgICAgICAgIChXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJUZXN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyVGVzdDo6dGVzdFhQYXRoTlNSZXNvbHZl
ck5hdGl2ZSk6CisgICAgICAgIChXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJUZXN0Ojp0ZXN0WFBh
dGhOU1Jlc29sdmVyQ3VzdG9tKToKKyAgICAgICAgKFdlYktpdERPTVhQYXRoTlNSZXNvbHZlclRl
c3Q6OndlYlBhZ2VGcm9tQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXRET01YUGF0aE5T
UmVzb2x2ZXJUZXN0OjpydW5UZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJHdGsvRnJhbWVUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdEZyYW1lVGVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdEZyYW1lVGVzdDo6dGVzdE1haW5GcmFtZSk6Cisg
ICAgICAgIChXZWJLaXRGcmFtZVRlc3Q6OnRlc3RVUkkpOgorICAgICAgICAoV2ViS2l0RnJhbWVU
ZXN0Ojp0ZXN0SmF2YVNjcmlwdENvbnRleHQpOgorICAgICAgICAoV2ViS2l0RnJhbWVUZXN0Ojp3
ZWJQYWdlRnJvbUFyZ3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0RnJhbWVUZXN0OjpydW5U
ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsv
VGVzdERPTU5vZGUuY3BwOgorICAgICAgICAodGVzdFdlYktpdERPTU5vZGVIaWVyYXJjaHlOYXZp
Z2F0aW9uKToKKyAgICAgICAgKHRlc3RXZWJLaXRET01Ob2RlSW5zZXJ0aW9uKToKKyAgICAgICAg
KHRlc3RXZWJLaXRET01Ob2RlVGFnTmFtZXMpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAg
ICAgKGFmdGVyQWxsKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsv
VGVzdERPTU5vZGVGaWx0ZXIuY3BwOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChiZWZv
cmVBbGwpOgorICAgICAgICAoYWZ0ZXJBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKHRlc3RX
ZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJOYXRpdmUpOgorICAgICAgICAodGVzdFdlYktpdERPTVhQ
YXRoTlNSZXNvbHZlckN1c3RvbSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAoYWZ0
ZXJBbGwpOgorICAgICAgICAocnVuVGVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RGcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRGcmFt
ZVRlc3RSdW4pOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxsKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3Bw
OgorICAgICAgICAodGVzdHNNYXApOgorICAgICAgICAoV2ViUHJvY2Vzc1Rlc3Q6OmFkZCk6Cisg
ICAgICAgIChXZWJQcm9jZXNzVGVzdDo6Y3JlYXRlKToKKyAgICAgICAgKHJ1blRlc3QpOgorICAg
ICAgICAod2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNrKToKKyAgICAgICAgKHdlYmtpdF93ZWJf
ZXh0ZW5zaW9uX2luaXRpYWxpemUpOgorICAgICAgICAobWV0aG9kQ2FsbENhbGxiYWNrKTogRGVs
ZXRlZC4KKyAgICAgICAgKHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemVfd2l0aF91c2Vy
X2RhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9XZWJQcm9jZXNzVGVzdC5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXdUZXN0OjpydW5XZWJQcm9jZXNzVGVzdCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oOgorCisyMDE0LTExLTE4ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBB
ZGQgQVBJIHRvIGNyZWF0ZSBhIFdlYktpdFdlYkNvbnRleHQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODgyNgogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvQ01ha2VMaXN0cy50eHQKaW5kZXggYTljMWQ2NC4u
NzJlZDQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9DTWFrZUxpc3RzLnR4dApAQCAtMzIsNyArMzIsNiBAQCBhZGRfbGlicmFyeShXZWJLaXQyQVBJ
VGVzdENvcmUgU1RBVElDCiAgICAgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktp
dDJHdGsvTG9hZFRyYWNraW5nVGVzdC5jcHAKICAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0QnVzLmNwcAogICAgICR7VE9PTFNfRElSfS9UZXN0
V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCi0gICAgJHtUT09M
U19ESVJ9L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIu
Y3BwCiAgICAgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvVGVzdE1h
aW4uY3BwCiAgICAgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2Vi
Vmlld1Rlc3QuY3BwCiApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcAppbmRleCA5YTk3ODI3Li4yNGIzNTg5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NTm9k
ZUZpbHRlclRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKQEAgLTU5LDI5ICs1OSwxMSBAQCBzdGF0aWMgY29uc3Qg
Y2hhciogZXhwZWN0ZWRFbGVtZW50c05vSW5wdXRbXSA9IHsgIkhUTUwiLCAiSEVBRCIsICJUSVRM
RSIsICJCT0RZIgogCiBjbGFzcyBXZWJLaXRET01Ob2RlRmlsdGVyVGVzdCA6IHB1YmxpYyBXZWJQ
cm9jZXNzVGVzdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViUHJvY2Vzc1Rl
c3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRET01Ob2RlRmlsdGVyVGVz
dCgpKTsgfQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0
ZSgpIHsgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdERP
TU5vZGVGaWx0ZXJUZXN0KCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgZ3VpbnQ2NCB3ZWJQYWdlRnJv
bUFyZ3MoR1ZhcmlhbnQqIGFyZ3MpCisgICAgYm9vbCB0ZXN0VHJlZVdhbGtlcihXZWJLaXRXZWJQ
YWdlKiBwYWdlKQogICAgIHsKLSAgICAgICAgR1ZhcmlhbnRJdGVyIGl0ZXI7Ci0gICAgICAgIGdf
dmFyaWFudF9pdGVyX2luaXQoJml0ZXIsIGFyZ3MpOwotCi0gICAgICAgIGNvbnN0IGNoYXIqIGtl
eTsKLSAgICAgICAgR1ZhcmlhbnQqIHZhbHVlOwotICAgICAgICB3aGlsZSAoZ192YXJpYW50X2l0
ZXJfbG9vcCgmaXRlciwgInsmc3Z9IiwgJmtleSwgJnZhbHVlKSkgewotICAgICAgICAgICAgaWYg
KCFzdHJjbXAoa2V5LCAicGFnZUlEIikgJiYgZ192YXJpYW50X2NsYXNzaWZ5KHZhbHVlKSA9PSBH
X1ZBUklBTlRfQ0xBU1NfVUlOVDY0KQotICAgICAgICAgICAgICAgIHJldHVybiBnX3ZhcmlhbnRf
Z2V0X3VpbnQ2NCh2YWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBnX2Fzc2VydF9ub3RfcmVh
Y2hlZCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBib29sIHRlc3RUcmVlV2Fs
a2VyKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBHVmFyaWFudCogYXJncykKLSAgICB7
Ci0gICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRf
cGFnZShleHRlbnNpb24sIHdlYlBhZ2VGcm9tQXJncyhhcmdzKSk7Ci0gICAgICAgIGdfYXNzZXJ0
KFdFQktJVF9JU19XRUJfUEFHRShwYWdlKSk7CiAgICAgICAgIFdlYktpdERPTURvY3VtZW50KiBk
b2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwogICAgICAg
ICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7CiAKQEAgLTEzMSwx
MCArMTEzLDggQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
Ym9vbCB0ZXN0Tm9kZUl0ZXJhdG9yKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBHVmFy
aWFudCogYXJncykKKyAgICBib29sIHRlc3ROb2RlSXRlcmF0b3IoV2ViS2l0V2ViUGFnZSogcGFn
ZSkKICAgICB7Ci0gICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSB3ZWJraXRfd2ViX2V4dGVu
c2lvbl9nZXRfcGFnZShleHRlbnNpb24sIHdlYlBhZ2VGcm9tQXJncyhhcmdzKSk7Ci0gICAgICAg
IGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfUEFHRShwYWdlKSk7CiAgICAgICAgIFdlYktpdERPTURv
Y3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2Up
OwogICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7CiAK
QEAgLTE4NywxMiArMTY3LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJL
aXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgR1ZhcmlhbnQqIGFyZ3MpCisgICAgYm9vbCBydW5U
ZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdlKSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJ0cmVlLXdhbGtlciIpKQotICAg
ICAgICAgICAgcmV0dXJuIHRlc3RUcmVlV2Fsa2VyKGV4dGVuc2lvbiwgYXJncyk7CisgICAgICAg
ICAgICByZXR1cm4gdGVzdFRyZWVXYWxrZXIocGFnZSk7CiAgICAgICAgIGlmICghc3RyY21wKHRl
c3ROYW1lLCAibm9kZS1pdGVyYXRvciIpKQotICAgICAgICAgICAgcmV0dXJuIHRlc3ROb2RlSXRl
cmF0b3IoZXh0ZW5zaW9uLCBhcmdzKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXN0Tm9kZUl0ZXJh
dG9yKHBhZ2UpOwogCiAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9ET01Ob2RlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvRE9NTm9kZVRlc3QuY3BwCmluZGV4IGQxODdjNTkuLjVmNjJlNTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Ob2RlVGVzdC5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTU5vZGVUZXN0LmNwcApAQCAt
MjYsMjkgKzI2LDExIEBACiAKIGNsYXNzIFdlYktpdERPTU5vZGVUZXN0IDogcHVibGljIFdlYlBy
b2Nlc3NUZXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJQcm9jZXNzVGVz
dD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFdlYktpdERPTU5vZGVUZXN0KCkpOyB9
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdlYktpdERPTU5vZGVUZXN0PihuZXcgV2ViS2l0RE9NTm9k
ZVRlc3QoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBndWludDY0IHdlYlBhZ2VGcm9tQXJncyhHVmFy
aWFudCogYXJncykKKyAgICBib29sIHRlc3RIaWVyYXJjaHlOYXZpZ2F0aW9uKFdlYktpdFdlYlBh
Z2UqIHBhZ2UpCiAgICAgewotICAgICAgICBHVmFyaWFudEl0ZXIgaXRlcjsKLSAgICAgICAgZ192
YXJpYW50X2l0ZXJfaW5pdCgmaXRlciwgYXJncyk7Ci0KLSAgICAgICAgY29uc3QgY2hhcioga2V5
OwotICAgICAgICBHVmFyaWFudCogdmFsdWU7Ci0gICAgICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRl
cl9sb29wKCZpdGVyLCAieyZzdn0iLCAma2V5LCAmdmFsdWUpKSB7Ci0gICAgICAgICAgICBpZiAo
IXN0cmNtcChrZXksICJwYWdlSUQiKSAmJiBnX3ZhcmlhbnRfY2xhc3NpZnkodmFsdWUpID09IEdf
VkFSSUFOVF9DTEFTU19VSU5UNjQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9n
ZXRfdWludDY0KHZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGdfYXNzZXJ0X25vdF9yZWFj
aGVkKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGJvb2wgdGVzdEhpZXJhcmNo
eU5hdmlnYXRpb24oV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIEdWYXJpYW50KiBhcmdz
KQotICAgIHsKLSAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IHdlYmtpdF93ZWJfZXh0ZW5z
aW9uX2dldF9wYWdlKGV4dGVuc2lvbiwgd2ViUGFnZUZyb21BcmdzKGFyZ3MpKTsKLSAgICAgICAg
Z19hc3NlcnQoV0VCS0lUX0lTX1dFQl9QQUdFKHBhZ2UpKTsKICAgICAgICAgV2ViS2l0RE9NRG9j
dW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7
CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsKIApA
QCAtOTUsMTAgKzc3LDggQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
Ci0gICAgYm9vbCB0ZXN0SW5zZXJ0aW9uKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBH
VmFyaWFudCogYXJncykKKyAgICBib29sIHRlc3RJbnNlcnRpb24oV2ViS2l0V2ViUGFnZSogcGFn
ZSkKICAgICB7Ci0gICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSB3ZWJraXRfd2ViX2V4dGVu
c2lvbl9nZXRfcGFnZShleHRlbnNpb24sIHdlYlBhZ2VGcm9tQXJncyhhcmdzKSk7Ci0gICAgICAg
IGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfUEFHRShwYWdlKSk7CiAgICAgICAgIFdlYktpdERPTURv
Y3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2Up
OwogICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7CiAK
QEAgLTE3MCwxMiArMTUwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGJvb2wgdGVzdFRhZ05hbWVzKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9u
LCBHVmFyaWFudCogYXJncykKKyAgICBib29sIHRlc3RUYWdOYW1lcyhXZWJLaXRXZWJQYWdlKiBw
YWdlKQogICAgIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkVGFnTmFtZXNb
XSA9IHsgIkhUTUwiLCAiSEVBRCIsICJCT0RZIiwgIlZJREVPIiwgIlNPVVJDRSIsICJWSURFTyIs
ICJTT1VSQ0UiLCAiSU5QVVQiIH07CiAKLSAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IHdl
YmtpdF93ZWJfZXh0ZW5zaW9uX2dldF9wYWdlKGV4dGVuc2lvbiwgd2ViUGFnZUZyb21BcmdzKGFy
Z3MpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9QQUdFKHBhZ2UpKTsKICAgICAg
ICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21f
ZG9jdW1lbnQocGFnZSk7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9DVU1FTlQo
ZG9jdW1lbnQpKTsKIApAQCAtMTkyLDE0ICsxNzAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHJ1blRlc3QoY29uc3QgY2hhciog
dGVzdE5hbWUsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBHVmFyaWFudCogYXJncykK
KyAgICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYlBhZ2UqIHBh
Z2UpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgImhpZXJh
cmNoeS1uYXZpZ2F0aW9uIikpCi0gICAgICAgICAgICByZXR1cm4gdGVzdEhpZXJhcmNoeU5hdmln
YXRpb24oZXh0ZW5zaW9uLCBhcmdzKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXN0SGllcmFyY2h5
TmF2aWdhdGlvbihwYWdlKTsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJpbnNlcnRp
b24iKSkKLSAgICAgICAgICAgIHJldHVybiB0ZXN0SW5zZXJ0aW9uKGV4dGVuc2lvbiwgYXJncyk7
CisgICAgICAgICAgICByZXR1cm4gdGVzdEluc2VydGlvbihwYWdlKTsKICAgICAgICAgaWYgKCFz
dHJjbXAodGVzdE5hbWUsICJ0YWctbmFtZXMiKSkKLSAgICAgICAgICAgIHJldHVybiB0ZXN0VGFn
TmFtZXMoZXh0ZW5zaW9uLCBhcmdzKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXN0VGFnTmFtZXMo
cGFnZSk7CiAKICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3BwCmluZGV4IGYzZWY1Y2YuLjA0MzRh
OGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01Y
UGF0aE5TUmVzb2x2ZXJUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAKQEAgLTU3LDI1ICs1Nyw5IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF94cGF0aF9uc19yZXNvbHZlcl9jbGFzc19pbml0KFdlYktpdFhQYXRo
TlNSZXNvbHZlckNsYXNzKikKIAogY2xhc3MgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyVGVzdCA6
IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRET01Y
UGF0aE5TUmVzb2x2ZXJUZXN0KCkpOyB9CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQ
cm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NU
ZXN0PihuZXcgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyVGVzdCgpKTsgfQogCiBwcml2YXRlOgot
ICAgIGd1aW50NjQgd2ViUGFnZUZyb21BcmdzKEdWYXJpYW50KiBhcmdzKQotICAgIHsKLSAgICAg
ICAgR1ZhcmlhbnRJdGVyIGl0ZXI7Ci0gICAgICAgIGdfdmFyaWFudF9pdGVyX2luaXQoJml0ZXIs
IGFyZ3MpOwotCi0gICAgICAgIGNvbnN0IGNoYXIqIGtleTsKLSAgICAgICAgR1ZhcmlhbnQqIHZh
bHVlOwotICAgICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcCgmaXRlciwgInsmc3Z9Iiwg
JmtleSwgJnZhbHVlKSkgewotICAgICAgICAgICAgaWYgKCFzdHJjbXAoa2V5LCAicGFnZUlEIikg
JiYgZ192YXJpYW50X2NsYXNzaWZ5KHZhbHVlKSA9PSBHX1ZBUklBTlRfQ0xBU1NfVUlOVDY0KQot
ICAgICAgICAgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfZ2V0X3VpbnQ2NCh2YWx1ZSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICByZXR1cm4g
MDsKLSAgICB9Ci0KICAgICB2b2lkIGV2YWx1YXRlRm9vQ2hpbGRUZXh0QW5kQ2hlY2tSZXN1bHQo
V2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJl
c29sdmVyKQogICAgIHsKICAgICAgICAgV2ViS2l0RE9NRWxlbWVudCogZG9jdW1lbnRFbGVtZW50
ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfZWxlbWVudChkb2N1bWVudCk7CkBA
IC05MSwxMCArNzUsOCBAQCBwcml2YXRlOgogICAgICAgICBnX2Fzc2VydF9jbXBzdHIobm9kZVZh
bHVlLmdldCgpLCA9PSwgIlNVQ0NFU1MiKTsKICAgICB9CiAKLSAgICBib29sIHRlc3RYUGF0aE5T
UmVzb2x2ZXJOYXRpdmUoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIEdWYXJpYW50KiBh
cmdzKQorICAgIGJvb2wgdGVzdFhQYXRoTlNSZXNvbHZlck5hdGl2ZShXZWJLaXRXZWJQYWdlKiBw
YWdlKQogICAgIHsKLSAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IHdlYmtpdF93ZWJfZXh0
ZW5zaW9uX2dldF9wYWdlKGV4dGVuc2lvbiwgd2ViUGFnZUZyb21BcmdzKGFyZ3MpKTsKLSAgICAg
ICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9QQUdFKHBhZ2UpKTsKICAgICAgICAgV2ViS2l0RE9N
RG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFn
ZSk7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsK
IApAQCAtMTA1LDEwICs4Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGJvb2wgdGVzdFhQYXRoTlNSZXNvbHZlckN1c3RvbShXZWJLaXRXZWJFeHRlbnNp
b24qIGV4dGVuc2lvbiwgR1ZhcmlhbnQqIGFyZ3MpCisgICAgYm9vbCB0ZXN0WFBhdGhOU1Jlc29s
dmVyQ3VzdG9tKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCiAgICAgewotICAgICAgICBXZWJLaXRXZWJQ
YWdlKiBwYWdlID0gd2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3BhZ2UoZXh0ZW5zaW9uLCB3ZWJQ
YWdlRnJvbUFyZ3MoYXJncykpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX1BBR0Uo
cGFnZSkpOwogICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2Vi
X3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKICAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RP
TV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwogCkBAIC0xMTgsMTIgKzk4LDEyIEBAIHByaXZhdGU6
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBydW5UZXN0
KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgR1Zh
cmlhbnQqIGFyZ3MpCisgICAgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJL
aXRXZWJQYWdlKiBwYWdlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFzdHJjbXAodGVz
dE5hbWUsICJuYXRpdmUiKSkKLSAgICAgICAgICAgIHJldHVybiB0ZXN0WFBhdGhOU1Jlc29sdmVy
TmF0aXZlKGV4dGVuc2lvbiwgYXJncyk7CisgICAgICAgICAgICByZXR1cm4gdGVzdFhQYXRoTlNS
ZXNvbHZlck5hdGl2ZShwYWdlKTsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJjdXN0
b20iKSkKLSAgICAgICAgICAgIHJldHVybiB0ZXN0WFBhdGhOU1Jlc29sdmVyQ3VzdG9tKGV4dGVu
c2lvbiwgYXJncyk7CisgICAgICAgICAgICByZXR1cm4gdGVzdFhQYXRoTlNSZXNvbHZlckN1c3Rv
bShwYWdlKTsKIAogICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvRnJhbWVUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9G
cmFtZVRlc3QuY3BwCmluZGV4IDRkNDg1MGYuLmI5Yzg2MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9GcmFtZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9GcmFtZVRlc3QuY3BwCkBAIC0yNSwzMCArMjUs
MTEgQEAKIAogY2xhc3MgV2ViS2l0RnJhbWVUZXN0IDogcHVibGljIFdlYlByb2Nlc3NUZXN0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRQdHIobmV3IFdlYktpdEZyYW1lVGVzdCgpKTsgfQorICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdEZyYW1lVGVzdCgpKTsgfQogCiBwcml2
YXRlOgotICAgIGd1aW50NjQgd2ViUGFnZUZyb21BcmdzKEdWYXJpYW50KiBhcmdzKQorICAgIGJv
b2wgdGVzdE1haW5GcmFtZShXZWJLaXRXZWJQYWdlKiBwYWdlKQogICAgIHsKLSAgICAgICAgR1Zh
cmlhbnRJdGVyIGl0ZXI7Ci0gICAgICAgIGdfdmFyaWFudF9pdGVyX2luaXQoJml0ZXIsIGFyZ3Mp
OwotCi0gICAgICAgIGNvbnN0IGNoYXIqIGtleTsKLSAgICAgICAgR1ZhcmlhbnQqIHZhbHVlOwot
ICAgICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcCgmaXRlciwgInsmc3Z9IiwgJmtleSwg
JnZhbHVlKSkgewotICAgICAgICAgICAgaWYgKCFzdHJjbXAoa2V5LCAicGFnZUlEIikgJiYgZ192
YXJpYW50X2NsYXNzaWZ5KHZhbHVlKSA9PSBHX1ZBUklBTlRfQ0xBU1NfVUlOVDY0KQotICAgICAg
ICAgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfZ2V0X3VpbnQ2NCh2YWx1ZSk7Ci0gICAgICAgIH0K
LQotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICByZXR1cm4gMDsKLSAg
ICB9Ci0KLSAgICBib29sIHRlc3RNYWluRnJhbWUoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNp
b24sIEdWYXJpYW50KiBhcmdzKQotICAgIHsKLSAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9
IHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2dldF9wYWdlKGV4dGVuc2lvbiwgd2ViUGFnZUZyb21Bcmdz
KGFyZ3MpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9QQUdFKHBhZ2UpKTsKLQog
ICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJh
bWUocGFnZSk7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFNRShmcmFtZSkpOwogICAg
ICAgICBnX2Fzc2VydCh3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZShmcmFtZSkpOwpAQCAtNTYs
MTEgKzM3LDggQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
Ym9vbCB0ZXN0VVJJKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBHVmFyaWFudCogYXJn
cykKKyAgICBib29sIHRlc3RVUkkoV2ViS2l0V2ViUGFnZSogcGFnZSkKICAgICB7Ci0gICAgICAg
IFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfcGFnZShleHRl
bnNpb24sIHdlYlBhZ2VGcm9tQXJncyhhcmdzKSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9J
U19XRUJfUEFHRShwYWdlKSk7Ci0KICAgICAgICAgV2ViS2l0RnJhbWUqIGZyYW1lID0gd2Via2l0
X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBhZ2UpOwogICAgICAgICBnX2Fzc2VydChXRUJLSVRf
SVNfRlJBTUUoZnJhbWUpKTsKICAgICAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJfcGFn
ZV9nZXRfdXJpKHBhZ2UpLCA9PSwgd2Via2l0X2ZyYW1lX2dldF91cmkoZnJhbWUpKTsKQEAgLTY4
LDExICs0Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IGJvb2wgdGVzdEphdmFTY3JpcHRDb250ZXh0KFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9u
LCBHVmFyaWFudCogYXJncykKKyAgICBib29sIHRlc3RKYXZhU2NyaXB0Q29udGV4dChXZWJLaXRX
ZWJQYWdlKiBwYWdlKQogICAgIHsKLSAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IHdlYmtp
dF93ZWJfZXh0ZW5zaW9uX2dldF9wYWdlKGV4dGVuc2lvbiwgd2ViUGFnZUZyb21BcmdzKGFyZ3Mp
KTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9QQUdFKHBhZ2UpKTsKLQogICAgICAg
ICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFn
ZSk7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFNRShmcmFtZSkpOwogICAgICAgICBn
X2Fzc2VydCh3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQoZnJhbWUp
KTsKQEAgLTgwLDE0ICs1NSwxNCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2Vi
S2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIEdWYXJpYW50KiBhcmdzKQorICAgIGJvb2wgcnVu
VGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAibWFpbi1mcmFtZSIpKQotICAg
ICAgICAgICAgcmV0dXJuIHRlc3RNYWluRnJhbWUoZXh0ZW5zaW9uLCBhcmdzKTsKKyAgICAgICAg
ICAgIHJldHVybiB0ZXN0TWFpbkZyYW1lKHBhZ2UpOwogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0
TmFtZSwgInVyaSIpKQotICAgICAgICAgICAgcmV0dXJuIHRlc3RVUkkoZXh0ZW5zaW9uLCBhcmdz
KTsKKyAgICAgICAgICAgIHJldHVybiB0ZXN0VVJJKHBhZ2UpOwogICAgICAgICBpZiAoIXN0cmNt
cCh0ZXN0TmFtZSwgImphdmFzY3JpcHQtY29udGV4dCIpKQotICAgICAgICAgICAgcmV0dXJuIHRl
c3RKYXZhU2NyaXB0Q29udGV4dChleHRlbnNpb24sIGFyZ3MpOworICAgICAgICAgICAgcmV0dXJu
IHRlc3RKYXZhU2NyaXB0Q29udGV4dChwYWdlKTsKIAogICAgICAgICBnX2Fzc2VydF9ub3RfcmVh
Y2hlZCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERPTU5vZGUuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01Ob2RlLmNwcAppbmRleCA2MzI3YmRlLi5kNDI5
MzVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVz
dERPTU5vZGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0RE9NTm9kZS5jcHAKQEAgLTE5LDIzICsxOSwxNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKLSNpbmNsdWRlICJXZWJQcm9jZXNzVGVzdFJ1bm5lci5oIgogI2luY2x1ZGUgIldlYlZpZXdU
ZXN0LmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5o
PgogCi1zdGF0aWMgV2ViUHJvY2Vzc1Rlc3RSdW5uZXIqIHRlc3RSdW5uZXI7Ci0KIHN0YXRpYyB2
b2lkIHRlc3RXZWJLaXRET01Ob2RlSGllcmFyY2h5TmF2aWdhdGlvbihXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAi
PGh0bWw+PGhlYWQ+PHRpdGxlPlRoaXMgaXMgdGhlIHRpdGxlPC90aXRsZT48L2hlYWQ+PGJvZHk+
PHA+MTwvcD48cD4yPC9wPjxwPjM8L3A+PC9ib2R5PjwvaHRtbD4iOwogICAgIHRlc3QtPmxvYWRI
dG1sKHRlc3RIVE1MLCAwKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAot
ICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVyOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQo
JmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpOwotICAgIGdfdmFyaWFudF9idWlsZGVy
X2FkZCgmYnVpbGRlciwgIntzdn0iLCAicGFnZUlEIiwgZ192YXJpYW50X25ld191aW50NjQod2Vi
a2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpKTsKLSAgICBnX2Fzc2Vy
dCh0ZXN0UnVubmVyLT5ydW5UZXN0KCJXZWJLaXRET01Ob2RlIiwgImhpZXJhcmNoeS1uYXZpZ2F0
aW9uIiwgVGVzdDo6c193ZWJFeHRlbnNpb25JRCwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWls
ZGVyKSkpOworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJLaXRET01O
b2RlIiwgImhpZXJhcmNoeS1uYXZpZ2F0aW9uIikpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2Vi
S2l0RE9NTm9kZUluc2VydGlvbihXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKQEAg
LTQ0LDEwICszOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRET01Ob2RlSW5zZXJ0aW9uKFdl
YlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIHRlc3QtPmxvYWRIdG1sKHRlc3RI
VE1MLCAwKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAotICAgIEdWYXJp
YW50QnVpbGRlciBidWlsZGVyOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIs
IEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVp
bGRlciwgIntzdn0iLCAicGFnZUlEIiwgZ192YXJpYW50X25ld191aW50NjQod2Via2l0X3dlYl92
aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpKTsKLSAgICBnX2Fzc2VydCh0ZXN0UnVu
bmVyLT5ydW5UZXN0KCJXZWJLaXRET01Ob2RlIiwgImluc2VydGlvbiIsIFRlc3Q6OnNfd2ViRXh0
ZW5zaW9uSUQsIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcikpKTsKKyAgICBnX2Fzc2Vy
dCh0ZXN0LT5ydW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RE9NTm9kZSIsICJpbnNlcnRpb24iKSk7
CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRET01Ob2RlVGFnTmFtZXMoV2ViVmlld1Rlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC02NSwxNiArNTYsMTEgQEAgc3RhdGljIHZvaWQgdGVz
dFdlYktpdERPTU5vZGVUYWdOYW1lcyhXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
ICAgICB0ZXN0LT5sb2FkSHRtbCh0ZXN0SFRNTCwgMCk7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9h
ZEZpbmlzaGVkKCk7CiAKLSAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKLSAgICBnX3Zhcmlh
bnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKTsKLSAgICBn
X3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgInBhZ2VJRCIsIGdfdmFyaWFu
dF9uZXdfdWludDY0KHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCh0ZXN0LT5tX3dlYlZpZXcp
KSk7Ci0gICAgZ19hc3NlcnQodGVzdFJ1bm5lci0+cnVuVGVzdCgiV2ViS2l0RE9NTm9kZSIsICJ0
YWctbmFtZXMiLCBUZXN0OjpzX3dlYkV4dGVuc2lvbklELCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQo
JmJ1aWxkZXIpKSk7CisgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktp
dERPTU5vZGUiLCAidGFnLW5hbWVzIikpOwogfQogCiB2b2lkIGJlZm9yZUFsbCgpCiB7Ci0gICAg
dGVzdFJ1bm5lciA9IG5ldyBXZWJQcm9jZXNzVGVzdFJ1bm5lcigpOwotCiAgICAgV2ViVmlld1Rl
c3Q6OmFkZCgiV2ViS2l0RE9NTm9kZSIsICJoaWVyYXJjaHktbmF2aWdhdGlvbiIsIHRlc3RXZWJL
aXRET01Ob2RlSGllcmFyY2h5TmF2aWdhdGlvbik7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2Vi
S2l0RE9NTm9kZSIsICJpbnNlcnRpb24iLCB0ZXN0V2ViS2l0RE9NTm9kZUluc2VydGlvbik7CiAg
ICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RE9NTm9kZSIsICJ0YWctbmFtZXMiLCB0ZXN0V2Vi
S2l0RE9NTm9kZVRhZ05hbWVzKTsKQEAgLTgyLDUgKzY4LDQgQEAgdm9pZCBiZWZvcmVBbGwoKQog
CiB2b2lkIGFmdGVyQWxsKCkKIHsKLSAgICBkZWxldGUgdGVzdFJ1bm5lcjsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0RE9NTm9kZUZpbHRl
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERPTU5vZGVG
aWx0ZXIuY3BwCmluZGV4IGMwNzA4YzAuLjgxMjk0NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0RE9NTm9kZUZpbHRlci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01Ob2RlRmlsdGVyLmNwcApA
QCAtMTksMTMgKzE5LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIldl
YlByb2Nlc3NUZXN0UnVubmVyLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKICNpbmNsdWRl
IDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CiAKLXN0YXRpYyBXZWJQ
cm9jZXNzVGVzdFJ1bm5lciogdGVzdFJ1bm5lcjsKLQogc3RhdGljIGNvbnN0IGNoYXIqIHRlc3RI
VE1MID0gIjxodG1sIGlkPSdyb290Jz48aGVhZD48dGl0bGU+RE9NTm9kZVRyZWVXYWxrZXI8L3Rp
dGxlPjwvaGVhZD4iCiAgICAgIjxib2R5PjxpbnB1dCB0eXBlPSdidXR0b24nIG5hbWU9J3B1c2gn
IHZhbHVlPSdwdXNoJz48aW5wdXQgdHlwZT0nYnV0dG9uJyBuYW1lPSdjbGVhcicgdmFsdWU9J2Ns
ZWFyJz48YnI+PC9ib2R5PjwvaHRtbD4iOwogCkBAIC0zNCwxMCArMzEsNyBAQCBzdGF0aWMgdm9p
ZCBydW5UZXN0KFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25zdCBjaGFyKiBuYW1lKQogICAgIHRlc3Qt
PmxvYWRIdG1sKHRlc3RIVE1MLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmlu
aXNoZWQoKTsKIAotICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVyOwotICAgIGdfdmFyaWFudF9i
dWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpOwotICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAicGFnZUlEIiwgZ192YXJpYW50X25l
d191aW50NjQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpKTsK
LSAgICBnX2Fzc2VydCh0ZXN0UnVubmVyLT5ydW5UZXN0KCJXZWJLaXRET01Ob2RlRmlsdGVyIiwg
bmFtZSwgVGVzdDo6c193ZWJFeHRlbnNpb25JRCwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWls
ZGVyKSkpOworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJLaXRET01O
b2RlRmlsdGVyIiwgbmFtZSkpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0RE9NTm9kZUZp
bHRlclRyZWVXYWxrZXIoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC01Miwx
MyArNDYsMTAgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdERPTU5vZGVGaWx0ZXJOb2RlSXRlcmF0
b3IoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIKIAogdm9pZCBiZWZvcmVBbGwoKQog
ewotICAgIHRlc3RSdW5uZXIgPSBuZXcgV2ViUHJvY2Vzc1Rlc3RSdW5uZXIoKTsKLQogICAgIFdl
YlZpZXdUZXN0OjphZGQoIldlYktpdERPTU5vZGVGaWx0ZXIiLCAidHJlZS13YWxrZXIiLCB0ZXN0
V2ViS2l0RE9NTm9kZUZpbHRlclRyZWVXYWxrZXIpOwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldl
YktpdERPTU5vZGVGaWx0ZXIiLCAibm9kZS1pdGVyYXRvciIsIHRlc3RXZWJLaXRET01Ob2RlRmls
dGVyTm9kZUl0ZXJhdG9yKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCiB7Ci0gICAgZGVsZXRlIHRl
c3RSdW5uZXI7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdERPTVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdERPTVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTQ1ZTcwMS4u
ZmY5YTc3MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1Rlc3RET01YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMTksMjggKzE5LDE3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0UnVu
bmVyLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CiAKLXN0YXRpYyBXZWJQcm9jZXNzVGVzdFJ1bm5l
ciogdGVzdFJ1bm5lcjsKLQotc3RhdGljIHZvaWQgcnVuVGVzdChXZWJWaWV3VGVzdCogdGVzdCwg
Y29uc3QgY2hhciogbmFtZSkKLXsKLSAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKLSAgICBn
X3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKTsK
LSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgInBhZ2VJRCIsIGdf
dmFyaWFudF9uZXdfdWludDY0KHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCh0ZXN0LT5tX3dl
YlZpZXcpKSk7Ci0gICAgZ19hc3NlcnQodGVzdFJ1bm5lci0+cnVuVGVzdCgiV2ViS2l0RE9NWFBh
dGhOU1Jlc29sdmVyIiwgbmFtZSwgVGVzdDo6c193ZWJFeHRlbnNpb25JRCwgZ192YXJpYW50X2J1
aWxkZXJfZW5kKCZidWlsZGVyKSkpOwotfQotCiBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0RE9NWFBh
dGhOU1Jlc29sdmVyTmF0aXZlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYXRpdmVYTUwgPSAiPHJvb3QgeG1sbnM6Zm9vPSdodHRw
Oi8vd3d3LmV4YW1wbGUub3JnJz48Zm9vOmNoaWxkPlNVQ0NFU1M8L2ZvbzpjaGlsZD48L3Jvb3Q+
IjsKICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfc3Rh
dGljKG5hdGl2ZVhNTCwgc3RybGVuKG5hdGl2ZVhNTCkpKTsKICAgICB0ZXN0LT5sb2FkQnl0ZXMo
Ynl0ZXMuZ2V0KCksICJ0ZXh0L3htbCIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOwotICAgIHJ1blRlc3QodGVzdCwgIm5hdGl2ZSIpOworICAg
IGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJLaXRET01YUGF0aE5TUmVzb2x2
ZXIiLCAibmF0aXZlIikpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0RE9NWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQpAQCAtNDksMTgg
KzM4LDE1IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJDdXN0b20o
V2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgR1JlZlB0cjxHQnl0ZXM+IGJ5
dGVzID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0YXRpYyhjdXN0b21YTUwsIHN0cmxlbihjdXN0
b21YTUwpKSk7CiAgICAgdGVzdC0+bG9hZEJ5dGVzKGJ5dGVzLmdldCgpLCAidGV4dC94bWwiLCBu
dWxscHRyLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKLSAg
ICBydW5UZXN0KHRlc3QsICJjdXN0b20iKTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5ydW5XZWJQcm9j
ZXNzVGVzdCgiV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyIiwgImN1c3RvbSIpKTsKIH0KIAogdm9p
ZCBiZWZvcmVBbGwoKQogewotICAgIHRlc3RSdW5uZXIgPSBuZXcgV2ViUHJvY2Vzc1Rlc3RSdW5u
ZXIoKTsKLQogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdERPTVhQYXRoTlNSZXNvbHZlciIs
ICJuYXRpdmUiLCB0ZXN0V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyTmF0aXZlKTsKICAgICBXZWJW
aWV3VGVzdDo6YWRkKCJXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIiLCAiY3VzdG9tIiwgdGVzdFdl
YktpdERPTVhQYXRoTlNSZXNvbHZlckN1c3RvbSk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQogewot
ICAgIGRlbGV0ZSB0ZXN0UnVubmVyOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RGcmFtZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdEZyYW1lLmNwcAppbmRleCAwOTRkZTJjLi45MTQ1YWI4IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEZyYW1lLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEZyYW1lLmNw
cApAQCAtMTksMjMgKzE5LDE3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUg
IldlYlByb2Nlc3NUZXN0UnVubmVyLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKICNpbmNs
dWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CiAKLXN0YXRpYyBX
ZWJQcm9jZXNzVGVzdFJ1bm5lciogdGVzdFJ1bm5lcjsKLQogc3RhdGljIHZvaWQgd2Via2l0RnJh
bWVUZXN0UnVuKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25zdCBjaGFyKiB0ZXN0TmFtZSkKIHsKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRt
bD4iOwogICAgIHRlc3QtPmxvYWRIdG1sKHRlc3RIVE1MLCAwKTsKICAgICB0ZXN0LT53YWl0VW50
aWxMb2FkRmluaXNoZWQoKTsKIAotICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVyOwotICAgIGdf
dmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpOwot
ICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAicGFnZUlEIiwgZ192
YXJpYW50X25ld191aW50NjQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2Vi
VmlldykpKTsKLSAgICBnX2Fzc2VydCh0ZXN0UnVubmVyLT5ydW5UZXN0KCJXZWJLaXRGcmFtZSIs
IHRlc3ROYW1lLCBUZXN0OjpzX3dlYkV4dGVuc2lvbklELCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQo
JmJ1aWxkZXIpKSk7CisgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktp
dEZyYW1lIiwgdGVzdE5hbWUpKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdlYktpdEZyYW1lTWFp
bkZyYW1lKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQpAQCAtNTUsOCArNDksNiBA
QCBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0Q29udGV4dChXZWJWaWV3VGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogdm9pZCBiZWZvcmVBbGwoKQogewotICAgIHRlc3RS
dW5uZXIgPSBuZXcgV2ViUHJvY2Vzc1Rlc3RSdW5uZXIoKTsKLQogICAgIFdlYlZpZXdUZXN0Ojph
ZGQoIldlYktpdEZyYW1lIiwgIm1haW4tZnJhbWUiLCB0ZXN0V2ViS2l0RnJhbWVNYWluRnJhbWUp
OwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdEZyYW1lIiwgInVyaSIsIHRlc3RXZWJLaXRG
cmFtZVVSSSk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlw
dC1jb250ZXh0IiwgdGVzdFdlYktpdEZyYW1lSmF2YVNjcmlwdENvbnRleHQpOwpAQCAtNjQsNSAr
NTYsNCBAQCB2b2lkIGJlZm9yZUFsbCgpCiAKIHZvaWQgYWZ0ZXJBbGwoKQogewotICAgIGRlbGV0
ZSB0ZXN0UnVubmVyOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAKaW5kZXggYmI1MjQwNy4uYzY2MjFjMiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYlByb2Nlc3NU
ZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJv
Y2Vzc1Rlc3QuY3BwCkBAIC0yMCw5MCArMjAsNzMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzVGVzdC5oIgogCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgogCi10eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OmZ1bmN0aW9uPFBhc3NPd25QdHI8V2ViUHJvY2Vzc1Rlc3Q+
ICgpPj4gVGVzdHNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OmZ1bmN0aW9uPHN0
ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gKCk+PiBUZXN0c01hcDsKIHN0YXRpYyBUZXN0
c01hcCYgdGVzdHNNYXAoKQogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChU
ZXN0c01hcCwgc190ZXN0c01hcCwgKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUZXN0
c01hcD4gc190ZXN0c01hcDsKICAgICByZXR1cm4gc190ZXN0c01hcDsKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzVGVzdDo6YWRkKGNvbnN0IFN0cmluZyYgdGVzdE5hbWUsIHN0ZDo6ZnVuY3Rpb248UGFz
c093blB0cjxXZWJQcm9jZXNzVGVzdD4gKCk+IGNsb3N1cmUpCit2b2lkIFdlYlByb2Nlc3NUZXN0
OjphZGQoY29uc3QgU3RyaW5nJiB0ZXN0TmFtZSwgc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9w
dHI8V2ViUHJvY2Vzc1Rlc3Q+ICgpPiBjbG9zdXJlKQogewotICAgIHRlc3RzTWFwKCkuYWRkKHRl
c3ROYW1lLCBzdGQ6OmZvcndhcmQ8c3RkOjpmdW5jdGlvbjxQYXNzT3duUHRyPFdlYlByb2Nlc3NU
ZXN0PiAoKT4+KGNsb3N1cmUpKTsKKyAgICB0ZXN0c01hcCgpLmFkZCh0ZXN0TmFtZSwgV1RGOjpt
b3ZlKGNsb3N1cmUpKTsKIH0KIAotUGFzc093blB0cjxXZWJQcm9jZXNzVGVzdD4gV2ViUHJvY2Vz
c1Rlc3Q6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRlc3ROYW1lKQorc3RkOjp1bmlxdWVfcHRyPFdl
YlByb2Nlc3NUZXN0PiBXZWJQcm9jZXNzVGVzdDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdGVzdE5h
bWUpCiB7CiAgICAgZ19hc3NlcnQodGVzdHNNYXAoKS5jb250YWlucyh0ZXN0TmFtZSkpOwogICAg
IHJldHVybiB0ZXN0c01hcCgpLmdldCh0ZXN0TmFtZSkoKTsKIH0KIAotc3RhdGljIGNvbnN0IGNo
YXIgaW50cm9zcGVjdGlvblhNTFtdID0KLSAgICAiPG5vZGU+IgotICAgICIgPGludGVyZmFjZSBu
YW1lPSdvcmcud2Via2l0Lmd0ay5XZWJQcm9jZXNzVGVzdCc+IgotICAgICIgIDxtZXRob2QgbmFt
ZT0nUnVuVGVzdCc+IgotICAgICIgICA8YXJnIHR5cGU9J3MnIG5hbWU9J3BhdGgnIGRpcmVjdGlv
bj0naW4nLz4iCi0gICAgIiAgIDxhcmcgdHlwZT0nYXtzdn0nIG5hbWU9J2FyZ3MnIGRpcmVjdGlv
bj0naW4nLz4iCi0gICAgIiAgIDxhcmcgdHlwZT0nYicgbmFtZT0ncmVzdWx0JyBkaXJlY3Rpb249
J291dCcvPiIKLSAgICAiICA8L21ldGhvZD4iCi0gICAgIiA8L2ludGVyZmFjZT4iCi0gICAgIjwv
bm9kZT4iOwotCi1zdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgs
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJp
YW50KiBwYXJhbWV0ZXJzLCBHREJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2lu
dGVyIHVzZXJEYXRhKQorc3RhdGljIEpTVmFsdWVSZWYgcnVuVGVzdChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7Ci0gICAgaWYgKGdfc3RyY21wMChpbnRlcmZhY2VOYW1lLCAib3JnLndl
YmtpdC5ndGsuV2ViUHJvY2Vzc1Rlc3QiKSkKLSAgICAgICAgcmV0dXJuOworICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBzdHJpbmdWYWx1ZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCBhcmd1bWVudHNbMF0sIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydChzdHJpbmdWYWx1
ZSk7CisgICAgc2l6ZV90IHRlc3RQYXRoTGVuZ3RoID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENT
dHJpbmdTaXplKHN0cmluZ1ZhbHVlLmdldCgpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHRlc3RQ
YXRoKHN0YXRpY19jYXN0PGNoYXIqPihnX21hbGxvYyh0ZXN0UGF0aExlbmd0aCkpKTsKKyAgICBK
U1N0cmluZ0dldFVURjhDU3RyaW5nKHN0cmluZ1ZhbHVlLmdldCgpLCB0ZXN0UGF0aC5nZXQoKSwg
dGVzdFBhdGhMZW5ndGgpOwogCi0gICAgaWYgKCFnX3N0cmNtcDAobWV0aG9kTmFtZSwgIlJ1blRl
c3QiKSkgewotICAgICAgICBjb25zdCBjaGFyKiB0ZXN0UGF0aDsKLSAgICAgICAgR1ZhcmlhbnQq
IGFyZ3M7Ci0gICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIigmc0Bhe3N2fSkiLCAm
dGVzdFBhdGgsICZhcmdzKTsKLSAgICAgICAgT3duUHRyPFdlYlByb2Nlc3NUZXN0PiB0ZXN0ID0g
V2ViUHJvY2Vzc1Rlc3Q6OmNyZWF0ZShTdHJpbmc6OmZyb21VVEY4KHRlc3RQYXRoKSk7Ci0gICAg
ICAgIGJvb2wgcmVzdWx0ID0gdGVzdC0+cnVuVGVzdChnX3N0cnJzdHIodGVzdFBhdGgsICIvIikg
KyAxLCBXRUJLSVRfV0VCX0VYVEVOU0lPTih1c2VyRGF0YSksIGFyZ3MpOwotICAgICAgICBnX3Zh
cmlhbnRfdW5yZWYoYXJncyk7CisgICAgV2ViS2l0V2ViUGFnZSogd2ViUGFnZSA9IFdFQktJVF9X
RUJfUEFHRShKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGdfYXNzZXJ0KFdF
QktJVF9JU19XRUJfUEFHRSh3ZWJQYWdlKSk7CiAKLSAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZv
Y2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3KCIoYikiLCByZXN1
bHQpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IHRlc3QgPSBXZWJQcm9jZXNzVGVzdDo6Y3Jl
YXRlKFN0cmluZzo6ZnJvbVVURjgodGVzdFBhdGguZ2V0KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRlc3QtPnJ1blRlc3QoZ19zdHJyc3RyKHRlc3RQYXRoLmdl
dCgpLCAiLyIpICsgMSwgd2ViUGFnZSkpOwogfQogCi1zdGF0aWMgY29uc3QgR0RCdXNJbnRlcmZh
Y2VWVGFibGUgaW50ZXJmYWNlVmlydHVhbFRhYmxlID0gewotICAgIG1ldGhvZENhbGxDYWxsYmFj
aywgMCwgMCwgeyAwLCB9CitzdGF0aWMgY29uc3QgSlNTdGF0aWNGdW5jdGlvbiB3ZWJQcm9jZXNz
VGVzdFJ1bm5lclN0YXRpY0Z1bmN0aW9uc1tdID0KK3sKKyAgICB7ICJydW5UZXN0IiwgcnVuVGVz
dCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgIHsgbnVsbHB0ciwgbnVsbHB0ciwgMCB9CiB9OwogCi1zdGF0aWMgdm9p
ZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3Qg
Y2hhciogbmFtZSwgZ3BvaW50ZXIgdXNlckRhdGEpCitzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzVGVz
dFJ1bm5lckZpbmFsaXplKEpTT2JqZWN0UmVmIG9iamVjdCkKK3sKKyAgICBnX29iamVjdF91bnJl
ZihKU09iamVjdEdldFByaXZhdGUob2JqZWN0KSk7Cit9CisKK3N0YXRpYyB2b2lkIHdpbmRvd09i
amVjdENsZWFyZWRDYWxsYmFjayhXZWJLaXRTY3JpcHRXb3JsZCogd29ybGQsIFdlYktpdFdlYlBh
Z2UqIHdlYlBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRl
bnNpb24pCiB7Ci0gICAgc3RhdGljIEdEQnVzTm9kZUluZm8qIGludHJvc3BlY3Rpb25EYXRhID0g
MDsKLSAgICBpZiAoIWludHJvc3BlY3Rpb25EYXRhKQotICAgICAgICBpbnRyb3NwZWN0aW9uRGF0
YSA9IGdfZGJ1c19ub2RlX2luZm9fbmV3X2Zvcl94bWwoaW50cm9zcGVjdGlvblhNTCwgMCk7Cisg
ICAgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3Jp
cHRfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkKGZyYW1lLCB3b3JsZCk7CisgICAgSlNPYmplY3RS
ZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQpOworCisg
ICAgSlNDbGFzc0RlZmluaXRpb24gY2xhc3NEZWZpbml0aW9uID0ga0pTQ2xhc3NEZWZpbml0aW9u
RW1wdHk7CisgICAgY2xhc3NEZWZpbml0aW9uLmNsYXNzTmFtZSA9ICJXZWJQcm9jZXNzVGVzdFJ1
bm5lciI7CisgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY0Z1bmN0aW9ucyA9IHdlYlByb2Nlc3NU
ZXN0UnVubmVyU3RhdGljRnVuY3Rpb25zOworICAgIGNsYXNzRGVmaW5pdGlvbi5maW5hbGl6ZSA9
IHdlYlByb2Nlc3NUZXN0UnVubmVyRmluYWxpemU7CiAKLSAgICBHVW5pcXVlT3V0UHRyPEdFcnJv
cj4gZXJyb3I7Ci0gICAgdW5zaWduZWQgcmVnaXN0cmF0aW9uSUQgPSBnX2RidXNfY29ubmVjdGlv
bl9yZWdpc3Rlcl9vYmplY3QoCi0gICAgICAgIGNvbm5lY3Rpb24sCi0gICAgICAgICIvb3JnL3dl
YmtpdC9ndGsvV2ViUHJvY2Vzc1Rlc3QiLAotICAgICAgICBpbnRyb3NwZWN0aW9uRGF0YS0+aW50
ZXJmYWNlc1swXSwKLSAgICAgICAgJmludGVyZmFjZVZpcnR1YWxUYWJsZSwKLSAgICAgICAgZ19v
YmplY3RfcmVmKHVzZXJEYXRhKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+
KGdfb2JqZWN0X3VucmVmKSwKLSAgICAgICAgJmVycm9yLm91dFB0cigpKTsKLSAgICBpZiAoIXJl
Z2lzdHJhdGlvbklEKQotICAgICAgICBnX3dhcm5pbmcoIkZhaWxlZCB0byByZWdpc3RlciBvYmpl
Y3Q6ICVzXG4iLCBlcnJvci0+bWVzc2FnZSk7CisgICAgSlNDbGFzc1JlZiBqc0NsYXNzID0gSlND
bGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9uKTsKKyAgICBKU09iamVjdFJlZiBjbGFzc09iamVj
dCA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBqc0NsYXNzLCBnX29iamVjdF9yZWYod2ViUGFnZSkp
OworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9wZXJ0eVN0cmluZyhBZG9wdCwgSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIldlYlByb2Nlc3NUZXN0UnVubmVyIikpOworICAg
IEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eVN0cmlu
Zy5nZXQoKSwgY2xhc3NPYmplY3QsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgbnVsbHB0cik7
CisgICAgSlNDbGFzc1JlbGVhc2UoanNDbGFzcyk7CiB9CiAKLWV4dGVybiAiQyIgdm9pZCB3ZWJr
aXRfd2ViX2V4dGVuc2lvbl9pbml0aWFsaXplX3dpdGhfdXNlcl9kYXRhKFdlYktpdFdlYkV4dGVu
c2lvbiogZXh0ZW5zaW9uLCBHVmFyaWFudCogdXNlckRhdGEpCitleHRlcm4gIkMiIHZvaWQgd2Vi
a2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZShXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lv
bikKIHsKLSAgICBnX2Fzc2VydCh1c2VyRGF0YSk7Ci0gICAgZ19hc3NlcnQoZ192YXJpYW50X2lz
X29mX3R5cGUodXNlckRhdGEsIEdfVkFSSUFOVF9UWVBFX1VJTlQzMikpOwotICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gYnVzTmFtZShnX3N0cmR1cF9wcmludGYoIm9yZy53ZWJraXQuZ3RrLldlYlByb2Nl
c3NUZXN0JXUiLCBnX3ZhcmlhbnRfZ2V0X3VpbnQzMih1c2VyRGF0YSkpKTsKLSAgICBnX2J1c19v
d25fbmFtZSgKLSAgICAgICAgR19CVVNfVFlQRV9TRVNTSU9OLAotICAgICAgICBidXNOYW1lLmdl
dCgpLAotICAgICAgICBHX0JVU19OQU1FX09XTkVSX0ZMQUdTX05PTkUsCi0gICAgICAgIGJ1c0Fj
cXVpcmVkQ2FsbGJhY2ssCi0gICAgICAgIDAsIDAsCi0gICAgICAgIGdfb2JqZWN0X3JlZihleHRl
bnNpb24pLAotICAgICAgICBzdGF0aWNfY2FzdDxHRGVzdHJveU5vdGlmeT4oZ19vYmplY3RfdW5y
ZWYpKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHdlYmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1
bHQoKSwgIndpbmRvdy1vYmplY3QtY2xlYXJlZCIsIEdfQ0FMTEJBQ0sod2luZG93T2JqZWN0Q2xl
YXJlZENhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmgKaW5kZXggZTNlZWRkMC4uZmI0
ZGQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dl
YlByb2Nlc3NUZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1dlYlByb2Nlc3NUZXN0LmgKQEAgLTE5LDcgKzE5LDYgQEAKIAogI2luY2x1ZGUgPHdlYmtpdDIv
d2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KQEAgLTI3LDEwICsyNiwxMCBAQAogY2xhc3MgV2ViUHJvY2Vzc1Rlc3QgewogcHVi
bGljOgogICAgIHZpcnR1YWwgfldlYlByb2Nlc3NUZXN0KCkgeyB9Ci0gICAgdmlydHVhbCBib29s
IHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYkV4dGVuc2lvbiosIEdWYXJp
YW50KiBhcmdzKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVz
dE5hbWUsIFdlYktpdFdlYlBhZ2UqKSA9IDA7CiAKLSAgICBzdGF0aWMgdm9pZCBhZGQoY29uc3Qg
U3RyaW5nJiB0ZXN0TmFtZSwgc3RkOjpmdW5jdGlvbjxQYXNzT3duUHRyPFdlYlByb2Nlc3NUZXN0
PiAoKT4pOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYlByb2Nlc3NUZXN0PiBjcmVhdGUoY29u
c3QgU3RyaW5nJiB0ZXN0TmFtZSk7CisgICAgc3RhdGljIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYg
dGVzdE5hbWUsIHN0ZDo6ZnVuY3Rpb248c3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PiAo
KT4pOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHRlc3ROYW1lKTsKIH07CiAKICNkZWZpbmUgUkVHSVNURVJfVEVTVChDbGFz
c05hbWUsIFRlc3ROYW1lKSBcCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9X
ZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z3RrL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3YWU2YzY2Li4wMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z3RrL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0UnVubmVyLmgiCi0KLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Ci0KLVdlYlByb2Nlc3NUZXN0UnVubmVy
OjpXZWJQcm9jZXNzVGVzdFJ1bm5lcigpCi0gICAgOiBtX21haW5Mb29wKGdfbWFpbl9sb29wX25l
dygwLCBUUlVFKSkKLSAgICAsIG1fYnVzKGFkb3B0R1JlZihnX3Rlc3RfZGJ1c19uZXcoR19URVNU
X0RCVVNfTk9ORSkpKQotewotICAgIC8vIFNhdmUgdGhlIERJU1BMQVkgZW52IHZhciB0byByZXN0
b3JlIGl0IGFmdGVyIGNhbGxpbmcgZ190ZXN0X2RidXNfdXAoKSB0aGF0IHVuc2V0cyBpdC4KLSAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTYyMS4K
LSAgICBjb25zdCBjaGFyKiBkaXNwbGF5ID0gZ19nZXRlbnYoIkRJU1BMQVkiKTsKLSAgICBnX3Rl
c3RfZGJ1c191cChtX2J1cy5nZXQoKSk7Ci0gICAgZ19zZXRlbnYoIkRJU1BMQVkiLCBkaXNwbGF5
LCBGQUxTRSk7Ci0gICAgbV9jb25uZWN0aW9uID0gYWRvcHRHUmVmKGdfYnVzX2dldF9zeW5jKEdf
QlVTX1RZUEVfU0VTU0lPTiwgMCwgMCkpOwotfQotCi1XZWJQcm9jZXNzVGVzdFJ1bm5lcjo6fldl
YlByb2Nlc3NUZXN0UnVubmVyKCkKLXsKLSAgICBnX21haW5fbG9vcF91bnJlZihtX21haW5Mb29w
KTsKLQotICAgIC8vIGdfdGVzdF9kYnVzX2Rvd24gd2FpdHMgdW50aWwgdGhlIGNvbm5lY3Rpb24g
aXMgZnJlZWQsIHNvIHJlbGVhc2Ugb3VyIHJlZnMgZXhwbGljaXRseSBiZWZvcmUgY2FsbGluZyBp
dC4KLSAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwotICAgIG1fcHJveHkgPSBudWxscHRyOwot
ICAgIGdfdGVzdF9kYnVzX2Rvd24obV9idXMuZ2V0KCkpOwotfQotCi12b2lkIFdlYlByb2Nlc3NU
ZXN0UnVubmVyOjpwcm94eUNyZWF0ZWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiBy
ZXN1bHQsIFdlYlByb2Nlc3NUZXN0UnVubmVyKiB0ZXN0UnVubmVyKQotewotICAgIHRlc3RSdW5u
ZXItPm1fcHJveHkgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X25ld19maW5pc2gocmVzdWx0LCAw
KSk7Ci0gICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0UnVubmVyLT5tX21haW5Mb29wKTsKLX0KLQot
dm9pZCBXZWJQcm9jZXNzVGVzdFJ1bm5lcjo6b25OYW1lQXBwZWFyZWQoR0RCdXNDb25uZWN0aW9u
KiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBncG9pbnRlciB1c2VyRGF0YSkKLXsKLSAgICBX
ZWJQcm9jZXNzVGVzdFJ1bm5lciogdGVzdFJ1bm5lciA9IHN0YXRpY19jYXN0PFdlYlByb2Nlc3NU
ZXN0UnVubmVyKj4odXNlckRhdGEpOwotICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdFJ1bm5lci0+
bV9tYWluTG9vcCk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzc1Rlc3RSdW5uZXI6Om9uTmFtZVZhbmlz
aGVkKEdEQnVzQ29ubmVjdGlvbiosIGNvbnN0IGNoYXIqIG5hbWUsIGdwb2ludGVyIHVzZXJEYXRh
KQotewotICAgIF9leGl0KDEpOwotfQotCi12b2lkIFdlYlByb2Nlc3NUZXN0UnVubmVyOjp0ZXN0
RmluaXNoZWRDYWxsYmFjayhHREJ1c1Byb3h5KiBwcm94eSwgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IFdlYlByb2Nlc3NUZXN0UnVubmVyKiB0ZXN0UnVubmVyKQotewotICAgIEdSZWZQdHI8R1Zhcmlh
bnQ+IHJldHVyblZhbHVlID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaChwcm94
eSwgcmVzdWx0LCAwKSk7Ci0gICAgZ19hc3NlcnQocmV0dXJuVmFsdWUuZ2V0KCkpOwotICAgIGdi
b29sZWFuIHRlc3RSZXN1bHQ7Ci0gICAgZ192YXJpYW50X2dldChyZXR1cm5WYWx1ZS5nZXQoKSwg
IihiKSIsICZ0ZXN0UmVzdWx0KTsKLSAgICB0ZXN0UnVubmVyLT5maW5pc2hUZXN0KHRlc3RSZXN1
bHQpOwotfQotCi1ib29sIFdlYlByb2Nlc3NUZXN0UnVubmVyOjpydW5UZXN0KGNvbnN0IGNoYXIq
IHN1aXRlTmFtZSwgY29uc3QgY2hhciogdGVzdE5hbWUsIHVpbnQzMl90IHRlc3RJRCwgR1Zhcmlh
bnQqIGFyZ3MpCi17Ci0gICAgZ19hc3NlcnQoZ192YXJpYW50X2lzX29mX3R5cGUoYXJncywgR19W
QVJJQU5UX1RZUEVfVkFSRElDVCkpOwotCi0gICAgR1VuaXF1ZVB0cjxjaGFyPiB0ZXN0QnVzTmFt
ZShnX3N0cmR1cF9wcmludGYoIm9yZy53ZWJraXQuZ3RrLldlYlByb2Nlc3NUZXN0JXUiLCB0ZXN0
SUQpKTsKLSAgICB1bnNpZ25lZCB3YXRjaGVySUQgPSBnX2J1c193YXRjaF9uYW1lX29uX2Nvbm5l
Y3Rpb24obV9jb25uZWN0aW9uLmdldCgpLCB0ZXN0QnVzTmFtZS5nZXQoKSwgR19CVVNfTkFNRV9X
QVRDSEVSX0ZMQUdTX05PTkUsCi0gICAgICAgIFdlYlByb2Nlc3NUZXN0UnVubmVyOjpvbk5hbWVB
cHBlYXJlZCwgV2ViUHJvY2Vzc1Rlc3RSdW5uZXI6Om9uTmFtZVZhbmlzaGVkLCB0aGlzLCAwKTsK
LSAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7Ci0KLSAgICBnX2RidXNfcHJveHlfbmV3
KG1fY29ubmVjdGlvbi5nZXQoKSwgR19EQlVTX1BST1hZX0ZMQUdTX0RPX05PVF9BVVRPX1NUQVJU
LCBudWxscHRyLAotICAgICAgICB0ZXN0QnVzTmFtZS5nZXQoKSwgIi9vcmcvd2Via2l0L2d0ay9X
ZWJQcm9jZXNzVGVzdCIsICJvcmcud2Via2l0Lmd0ay5XZWJQcm9jZXNzVGVzdCIsCi0gICAgICAg
IG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4oV2ViUHJvY2Vz
c1Rlc3RSdW5uZXI6OnByb3h5Q3JlYXRlZENhbGxiYWNrKSwgdGhpcyk7Ci0gICAgZ19tYWluX2xv
b3BfcnVuKG1fbWFpbkxvb3ApOwotICAgIGdfYXNzZXJ0KG1fcHJveHkuZ2V0KCkpOwotCi0gICAg
bV90ZXN0UmVzdWx0ID0gZmFsc2U7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiB0ZXN0UGF0aChnX3N0
cmR1cF9wcmludGYoIiVzLyVzIiwgc3VpdGVOYW1lLCB0ZXN0TmFtZSkpOwotICAgIGdfZGJ1c19w
cm94eV9jYWxsKAotICAgICAgICBtX3Byb3h5LmdldCgpLAotICAgICAgICAiUnVuVGVzdCIsCi0g
ICAgICAgIGdfdmFyaWFudF9uZXcoIihzQGF7c3Z9KSIsIHRlc3RQYXRoLmdldCgpLCBhcmdzKSwK
LSAgICAgICAgR19EQlVTX0NBTExfRkxBR1NfTk9ORSwKLSAgICAgICAgLTEsIDAsCi0gICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4oV2ViUHJvY2Vzc1Rlc3RSdW5u
ZXI6OnRlc3RGaW5pc2hlZENhbGxiYWNrKSwKLSAgICAgICAgdGhpcyk7Ci0gICAgZ19tYWluX2xv
b3BfcnVuKG1fbWFpbkxvb3ApOwotICAgIGdfYnVzX3Vud2F0Y2hfbmFtZSh3YXRjaGVySUQpOwot
Ci0gICAgcmV0dXJuIG1fdGVzdFJlc3VsdDsKLX0KLQotdm9pZCBXZWJQcm9jZXNzVGVzdFJ1bm5l
cjo6ZmluaXNoVGVzdChib29sIHJlc3VsdCkKLXsKLSAgICBtX3Rlc3RSZXN1bHQgPSByZXN1bHQ7
Ci0gICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29wKTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3RSdW5uZXIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJmYzkyNi4uMDAwMDAwMAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0UnVubmVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEln
YWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICovCi0KLSNpZm5kZWYgV2ViUHJvY2Vzc1Rlc3RSdW5uZXJfaAotI2RlZmluZSBXZWJQcm9j
ZXNzVGVzdFJ1bm5lcl9oCi0KLSNpbmNsdWRlIDxnaW8vZ2lvLmg+Ci0jaW5jbHVkZSA8d2Via2l0
Mi93ZWJraXQyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotCi1jbGFzcyBX
ZWJQcm9jZXNzVGVzdFJ1bm5lciB7Ci1wdWJsaWM6Ci0gICAgV2ViUHJvY2Vzc1Rlc3RSdW5uZXIo
KTsKLSAgICB+V2ViUHJvY2Vzc1Rlc3RSdW5uZXIoKTsKLQotICAgIGJvb2wgcnVuVGVzdChjb25z
dCBjaGFyKiBzdWl0ZU5hbWUsIGNvbnN0IGNoYXIqIHRlc3ROYW1lLCB1aW50MzJfdCB0ZXN0SUQs
IEdWYXJpYW50KiBhcmdzKTsKLQotcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBwcm94eUNyZWF0
ZWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiwgV2ViUHJvY2Vzc1Rlc3RSdW5uZXIq
KTsKLSAgICBzdGF0aWMgdm9pZCBvbk5hbWVBcHBlYXJlZChHREJ1c0Nvbm5lY3Rpb24qLCBjb25z
dCBjaGFyKiwgY29uc3QgY2hhciosIGdwb2ludGVyKTsKLSAgICBzdGF0aWMgdm9pZCBvbk5hbWVW
YW5pc2hlZChHREJ1c0Nvbm5lY3Rpb24qLCBjb25zdCBjaGFyKiwgZ3BvaW50ZXIpOwotICAgIHN0
YXRpYyB2b2lkIHRlc3RGaW5pc2hlZENhbGxiYWNrKEdEQnVzUHJveHkqLCBHQXN5bmNSZXN1bHQq
LCBXZWJQcm9jZXNzVGVzdFJ1bm5lciopOwotCi0gICAgdm9pZCBmaW5pc2hUZXN0KGJvb2wgcmVz
dWx0KTsKLQotICAgIEdNYWluTG9vcCogbV9tYWluTG9vcDsKLSAgICBHUmVmUHRyPEdUZXN0REJ1
cz4gbV9idXM7Ci0gICAgR1JlZlB0cjxHREJ1c0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAg
ICBHUmVmUHRyPEdEQnVzUHJveHk+IG1fcHJveHk7Ci0gICAgYm9vbCBtX3Rlc3RSZXN1bHQ7Ci19
OwotCi0jZW5kaWYgLy8gV2ViUHJvY2Vzc1Rlc3RSdW5uZXJfaApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAppbmRleCA3MmU3NWIzLi5l
YThiNmIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dl
YlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dl
YlZpZXdUZXN0LmNwcApAQCAtNDg3LDMgKzQ4NywxMiBAQCBjYWlyb19zdXJmYWNlX3QqIFdlYlZp
ZXdUZXN0OjpnZXRTbmFwc2hvdEFuZFdhaXRVbnRpbFJlYWR5KFdlYktpdFNuYXBzaG90UmVnaW9u
CiAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwogICAgIHJldHVybiBtX3N1cmZhY2U7
CiB9CisKK2Jvb2wgV2ViVmlld1Rlc3Q6OnJ1bldlYlByb2Nlc3NUZXN0KGNvbnN0IGNoYXIqIHN1
aXRlTmFtZSwgY29uc3QgY2hhciogdGVzdE5hbWUpCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBz
Y3JpcHQoZ19zdHJkdXBfcHJpbnRmKCJXZWJQcm9jZXNzVGVzdFJ1bm5lci5ydW5UZXN0KCclcy8l
cycpOyIsIHN1aXRlTmFtZSwgdGVzdE5hbWUpKTsKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CisgICAgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCogamF2YXNjcmlwdFJlc3VsdCA9IHJ1
bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChzY3JpcHQuZ2V0KCksICZlcnJvci5vdXRQ
dHIoKSk7CisgICAgZ19hc3NlcnQoIWVycm9yKTsKKyAgICByZXR1cm4gamF2YXNjcmlwdFJlc3Vs
dFRvQm9vbGVhbihqYXZhc2NyaXB0UmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaAppbmRleCA1YWQwOThkLi4yYzM2OTJhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0
LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5o
CkBAIC02OSw2ICs2OSw4IEBAIHB1YmxpYzoKIAogICAgIGNhaXJvX3N1cmZhY2VfdCogZ2V0U25h
cHNob3RBbmRXYWl0VW50aWxSZWFkeShXZWJLaXRTbmFwc2hvdFJlZ2lvbiwgV2ViS2l0U25hcHNo
b3RPcHRpb25zKTsKIAorICAgIGJvb2wgcnVuV2ViUHJvY2Vzc1Rlc3QoY29uc3QgY2hhciogc3Vp
dGVOYW1lLCBjb25zdCBjaGFyKiB0ZXN0TmFtZSk7CisKICAgICBXZWJLaXRXZWJWaWV3KiBtX3dl
YlZpZXc7CiAgICAgR01haW5Mb29wKiBtX21haW5Mb29wOwogICAgIENTdHJpbmcgbV9hY3RpdmVV
Ukk7Cg==
</data>
<flag name="review"
          id="266655"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>