<?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>139174</bug_id>
          
          <creation_ts>2014-12-01 23:33:48 -0800</creation_ts>
          <short_desc>[Mac, iOS] Crash log application information contains latest main frame URL instead of test URL</short_desc>
          <delta_ts>2014-12-27 05:49:33 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>139321</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1051748</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-12-01 23:33:48 -0800</bug_when>
    <thetext>We set CrashReporter information on each main frame navigation. This means that tests that perform a navigation and then crash end up having a post-navigation URL in the report, which is often not unique, and thus hard to map back to the actual crashing test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051751</commentid>
    <comment_count>1</comment_count>
      <attachid>242390</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-12-02 00:02:40 -0800</bug_when>
    <thetext>Created attachment 242390
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051752</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-02 00:05:07 -0800</bug_when>
    <thetext>Attachment 242390 did not pass style-queue:


ERROR: Tools/DumpRenderTree/mac/DumpRenderTree.mm:62:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/DumpRenderTree/mac/DumpRenderTree.mm:1790:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051844</commentid>
    <comment_count>3</comment_count>
      <attachid>242390</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-02 08:54:33 -0800</bug_when>
    <thetext>Comment on attachment 242390
proposed fix

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

&gt; Tools/ChangeLog:19
&gt; +        reporter informaiton here.

informaiton</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051874</commentid>
    <comment_count>4</comment_count>
      <attachid>242423</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-12-02 10:09:27 -0800</bug_when>
    <thetext>Created attachment 242423
with Windows fixes

Turns out that Windows DumpRenderTree actually still used paths in pathOrURL. This inconsistency seems easy to fix, let&apos;s see what EWS thinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051908</commentid>
    <comment_count>5</comment_count>
      <attachid>242423</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-02 11:30:33 -0800</bug_when>
    <thetext>Comment on attachment 242423
with Windows fixes

Clearing flags on attachment: 242423

Committed r176677: &lt;http://trac.webkit.org/changeset/176677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051909</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-02 11:30:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242390</attachid>
            <date>2014-12-02 00:02:40 -0800</date>
            <delta_ts>2014-12-02 10:09:27 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>CorrectTestNameOnCrash.txt</filename>
            <type>text/plain</type>
            <size>17160</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3NjYyNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ2IEBACisyMDE0LTEyLTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFtNYWMsIGlPU10gQ3Jhc2ggbG9nIGFwcGxpY2F0aW9uIGluZm9ybWF0aW9u
IGNvbnRhaW5zIGxhdGVzdCBtYWluIGZyYW1lIFVSTCBpbnN0ZWFkIG9mIHRlc3QgVVJMCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxNzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aDoKKyAgICAgICAgUmVuYW1lZCB0ZXN0UGF0aE9yVVJMIHRvIHRlc3RVUkwsIGJlY2F1c2UgdGhp
cyB2YXJpYWJsZSBhbHdheXMgY29udGFpbnMgYSBVUkwuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChzaXplV2ViVmlld0ZvckN1cnJl
bnRUZXN0KTogVXBkYXRlZCBmb3IgdGVzdFBhdGhPclVSTCByZW5hbWluZy4KKyAgICAgICAgKHRl
c3RQYXRoRnJvbVVSTCk6IE1vdmVkIGZyb20gRnJhbWVMb2FkRGVsZWdhdGUubW0uCisgICAgICAg
IChydW5UZXN0KTogU2V0IGNyYXNoIHJlcG9ydGVyIGluZm9ybWF0aW9uIGhlcmUsIGFzIHdlIGtu
b3cgdGhlIGV4YWN0IHRlc3QgVVJMLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0Zy
YW1lTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3
OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6XSk6IERvbid0IHNldCBjcmFzaAorICAg
ICAgICByZXBvcnRlciBpbmZvcm1haXRvbiBoZXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICBVcGRhdGVkIGZvciB0ZXN0UGF0aE9yVVJM
IHJlbmFtaW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOiBXZWJQcm9jZXNzIGRvZXNuJ3Qga25v
dworICAgICAgICB0ZXN0IFVSTCB1bnRpbCBsb2FkIHN0YXJ0cywgc28gc2F2ZSBpdCBpbnRvIFRl
c3RSdW5uZXIgbm93LiBBIG5ldyBUZXN0UnVubmVyIG9iamVjdAorICAgICAgICBpcyBjcmVhdGVk
IGZvciBlYWNoIHRlc3QuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6dGVzdFVSTCk6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFRlc3RVUkwpOgorICAgICAgICBNYWtlIFRlc3RS
dW5uZXIga25vdyB0aGUgdGVzdCBuYW1lLiBGb3Igbm93LCBpdCdzIGdvb2QgZW5vdWdoIHRvIGhh
dmUgaXQgb25jZSBsb2FkCisgICAgICAgIHN0YXJ0cywgYnV0IGlmIHdlIGV2ZXIgbmVlZCBpdCBl
YXJsaWVyLCB3ZSBjYW4gc2VuZCBpdCB3aXRoIEJlZ2luVGVzdCBtZXNzYWdlLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9jb2NvYS9JbmplY3RlZEJ1bmRsZVBh
Z2VDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpwbGF0Zm9ybURp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICBVc2UgdGVzdCBVUkwsIG5v
dCBjdXJyZW50bHkgbG9hZGluZyBVUkwgZm9yIENyYXNoUmVwb3J0ZXIuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NvY29hL0NyYXNoUmVwb3J0ZXJJbmZvLm1tOgorICAgICAgICAoV1RS
OjpzZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lmaWNJbmZvcm1hdGlvblRvVVJMKTogQWRk
ZWQgYSBzcGFjZSBhZnRlciBjb2xvbgorICAgICAgICAoV2ViS2l0MSBhbHJlYWR5IGhhZCBpdCBy
aWdodCkuCisKIDIwMTQtMTItMDEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzY1NjYuCkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMTc1Nzg5KQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5
LDcgQEAgY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCA9IAogY29uc3QgdW5z
aWduZWQgVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld1dpZHRoID0gNDgwOwogY29uc3QgdW5zaWduZWQg
VGVzdFJ1bm5lcjo6dzNjU1ZHVmlld0hlaWdodCA9IDM2MDsKIAotVGVzdFJ1bm5lcjo6VGVzdFJ1
bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcm
IGV4cGVjdGVkUGl4ZWxIYXNoKQorVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihjb25zdCBzdGQ6OnN0
cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogICAg
IDogbV9kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKGZhbHNlKQogICAg
ICwgbV9kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKGZhbHNlKQogICAgICwg
bV9kdW1wQXNBdWRpbyhmYWxzZSkKQEAgLTExMiwxNSArMTEyLDE1IEBAIFRlc3RSdW5uZXI6OlRl
c3RSdW5uZXIoY29uc3Qgc3RkOjpzdHJpbmcKICAgICAsIG1faGFzUGVuZGluZ1dlYk5vdGlmaWNh
dGlvbkNsaWNrKGZhbHNlKQogICAgICwgbV9kYXRhYmFzZURlZmF1bHRRdW90YSgtMSkKICAgICAs
IG1fZGF0YWJhc2VNYXhRdW90YSgtMSkKLSAgICAsIG1fdGVzdFBhdGhPclVSTCh0ZXN0UGF0aE9y
VVJMKQorICAgICwgbV90ZXN0VVJMKHRlc3RVUkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNo
KGV4cGVjdGVkUGl4ZWxIYXNoKQogICAgICwgbV90aXRsZVRleHREaXJlY3Rpb24oImx0ciIpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8VGVzdFJ1bm5lcj4gVGVzdFJ1bm5lcjo6Y3JlYXRlKGNvbnN0IHN0
ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhl
bEhhc2gpCitQYXNzUmVmUHRyPFRlc3RSdW5uZXI+IFRlc3RSdW5uZXI6OmNyZWF0ZShjb25zdCBz
dGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNo
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGVzdFJ1bm5lcih0ZXN0UGF0aE9yVVJMLCBl
eHBlY3RlZFBpeGVsSGFzaCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGVzdFJ1bm5lcih0
ZXN0VVJMLCBleHBlY3RlZFBpeGVsSGFzaCkpOwogfQogCiAvLyBTdGF0aWMgRnVuY3Rpb25zCklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAxNzU3ODkpCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5
LDcgQEAKIAogY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBSZWZDb3VudGVkPFRlc3RSdW5uZXI+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0UnVubmVyPiBjcmVhdGUoY29u
c3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3Rl
ZFBpeGVsSGFzaCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGVzdFJ1bm5lcj4gY3JlYXRlKGNv
bnN0IHN0ZDo6c3RyaW5nJiB0ZXN0VVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhl
bEhhc2gpOwogCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZpZXdXaWR0aDsKICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgdmlld0hlaWdodDsKQEAgLTI4NSw3ICsyODUsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCB1c2VEZWZlcnJlZEZyYW1lTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fdXNl
RGVmZXJyZWRGcmFtZUxvYWRpbmc7IH0KICAgICB2b2lkIHNldFVzZURlZmVycmVkRnJhbWVMb2Fk
aW5nKGJvb2wgZmxhZykgeyBtX3VzZURlZmVycmVkRnJhbWVMb2FkaW5nID0gZmxhZzsgfQogCi0g
ICAgY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwoKSBjb25zdCB7IHJldHVybiBtX3Rl
c3RQYXRoT3JVUkw7IH0KKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCgpIGNvbnN0IHsg
cmV0dXJuIG1fdGVzdFVSTDsgfQogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVs
SGFzaCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwZWN0ZWRQaXhlbEhhc2g7IH0KIAogICAgIGNvbnN0
IHN0ZDo6dmVjdG9yPGNoYXI+JiBhdWRpb1Jlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9S
ZXN1bHQ7IH0KQEAgLTM1Nyw3ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQZW5kaW5n
V2ViTm90aWZpY2F0aW9uQ2xpY2soKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdXZWJOb3Rp
ZmljYXRpb25DbGljazsgfQogCiBwcml2YXRlOgotICAgIFRlc3RSdW5uZXIoY29uc3Qgc3RkOjpz
dHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFz
aCk7CisgICAgVGVzdFJ1bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3Rk
OjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIAogICAgIHZvaWQgc2V0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uQ29tbW9uKGJvb2wgYWxsb3cpOwogCkBAIC00MTgsNyArNDE4LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6c3RyaW5nIG1fYXV0aGVudGljYXRpb25Vc2VybmFtZTsKICAgICBzdGQ6
OnN0cmluZyBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQ7IAotICAgIHN0ZDo6c3RyaW5nIG1fdGVz
dFBhdGhPclVSTDsKKyAgICBzdGQ6OnN0cmluZyBtX3Rlc3RVUkw7CiAgICAgc3RkOjpzdHJpbmcg
bV9leHBlY3RlZFBpeGVsSGFzaDsgLy8gZW1wdHkgc3RyaW5nIGlmIG5vIGhhc2gKICAgICBzdGQ6
OnN0cmluZyBtX3RpdGxlVGV4dERpcmVjdGlvbjsKIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24gMTc1Nzg5KQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2
ICs1OSw3IEBACiAjaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogI2lt
cG9ydCA8SmF2YVNjcmlwdENvcmUvSGVhcFN0YXRpc3RpY3MuaD4KICNpbXBvcnQgPEphdmFTY3Jp
cHRDb3JlL09wdGlvbnMuaD4KKyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2lt
cG9ydCA8V2ViS2l0L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FeHRlbnNpb25z
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NUmFuZ2UuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCArICh2
b2lkKV9zZXRBbGVydFR5cGU6KE5TVUludGVnZXIpYWxlcnRUCiBAZW5kCiAjZW5kaWYKIAotc3Rh
dGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRlc3RQYXRoT3JVUkwpOworc3RhdGljIHZv
aWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRlc3RVUkwpOwogc3RhdGljIHZvaWQgZHVtcFRlc3RS
ZXN1bHRzKCk7CiAKIC8vIERlY2lkaW5nIHdoZW4gaXQncyBPSyB0byBkdW1wIG91dCB0aGUgc3Rh
dGUgaXMgYSBiaXQgdHJpY2t5LiAgQWxsIHRoZXNlIG11c3QgYmUgdHJ1ZToKQEAgLTE0OTEsNyAr
MTQ5Miw3IEBAIHN0YXRpYyB2b2lkIHNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QoKQogICAgIFt1
aURlbGVnYXRlIHJlc2V0V2luZG93T3JpZ2luXTsKIAogICAgIC8vIFczQyBTVkcgdGVzdHMgZXhw
ZWN0IHRvIGJlIDQ4MHgzNjAKLSAgICBib29sIGlzU1ZHVzNDVGVzdCA9IChnVGVzdFJ1bm5lci0+
dGVzdFBhdGhPclVSTCgpLmZpbmQoInN2Zy9XM0MtU1ZHLTEuMSIpICE9IHN0cmluZzo6bnBvcyk7
CisgICAgYm9vbCBpc1NWR1czQ1Rlc3QgPSAoZ1Rlc3RSdW5uZXItPnRlc3RVUkwoKS5maW5kKCJz
dmcvVzNDLVNWRy0xLjEiKSAhPSBzdHJpbmc6Om5wb3MpOwogICAgIGlmIChpc1NWR1czQ1Rlc3Qp
CiAgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01ha2VTaXplKFRl
c3RSdW5uZXI6OnczY1NWR1ZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld0hlaWdodCld
OwogICAgIGVsc2UKQEAgLTE3ODEsNiArMTc4MiwyNyBAQCBzdGF0aWMgdm9pZCBXZWJUaHJlYWRM
b2NrQWZ0ZXJEZWxlZ2F0ZUNhCiB9CiAjZW5kaWYKIAorc3RhdGljIE5TU3RyaW5nICp0ZXN0UGF0
aEZyb21VUkwoTlNVUkwqIHVybCkKK3sKKyAgICBpZiAoW3VybCBpc0ZpbGVVUkxdKSB7CisgICAg
ICAgIE5TU3RyaW5nICpmaWxlUGF0aCA9IFt1cmwgcGF0aF07CisgICAgICAgIE5TUmFuZ2UgbGF5
b3V0VGVzdHNSYW5nZSA9IFtmaWxlUGF0aCByYW5nZU9mU3RyaW5nOkAiL0xheW91dFRlc3RzLyJd
OworICAgICAgICBpZiAobGF5b3V0VGVzdHNSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQor
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gW2Zp
bGVQYXRoIHN1YnN0cmluZ0Zyb21JbmRleDpOU01heFJhbmdlKGxheW91dFRlc3RzUmFuZ2UpXTsK
KyAgICB9CisgICAgCisgICAgLy8gSFRUUCB0ZXN0IFVSTHMgbG9vayBsaWtlOiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtcmVxdWVzdC1jb250
ZW50LWFmdGVyLWxvYWRpbmctYW5kLWNsZWFyaW5nLWNhY2hlLmh0bWwKKyAgICBpZiAoIVtbdXJs
IHNjaGVtZV0gaXNFcXVhbFRvU3RyaW5nOkAiaHR0cCJdICYmICFbW3VybCBzY2hlbWVdIGlzRXF1
YWxUb1N0cmluZzpAImh0dHBzIl0pCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBpZiAoW1t1
cmwgaG9zdF0gaXNFcXVhbFRvU3RyaW5nOkAiMTI3LjAuMC4xIl0gJiYgKFtbdXJsIHBvcnRdIGlu
dFZhbHVlXSA9PSA4MDAwIHx8IFtbdXJsIHBvcnRdIGludFZhbHVlXSA9PSA4NDQzKSkKKyAgICAg
ICAgcmV0dXJuIFt1cmwgcGF0aF07CisKKyAgICByZXR1cm4gbmlsOworfQorCiBzdGF0aWMgdm9p
ZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogewogICAgIEFTU0VSVCghaW5wdXRM
aW5lLmVtcHR5KCkpOwpAQCAtMTgwNSw2ICsxODI3LDEyIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3Qo
Y29uc3Qgc3RyaW5nJiBpbnB1dEwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIE5TU3Ry
aW5nICp0ZXN0UGF0aCA9IHRlc3RQYXRoRnJvbVVSTCh1cmwpOworICAgIGlmICghdGVzdFBhdGgp
CisgICAgICAgIHRlc3RQYXRoID0gW3VybCBhYnNvbHV0ZVN0cmluZ107CisgICAgTlNTdHJpbmcg
KmluZm9ybWF0aW9uU3RyaW5nID0gW0AiQ1JBU0hJTkcgVEVTVDogIiBzdHJpbmdCeUFwcGVuZGlu
Z1N0cmluZzp0ZXN0UGF0aF07CisgICAgV0tTZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lm
aWNJbmZvcm1hdGlvbigoQ0ZTdHJpbmdSZWYpaW5mb3JtYXRpb25TdHJpbmcpOworCiAgICAgY29u
c3QgY2hhciogdGVzdFVSTChbW3VybCBhYnNvbHV0ZVN0cmluZ10gVVRGOFN0cmluZ10pOwogICAg
IAogICAgIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpOwpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQkocmV2
aXNpb24gMTc1Nzg5KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVn
YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw2IEBACiAjaW1wb3J0ICJXb3JrUXVl
dWVJdGVtLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TTm90aWZpY2F0aW9uLmg+CiAjaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgotI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQcml2YXRlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViSFRNTFZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+
CkBAIC0xNzAsMzcgKzE2OSwxMCBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3
IGxvY2F0CiAgICAgfQogfQogCi1zdGF0aWMgTlNTdHJpbmcgKnRlc3RQYXRoRnJvbVVSTChOU1VS
TCogdXJsKQotewotICAgIGlmIChbdXJsIGlzRmlsZVVSTF0pIHsKLSAgICAgICAgTlNTdHJpbmcg
KmZpbGVQYXRoID0gW3VybCBwYXRoXTsKLSAgICAgICAgTlNSYW5nZSBsYXlvdXRUZXN0c1Jhbmdl
ID0gW2ZpbGVQYXRoIHJhbmdlT2ZTdHJpbmc6QCIvTGF5b3V0VGVzdHMvIl07Ci0gICAgICAgIGlm
IChsYXlvdXRUZXN0c1JhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpCi0gICAgICAgICAgICBy
ZXR1cm4gbmlsOwotICAgICAgICAgICAgCi0gICAgICAgIHJldHVybiBbZmlsZVBhdGggc3Vic3Ry
aW5nRnJvbUluZGV4Ok5TTWF4UmFuZ2UobGF5b3V0VGVzdHNSYW5nZSldOwotICAgIH0KLSAgICAK
LSAgICAvLyBIVFRQIHRlc3QgVVJMcyBsb29rIGxpa2U6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9p
bnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS1yZXF1ZXN0LWNvbnRlbnQtYWZ0ZXItbG9h
ZGluZy1hbmQtY2xlYXJpbmctY2FjaGUuaHRtbAotICAgIGlmICghW1t1cmwgc2NoZW1lXSBpc0Vx
dWFsVG9TdHJpbmc6QCJodHRwIl0gJiYgIVtbdXJsIHNjaGVtZV0gaXNFcXVhbFRvU3RyaW5nOkAi
aHR0cHMiXSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIGlmIChbW3VybCBob3N0XSBpc0Vx
dWFsVG9TdHJpbmc6QCIxMjcuMC4wLjEiXSAmJiAoW1t1cmwgcG9ydF0gaW50VmFsdWVdID09IDgw
MDAgfHwgW1t1cmwgcG9ydF0gaW50VmFsdWVdID09IDg0NDMpKQotICAgICAgICByZXR1cm4gW3Vy
bCBwYXRoXTsKLQotICAgIHJldHVybiBuaWw7Ci19Ci0KIC0gKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXNlbmRlciBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOihXZWJGcmFtZSAqKWZy
YW1lCiB7CiAgICAgQVNTRVJUKFtmcmFtZSBwcm92aXNpb25hbERhdGFTb3VyY2VdKTsKIAotICAg
IGlmICghZG9uZSAmJiBbW3NlbmRlciBtYWluRnJhbWVdIGlzRXF1YWw6ZnJhbWVdKSB7Ci0gICAg
ICAgIE5TVVJMICpwcm92aXNpb25hbExvYWRVUkwgPSBbW1tmcmFtZSBwcm92aXNpb25hbERhdGFT
b3VyY2VdIGluaXRpYWxSZXF1ZXN0XSBVUkxdOwotICAgICAgICBpZiAoTlNTdHJpbmcgKnRlc3RQ
YXRoID0gdGVzdFBhdGhGcm9tVVJMKHByb3Zpc2lvbmFsTG9hZFVSTCkpCi0gICAgICAgICAgICBX
S1NldENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uKChDRlN0cmluZ1Jl
ZilbQCJDUkFTSElORyBURVNUOiAiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOnRlc3RQYXRoXSk7
Ci0gICAgfQotCiAgICAgaWYgKCFkb25lICYmIGdUZXN0UnVubmVyLT5kdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkpIHsKICAgICAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiJUAgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIiwgW2ZyYW1l
IF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHRdXTsKICAgICAgICAgcHJpbnRm
ICgiJXNcbiIsIFtzdHJpbmcgVVRGOFN0cmluZ10pOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTc1Nzg5KQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjAsMTEgKzE2MCwxMSBAQCAtKE5TVVJMUmVxdWVzdCAqKXdlYlZpZXc6
IChXZWJWaWV3ICopd3YgCiAgICAgTlNVUkwgKnVybCA9IFtyZXF1ZXN0IFVSTF07CiAgICAgTlNT
dHJpbmcgKmhvc3QgPSBbdXJsIGhvc3RdOwogICAgIGlmIChob3N0ICYmIChOU09yZGVyZWRTYW1l
ID09IFtbdXJsIHNjaGVtZV0gY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImh0dHAiXSB8fCBOU09y
ZGVyZWRTYW1lID09IFtbdXJsIHNjaGVtZV0gY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImh0dHBz
Il0pKSB7Ci0gICAgICAgIE5TU3RyaW5nICp0ZXN0UGF0aE9yVVJMID0gW05TU3RyaW5nIHN0cmlu
Z1dpdGhVVEY4U3RyaW5nOmdUZXN0UnVubmVyLT50ZXN0UGF0aE9yVVJMKCkuY19zdHIoKV07Ci0g
ICAgICAgIE5TU3RyaW5nICpsb3dlcmNhc2VUZXN0UGF0aE9yVVJMID0gW3Rlc3RQYXRoT3JVUkwg
bG93ZXJjYXNlU3RyaW5nXTsKKyAgICAgICAgTlNTdHJpbmcgKnRlc3RVUkwgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aFVURjhTdHJpbmc6Z1Rlc3RSdW5uZXItPnRlc3RVUkwoKS5jX3N0cigpXTsKKyAg
ICAgICAgTlNTdHJpbmcgKmxvd2VyY2FzZVRlc3RVUkwgPSBbdGVzdFVSTCBsb3dlcmNhc2VTdHJp
bmddOwogICAgICAgICBOU1N0cmluZyAqdGVzdEhvc3QgPSAwOwotICAgICAgICBpZiAoW2xvd2Vy
Y2FzZVRlc3RQYXRoT3JVUkwgaGFzUHJlZml4OkAiaHR0cDoiXSB8fCBbbG93ZXJjYXNlVGVzdFBh
dGhPclVSTCBoYXNQcmVmaXg6QCJodHRwczoiXSkKLSAgICAgICAgICAgIHRlc3RIb3N0ID0gW1tO
U1VSTCBVUkxXaXRoU3RyaW5nOnRlc3RQYXRoT3JVUkxdIGhvc3RdOworICAgICAgICBpZiAoW2xv
d2VyY2FzZVRlc3RVUkwgaGFzUHJlZml4OkAiaHR0cDoiXSB8fCBbbG93ZXJjYXNlVGVzdFVSTCBo
YXNQcmVmaXg6QCJodHRwczoiXSkKKyAgICAgICAgICAgIHRlc3RIb3N0ID0gW1tOU1VSTCBVUkxX
aXRoU3RyaW5nOnRlc3RVUkxdIGhvc3RdOwogICAgICAgICBpZiAoIWlzTG9jYWxob3N0KGhvc3Qp
ICYmICFob3N0SXNVc2VkQnlTb21lVGVzdHNUb0dlbmVyYXRlRXJyb3IoaG9zdCkgJiYgKCF0ZXN0
SG9zdCB8fCBpc0xvY2FsaG9zdCh0ZXN0SG9zdCkpKSB7CiAgICAgICAgICAgICBwcmludGYoIkJs
b2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAlc1xuIiwgW1t1cmwgYWJzb2x1dGVTdHJpbmdd
IGNTdHJpbmdVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSk7CiAgICAgICAgICAg
ICByZXR1cm4gbmlsOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJN
YWMubW0JKHJldmlzaW9uIDE3NTc4OSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0
UnVubmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMjYsNyArMzI2LDcgQEAgc3RhdGljIGlu
bGluZSBzaXplX3QgaW5kZXhPZlNlcGFyYXRvckFmdAogICAgIHJldHVybiBpbmRleE9mU2VhcmNo
S2V5U3RhcnQgKyBzZWFyY2hLZXkubGVuZ3RoKCkgLSAxOwogfQogCi1zdGF0aWMgaW5saW5lIHN0
ZDo6c3RyaW5nIHJlc291cmNlUm9vdEFic29sdXRlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgdGVz
dFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUm9vdE5hbWUpCitzdGF0aWMg
aW5saW5lIHN0ZDo6c3RyaW5nIHJlc291cmNlUm9vdEFic29sdXRlUGF0aChjb25zdCBzdGQ6OnN0
cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUm9vdE5hbWUpCiB7CiAg
ICAgY2hhciogbG9jYWxSZXNvdXJjZVJvb3RFbnYgPSBnZXRlbnYoIkxPQ0FMX1JFU09VUkNFX1JP
T1QiKTsKICAgICBpZiAobG9jYWxSZXNvdXJjZVJvb3RFbnYpCkBAIC0zMzQsNyArMzM0LDcgQEAg
c3RhdGljIGlubGluZSBzdGQ6OnN0cmluZyByZXNvdXJjZVJvb3RBYgogCiAgICAgLy8gVGhpcyBm
YWxsYmFjayBhcHByb2FjaCB3b3JrcyBmb3Igbm9uLWh0dHAgdGVzdHMgYW5kIGlzIHVzZWZ1bAog
ICAgIC8vIGluIHRoZSBjYXNlIHdoZW4gd2UncmUgcnVubmluZyBEUlQgZGlyZWN0bHkgZnJvbSB0
aGUgY29tbWFuZCBsaW5lLgotICAgIHJldHVybiB0ZXN0UGF0aE9yVVJMLnN1YnN0cigwLCBpbmRl
eE9mU2VwYXJhdG9yQWZ0ZXJEaXJlY3RvcnlOYW1lKGV4cGVjdGVkUm9vdE5hbWUsIHRlc3RQYXRo
T3JVUkwpKTsKKyAgICByZXR1cm4gdGVzdFVSTC5zdWJzdHIoMCwgaW5kZXhPZlNlcGFyYXRvckFm
dGVyRGlyZWN0b3J5TmFtZShleHBlY3RlZFJvb3ROYW1lLCB0ZXN0VVJMKSk7CiB9CiAKIEpTU3Ry
aW5nUmVmIFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTU3RyaW5nUmVmIGxvY2FsUmVzb3VyY2VKU1N0cmluZykKQEAgLTM0OSw3ICszNDksNyBA
QCBKU1N0cmluZ1JlZiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291CiAKICAgICBpZiAobG9j
YWxSZXNvdXJjZVN0cmluZy5maW5kKCJMYXlvdXRUZXN0cyIpICE9IHN0ZDo6c3RyaW5nOjpucG9z
KSB7CiAgICAgICAgIGV4cGVjdGVkUm9vdE5hbWUgPSAiTGF5b3V0VGVzdHMiOwotICAgICAgICBh
YnNvbHV0ZVBhdGhUb1Jlc291cmNlUm9vdCA9IHJlc291cmNlUm9vdEFic29sdXRlUGF0aChtX3Rl
c3RQYXRoT3JVUkwsIGV4cGVjdGVkUm9vdE5hbWUpOworICAgICAgICBhYnNvbHV0ZVBhdGhUb1Jl
c291cmNlUm9vdCA9IHJlc291cmNlUm9vdEFic29sdXRlUGF0aChtX3Rlc3RVUkwsIGV4cGVjdGVk
Um9vdE5hbWUpOwogICAgIH0gZWxzZSBpZiAobG9jYWxSZXNvdXJjZVN0cmluZy5maW5kKCJ0bXAi
KSAhPSBzdGQ6OnN0cmluZzo6bnBvcykgewogICAgICAgICBleHBlY3RlZFJvb3ROYW1lID0gInRt
cCI7CiAgICAgICAgIGFic29sdXRlUGF0aFRvUmVzb3VyY2VSb290ID0gZ2V0ZW52KCJEVU1QUkVO
REVSVFJFRV9URU1QIik7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiAx
NzU3ODkpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NSw2ICs2NTUsMTEgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFN0YXJ0UHJvdmlzaQogICAgIGlmICghSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkudGVzdFJ1bm5lcigpLT50ZXN0VVJMKCkpIHsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHRlc3RVUkwgPSBhZG9wdFdLKFdLQnVuZGxlRnJh
bWVDb3B5UHJvdmlzaW9uYWxVUkwoZnJhbWUpKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNo
YXJlZCgpLnRlc3RSdW5uZXIoKS0+c2V0VGVzdFVSTCh0ZXN0VVJMLmdldCgpKTsKKyAgICB9CisK
ICAgICBwbGF0Zm9ybURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoZnJhbWUpOwogCiAg
ICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBG
cmFtZUxvYWRDYWxsYmFja3MoKSkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAxNzU3ODkpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYWtlV2luZG93T2JqZWN0
KEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pOwogCiAgICAgLy8gVGhlIGJhc2ljcy4KKyAgICBXS1VSTFJlZiB0ZXN0VVJMKCkgY29u
c3QgeyByZXR1cm4gbV90ZXN0VVJMLmdldCgpOyB9CisgICAgdm9pZCBzZXRUZXN0VVJMKFdLVVJM
UmVmIHVybCkgeyBtX3Rlc3RVUkwgPSB1cmw7IH0KICAgICB2b2lkIGR1bXBBc1RleHQoYm9vbCBk
dW1wUGl4ZWxzKTsKICAgICB2b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAgIHZvaWQg
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCkgeyBtX3doYXRUb0R1bXAgPSBBbGxGcmFtZXNUZXh0OyB9
CkBAIC0yODEsNiArMjgzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQo
KTsKIAorICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBtX3Rlc3RVUkw7IC8vIFNldCBieSBJbmpl
Y3RlZEJ1bmRsZVBhZ2Ugb25jZSBwcm92aXNpb25hbCBsb2FkIHN0YXJ0cy4KKwogICAgIFdoYXRU
b0R1bXAgbV93aGF0VG9EdW1wOwogICAgIGJvb2wgbV9zaG91bGREdW1wQWxsRnJhbWVTY3JvbGxQ
b3NpdGlvbnM7CiAgICAgYm9vbCBtX3Nob3VsZER1bXBCYWNrRm9yd2FyZExpc3RzRm9yQWxsV2lu
ZG93czsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2Ev
SW5qZWN0ZWRCdW5kbGVQYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9jb2NvYS9JbmplY3RlZEJ1bmRsZVBhZ2VDb2NvYS5tbQko
cmV2aXNpb24gMTc1Nzg5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9jb2NvYS9JbmplY3RlZEJ1bmRsZVBhZ2VDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiCiAKICNpbXBvcnQgIkNy
YXNoUmVwb3J0ZXJJbmZvLmgiCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRsZS5oIgogI2ltcG9ydCA8
V2ViS2l0L1dLQnVuZGxlRnJhbWUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0J1bmRsZVBhZ2VQcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxDRi5oPgpAQCAtNDEsOCArNDIsNyBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6cGxhdGZvcm1EaWRTdGFyCiAgICAgaWYgKCFXS0J1bmRsZUZy
YW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXS1JldGFpblB0
cjxXS1VSTFJlZj4gbWFpbkZyYW1lVVJMID0gYWRvcHRXSyhXS0J1bmRsZUZyYW1lQ29weVByb3Zp
c2lvbmFsVVJMKGZyYW1lKSk7Ci0gICAgc2V0Q3Jhc2hSZXBvcnRBcHBsaWNhdGlvblNwZWNpZmlj
SW5mb3JtYXRpb25Ub1VSTChtYWluRnJhbWVVUkwuZ2V0KCkpOworICAgIHNldENyYXNoUmVwb3J0
QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9VUkwoSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnRlc3RSdW5uZXIoKS0+dGVzdFVSTCgpKTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBX
S0J1bmRsZVBhZ2VTZXRVc2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uKHBhZ2UoKSwgdHJ1
ZSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL0NyYXNoUmVwb3J0ZXJJbmZv
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBv
cnRlckluZm8ubW0JKHJldmlzaW9uIDE3NTc4OSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvQ3Jhc2hSZXBvcnRlckluZm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcg
QEAgdm9pZCBzZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lmaWNJbgogewogICAgIFN0cmlu
ZyB0ZXN0UGF0aCA9IHRlc3RQYXRoRnJvbVVSTCh1cmwpOwogICAgIGlmICghdGVzdFBhdGguaXNO
dWxsKCkpIHsKLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UoIkNSQVNISU5HIFRFU1Q6Iik7CisgICAg
ICAgIFN0cmluZyBtZXNzYWdlKCJDUkFTSElORyBURVNUOiAiKTsKICAgICAgICAgbWVzc2FnZSA9
IG1lc3NhZ2UgKyB0ZXN0UGF0aDsKICAgICAgICAgV0tTZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9u
U3BlY2lmaWNJbmZvcm1hdGlvbihtZXNzYWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogICAg
IH0K
</data>
<flag name="review"
          id="267265"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242423</attachid>
            <date>2014-12-02 10:09:27 -0800</date>
            <delta_ts>2014-12-02 11:30:33 -0800</delta_ts>
            <desc>with Windows fixes</desc>
            <filename>CorrectTestNameOnCrash.txt</filename>
            <type>text/plain</type>
            <size>23028</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3NjY2OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUzIEBACisyMDE0LTEyLTAyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFtNYWMsIGlPU10gQ3Jhc2ggbG9nIGFwcGxpY2F0aW9uIGluZm9ybWF0aW9u
IGNvbnRhaW5zIGxhdGVzdCBtYWluIGZyYW1lIFVSTCBpbnN0ZWFkIG9mIHRlc3QgVVJMCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzkxNzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6
CisgICAgICAgIFJlbmFtZWQgdGVzdFBhdGhPclVSTCB0byB0ZXN0VVJMLCBiZWNhdXNlIHRoaXMg
dmFyaWFibGUgYWx3YXlzIGNvbnRhaW5zIGEgVVJMLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2l6ZVdlYlZpZXdGb3JDdXJyZW50
VGVzdCk6IFVwZGF0ZWQgZm9yIHRlc3RQYXRoT3JVUkwgcmVuYW1pbmcuCisgICAgICAgICh0ZXN0
UGF0aEZyb21VUkwpOiBNb3ZlZCBmcm9tIEZyYW1lTG9hZERlbGVnYXRlLm1tLgorICAgICAgICAo
cnVuVGVzdCk6IFNldCBjcmFzaCByZXBvcnRlciBpbmZvcm1hdGlvbiBoZXJlLCBhcyB3ZSBrbm93
IHRoZSBleGFjdCB0ZXN0IFVSTC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9GcmFt
ZUxvYWREZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bRnJhbWVMb2FkRGVsZWdhdGUgd2ViVmlldzpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOl0pOiBEb24ndCBzZXQgY3Jhc2gKKyAgICAg
ICAgcmVwb3J0ZXIgaW5mb3JtYXRpb24gaGVyZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgVXBkYXRlZCBmb3IgdGVzdFBhdGhPclVSTCBy
ZW5hbWluZy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKTogV2ViUHJvY2VzcyBkb2Vzbid0IGtub3cK
KyAgICAgICAgdGVzdCBVUkwgdW50aWwgbG9hZCBzdGFydHMsIHNvIHNhdmUgaXQgaW50byBUZXN0
UnVubmVyIG5vdy4gQSBuZXcgVGVzdFJ1bm5lciBvYmplY3QKKyAgICAgICAgaXMgY3JlYXRlZCBm
b3IgZWFjaCB0ZXN0LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnRlc3RVUkwpOgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRUZXN0VVJMKToKKyAgICAgICAgTWFrZSBUZXN0UnVu
bmVyIGtub3cgdGhlIHRlc3QgbmFtZS4gRm9yIG5vdywgaXQncyBnb29kIGVub3VnaCB0byBoYXZl
IGl0IG9uY2UgbG9hZAorICAgICAgICBzdGFydHMsIGJ1dCBpZiB3ZSBldmVyIG5lZWQgaXQgZWFy
bGllciwgd2UgY2FuIHNlbmQgaXQgd2l0aCBCZWdpblRlc3QgbWVzc2FnZS4KKworICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvSW5qZWN0ZWRCdW5kbGVQYWdl
Q29jb2EubW06CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6cGxhdGZvcm1EaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgVXNlIHRlc3QgVVJMLCBub3Qg
Y3VycmVudGx5IGxvYWRpbmcgVVJMIGZvciBDcmFzaFJlcG9ydGVyLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9DcmFzaFJlcG9ydGVySW5mby5tbToKKyAgICAgICAgKFdUUjo6
c2V0Q3Jhc2hSZXBvcnRBcHBsaWNhdGlvblNwZWNpZmljSW5mb3JtYXRpb25Ub1VSTCk6IEFkZGVk
IGEgc3BhY2UgYWZ0ZXIgY29sb24KKyAgICAgICAgKFdlYktpdDEgYWxyZWFkeSBoYWQgaXQgcmln
aHQpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKHNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QpOgorICAgICAgICAocnVuVGVzdCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Jlc291cmNlTG9hZERlbGVnYXRlLmNwcDoK
KyAgICAgICAgKFJlc291cmNlTG9hZERlbGVnYXRlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAg
ICBDaGFuZ2VkIFdpbmRvd3MgRHVtcFJlbmRlclRyZWUgdG8gYWxzbyB1c2UgVVJMIGluIFRlc3RS
dW5uZXIuCisKIDIwMTQtMTItMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIHJ1bi13ZWJraXQtdGVzdHMgcmVjb3JkcyBtb3N0IER1bXBSZW5kZXJU
cmVlLmFwcCBjcmFzaGVzIGFzIHRpbWUtb3V0cwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAJKHJldmlzaW9uIDE3NjY2NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIGNvbnN0IHVuc2lnbmVk
IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQgPSAKIGNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6Oncz
Y1NWR1ZpZXdXaWR0aCA9IDQ4MDsKIGNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1Zp
ZXdIZWlnaHQgPSAzNjA7CiAKLVRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkK
K1Rlc3RSdW5uZXI6OlRlc3RSdW5uZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0
IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKICAgICA6IG1fZGlzYWxsb3dJbmNyZWFz
ZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YShmYWxzZSkKICAgICAsIG1fZHVtcEFwcGxpY2F0aW9u
Q2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyhmYWxzZSkKICAgICAsIG1fZHVtcEFzQXVkaW8oZmFsc2Up
CkBAIC0xMTIsMTUgKzExMiwxNSBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKGNvbnN0IHN0ZDo6
c3RyaW5nCiAgICAgLCBtX2hhc1BlbmRpbmdXZWJOb3RpZmljYXRpb25DbGljayhmYWxzZSkKICAg
ICAsIG1fZGF0YWJhc2VEZWZhdWx0UXVvdGEoLTEpCiAgICAgLCBtX2RhdGFiYXNlTWF4UXVvdGEo
LTEpCi0gICAgLCBtX3Rlc3RQYXRoT3JVUkwodGVzdFBhdGhPclVSTCkKKyAgICAsIG1fdGVzdFVS
TCh0ZXN0VVJMKQogICAgICwgbV9leHBlY3RlZFBpeGVsSGFzaChleHBlY3RlZFBpeGVsSGFzaCkK
ICAgICAsIG1fdGl0bGVUZXh0RGlyZWN0aW9uKCJsdHIiKQogewogfQogCi1QYXNzUmVmUHRyPFRl
c3RSdW5uZXI+IFRlc3RSdW5uZXI6OmNyZWF0ZShjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhP
clVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQorUGFzc1JlZlB0cjxU
ZXN0UnVubmVyPiBUZXN0UnVubmVyOjpjcmVhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkws
IGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFRlc3RSdW5uZXIodGVzdFBhdGhPclVSTCwgZXhwZWN0ZWRQaXhlbEhhc2gpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RSdW5uZXIodGVzdFVSTCwgZXhwZWN0ZWRQaXhl
bEhhc2gpKTsKIH0KIAogLy8gU3RhdGljIEZ1bmN0aW9ucwpJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAkocmV2aXNpb24gMTc2NjY3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAKIGNsYXNzIFRlc3RS
dW5uZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXN0UnVubmVyPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8VGVzdFJ1bm5lcj4gY3JlYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0
UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFRlc3RSdW5uZXI+IGNyZWF0ZShjb25zdCBzdGQ6OnN0cmluZyYgdGVz
dFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIAogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCB2aWV3V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZp
ZXdIZWlnaHQ7CkBAIC0yODUsNyArMjg1LDcgQEAgcHVibGljOgogICAgIGJvb2wgdXNlRGVmZXJy
ZWRGcmFtZUxvYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX3VzZURlZmVycmVkRnJhbWVMb2FkaW5n
OyB9CiAgICAgdm9pZCBzZXRVc2VEZWZlcnJlZEZyYW1lTG9hZGluZyhib29sIGZsYWcpIHsgbV91
c2VEZWZlcnJlZEZyYW1lTG9hZGluZyA9IGZsYWc7IH0KIAotICAgIGNvbnN0IHN0ZDo6c3RyaW5n
JiB0ZXN0UGF0aE9yVVJMKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0UGF0aE9yVVJMOyB9CisgICAg
Y29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkwoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RVUkw7IH0K
ICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2goKSBjb25zdCB7IHJldHVy
biBtX2V4cGVjdGVkUGl4ZWxIYXNoOyB9CiAKICAgICBjb25zdCBzdGQ6OnZlY3RvcjxjaGFyPiYg
YXVkaW9SZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvUmVzdWx0OyB9CkBAIC0zNTcsNyAr
MzU3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNr
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nV2ViTm90aWZpY2F0aW9uQ2xpY2s7IH0KIAog
cHJpdmF0ZToKLSAgICBUZXN0UnVubmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJM
LCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOworICAgIFRlc3RSdW5uZXIo
Y29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBp
eGVsSGFzaCk7CiAKICAgICB2b2lkIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihib29s
IGFsbG93KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnN0cmlu
ZyBtX2F1dGhlbnRpY2F0aW9uVXNlcm5hbWU7CiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNh
dGlvblBhc3N3b3JkOyAKLSAgICBzdGQ6OnN0cmluZyBtX3Rlc3RQYXRoT3JVUkw7CisgICAgc3Rk
OjpzdHJpbmcgbV90ZXN0VVJMOwogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0ZWRQaXhlbEhhc2g7
IC8vIGVtcHR5IHN0cmluZyBpZiBubyBoYXNoCiAgICAgc3RkOjpzdHJpbmcgbV90aXRsZVRleHRE
aXJlY3Rpb247CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0JKHJldmlzaW9uIDE3NjY2NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQAogI2ltcG9ydCAi
RnJhbWVMb2FkRGVsZWdhdGUuaCIKICNpbXBvcnQgIkhpc3RvcnlEZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiSmF2YVNjcmlwdFRocmVhZGluZy5oIgotI2ltcG9ydCAiVGVzdFJ1bm5lci5oIgogI2ltcG9y
dCAiTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIuaCIKICNpbXBvcnQgIk1vY2tXZWJOb3RpZmljYXRp
b25Qcm92aWRlci5oIgogI2ltcG9ydCAiTmF2aWdhdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTUxLDYg
KzUwLDcgQEAKICNpbXBvcnQgIlBvbGljeURlbGVnYXRlLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUxv
YWREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiU3RvcmFnZVRyYWNrZXJEZWxlZ2F0ZS5oIgorI2ltcG9y
dCAiVGVzdFJ1bm5lci5oIgogI2ltcG9ydCAiVUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViQXJj
aGl2ZUR1bXBTdXBwb3J0LmgiCiAjaW1wb3J0ICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKQEAgLTY4
LDggKzY4LDggQEAKICNpbXBvcnQgPFdlYktpdC9XZWJDb3JlU3RhdGlzdGljcy5oPgogI2ltcG9y
dCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRGF0
YWJhc2VNYW5hZ2VyUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L1dlYkRvY3VtZW50UHJpdmF0
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrLmg+
CisjaW1wb3J0IDxXZWJLaXQvV2ViRG9jdW1lbnRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V2ViRWRpdGluZ0RlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVWaWV3Lmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViSGlzdG9yeS5oPgpAQCAtNzcsMTkgKzc3LDIwIEBACiAjaW1wb3J0
IDxXZWJLaXQvV2ViSW5zcGVjdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0TlNTdHJpbmdF
eHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJQbHVnaW5EYXRhYmFzZS5oPgorI2ltcG9ydCA8
V2ViS2l0L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlBy
ZWZlcmVuY2VzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg+Ci0j
aW1wb3J0IDxXZWJLaXQvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJTdG9yYWdl
TWFuYWdlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorI2lt
cG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxnZXRvcHQuaD4KICNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgotI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8d3RmL1RocmVhZGluZy5oPgogI2ltcG9ydCA8
d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvT3duUHRyLmg+CisjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmICFQTEFURk9STShJT1MpCkBAIC05OCw2ICs5OSw3
IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgIkR1bXBSZW5kZXJUcmVl
QnJvd3NlclZpZXcuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0ZvbnREQi5oPgogI2ltcG9y
dCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0aW9u
X1ByaXZhdGUuaD4KQEAgLTEwOSw3ICsxMTEsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkNvcmVU
aHJlYWRSdW4uaD4KICNpbXBvcnQgPFdlYktpdC9XZWJET01PcGVyYXRpb25zLmg+CiAjaW1wb3J0
IDxmY250bC5oPgotI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVCcm93c2VyVmlldy5oIgogI2VuZGlm
CiAKIGV4dGVybiAiQyIgewpAQCAtMTU0LDcgKzE1NSw3IEBAICsgKHZvaWQpX3NldEFsZXJ0VHlw
ZTooTlNVSW50ZWdlcilhbGVydFQKIEBlbmQKICNlbmRpZgogCi1zdGF0aWMgdm9pZCBydW5UZXN0
KGNvbnN0IHN0cmluZyYgdGVzdFBhdGhPclVSTCk7CitzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0
IHN0cmluZyYgdGVzdFVSTCk7CiBzdGF0aWMgdm9pZCBkdW1wVGVzdFJlc3VsdHMoKTsKIAogLy8g
RGVjaWRpbmcgd2hlbiBpdCdzIE9LIHRvIGR1bXAgb3V0IHRoZSBzdGF0ZSBpcyBhIGJpdCB0cmlj
a3kuICBBbGwgdGhlc2UgbXVzdCBiZSB0cnVlOgpAQCAtMTQ5MSw3ICsxNDkyLDcgQEAgc3RhdGlj
IHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAgICAgW3VpRGVsZWdhdGUgcmVzZXRX
aW5kb3dPcmlnaW5dOwogCiAgICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8gYmUgNDgweDM2
MAotICAgIGJvb2wgaXNTVkdXM0NUZXN0ID0gKGdUZXN0UnVubmVyLT50ZXN0UGF0aE9yVVJMKCku
ZmluZCgic3ZnL1czQy1TVkctMS4xIikgIT0gc3RyaW5nOjpucG9zKTsKKyAgICBib29sIGlzU1ZH
VzNDVGVzdCA9IChnVGVzdFJ1bm5lci0+dGVzdFVSTCgpLmZpbmQoInN2Zy9XM0MtU1ZHLTEuMSIp
ICE9IHN0cmluZzo6bnBvcyk7CiAgICAgaWYgKGlzU1ZHVzNDVGVzdCkKICAgICAgICAgW1ttYWlu
RnJhbWUgd2ViVmlld10gc2V0RnJhbWVTaXplOk5TTWFrZVNpemUoVGVzdFJ1bm5lcjo6dzNjU1ZH
Vmlld1dpZHRoLCBUZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0KV07CiAgICAgZWxzZQpAQCAt
MTc4MSw2ICsxNzgyLDI3IEBAIHN0YXRpYyB2b2lkIFdlYlRocmVhZExvY2tBZnRlckRlbGVnYXRl
Q2EKIH0KICNlbmRpZgogCitzdGF0aWMgTlNTdHJpbmcgKnRlc3RQYXRoRnJvbVVSTChOU1VSTCog
dXJsKQoreworICAgIGlmIChbdXJsIGlzRmlsZVVSTF0pIHsKKyAgICAgICAgTlNTdHJpbmcgKmZp
bGVQYXRoID0gW3VybCBwYXRoXTsKKyAgICAgICAgTlNSYW5nZSBsYXlvdXRUZXN0c1JhbmdlID0g
W2ZpbGVQYXRoIHJhbmdlT2ZTdHJpbmc6QCIvTGF5b3V0VGVzdHMvIl07CisgICAgICAgIGlmIChs
YXlvdXRUZXN0c1JhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpCisgICAgICAgICAgICByZXR1
cm4gbmlsOworCisgICAgICAgIHJldHVybiBbZmlsZVBhdGggc3Vic3RyaW5nRnJvbUluZGV4Ok5T
TWF4UmFuZ2UobGF5b3V0VGVzdHNSYW5nZSldOworICAgIH0KKyAgICAKKyAgICAvLyBIVFRQIHRl
c3QgVVJMcyBsb29rIGxpa2U6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2UtdHJlZS9yZXNvdXJjZS1yZXF1ZXN0LWNvbnRlbnQtYWZ0ZXItbG9hZGluZy1hbmQtY2xlYXJp
bmctY2FjaGUuaHRtbAorICAgIGlmICghW1t1cmwgc2NoZW1lXSBpc0VxdWFsVG9TdHJpbmc6QCJo
dHRwIl0gJiYgIVtbdXJsIHNjaGVtZV0gaXNFcXVhbFRvU3RyaW5nOkAiaHR0cHMiXSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIGlmIChbW3VybCBob3N0XSBpc0VxdWFsVG9TdHJpbmc6QCIx
MjcuMC4wLjEiXSAmJiAoW1t1cmwgcG9ydF0gaW50VmFsdWVdID09IDgwMDAgfHwgW1t1cmwgcG9y
dF0gaW50VmFsdWVdID09IDg0NDMpKQorICAgICAgICByZXR1cm4gW3VybCBwYXRoXTsKKworICAg
IHJldHVybiBuaWw7Cit9CisKIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1
dExpbmUpCiB7CiAgICAgQVNTRVJUKCFpbnB1dExpbmUuZW1wdHkoKSk7CkBAIC0xODA1LDYgKzE4
MjcsMTIgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TAogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgTlNTdHJpbmcgKnRlc3RQYXRoID0gdGVzdFBhdGhGcm9t
VVJMKHVybCk7CisgICAgaWYgKCF0ZXN0UGF0aCkKKyAgICAgICAgdGVzdFBhdGggPSBbdXJsIGFi
c29sdXRlU3RyaW5nXTsKKyAgICBOU1N0cmluZyAqaW5mb3JtYXRpb25TdHJpbmcgPSBbQCJDUkFT
SElORyBURVNUOiAiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOnRlc3RQYXRoXTsKKyAgICBXS1Nl
dENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uKChDRlN0cmluZ1JlZilp
bmZvcm1hdGlvblN0cmluZyk7CisKICAgICBjb25zdCBjaGFyKiB0ZXN0VVJMKFtbdXJsIGFic29s
dXRlU3RyaW5nXSBVVEY4U3RyaW5nXSk7CiAgICAgCiAgICAgcmVzZXRXZWJWaWV3VG9Db25zaXN0
ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RnJhbWVMb2FkRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCShyZXZpc2lvbiAxNzY2NjcpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDYgQEAKICNpbXBvcnQgIldvcmtRdWV1ZUl0ZW0uaCIKICNpbXBvcnQgPEZvdW5kYXRp
b24vTlNOb3RpZmljYXRpb24uaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmg+Ci0jaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPFdlYktp
dC9XZWJGcmFtZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJIVE1MVmlld1ByaXZhdGUu
aD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KQEAgLTE3MCwzNyArMTY5LDEwIEBAIC0gKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgbG9jYXQKICAgICB9CiB9CiAKLXN0YXRpYyBO
U1N0cmluZyAqdGVzdFBhdGhGcm9tVVJMKE5TVVJMKiB1cmwpCi17Ci0gICAgaWYgKFt1cmwgaXNG
aWxlVVJMXSkgewotICAgICAgICBOU1N0cmluZyAqZmlsZVBhdGggPSBbdXJsIHBhdGhdOwotICAg
ICAgICBOU1JhbmdlIGxheW91dFRlc3RzUmFuZ2UgPSBbZmlsZVBhdGggcmFuZ2VPZlN0cmluZzpA
Ii9MYXlvdXRUZXN0cy8iXTsKLSAgICAgICAgaWYgKGxheW91dFRlc3RzUmFuZ2UubG9jYXRpb24g
PT0gTlNOb3RGb3VuZCkKLSAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgcmV0dXJuIFtmaWxlUGF0aCBzdWJzdHJpbmdGcm9tSW5kZXg6TlNNYXhSYW5nZShsYXlv
dXRUZXN0c1JhbmdlKV07Ci0gICAgfQotICAgIAotICAgIC8vIEhUVFAgdGVzdCBVUkxzIGxvb2sg
bGlrZTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlLXJlcXVlc3QtY29udGVudC1hZnRlci1sb2FkaW5nLWFuZC1jbGVhcmluZy1jYWNoZS5odG1s
Ci0gICAgaWYgKCFbW3VybCBzY2hlbWVdIGlzRXF1YWxUb1N0cmluZzpAImh0dHAiXSAmJiAhW1t1
cmwgc2NoZW1lXSBpc0VxdWFsVG9TdHJpbmc6QCJodHRwcyJdKQotICAgICAgICByZXR1cm4gbmls
OwotCi0gICAgaWYgKFtbdXJsIGhvc3RdIGlzRXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJdICYm
IChbW3VybCBwb3J0XSBpbnRWYWx1ZV0gPT0gODAwMCB8fCBbW3VybCBwb3J0XSBpbnRWYWx1ZV0g
PT0gODQ0MykpCi0gICAgICAgIHJldHVybiBbdXJsIHBhdGhdOwotCi0gICAgcmV0dXJuIG5pbDsK
LX0KLQogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKICAgICBBU1NFUlQoW2ZyYW1lIHBy
b3Zpc2lvbmFsRGF0YVNvdXJjZV0pOwogCi0gICAgaWYgKCFkb25lICYmIFtbc2VuZGVyIG1haW5G
cmFtZV0gaXNFcXVhbDpmcmFtZV0pIHsKLSAgICAgICAgTlNVUkwgKnByb3Zpc2lvbmFsTG9hZFVS
TCA9IFtbW2ZyYW1lIHByb3Zpc2lvbmFsRGF0YVNvdXJjZV0gaW5pdGlhbFJlcXVlc3RdIFVSTF07
Ci0gICAgICAgIGlmIChOU1N0cmluZyAqdGVzdFBhdGggPSB0ZXN0UGF0aEZyb21VUkwocHJvdmlz
aW9uYWxMb2FkVVJMKSkKLSAgICAgICAgICAgIFdLU2V0Q3Jhc2hSZXBvcnRBcHBsaWNhdGlvblNw
ZWNpZmljSW5mb3JtYXRpb24oKENGU3RyaW5nUmVmKVtAIkNSQVNISU5HIFRFU1Q6ICIgc3RyaW5n
QnlBcHBlbmRpbmdTdHJpbmc6dGVzdFBhdGhdKTsKLSAgICB9Ci0KICAgICBpZiAoIWRvbmUgJiYg
Z1Rlc3RSdW5uZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewogICAgICAgICBOU1N0cmlu
ZyAqc3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCAtIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUiLCBbZnJhbWUgX2RydF9kZXNjcmlwdGlvblN1aXRhYmxlRm9y
VGVzdFJlc3VsdF1dOwogICAgICAgICBwcmludGYgKCIlc1xuIiwgW3N0cmluZyBVVEY4U3RyaW5n
XSk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUmVzb3VyY2VMb2FkRGVsZWdhdGUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Jlc291cmNlTG9hZERl
bGVnYXRlLm1tCShyZXZpc2lvbiAxNzY2NjcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
UmVzb3VyY2VMb2FkRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2MCwxMSArMTYwLDEx
IEBAIC0oTlNVUkxSZXF1ZXN0ICopd2ViVmlldzogKFdlYlZpZXcgKil3diAKICAgICBOU1VSTCAq
dXJsID0gW3JlcXVlc3QgVVJMXTsKICAgICBOU1N0cmluZyAqaG9zdCA9IFt1cmwgaG9zdF07CiAg
ICAgaWYgKGhvc3QgJiYgKE5TT3JkZXJlZFNhbWUgPT0gW1t1cmwgc2NoZW1lXSBjYXNlSW5zZW5z
aXRpdmVDb21wYXJlOkAiaHR0cCJdIHx8IE5TT3JkZXJlZFNhbWUgPT0gW1t1cmwgc2NoZW1lXSBj
YXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiaHR0cHMiXSkpIHsKLSAgICAgICAgTlNTdHJpbmcgKnRl
c3RQYXRoT3JVUkwgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6Z1Rlc3RSdW5uZXIt
PnRlc3RQYXRoT3JVUkwoKS5jX3N0cigpXTsKLSAgICAgICAgTlNTdHJpbmcgKmxvd2VyY2FzZVRl
c3RQYXRoT3JVUkwgPSBbdGVzdFBhdGhPclVSTCBsb3dlcmNhc2VTdHJpbmddOworICAgICAgICBO
U1N0cmluZyAqdGVzdFVSTCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpnVGVzdFJ1
bm5lci0+dGVzdFVSTCgpLmNfc3RyKCldOworICAgICAgICBOU1N0cmluZyAqbG93ZXJjYXNlVGVz
dFVSTCA9IFt0ZXN0VVJMIGxvd2VyY2FzZVN0cmluZ107CiAgICAgICAgIE5TU3RyaW5nICp0ZXN0
SG9zdCA9IDA7Ci0gICAgICAgIGlmIChbbG93ZXJjYXNlVGVzdFBhdGhPclVSTCBoYXNQcmVmaXg6
QCJodHRwOiJdIHx8IFtsb3dlcmNhc2VUZXN0UGF0aE9yVVJMIGhhc1ByZWZpeDpAImh0dHBzOiJd
KQotICAgICAgICAgICAgdGVzdEhvc3QgPSBbW05TVVJMIFVSTFdpdGhTdHJpbmc6dGVzdFBhdGhP
clVSTF0gaG9zdF07CisgICAgICAgIGlmIChbbG93ZXJjYXNlVGVzdFVSTCBoYXNQcmVmaXg6QCJo
dHRwOiJdIHx8IFtsb3dlcmNhc2VUZXN0VVJMIGhhc1ByZWZpeDpAImh0dHBzOiJdKQorICAgICAg
ICAgICAgdGVzdEhvc3QgPSBbW05TVVJMIFVSTFdpdGhTdHJpbmc6dGVzdFVSTF0gaG9zdF07CiAg
ICAgICAgIGlmICghaXNMb2NhbGhvc3QoaG9zdCkgJiYgIWhvc3RJc1VzZWRCeVNvbWVUZXN0c1Rv
R2VuZXJhdGVFcnJvcihob3N0KSAmJiAoIXRlc3RIb3N0IHx8IGlzTG9jYWxob3N0KHRlc3RIb3N0
KSkpIHsKICAgICAgICAgICAgIHByaW50ZigiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
ICVzXG4iLCBbW3VybCBhYnNvbHV0ZVN0cmluZ10gY1N0cmluZ1VzaW5nRW5jb2Rpbmc6TlNVVEY4
U3RyaW5nRW5jb2RpbmddKTsKICAgICAgICAgICAgIHJldHVybiBuaWw7CkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkocmV2aXNpb24gMTc2NjY3KQorKysg
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTMyNiw3ICszMjYsNyBAQCBzdGF0aWMgaW5saW5lIHNpemVfdCBpbmRleE9mU2VwYXJhdG9y
QWZ0CiAgICAgcmV0dXJuIGluZGV4T2ZTZWFyY2hLZXlTdGFydCArIHNlYXJjaEtleS5sZW5ndGgo
KSAtIDE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgcmVzb3VyY2VSb290QWJzb2x1
dGVQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmlu
ZyYgZXhwZWN0ZWRSb290TmFtZSkKK3N0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgcmVzb3VyY2VS
b290QWJzb2x1dGVQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0VVJMLCBjb25zdCBzdGQ6OnN0
cmluZyYgZXhwZWN0ZWRSb290TmFtZSkKIHsKICAgICBjaGFyKiBsb2NhbFJlc291cmNlUm9vdEVu
diA9IGdldGVudigiTE9DQUxfUkVTT1VSQ0VfUk9PVCIpOwogICAgIGlmIChsb2NhbFJlc291cmNl
Um9vdEVudikKQEAgLTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIHJl
c291cmNlUm9vdEFiCiAKICAgICAvLyBUaGlzIGZhbGxiYWNrIGFwcHJvYWNoIHdvcmtzIGZvciBu
b24taHR0cCB0ZXN0cyBhbmQgaXMgdXNlZnVsCiAgICAgLy8gaW4gdGhlIGNhc2Ugd2hlbiB3ZSdy
ZSBydW5uaW5nIERSVCBkaXJlY3RseSBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCi0gICAgcmV0dXJu
IHRlc3RQYXRoT3JVUkwuc3Vic3RyKDAsIGluZGV4T2ZTZXBhcmF0b3JBZnRlckRpcmVjdG9yeU5h
bWUoZXhwZWN0ZWRSb290TmFtZSwgdGVzdFBhdGhPclVSTCkpOworICAgIHJldHVybiB0ZXN0VVJM
LnN1YnN0cigwLCBpbmRleE9mU2VwYXJhdG9yQWZ0ZXJEaXJlY3RvcnlOYW1lKGV4cGVjdGVkUm9v
dE5hbWUsIHRlc3RVUkwpKTsKIH0KIAogSlNTdHJpbmdSZWYgVGVzdFJ1bm5lcjo6cGF0aFRvTG9j
YWxSZXNvdXJjZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgbG9jYWxSZXNvdXJj
ZUpTU3RyaW5nKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5uZXI6OnBh
dGhUb0xvY2FsUmVzb3UKIAogICAgIGlmIChsb2NhbFJlc291cmNlU3RyaW5nLmZpbmQoIkxheW91
dFRlc3RzIikgIT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKICAgICAgICAgZXhwZWN0ZWRSb290TmFt
ZSA9ICJMYXlvdXRUZXN0cyI7Ci0gICAgICAgIGFic29sdXRlUGF0aFRvUmVzb3VyY2VSb290ID0g
cmVzb3VyY2VSb290QWJzb2x1dGVQYXRoKG1fdGVzdFBhdGhPclVSTCwgZXhwZWN0ZWRSb290TmFt
ZSk7CisgICAgICAgIGFic29sdXRlUGF0aFRvUmVzb3VyY2VSb290ID0gcmVzb3VyY2VSb290QWJz
b2x1dGVQYXRoKG1fdGVzdFVSTCwgZXhwZWN0ZWRSb290TmFtZSk7CiAgICAgfSBlbHNlIGlmIChs
b2NhbFJlc291cmNlU3RyaW5nLmZpbmQoInRtcCIpICE9IHN0ZDo6c3RyaW5nOjpucG9zKSB7CiAg
ICAgICAgIGV4cGVjdGVkUm9vdE5hbWUgPSAidG1wIjsKICAgICAgICAgYWJzb2x1dGVQYXRoVG9S
ZXNvdXJjZVJvb3QgPSBnZXRlbnYoIkRVTVBSRU5ERVJUUkVFX1RFTVAiKTsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAkocmV2aXNpb24gMTc2NjY3
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODg3LDcgKzg4Nyw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29u
c2lzdGVudFN0YXQKIAogc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiB7
Ci0gICAgYm9vbCBpc1NWR1czQ1Rlc3QgPSAoZ1Rlc3RSdW5uZXItPnRlc3RQYXRoT3JVUkwoKS5m
aW5kKCJzdmdcXFczQy1TVkctMS4xIikgIT0gc3RyaW5nOjpucG9zKTsKKyAgICBib29sIGlzU1ZH
VzNDVGVzdCA9IChnVGVzdFJ1bm5lci0+dGVzdFVSTCgpLmZpbmQoInN2Z1xcVzNDLVNWRy0xLjEi
KSAhPSBzdHJpbmc6Om5wb3MpOwogICAgIHVuc2lnbmVkIHdpZHRoOwogICAgIHVuc2lnbmVkIGhl
aWdodDsKICAgICBpZiAoaXNTVkdXM0NUZXN0KSB7CkBAIC05OTMsNiArOTkzLDggQEAgc3RhdGlj
IHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TAogCiAgICAgc3RyID0gQ0ZVUkxHZXRT
dHJpbmcodXJsKTsKIAorICAgIENGUmVsZWFzZSh1cmwpOworCiAgICAgQ0ZJbmRleCBsZW5ndGgg
PSBDRlN0cmluZ0dldExlbmd0aChzdHIpOwogICAgIFVuaUNoYXIqIGJ1ZmZlciA9IG5ldyBVbmlD
aGFyW2xlbmd0aCArIDFdOwogCkBAIC0xMDAzLDEyICsxMDA1LDE2IEBAIHN0YXRpYyB2b2lkIHJ1
blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dEwKICAgICBBU1NFUlQodXJsQlN0ci5sZW5ndGgoKSA9
PSBsZW5ndGgpOwogICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKIAotICAgIENGUmVsZWFzZSh1cmwpOwor
ICAgIENGSW5kZXggbWF4aW11bVVSTExlbmd0aEFzVVRGOCA9IENGU3RyaW5nR2V0TWF4aW11bVNp
emVGb3JFbmNvZGluZyhsZW5ndGgsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7CisgICAgY2hhciog
dGVzdFVSTCA9IG5ldyBjaGFyW107CisgICAgQ0ZTdHJpbmdHZXRDU3RyaW5nKHN0ciwgdGVzdFVS
TCwgbWF4aW11bVVSTExlbmd0aEFzVVRGOCwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KTsKIAotICAg
IDo6Z1Rlc3RSdW5uZXIgPSBUZXN0UnVubmVyOjpjcmVhdGUocGF0aE9yVVJMLCBjb21tYW5kLmV4
cGVjdGVkUGl4ZWxIYXNoKTsKKyAgICA6OmdUZXN0UnVubmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRl
KHRlc3RVUkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIHRvcExvYWRpbmdGcmFt
ZSA9IDA7CiAgICAgZG9uZSA9IGZhbHNlOwogCisgICAgZGVsZXRlW10gdGVzdFVSTDsKKwogICAg
IGFkZEZvbnRGYWxsYmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwogCiAgICAgc2l6ZVdlYlZp
ZXdGb3JDdXJyZW50VGVzdCgpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Jlc291
cmNlTG9hZERlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vUmVzb3VyY2VMb2FkRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAxNzY2NjcpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vUmVzb3VyY2VMb2FkRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNzQsMTMgKzI3NCwxMyBAQCBIUkVTVUxUIFJlc291cmNlTG9hZERlbGVnYXRlOjp3aWxs
U2VuZFJlCiAKICAgICAgICAgaWYgKGhvc3QgJiYgKChrQ0ZDb21wYXJlRXF1YWxUbyA9PSBDRlN0
cmluZ0NvbXBhcmUoc2NoZW1lLmdldCgpLCBDRlNUUigiaHR0cCIpLCBrQ0ZDb21wYXJlQ2FzZUlu
c2Vuc2l0aXZlKSkKICAgICAgICAgICAgIHx8IChrQ0ZDb21wYXJlRXF1YWxUbyA9PSBDRlN0cmlu
Z0NvbXBhcmUoc2NoZW1lLmdldCgpLCBDRlNUUigiaHR0cHMiKSwga0NGQ29tcGFyZUNhc2VJbnNl
bnNpdGl2ZSkpKSkgewotICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXN0UGF0
aE9yVVJMID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGdUZXN0UnVubmVyLT50ZXN0UGF0aE9yVVJMKCkuY19zdHIoKSwga0NGU3RyaW5nRW5j
b2RpbmdXaW5kb3dzTGF0aW4xKSk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlU3Ry
aW5nUmVmPiBsb3dlcmNhc2VUZXN0UGF0aE9yVVJMID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZU11
dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIENGU3RyaW5nR2V0TGVuZ3RoKHRlc3RQYXRo
T3JVUkwuZ2V0KCkpLCB0ZXN0UGF0aE9yVVJMLmdldCgpKSk7CisgICAgICAgICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHRlc3RVUkwgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aENTdHJp
bmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZ1Rlc3RSdW5uZXItPnRlc3RVUkwoKS5jX3N0cigpLCBr
Q0ZTdHJpbmdFbmNvZGluZ1dpbmRvd3NMYXRpbjEpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxD
Rk11dGFibGVTdHJpbmdSZWY+IGxvd2VyY2FzZVRlc3RVUkwgPSBhZG9wdENGKENGU3RyaW5nQ3Jl
YXRlTXV0YWJsZUNvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZTdHJpbmdHZXRMZW5ndGgodGVz
dFVSTC5nZXQoKSksIHRlc3RVUkwuZ2V0KCkpKTsKICAgICAgICAgICAgIFJldGFpblB0cjxDRkxv
Y2FsZVJlZj4gbG9jYWxlID0gQ0ZMb2NhbGVDb3B5Q3VycmVudCgpOwotICAgICAgICAgICAgQ0ZT
dHJpbmdMb3dlcmNhc2UobG93ZXJjYXNlVGVzdFBhdGhPclVSTC5nZXQoKSwgbG9jYWxlLmdldCgp
KTsKKyAgICAgICAgICAgIENGU3RyaW5nTG93ZXJjYXNlKGxvd2VyY2FzZVRlc3RVUkwuZ2V0KCks
IGxvY2FsZS5nZXQoKSk7CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRlc3RI
b3N0OwotICAgICAgICAgICAgaWYgKENGU3RyaW5nSGFzUHJlZml4KGxvd2VyY2FzZVRlc3RQYXRo
T3JVUkwuZ2V0KCksIENGU1RSKCJodHRwOiIpKSB8fCBDRlN0cmluZ0hhc1ByZWZpeChsb3dlcmNh
c2VUZXN0UGF0aE9yVVJMLmdldCgpLCBDRlNUUigiaHR0cHM6IikpKSB7Ci0gICAgICAgICAgICAg
ICAgUmV0YWluUHRyPENGVVJMUmVmPiB0ZXN0UGF0aFVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVX
aXRoU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGxvd2VyY2FzZVRlc3RQYXRoT3JVUkwuZ2V0
KCksIG51bGxwdHIpKTsKKyAgICAgICAgICAgIGlmIChDRlN0cmluZ0hhc1ByZWZpeChsb3dlcmNh
c2VUZXN0VVJMLmdldCgpLCBDRlNUUigiaHR0cDoiKSkgfHwgQ0ZTdHJpbmdIYXNQcmVmaXgobG93
ZXJjYXNlVGVzdFVSTC5nZXQoKSwgQ0ZTVFIoImh0dHBzOiIpKSkgeworICAgICAgICAgICAgICAg
IFJldGFpblB0cjxDRlVSTFJlZj4gdGVzdFBhdGhVUkwgPSBhZG9wdENGKENGVVJMQ3JlYXRlV2l0
aFN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBsb3dlcmNhc2VUZXN0VVJMLmdldCgpLCBudWxs
cHRyKSk7CiAgICAgICAgICAgICAgICAgdGVzdEhvc3QgPSBhZG9wdENGKENGVVJMQ29weUhvc3RO
YW1lKHRlc3RQYXRoVVJMLmdldCgpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
IWlzTG9jYWxob3N0KGhvc3QuZ2V0KCkpICYmICFob3N0SXNVc2VkQnlTb21lVGVzdHNUb0dlbmVy
YXRlRXJyb3IoaG9zdC5nZXQoKSkgJiYgKCF0ZXN0SG9zdCB8fCBpc0xvY2FsaG9zdCh0ZXN0SG9z
dC5nZXQoKSkpKSB7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiAxNzY2
NjcpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NSw2ICs2NTUsMTEgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFN0YXJ0UHJvdmlzaQogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6
OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkudGVzdFJ1bm5lcigpLT50ZXN0VVJMKCkpIHsKKyAgICAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHRlc3RVUkwgPSBhZG9wdFdLKFdLQnVuZGxlRnJhbWVD
b3B5UHJvdmlzaW9uYWxVUkwoZnJhbWUpKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnRlc3RSdW5uZXIoKS0+c2V0VGVzdFVSTCh0ZXN0VVJMLmdldCgpKTsKKyAgICB9CisKICAg
ICBwbGF0Zm9ybURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoZnJhbWUpOwogCiAgICAg
aWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKSkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAxNzY2NjcpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYWtlV2luZG93T2JqZWN0KEpT
Q29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pOwogCiAgICAgLy8gVGhlIGJhc2ljcy4KKyAgICBXS1VSTFJlZiB0ZXN0VVJMKCkgY29uc3Qg
eyByZXR1cm4gbV90ZXN0VVJMLmdldCgpOyB9CisgICAgdm9pZCBzZXRUZXN0VVJMKFdLVVJMUmVm
IHVybCkgeyBtX3Rlc3RVUkwgPSB1cmw7IH0KICAgICB2b2lkIGR1bXBBc1RleHQoYm9vbCBkdW1w
UGl4ZWxzKTsKICAgICB2b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAgIHZvaWQgZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCkgeyBtX3doYXRUb0R1bXAgPSBBbGxGcmFtZXNUZXh0OyB9CkBA
IC0yODQsNiArMjg2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
OwogICAgIHZvaWQgaW5pdGlhbGl6ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQoKTsK
IAorICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBtX3Rlc3RVUkw7IC8vIFNldCBieSBJbmplY3Rl
ZEJ1bmRsZVBhZ2Ugb25jZSBwcm92aXNpb25hbCBsb2FkIHN0YXJ0cy4KKwogICAgIFdoYXRUb0R1
bXAgbV93aGF0VG9EdW1wOwogICAgIGJvb2wgbV9zaG91bGREdW1wQWxsRnJhbWVTY3JvbGxQb3Np
dGlvbnM7CiAgICAgYm9vbCBtX3Nob3VsZER1bXBCYWNrRm9yd2FyZExpc3RzRm9yQWxsV2luZG93
czsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvSW5q
ZWN0ZWRCdW5kbGVQYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9jb2NvYS9JbmplY3RlZEJ1bmRsZVBhZ2VDb2NvYS5tbQkocmV2
aXNpb24gMTc2NjY3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9j
b2NvYS9JbmplY3RlZEJ1bmRsZVBhZ2VDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiCiAKICNpbXBvcnQgIkNyYXNo
UmVwb3J0ZXJJbmZvLmgiCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRsZS5oIgogI2ltcG9ydCA8V2Vi
S2l0L1dLQnVuZGxlRnJhbWUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0J1bmRsZVBhZ2VQcml2YXRl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxDRi5oPgpAQCAtNDEsOCArNDIsNyBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6cGxhdGZvcm1EaWRTdGFyCiAgICAgaWYgKCFXS0J1bmRsZUZyYW1l
SXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXS1JldGFpblB0cjxX
S1VSTFJlZj4gbWFpbkZyYW1lVVJMID0gYWRvcHRXSyhXS0J1bmRsZUZyYW1lQ29weVByb3Zpc2lv
bmFsVVJMKGZyYW1lKSk7Ci0gICAgc2V0Q3Jhc2hSZXBvcnRBcHBsaWNhdGlvblNwZWNpZmljSW5m
b3JtYXRpb25Ub1VSTChtYWluRnJhbWVVUkwuZ2V0KCkpOworICAgIHNldENyYXNoUmVwb3J0QXBw
bGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9VUkwoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnRlc3RSdW5uZXIoKS0+dGVzdFVSTCgpKTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBXS0J1
bmRsZVBhZ2VTZXRVc2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uKHBhZ2UoKSwgdHJ1ZSk7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL0NyYXNoUmVwb3J0ZXJJbmZvLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBvcnRl
ckluZm8ubW0JKHJldmlzaW9uIDE3NjY2NykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvQ3Jhc2hSZXBvcnRlckluZm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAg
dm9pZCBzZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lmaWNJbgogewogICAgIFN0cmluZyB0
ZXN0UGF0aCA9IHRlc3RQYXRoRnJvbVVSTCh1cmwpOwogICAgIGlmICghdGVzdFBhdGguaXNOdWxs
KCkpIHsKLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UoIkNSQVNISU5HIFRFU1Q6Iik7CisgICAgICAg
IFN0cmluZyBtZXNzYWdlKCJDUkFTSElORyBURVNUOiAiKTsKICAgICAgICAgbWVzc2FnZSA9IG1l
c3NhZ2UgKyB0ZXN0UGF0aDsKICAgICAgICAgV0tTZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3Bl
Y2lmaWNJbmZvcm1hdGlvbihtZXNzYWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>