<?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>164290</bug_id>
          
          <creation_ts>2016-11-01 13:55:27 -0700</creation_ts>
          <short_desc>Percent-encode non-ASCII code points in hosts of URLs with unrecognized schemes</short_desc>
          <delta_ts>2016-11-01 16:34:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1247024</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-01 13:55:27 -0700</bug_when>
    <thetext>Percent-encode non-ASCII code points in hosts of URLs with unrecognized schemes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247033</commentid>
    <comment_count>1</comment_count>
      <attachid>293589</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-01 14:04:49 -0700</bug_when>
    <thetext>Created attachment 293589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247047</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-01 14:34:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/208239</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247118</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-01 16:27:56 -0700</bug_when>
    <thetext>imported/w3c/web-platform-tests/url/url-setters.html is failing after this change

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=imported%2Fw3c%2Fweb-platform-tests%2Furl%2Furl-setters.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247120</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-01 16:34:33 -0700</bug_when>
    <thetext>r208258</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293589</attachid>
            <date>2016-11-01 14:04:49 -0700</date>
            <delta_ts>2016-11-01 14:08:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164290-20161101140056.patch</filename>
            <type>text/plain</type>
            <size>39479</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODE2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTExLTAxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGVyY2VudC1l
bmNvZGUgbm9uLUFTQ0lJIGNvZGUgcG9pbnRzIGluIGhvc3RzIG9mIFVSTHMgd2l0aCB1bnJlY29n
bml6ZWQgc2NoZW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY0MjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTlNVUkwgZmFpbHMgdG8gcGFyc2UgdGhlc2UgVVJMcywgV2ViS2l0IHVzZWQgdG8gcHVu
eWNvZGUgZW5jb2RlIHRoZW0sIGJ1dCBub3cgd2UgbWF0Y2ggQ2hyb21lIGFuZCBGaXJlZm94LAor
ICAgICAgICBhcyB3ZWxsIGFzIHdoYXQgd2lsbCBsaWtlbHkgYmVjb21lIHRoZSBzdGFuZGFyZCBv
bmNlIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvdXJsL2lzc3Vlcy8xNDggaXMgcmVzb2x2ZWQu
CisgICAgICAgIFdlIGNvbnRpbnVlIHRvIHBhcnNlIElQdjYgYWRkcmVzcyBob3N0cyBiZWNhdXNl
IG90aGVyd2lzZSB3ZSB3b3VsZG4ndCBiZSBhYmxlIHRvIHRlbGwgd2hlcmUgYSBwb3J0CisgICAg
ICAgIHN0YXJ0cyBpbiBhIFVSTCB3aXRoIGNvbG9ucyBpbiB0aGUgSVB2NiBhZGRyZXNzIGFuZCBi
ZWZvcmUgdGhlIHBvcnQgbGlrZSAiYTovL1tiOjpjXTo0IgorCisgICAgICAgIENvdmVyZWQgYnkg
bmV3IEFQSSB0ZXN0cyBhbmQgdXBkYXRlZCBMYXlvdXRUZXN0cy4KKworICAgICAgICAqIHBsYXRm
b3JtL1VSTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OmRvbWFpblRv
QVNDSUkpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZUhvc3RBbmRQb3J0KToK
KwogMjAxNi0xMC0zMSAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFY
OiBpT1MgVm9pY2VvdmVyIGRvZXMgbm90IGFubm91bmNlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdmFs
dWUgZnJvbSBpbnB1dCB0eXBlPSJkYXRlIiBmb3JtIGZpZWxkCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTFBhcnNlci5jcHAJKHJldmlzaW9uIDIwODE2MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NjksMjggKzI0Njks
MTggQEAgT3B0aW9uYWw8VmVjdG9yPExDaGFyLCBVUkxQYXJzZXI6OmRlZmF1bAogICAgICAgICBp
ZiAoZG9tYWluLmlzOEJpdCgpKSB7CiAgICAgICAgICAgICBjb25zdCBMQ2hhciogY2hhcmFjdGVy
cyA9IGRvbWFpbi5jaGFyYWN0ZXJzOCgpOwogICAgICAgICAgICAgYXNjaWkucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShsZW5ndGgpOwotICAgICAgICAgICAgaWYgKG1fdXJsSXNTcGVjaWFsKSB7Ci0g
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoaXNBU0NJSVVwcGVyKGNoYXJhY3RlcnNbaV0p
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheFZpb2xhdGlvbihpdGVyYXRvckZvclN5
bnRheFZpb2xhdGlvblBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAgYXNjaWkudW5jaGVj
a2VkQXBwZW5kKHRvQVNDSUlMb3dlcihjaGFyYWN0ZXJzW2ldKSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgICAgICBhc2NpaS51bmNoZWNrZWRB
cHBlbmQoY2hhcmFjdGVyc1tpXSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKGlzQVNDSUlVcHBl
cihjaGFyYWN0ZXJzW2ldKSkpCisgICAgICAgICAgICAgICAgICAgIHN5bnRheFZpb2xhdGlvbihp
dGVyYXRvckZvclN5bnRheFZpb2xhdGlvblBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBhc2Np
aS51bmNoZWNrZWRBcHBlbmQodG9BU0NJSUxvd2VyKGNoYXJhY3RlcnNbaV0pKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzID0gZG9tYWluLmNoYXJhY3RlcnMxNigpOwogICAgICAgICAgICAgYXNjaWkucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShsZW5ndGgpOwotICAgICAgICAgICAgaWYgKG1fdXJsSXNTcGVjaWFsKSB7
Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoaXNBU0NJSVVwcGVyKGNoYXJhY3RlcnNb
aV0pKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheFZpb2xhdGlvbihpdGVyYXRvckZv
clN5bnRheFZpb2xhdGlvblBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAgYXNjaWkudW5j
aGVja2VkQXBwZW5kKHRvQVNDSUlMb3dlcihjaGFyYWN0ZXJzW2ldKSk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgICAgICBhc2NpaS51bmNoZWNr
ZWRBcHBlbmQoY2hhcmFjdGVyc1tpXSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKGlzQVNDSUlV
cHBlcihjaGFyYWN0ZXJzW2ldKSkpCisgICAgICAgICAgICAgICAgICAgIHN5bnRheFZpb2xhdGlv
bihpdGVyYXRvckZvclN5bnRheFZpb2xhdGlvblBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBh
c2NpaS51bmNoZWNrZWRBcHBlbmQodG9BU0NJSUxvd2VyKGNoYXJhY3RlcnNbaV0pKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gYXNjaWk7CkBAIC0yNjEwLDggKzI2
MDAsMjcgQEAgYm9vbCBVUkxQYXJzZXI6OnBhcnNlSG9zdEFuZFBvcnQoQ29kZVBvaQogICAgICAg
ICAgICAgbV91cmwubV9ob3N0RW5kID0gY3VycmVudFBvc2l0aW9uKGlwdjZFbmQpOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAorICAgIGlmICghbV91cmxJc1NwZWNpYWwpIHsKKyAgICAgICAgZm9yICg7ICFpdGVyYXRv
ci5hdEVuZCgpOyArK2l0ZXJhdG9yKSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoaXNUYWJP
ck5ld2xpbmUoKml0ZXJhdG9yKSkpIHsKKyAgICAgICAgICAgICAgICBzeW50YXhWaW9sYXRpb24o
aXRlcmF0b3IpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKCppdGVyYXRvciA9PSAnOicpCisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB1dGY4UGVyY2VudEVuY29kZTxpc0luU2ltcGxlRW5jb2RlU2V0PihpdGVyYXRv
cik7CisgICAgICAgIH0KKyAgICAgICAgbV91cmwubV9ob3N0RW5kID0gY3VycmVudFBvc2l0aW9u
KGl0ZXJhdG9yKTsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkpIHsKKyAgICAgICAgICAg
IG1fdXJsLm1fcG9ydEVuZCA9IGN1cnJlbnRQb3NpdGlvbihpdGVyYXRvcik7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFyc2VQb3J0KGl0ZXJh
dG9yKTsKKyAgICB9CisgICAgCiAgICAgaWYgKExJS0VMWSghbV9ob3N0SGFzUGVyY2VudE9yTm9u
QVNDSUkpKSB7CiAgICAgICAgIGF1dG8gaG9zdEl0ZXJhdG9yID0gaXRlcmF0b3I7CiAgICAgICAg
IGZvciAoOyAhaXRlcmF0b3IuYXRFbmQoKTsgKytpdGVyYXRvcikgewpAQCAtMjYyMiwyOCArMjYz
MSwyMyBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VIb3N0QW5kUG9ydChDb2RlUG9pCiAgICAgICAg
ICAgICBpZiAoaXNJbnZhbGlkRG9tYWluQ2hhcmFjdGVyKCppdGVyYXRvcikpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIGlmIChtX3VybElzU3BlY2lh
bCkgewotICAgICAgICAgICAgaWYgKGF1dG8gYWRkcmVzcyA9IHBhcnNlSVB2NEhvc3QoQ29kZVBv
aW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4oaG9zdEl0ZXJhdG9yLCBpdGVyYXRvcikpKSB7Ci0g
ICAgICAgICAgICAgICAgc2VyaWFsaXplSVB2NChhZGRyZXNzLnZhbHVlKCkpOwotICAgICAgICAg
ICAgICAgIG1fdXJsLm1faG9zdEVuZCA9IGN1cnJlbnRQb3NpdGlvbihpdGVyYXRvcik7Ci0gICAg
ICAgICAgICAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
bV91cmwubV9wb3J0RW5kID0gY3VycmVudFBvc2l0aW9uKGl0ZXJhdG9yKTsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IHJldHVybiBwYXJzZVBvcnQoaXRlcmF0b3IpOworICAgICAgICBpZiAoYXV0byBhZGRyZXNzID0g
cGFyc2VJUHY0SG9zdChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihob3N0SXRlcmF0
b3IsIGl0ZXJhdG9yKSkpIHsKKyAgICAgICAgICAgIHNlcmlhbGl6ZUlQdjQoYWRkcmVzcy52YWx1
ZSgpKTsKKyAgICAgICAgICAgIG1fdXJsLm1faG9zdEVuZCA9IGN1cnJlbnRQb3NpdGlvbihpdGVy
YXRvcik7CisgICAgICAgICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSkgeworICAgICAgICAgICAg
ICAgIG1fdXJsLm1fcG9ydEVuZCA9IGN1cnJlbnRQb3NpdGlvbihpdGVyYXRvcik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
cGFyc2VQb3J0KGl0ZXJhdG9yKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKDsgaG9zdEl0ZXJh
dG9yICE9IGl0ZXJhdG9yOyArK2hvc3RJdGVyYXRvcikgewogICAgICAgICAgICAgaWYgKFVOTElL
RUxZKGlzVGFiT3JOZXdsaW5lKCpob3N0SXRlcmF0b3IpKSkgewogICAgICAgICAgICAgICAgIHN5
bnRheFZpb2xhdGlvbihob3N0SXRlcmF0b3IpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1fdXJsSXNTcGVjaWFsKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKFVOTElLRUxZKGlzQVNDSUlVcHBlcigqaG9zdEl0ZXJhdG9yKSkpCi0gICAg
ICAgICAgICAgICAgICAgIHN5bnRheFZpb2xhdGlvbihob3N0SXRlcmF0b3IpOwotICAgICAgICAg
ICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIodG9BU0NJSUxvd2VyKCpob3N0SXRlcmF0b3IpKTsK
LSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIo
Kmhvc3RJdGVyYXRvcik7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoaXNBU0NJSVVwcGVyKCpo
b3N0SXRlcmF0b3IpKSkKKyAgICAgICAgICAgICAgICBzeW50YXhWaW9sYXRpb24oaG9zdEl0ZXJh
dG9yKTsKKyAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIodG9BU0NJSUxvd2VyKCpob3N0
SXRlcmF0b3IpKTsKICAgICAgICAgfQogICAgICAgICBtX3VybC5tX2hvc3RFbmQgPSBjdXJyZW50
UG9zaXRpb24oaXRlcmF0b3IpOwogICAgICAgICBpZiAoIWhvc3RJdGVyYXRvci5hdEVuZCgpKQpJ
bmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjA4MjM4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTYtMTEtMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBQZXJjZW50LWVuY29kZSBub24tQVNDSUkgY29kZSBwb2ludHMg
aW4gaG9zdHMgb2YgVVJMcyB3aXRoIHVucmVjb2duaXplZCBzY2hlbWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQyOTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkxQYXJzZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y2hlY2tSZWxh
dGl2ZVVSTCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjaGVja1VSTERpZmZlcmVuY2VzKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNrUmVsYXRpdmVVUkxEaWZmZXJlbmNlcyk6Cisg
ICAgICAgIE1vdmUgaGVscGVyIGZ1bmN0aW9ucyB0byB0aGUgdG9wIHNvIEkgY2FuIHVzZSB0aGVt
IGZyb20gYW55IHRlc3RzLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2hvdWxkRmFpbCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpjaGVja1VSTCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUX0YpOgorCiAyMDE2LTExLTAxICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbR1RLXSBGYWlsZWQgdG8gZ2VuZXJhdGUgR2VvQ2x1ZTJJbnRlcmZh
Y2UgZmlsZXMuCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
VVJMUGFyc2VyLmNwcAkocmV2aXNpb24gMjA4MTYwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjks
MjAyIEBAIHN0YXRpYyB2b2lkIGNoZWNrVVJMKGNvbnN0IFN0cmluZyYgdXJsU3QKICAgICB9CiB9
CiAKK3N0YXRpYyB2b2lkIGNoZWNrUmVsYXRpdmVVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0cmluZywgY29uc3QgRXhwZWN0ZWRQYXJ0cyYgcGFydHMs
IFRlc3RUYWJzIHRlc3RUYWJzID0gVGVzdFRhYnM6OlllcykKK3sKKyAgICBib29sIHdhc0VuYWJs
ZWQgPSBVUkxQYXJzZXI6OmVuYWJsZWQoKTsKKyAgICBVUkxQYXJzZXI6OnNldEVuYWJsZWQodHJ1
ZSk7CisgICAgYXV0byB1cmwgPSBVUkwoVVJMKFVSTCgpLCBiYXNlVVJMU3RyaW5nKSwgdXJsU3Ry
aW5nKTsKKyAgICBVUkxQYXJzZXI6OnNldEVuYWJsZWQoZmFsc2UpOworICAgIGF1dG8gb2xkVVJM
ID0gVVJMKFVSTChVUkwoKSwgYmFzZVVSTFN0cmluZyksIHVybFN0cmluZyk7CisgICAgVVJMUGFy
c2VyOjpzZXRFbmFibGVkKHdhc0VuYWJsZWQpOworICAgIAorICAgIEVYUEVDVF9UUlVFKGVxKHBh
cnRzLnByb3RvY29sLCB1cmwucHJvdG9jb2woKS50b1N0cmluZygpKSk7CisgICAgRVhQRUNUX1RS
VUUoZXEocGFydHMudXNlciwgdXJsLnVzZXIoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRz
LnBhc3N3b3JkLCB1cmwucGFzcygpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMuaG9zdCwg
dXJsLmhvc3QoKSkpOworICAgIEVYUEVDVF9FUShwYXJ0cy5wb3J0LCB1cmwucG9ydCgpLnZhbHVl
T3IoMCkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhdGgsIHVybC5wYXRoKCkpKTsKKyAg
ICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5xdWVyeSwgdXJsLnF1ZXJ5KCkpKTsKKyAgICBFWFBFQ1Rf
VFJVRShlcShwYXJ0cy5mcmFnbWVudCwgdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKSk7CisgICAg
RVhQRUNUX1RSVUUoZXEocGFydHMuc3RyaW5nLCB1cmwuc3RyaW5nKCkpKTsKKyAgICAKKyAgICBF
WFBFQ1RfVFJVRShlcShwYXJ0cy5wcm90b2NvbCwgb2xkVVJMLnByb3RvY29sKCkudG9TdHJpbmco
KSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnVzZXIsIG9sZFVSTC51c2VyKCkpKTsKKyAg
ICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5wYXNzd29yZCwgb2xkVVJMLnBhc3MoKSkpOworICAgIEVY
UEVDVF9UUlVFKGVxKHBhcnRzLmhvc3QsIG9sZFVSTC5ob3N0KCkpKTsKKyAgICBFWFBFQ1RfRVEo
cGFydHMucG9ydCwgb2xkVVJMLnBvcnQoKS52YWx1ZU9yKDApKTsKKyAgICBFWFBFQ1RfVFJVRShl
cShwYXJ0cy5wYXRoLCBvbGRVUkwucGF0aCgpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMu
cXVlcnksIG9sZFVSTC5xdWVyeSgpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMuZnJhZ21l
bnQsIG9sZFVSTC5mcmFnbWVudElkZW50aWZpZXIoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBh
cnRzLnN0cmluZywgb2xkVVJMLnN0cmluZygpKSk7CisgICAgCisgICAgRVhQRUNUX1RSVUUoVVJM
UGFyc2VyOjphbGxWYWx1ZXNFcXVhbCh1cmwsIG9sZFVSTCkpOworICAgIEVYUEVDVF9UUlVFKFVS
TFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KHVybCkpOworICAgIEVYUEVDVF9UUlVF
KFVSTFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KG9sZFVSTCkpOworICAgIAorICAg
IGlmICh0ZXN0VGFicyA9PSBUZXN0VGFiczo6Tm8pCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVybFN0cmluZy5sZW5ndGgoKTsgKytpKSB7CisgICAg
ICAgIFN0cmluZyB1cmxTdHJpbmdXaXRoVGFiID0gaW5zZXJ0VGFiQXRMb2NhdGlvbih1cmxTdHJp
bmcsIGkpOworICAgICAgICBjaGVja1JlbGF0aXZlVVJMKHVybFN0cmluZ1dpdGhUYWIsCisgICAg
ICAgICAgICBiYXNlVVJMU3RyaW5nLAorICAgICAgICAgICAgcGFydHMuaXNJbnZhbGlkKCkgPyBp
bnZhbGlkUGFydHModXJsU3RyaW5nV2l0aFRhYikgOiBwYXJ0cywKKyAgICAgICAgICAgIFRlc3RU
YWJzOjpObyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBjaGVja1VSTERpZmZlcmVuY2VzKGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBFeHBlY3RlZFBhcnRzJiBwYXJ0c05ldywgY29u
c3QgRXhwZWN0ZWRQYXJ0cyYgcGFydHNPbGQsIFRlc3RUYWJzIHRlc3RUYWJzID0gVGVzdFRhYnM6
OlllcykKK3sKKyAgICBib29sIHdhc0VuYWJsZWQgPSBVUkxQYXJzZXI6OmVuYWJsZWQoKTsKKyAg
ICBVUkxQYXJzZXI6OnNldEVuYWJsZWQodHJ1ZSk7CisgICAgYXV0byB1cmwgPSBVUkwoVVJMKCks
IHVybFN0cmluZyk7CisgICAgVVJMUGFyc2VyOjpzZXRFbmFibGVkKGZhbHNlKTsKKyAgICBhdXRv
IG9sZFVSTCA9IFVSTChVUkwoKSwgdXJsU3RyaW5nKTsKKyAgICBVUkxQYXJzZXI6OnNldEVuYWJs
ZWQod2FzRW5hYmxlZCk7CisgICAgCisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcucHJvdG9j
b2wsIHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0
c05ldy51c2VyLCB1cmwudXNlcigpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcucGFz
c3dvcmQsIHVybC5wYXNzKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy5ob3N0LCB1
cmwuaG9zdCgpKSk7CisgICAgRVhQRUNUX0VRKHBhcnRzTmV3LnBvcnQsIHVybC5wb3J0KCkudmFs
dWVPcigwKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcucGF0aCwgdXJsLnBhdGgoKSkp
OworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LnF1ZXJ5LCB1cmwucXVlcnkoKSkpOworICAg
IEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LmZyYWdtZW50LCB1cmwuZnJhZ21lbnRJZGVudGlmaWVy
KCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy5zdHJpbmcsIHVybC5zdHJpbmcoKSkp
OworICAgIAorICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnByb3RvY29sLCBvbGRVUkwucHJv
dG9jb2woKS50b1N0cmluZygpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNPbGQudXNlciwg
b2xkVVJMLnVzZXIoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnBhc3N3b3JkLCBv
bGRVUkwucGFzcygpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNPbGQuaG9zdCwgb2xkVVJM
Lmhvc3QoKSkpOworICAgIEVYUEVDVF9FUShwYXJ0c09sZC5wb3J0LCBvbGRVUkwucG9ydCgpLnZh
bHVlT3IoMCkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnBhdGgsIG9sZFVSTC5wYXRo
KCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5xdWVyeSwgb2xkVVJMLnF1ZXJ5KCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5mcmFnbWVudCwgb2xkVVJMLmZyYWdtZW50
SWRlbnRpZmllcigpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNPbGQuc3RyaW5nLCBvbGRV
Ukwuc3RyaW5nKCkpKTsKKyAgICAKKyAgICBFWFBFQ1RfRkFMU0UoVVJMUGFyc2VyOjphbGxWYWx1
ZXNFcXVhbCh1cmwsIG9sZFVSTCkpOworICAgIEVYUEVDVF9UUlVFKFVSTFBhcnNlcjo6aW50ZXJu
YWxWYWx1ZXNDb25zaXN0ZW50KHVybCkpOworICAgIEVYUEVDVF9UUlVFKFVSTFBhcnNlcjo6aW50
ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KG9sZFVSTCkpOworICAgIAorICAgIGlmICh0ZXN0VGFicyA9
PSBUZXN0VGFiczo6Tm8pCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHVybFN0cmluZy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIFN0cmluZyB1cmxT
dHJpbmdXaXRoVGFiID0gaW5zZXJ0VGFiQXRMb2NhdGlvbih1cmxTdHJpbmcsIGkpOworICAgICAg
ICBjaGVja1VSTERpZmZlcmVuY2VzKHVybFN0cmluZ1dpdGhUYWIsCisgICAgICAgICAgICBwYXJ0
c05ldy5pc0ludmFsaWQoKSA/IGludmFsaWRQYXJ0cyh1cmxTdHJpbmdXaXRoVGFiKSA6IHBhcnRz
TmV3LAorICAgICAgICAgICAgcGFydHNPbGQuaXNJbnZhbGlkKCkgPyBpbnZhbGlkUGFydHModXJs
U3RyaW5nV2l0aFRhYikgOiBwYXJ0c09sZCwKKyAgICAgICAgICAgIFRlc3RUYWJzOjpObyk7Cisg
ICAgfQorfQorCitzdGF0aWMgdm9pZCBjaGVja1JlbGF0aXZlVVJMRGlmZmVyZW5jZXMoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0cmluZywgY29uc3QgRXhw
ZWN0ZWRQYXJ0cyYgcGFydHNOZXcsIGNvbnN0IEV4cGVjdGVkUGFydHMmIHBhcnRzT2xkLCBUZXN0
VGFicyB0ZXN0VGFicyA9IFRlc3RUYWJzOjpZZXMpCit7CisgICAgYm9vbCB3YXNFbmFibGVkID0g
VVJMUGFyc2VyOjplbmFibGVkKCk7CisgICAgVVJMUGFyc2VyOjpzZXRFbmFibGVkKHRydWUpOwor
ICAgIGF1dG8gdXJsID0gVVJMKFVSTChVUkwoKSwgYmFzZVVSTFN0cmluZyksIHVybFN0cmluZyk7
CisgICAgVVJMUGFyc2VyOjpzZXRFbmFibGVkKGZhbHNlKTsKKyAgICBhdXRvIG9sZFVSTCA9IFVS
TChVUkwoVVJMKCksIGJhc2VVUkxTdHJpbmcpLCB1cmxTdHJpbmcpOworICAgIFVSTFBhcnNlcjo6
c2V0RW5hYmxlZCh3YXNFbmFibGVkKTsKKyAgICAKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05l
dy5wcm90b2NvbCwgdXJsLnByb3RvY29sKCkudG9TdHJpbmcoKSkpOworICAgIEVYUEVDVF9UUlVF
KGVxKHBhcnRzTmV3LnVzZXIsIHVybC51c2VyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0
c05ldy5wYXNzd29yZCwgdXJsLnBhc3MoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3
Lmhvc3QsIHVybC5ob3N0KCkpKTsKKyAgICBFWFBFQ1RfRVEocGFydHNOZXcucG9ydCwgdXJsLnBv
cnQoKS52YWx1ZU9yKDApKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy5wYXRoLCB1cmwu
cGF0aCgpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcucXVlcnksIHVybC5xdWVyeSgp
KSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcuZnJhZ21lbnQsIHVybC5mcmFnbWVudElk
ZW50aWZpZXIoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LnN0cmluZywgdXJsLnN0
cmluZygpKSk7CisgICAgCisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNPbGQucHJvdG9jb2wsIG9s
ZFVSTC5wcm90b2NvbCgpLnRvU3RyaW5nKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09s
ZC51c2VyLCBvbGRVUkwudXNlcigpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNPbGQucGFz
c3dvcmQsIG9sZFVSTC5wYXNzKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5ob3N0
LCBvbGRVUkwuaG9zdCgpKSk7CisgICAgRVhQRUNUX0VRKHBhcnRzT2xkLnBvcnQsIG9sZFVSTC5w
b3J0KCkudmFsdWVPcigwKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHNPbGQucGF0aCwgb2xk
VVJMLnBhdGgoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnF1ZXJ5LCBvbGRVUkwu
cXVlcnkoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLmZyYWdtZW50LCBvbGRVUkwu
ZnJhZ21lbnRJZGVudGlmaWVyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5zdHJp
bmcsIG9sZFVSTC5zdHJpbmcoKSkpOworICAgIAorICAgIEVYUEVDVF9GQUxTRShVUkxQYXJzZXI6
OmFsbFZhbHVlc0VxdWFsKHVybCwgb2xkVVJMKSk7CisgICAgRVhQRUNUX1RSVUUoVVJMUGFyc2Vy
OjppbnRlcm5hbFZhbHVlc0NvbnNpc3RlbnQodXJsKSk7CisgICAgRVhQRUNUX1RSVUUoVVJMUGFy
c2VyOjppbnRlcm5hbFZhbHVlc0NvbnNpc3RlbnQob2xkVVJMKSk7CisgICAgCisgICAgaWYgKHRl
c3RUYWJzID09IFRlc3RUYWJzOjpObykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgdXJsU3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgU3Ry
aW5nIHVybFN0cmluZ1dpdGhUYWIgPSBpbnNlcnRUYWJBdExvY2F0aW9uKHVybFN0cmluZywgaSk7
CisgICAgICAgIGNoZWNrUmVsYXRpdmVVUkxEaWZmZXJlbmNlcyh1cmxTdHJpbmdXaXRoVGFiLCBi
YXNlVVJMU3RyaW5nLAorICAgICAgICAgICAgcGFydHNOZXcuaXNJbnZhbGlkKCkgPyBpbnZhbGlk
UGFydHModXJsU3RyaW5nV2l0aFRhYikgOiBwYXJ0c05ldywKKyAgICAgICAgICAgIHBhcnRzT2xk
LmlzSW52YWxpZCgpID8gaW52YWxpZFBhcnRzKHVybFN0cmluZ1dpdGhUYWIpIDogcGFydHNPbGQs
CisgICAgICAgICAgICBUZXN0VGFiczo6Tm8pOworICAgIH0KK30KKworc3RhdGljIHZvaWQgc2hv
dWxkRmFpbChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3sKKyAgICBjaGVja1VSTCh1cmxTdHJp
bmcsIHsiIiwgIiIsICIiLCAiIiwgMCwgIiIsICIiLCAiIiwgdXJsU3RyaW5nfSk7Cit9CisKK3N0
YXRpYyB2b2lkIHNob3VsZEZhaWwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgYmFzZVN0cmluZykKK3sKKyAgICBjaGVja1JlbGF0aXZlVVJMKHVybFN0cmluZywgYmFzZVN0
cmluZywgeyIiLCAiIiwgIiIsICIiLCAwLCAiIiwgIiIsICIiLCB1cmxTdHJpbmd9KTsKK30KKwor
c3RhdGljIHZvaWQgY2hlY2tVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFRleHRF
bmNvZGluZyYgZW5jb2RpbmcsIGNvbnN0IEV4cGVjdGVkUGFydHMmIHBhcnRzLCBUZXN0VGFicyB0
ZXN0VGFicyA9IFRlc3RUYWJzOjpZZXMpCit7CisgICAgVVJMUGFyc2VyIHBhcnNlcih1cmxTdHJp
bmcsIHsgfSwgZW5jb2RpbmcpOworICAgIGF1dG8gdXJsID0gcGFyc2VyLnJlc3VsdCgpOworICAg
IEVYUEVDVF9UUlVFKGVxKHBhcnRzLnByb3RvY29sLCB1cmwucHJvdG9jb2woKS50b1N0cmluZygp
KSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMudXNlciwgdXJsLnVzZXIoKSkpOworICAgIEVY
UEVDVF9UUlVFKGVxKHBhcnRzLnBhc3N3b3JkLCB1cmwucGFzcygpKSk7CisgICAgRVhQRUNUX1RS
VUUoZXEocGFydHMuaG9zdCwgdXJsLmhvc3QoKSkpOworICAgIEVYUEVDVF9FUShwYXJ0cy5wb3J0
LCB1cmwucG9ydCgpLnZhbHVlT3IoMCkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhdGgs
IHVybC5wYXRoKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5xdWVyeSwgdXJsLnF1ZXJ5
KCkpKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5mcmFnbWVudCwgdXJsLmZyYWdtZW50SWRl
bnRpZmllcigpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMuc3RyaW5nLCB1cmwuc3RyaW5n
KCkpKTsKKyAgICAKKyAgICBpZiAodGVzdFRhYnMgPT0gVGVzdFRhYnM6Ok5vKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1cmxTdHJpbmcubGVuZ3Ro
KCk7ICsraSkgeworICAgICAgICBTdHJpbmcgdXJsU3RyaW5nV2l0aFRhYiA9IGluc2VydFRhYkF0
TG9jYXRpb24odXJsU3RyaW5nLCBpKTsKKyAgICAgICAgY2hlY2tVUkwodXJsU3RyaW5nV2l0aFRh
YiwgZW5jb2RpbmcsCisgICAgICAgICAgICBwYXJ0cy5pc0ludmFsaWQoKSA/IGludmFsaWRQYXJ0
cyh1cmxTdHJpbmdXaXRoVGFiKSA6IHBhcnRzLAorICAgICAgICAgICAgVGVzdFRhYnM6Ok5vKTsK
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGNoZWNrVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGJhc2VVUkxTdHJpbmcsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2Rp
bmcsIGNvbnN0IEV4cGVjdGVkUGFydHMmIHBhcnRzLCBUZXN0VGFicyB0ZXN0VGFicyA9IFRlc3RU
YWJzOjpZZXMpCit7CisgICAgVVJMUGFyc2VyIGJhc2VQYXJzZXIoYmFzZVVSTFN0cmluZywgeyB9
LCBlbmNvZGluZyk7CisgICAgVVJMUGFyc2VyIHBhcnNlcih1cmxTdHJpbmcsIGJhc2VQYXJzZXIu
cmVzdWx0KCksIGVuY29kaW5nKTsKKyAgICBhdXRvIHVybCA9IHBhcnNlci5yZXN1bHQoKTsKKyAg
ICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5wcm90b2NvbCwgdXJsLnByb3RvY29sKCkudG9TdHJpbmco
KSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnVzZXIsIHVybC51c2VyKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShlcShwYXJ0cy5wYXNzd29yZCwgdXJsLnBhc3MoKSkpOworICAgIEVYUEVDVF9U
UlVFKGVxKHBhcnRzLmhvc3QsIHVybC5ob3N0KCkpKTsKKyAgICBFWFBFQ1RfRVEocGFydHMucG9y
dCwgdXJsLnBvcnQoKS52YWx1ZU9yKDApKTsKKyAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5wYXRo
LCB1cmwucGF0aCgpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMucXVlcnksIHVybC5xdWVy
eSgpKSk7CisgICAgRVhQRUNUX1RSVUUoZXEocGFydHMuZnJhZ21lbnQsIHVybC5mcmFnbWVudElk
ZW50aWZpZXIoKSkpOworICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnN0cmluZywgdXJsLnN0cmlu
ZygpKSk7CisgICAgCisgICAgaWYgKHRlc3RUYWJzID09IFRlc3RUYWJzOjpObykKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXJsU3RyaW5nLmxlbmd0
aCgpOyArK2kpIHsKKyAgICAgICAgU3RyaW5nIHVybFN0cmluZ1dpdGhUYWIgPSBpbnNlcnRUYWJB
dExvY2F0aW9uKHVybFN0cmluZywgaSk7CisgICAgICAgIGNoZWNrVVJMKHVybFN0cmluZ1dpdGhU
YWIsIGJhc2VVUkxTdHJpbmcsIGVuY29kaW5nLAorICAgICAgICAgICAgcGFydHMuaXNJbnZhbGlk
KCkgPyBpbnZhbGlkUGFydHModXJsU3RyaW5nV2l0aFRhYikgOiBwYXJ0cywKKyAgICAgICAgICAg
IFRlc3RUYWJzOjpObyk7CisgICAgfQorfQorCiB0ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPgogc3Rh
dGljIFN0cmluZyB1dGYxNlN0cmluZyhjb25zdCBjaGFyMTZfdCAoJnVybClbbGVuZ3RoXSkKIHsK
QEAgLTM0MSw1MSArNTM3LDYgQEAgVEVTVF9GKFVSTFBhcnNlclRlc3QsIEJhc2ljKQogICAgIGNo
ZWNrVVJMKCJodHRwOi8vOkBob3N0IiwgeyJodHRwIiwgIiIsICIiLCAiaG9zdCIsIDAsICIvIiwg
IiIsICIiLCAiaHR0cDovL2hvc3QvIn0pOwogfQogCi1zdGF0aWMgdm9pZCBjaGVja1JlbGF0aXZl
VVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkxTdHJpbmcs
IGNvbnN0IEV4cGVjdGVkUGFydHMmIHBhcnRzLCBUZXN0VGFicyB0ZXN0VGFicyA9IFRlc3RUYWJz
OjpZZXMpCi17Ci0gICAgYm9vbCB3YXNFbmFibGVkID0gVVJMUGFyc2VyOjplbmFibGVkKCk7Ci0g
ICAgVVJMUGFyc2VyOjpzZXRFbmFibGVkKHRydWUpOwotICAgIGF1dG8gdXJsID0gVVJMKFVSTChV
UkwoKSwgYmFzZVVSTFN0cmluZyksIHVybFN0cmluZyk7Ci0gICAgVVJMUGFyc2VyOjpzZXRFbmFi
bGVkKGZhbHNlKTsKLSAgICBhdXRvIG9sZFVSTCA9IFVSTChVUkwoVVJMKCksIGJhc2VVUkxTdHJp
bmcpLCB1cmxTdHJpbmcpOwotICAgIFVSTFBhcnNlcjo6c2V0RW5hYmxlZCh3YXNFbmFibGVkKTsK
LQotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnByb3RvY29sLCB1cmwucHJvdG9jb2woKS50b1N0
cmluZygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHMudXNlciwgdXJsLnVzZXIoKSkpOwot
ICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhc3N3b3JkLCB1cmwucGFzcygpKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoZXEocGFydHMuaG9zdCwgdXJsLmhvc3QoKSkpOwotICAgIEVYUEVDVF9FUShwYXJ0
cy5wb3J0LCB1cmwucG9ydCgpLnZhbHVlT3IoMCkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRz
LnBhdGgsIHVybC5wYXRoKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5xdWVyeSwgdXJs
LnF1ZXJ5KCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5mcmFnbWVudCwgdXJsLmZyYWdt
ZW50SWRlbnRpZmllcigpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHMuc3RyaW5nLCB1cmwu
c3RyaW5nKCkpKTsKLQotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnByb3RvY29sLCBvbGRVUkwu
cHJvdG9jb2woKS50b1N0cmluZygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHMudXNlciwg
b2xkVVJMLnVzZXIoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhc3N3b3JkLCBvbGRV
UkwucGFzcygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHMuaG9zdCwgb2xkVVJMLmhvc3Qo
KSkpOwotICAgIEVYUEVDVF9FUShwYXJ0cy5wb3J0LCBvbGRVUkwucG9ydCgpLnZhbHVlT3IoMCkp
OwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhdGgsIG9sZFVSTC5wYXRoKCkpKTsKLSAgICBF
WFBFQ1RfVFJVRShlcShwYXJ0cy5xdWVyeSwgb2xkVVJMLnF1ZXJ5KCkpKTsKLSAgICBFWFBFQ1Rf
VFJVRShlcShwYXJ0cy5mcmFnbWVudCwgb2xkVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoZXEocGFydHMuc3RyaW5nLCBvbGRVUkwuc3RyaW5nKCkpKTsKLQotICAg
IEVYUEVDVF9UUlVFKFVSTFBhcnNlcjo6YWxsVmFsdWVzRXF1YWwodXJsLCBvbGRVUkwpKTsKLSAg
ICBFWFBFQ1RfVFJVRShVUkxQYXJzZXI6OmludGVybmFsVmFsdWVzQ29uc2lzdGVudCh1cmwpKTsK
LSAgICBFWFBFQ1RfVFJVRShVUkxQYXJzZXI6OmludGVybmFsVmFsdWVzQ29uc2lzdGVudChvbGRV
UkwpKTsKLSAgICAKLSAgICBpZiAodGVzdFRhYnMgPT0gVGVzdFRhYnM6Ok5vKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVybFN0cmluZy5sZW5ndGgoKTsg
KytpKSB7Ci0gICAgICAgIFN0cmluZyB1cmxTdHJpbmdXaXRoVGFiID0gaW5zZXJ0VGFiQXRMb2Nh
dGlvbih1cmxTdHJpbmcsIGkpOwotICAgICAgICBjaGVja1JlbGF0aXZlVVJMKHVybFN0cmluZ1dp
dGhUYWIsCi0gICAgICAgICAgICBiYXNlVVJMU3RyaW5nLAotICAgICAgICAgICAgcGFydHMuaXNJ
bnZhbGlkKCkgPyBpbnZhbGlkUGFydHModXJsU3RyaW5nV2l0aFRhYikgOiBwYXJ0cywKLSAgICAg
ICAgICAgIFRlc3RUYWJzOjpObyk7Ci0gICAgfQotfQotCiBURVNUX0YoVVJMUGFyc2VyVGVzdCwg
UGFyc2VSZWxhdGl2ZSkKIHsKICAgICBjaGVja1JlbGF0aXZlVVJMKCIvaW5kZXguaHRtbCIsICJo
dHRwOi8vd2Via2l0Lm9yZy9wYXRoMS9wYXRoMi8iLCB7Imh0dHAiLCAiIiwgIiIsICJ3ZWJraXQu
b3JnIiwgMCwgIi9pbmRleC5odG1sIiwgIiIsICIiLCAiaHR0cDovL3dlYmtpdC5vcmcvaW5kZXgu
aHRtbCJ9KTsKQEAgLTM5NSw3ICs1NDYsOSBAQCBURVNUX0YoVVJMUGFyc2VyVGVzdCwgUGFyc2VS
ZWxhdGl2ZSkKICAgICBjaGVja1JlbGF0aXZlVVJMKCJodHRwOi8vZXhhbXBsZVx0Llxub3JnIiwg
Imh0dHA6Ly9leGFtcGxlLm9yZy9mb28vYmFyIiwgeyJodHRwIiwgIiIsICIiLCAiZXhhbXBsZS5v
cmciLCAwLCAiLyIsICIiLCAiIiwgImh0dHA6Ly9leGFtcGxlLm9yZy8ifSk7CiAgICAgY2hlY2tS
ZWxhdGl2ZVVSTCgidGVzdCIsICJmaWxlOi8vL3BhdGgxL3BhdGgyIiwgeyJmaWxlIiwgIiIsICIi
LCAiIiwgMCwgIi9wYXRoMS90ZXN0IiwgIiIsICIiLCAiZmlsZTovLy9wYXRoMS90ZXN0In0pOwog
ICAgIGNoZWNrUmVsYXRpdmVVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vd3d3LmZvb+OAgmJhci5j
b20iKSwgImh0dHA6Ly9vdGhlci5jb20vIiwgeyJodHRwIiwgIiIsICIiLCAid3d3LmZvby5iYXIu
Y29tIiwgMCwgIi8iLCAiIiwgIiIsICJodHRwOi8vd3d3LmZvby5iYXIuY29tLyJ9KTsKLSAgICBj
aGVja1JlbGF0aXZlVVJMKHV0ZjE2U3RyaW5nKHUic2M6Ly/DsS50ZXN0LyIpLCAiYWJvdXQ6Ymxh
bmsiLCB7InNjIiwgIiIsICIiLCAieG4tLWlkYS50ZXN0IiwgMCwgIi8iLCAiIiwgIiIsICJzYzov
L3huLS1pZGEudGVzdC8ifSk7CisgICAgY2hlY2tSZWxhdGl2ZVVSTERpZmZlcmVuY2VzKHV0ZjE2
U3RyaW5nKHUic2M6Ly/DsS50ZXN0LyIpLCAiYWJvdXQ6YmxhbmsiLAorICAgICAgICB7InNjIiwg
IiIsICIiLCAiJUMzJUIxLnRlc3QiLCAwLCAiLyIsICIiLCAiIiwgInNjOi8vJUMzJUIxLnRlc3Qv
In0sCisgICAgICAgIHsic2MiLCAiIiwgIiIsICJ4bi0taWRhLnRlc3QiLCAwLCAiLyIsICIiLCAi
IiwgInNjOi8veG4tLWlkYS50ZXN0LyJ9KTsKICAgICBjaGVja1JlbGF0aXZlVVJMKCIjZnJhZ21l
bnQiLCAiaHR0cDovL2hvc3QvcGF0aCIsIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAwLCAiL3Bh
dGgiLCAiIiwgImZyYWdtZW50IiwgImh0dHA6Ly9ob3N0L3BhdGgjZnJhZ21lbnQifSk7CiAgICAg
Y2hlY2tSZWxhdGl2ZVVSTCgiI2ZyYWdtZW50IiwgImZpbGU6Ly8vcGF0aCIsIHsiZmlsZSIsICIi
LCAiIiwgIiIsIDAsICIvcGF0aCIsICIiLCAiZnJhZ21lbnQiLCAiZmlsZTovLy9wYXRoI2ZyYWdt
ZW50In0pOwogICAgIGNoZWNrUmVsYXRpdmVVUkwoIiNmcmFnbWVudCIsICJmaWxlOi8vL3BhdGgj
b2xkIiwgeyJmaWxlIiwgIiIsICIiLCAiIiwgMCwgIi9wYXRoIiwgIiIsICJmcmFnbWVudCIsICJm
aWxlOi8vL3BhdGgjZnJhZ21lbnQifSk7CkBAIC00NjcsOTYgKzYyMCw2IEBAIFRFU1RfRihVUkxQ
YXJzZXJUZXN0LCBQYXJzZVJlbGF0aXZlKQogICAgIGNoZWNrUmVsYXRpdmVVUkwoImh0dHA6XFxc
XGhvc3RcXGZvbyIsICJhYm91dDpibGFuayIsIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAwLCAi
L2ZvbyIsICIiLCAiIiwgImh0dHA6Ly9ob3N0L2ZvbyJ9KTsKIH0KIAotc3RhdGljIHZvaWQgY2hl
Y2tVUkxEaWZmZXJlbmNlcyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgRXhwZWN0ZWRQ
YXJ0cyYgcGFydHNOZXcsIGNvbnN0IEV4cGVjdGVkUGFydHMmIHBhcnRzT2xkLCBUZXN0VGFicyB0
ZXN0VGFicyA9IFRlc3RUYWJzOjpZZXMpCi17Ci0gICAgYm9vbCB3YXNFbmFibGVkID0gVVJMUGFy
c2VyOjplbmFibGVkKCk7Ci0gICAgVVJMUGFyc2VyOjpzZXRFbmFibGVkKHRydWUpOwotICAgIGF1
dG8gdXJsID0gVVJMKFVSTCgpLCB1cmxTdHJpbmcpOwotICAgIFVSTFBhcnNlcjo6c2V0RW5hYmxl
ZChmYWxzZSk7Ci0gICAgYXV0byBvbGRVUkwgPSBVUkwoVVJMKCksIHVybFN0cmluZyk7Ci0gICAg
VVJMUGFyc2VyOjpzZXRFbmFibGVkKHdhc0VuYWJsZWQpOwotCi0gICAgRVhQRUNUX1RSVUUoZXEo
cGFydHNOZXcucHJvdG9jb2wsIHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkpKTsKLSAgICBFWFBF
Q1RfVFJVRShlcShwYXJ0c05ldy51c2VyLCB1cmwudXNlcigpKSk7Ci0gICAgRVhQRUNUX1RSVUUo
ZXEocGFydHNOZXcucGFzc3dvcmQsIHVybC5wYXNzKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShw
YXJ0c05ldy5ob3N0LCB1cmwuaG9zdCgpKSk7Ci0gICAgRVhQRUNUX0VRKHBhcnRzTmV3LnBvcnQs
IHVybC5wb3J0KCkudmFsdWVPcigwKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcucGF0
aCwgdXJsLnBhdGgoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LnF1ZXJ5LCB1cmwu
cXVlcnkoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LmZyYWdtZW50LCB1cmwuZnJh
Z21lbnRJZGVudGlmaWVyKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy5zdHJpbmcs
IHVybC5zdHJpbmcoKSkpOwotICAgIAotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnByb3Rv
Y29sLCBvbGRVUkwucHJvdG9jb2woKS50b1N0cmluZygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEo
cGFydHNPbGQudXNlciwgb2xkVVJMLnVzZXIoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRz
T2xkLnBhc3N3b3JkLCBvbGRVUkwucGFzcygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHNP
bGQuaG9zdCwgb2xkVVJMLmhvc3QoKSkpOwotICAgIEVYUEVDVF9FUShwYXJ0c09sZC5wb3J0LCBv
bGRVUkwucG9ydCgpLnZhbHVlT3IoMCkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnBh
dGgsIG9sZFVSTC5wYXRoKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5xdWVyeSwg
b2xkVVJMLnF1ZXJ5KCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5mcmFnbWVudCwg
b2xkVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHNP
bGQuc3RyaW5nLCBvbGRVUkwuc3RyaW5nKCkpKTsKLSAgICAKLSAgICBFWFBFQ1RfRkFMU0UoVVJM
UGFyc2VyOjphbGxWYWx1ZXNFcXVhbCh1cmwsIG9sZFVSTCkpOwotICAgIEVYUEVDVF9UUlVFKFVS
TFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KHVybCkpOwotICAgIEVYUEVDVF9UUlVF
KFVSTFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KG9sZFVSTCkpOwotICAgIAotICAg
IGlmICh0ZXN0VGFicyA9PSBUZXN0VGFiczo6Tm8pCi0gICAgICAgIHJldHVybjsKLQotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgdXJsU3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAg
U3RyaW5nIHVybFN0cmluZ1dpdGhUYWIgPSBpbnNlcnRUYWJBdExvY2F0aW9uKHVybFN0cmluZywg
aSk7Ci0gICAgICAgIGNoZWNrVVJMRGlmZmVyZW5jZXModXJsU3RyaW5nV2l0aFRhYiwKLSAgICAg
ICAgICAgIHBhcnRzTmV3LmlzSW52YWxpZCgpID8gaW52YWxpZFBhcnRzKHVybFN0cmluZ1dpdGhU
YWIpIDogcGFydHNOZXcsCi0gICAgICAgICAgICBwYXJ0c09sZC5pc0ludmFsaWQoKSA/IGludmFs
aWRQYXJ0cyh1cmxTdHJpbmdXaXRoVGFiKSA6IHBhcnRzT2xkLAotICAgICAgICAgICAgVGVzdFRh
YnM6Ok5vKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIGNoZWNrUmVsYXRpdmVVUkxEaWZmZXJl
bmNlcyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMU3RyaW5n
LCBjb25zdCBFeHBlY3RlZFBhcnRzJiBwYXJ0c05ldywgY29uc3QgRXhwZWN0ZWRQYXJ0cyYgcGFy
dHNPbGQsIFRlc3RUYWJzIHRlc3RUYWJzID0gVGVzdFRhYnM6OlllcykKLXsKLSAgICBib29sIHdh
c0VuYWJsZWQgPSBVUkxQYXJzZXI6OmVuYWJsZWQoKTsKLSAgICBVUkxQYXJzZXI6OnNldEVuYWJs
ZWQodHJ1ZSk7Ci0gICAgYXV0byB1cmwgPSBVUkwoVVJMKFVSTCgpLCBiYXNlVVJMU3RyaW5nKSwg
dXJsU3RyaW5nKTsKLSAgICBVUkxQYXJzZXI6OnNldEVuYWJsZWQoZmFsc2UpOwotICAgIGF1dG8g
b2xkVVJMID0gVVJMKFVSTChVUkwoKSwgYmFzZVVSTFN0cmluZyksIHVybFN0cmluZyk7Ci0gICAg
VVJMUGFyc2VyOjpzZXRFbmFibGVkKHdhc0VuYWJsZWQpOwotCi0gICAgRVhQRUNUX1RSVUUoZXEo
cGFydHNOZXcucHJvdG9jb2wsIHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkpKTsKLSAgICBFWFBF
Q1RfVFJVRShlcShwYXJ0c05ldy51c2VyLCB1cmwudXNlcigpKSk7Ci0gICAgRVhQRUNUX1RSVUUo
ZXEocGFydHNOZXcucGFzc3dvcmQsIHVybC5wYXNzKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShw
YXJ0c05ldy5ob3N0LCB1cmwuaG9zdCgpKSk7Ci0gICAgRVhQRUNUX0VRKHBhcnRzTmV3LnBvcnQs
IHVybC5wb3J0KCkudmFsdWVPcigwKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHNOZXcucGF0
aCwgdXJsLnBhdGgoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LnF1ZXJ5LCB1cmwu
cXVlcnkoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LmZyYWdtZW50LCB1cmwuZnJh
Z21lbnRJZGVudGlmaWVyKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy5zdHJpbmcs
IHVybC5zdHJpbmcoKSkpOwotICAgIAotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnByb3Rv
Y29sLCBvbGRVUkwucHJvdG9jb2woKS50b1N0cmluZygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEo
cGFydHNPbGQudXNlciwgb2xkVVJMLnVzZXIoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRz
T2xkLnBhc3N3b3JkLCBvbGRVUkwucGFzcygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHNP
bGQuaG9zdCwgb2xkVVJMLmhvc3QoKSkpOwotICAgIEVYUEVDVF9FUShwYXJ0c09sZC5wb3J0LCBv
bGRVUkwucG9ydCgpLnZhbHVlT3IoMCkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzT2xkLnBh
dGgsIG9sZFVSTC5wYXRoKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5xdWVyeSwg
b2xkVVJMLnF1ZXJ5KCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c09sZC5mcmFnbWVudCwg
b2xkVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHNP
bGQuc3RyaW5nLCBvbGRVUkwuc3RyaW5nKCkpKTsKLSAgICAKLSAgICBFWFBFQ1RfRkFMU0UoVVJM
UGFyc2VyOjphbGxWYWx1ZXNFcXVhbCh1cmwsIG9sZFVSTCkpOwotICAgIEVYUEVDVF9UUlVFKFVS
TFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KHVybCkpOwotICAgIEVYUEVDVF9UUlVF
KFVSTFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KG9sZFVSTCkpOwotCi0gICAgaWYg
KHRlc3RUYWJzID09IFRlc3RUYWJzOjpObykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB1cmxTdHJpbmcubGVuZ3RoKCk7ICsraSkgewotICAgICAgICBTdHJp
bmcgdXJsU3RyaW5nV2l0aFRhYiA9IGluc2VydFRhYkF0TG9jYXRpb24odXJsU3RyaW5nLCBpKTsK
LSAgICAgICAgY2hlY2tSZWxhdGl2ZVVSTERpZmZlcmVuY2VzKHVybFN0cmluZ1dpdGhUYWIsIGJh
c2VVUkxTdHJpbmcsCi0gICAgICAgICAgICBwYXJ0c05ldy5pc0ludmFsaWQoKSA/IGludmFsaWRQ
YXJ0cyh1cmxTdHJpbmdXaXRoVGFiKSA6IHBhcnRzTmV3LAotICAgICAgICAgICAgcGFydHNPbGQu
aXNJbnZhbGlkKCkgPyBpbnZhbGlkUGFydHModXJsU3RyaW5nV2l0aFRhYikgOiBwYXJ0c09sZCwK
LSAgICAgICAgICAgIFRlc3RUYWJzOjpObyk7Ci0gICAgfQotfQotCiAvLyBUaGVzZSBhcmUgZGlm
ZmVyZW5jZXMgYmV0d2VlbiB0aGUgbmV3IFVSTFBhcnNlciBhbmQgdGhlIG9sZCBVUkw6OnBhcnNl
IHdoaWNoIG1ha2UgVVJMUGFyc2VyIG1vcmUgc3RhbmRhcmRzIGNvbXBsaWFudC4KIFRFU1RfRihV
UkxQYXJzZXJUZXN0LCBQYXJzZXJEaWZmZXJlbmNlcykKIHsKQEAgLTg5MiwxMyArOTU1LDExIEBA
IFRFU1RfRihVUkxQYXJzZXJUZXN0LCBQYXJzZXJEaWZmZXJlbmNlcykKICAgICAgICAgeyJodHRw
IiwgIiIsICIiLCAiZiIsIDEwLCAiL2MiLCAiIiwgIiIsICJodHRwOi8vZjoxMC9jIn0sCiAgICAg
ICAgIHsiaHR0cCIsICIiLCAiIiwgImYiLCAxMCwgIi9jIiwgIiIsICIiLCAiaHR0cDovL2Y6MDEw
L2MifSk7CiAgICAgY2hlY2tVUkwoIm5vdHNwZWNpYWw6Ly9Ib1N0IiwgeyJub3RzcGVjaWFsIiwg
IiIsICIiLCAiSG9TdCIsIDAsICIiLCAiIiwgIiIsICJub3RzcGVjaWFsOi8vSG9TdCJ9KTsKLSAg
ICBjaGVja1VSTERpZmZlcmVuY2VzKCJub3RzcGVjaWFsOi8vSCU2RlN0IiwKLSAgICAgICAgeyJu
b3RzcGVjaWFsIiwgIiIsICIiLCAiSG9TdCIsIDAsICIiLCAiIiwgIiIsICJub3RzcGVjaWFsOi8v
SG9TdCJ9LAotICAgICAgICB7Im5vdHNwZWNpYWwiLCAiIiwgIiIsICJIJTZGU3QiLCAwLCAiIiwg
IiIsICIiLCAibm90c3BlY2lhbDovL0glNkZTdCJ9KTsKLSAgICBjaGVja1VSTERpZmZlcmVuY2Vz
KCJub3RzcGVjaWFsOi8vSCU0ZlN0IiwKLSAgICAgICAgeyJub3RzcGVjaWFsIiwgIiIsICIiLCAi
SE9TdCIsIDAsICIiLCAiIiwgIiIsICJub3RzcGVjaWFsOi8vSE9TdCJ9LAotICAgICAgICB7Im5v
dHNwZWNpYWwiLCAiIiwgIiIsICJIJTRmU3QiLCAwLCAiIiwgIiIsICIiLCAibm90c3BlY2lhbDov
L0glNGZTdCJ9KTsKLSAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Im5vdHNwZWNpYWw6Ly9I8J+Y
jcOfdCIpLCB7Im5vdHNwZWNpYWwiLCAiIiwgIiIsICJ4bi0taHNzdC1xYzgzYyIsIDAsICIiLCAi
IiwgIiIsICJub3RzcGVjaWFsOi8veG4tLWhzc3QtcWM4M2MifSwgdGVzdFRhYnNWYWx1ZUZvclN1
cnJvZ2F0ZVBhaXJzKTsKKyAgICBjaGVja1VSTCgibm90c3BlY2lhbDovL0glNkZTdCIsIHsibm90
c3BlY2lhbCIsICIiLCAiIiwgIkglNkZTdCIsIDAsICIiLCAiIiwgIiIsICJub3RzcGVjaWFsOi8v
SCU2RlN0In0pOworICAgIGNoZWNrVVJMKCJub3RzcGVjaWFsOi8vSCU0ZlN0IiwgeyJub3RzcGVj
aWFsIiwgIiIsICIiLCAiSCU0ZlN0IiwgMCwgIiIsICIiLCAiIiwgIm5vdHNwZWNpYWw6Ly9IJTRm
U3QifSk7CisgICAgY2hlY2tVUkxEaWZmZXJlbmNlcyh1dGYxNlN0cmluZyh1Im5vdHNwZWNpYWw6
Ly9I8J+YjcOfdCIpLAorICAgICAgICB7Im5vdHNwZWNpYWwiLCAiIiwgIiIsICJIJUYwJTlGJTk4
JThEJUMzJTlGdCIsIDAsICIiLCAiIiwgIiIsICJub3RzcGVjaWFsOi8vSCVGMCU5RiU5OCU4RCVD
MyU5RnQifSwKKyAgICAgICAgeyJub3RzcGVjaWFsIiwgIiIsICIiLCAieG4tLWhzc3QtcWM4M2Mi
LCAwLCAiIiwgIiIsICIiLCAibm90c3BlY2lhbDovL3huLS1oc3N0LXFjODNjIn0sIHRlc3RUYWJz
VmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAgICAgY2hlY2tVUkxEaWZmZXJlbmNlcygiaHR0cDov
L1tmZmZmOmFhYWE6Y2NjYzplZWVlOmJiYmI6ZGRkZDoyNTUuMjU1LjI1NS4yNTVdLyIsCiAgICAg
ICAgIHsiaHR0cCIsICIiLCAiIiwgIltmZmZmOmFhYWE6Y2NjYzplZWVlOmJiYmI6ZGRkZDpmZmZm
OmZmZmZdIiwgMCwgIi8iLCAiIiwgIiIsICJodHRwOi8vW2ZmZmY6YWFhYTpjY2NjOmVlZWU6YmJi
YjpkZGRkOmZmZmY6ZmZmZl0vIn0sCiAgICAgICAgIHsiaHR0cCIsICIiLCAiIiwgIltmZmZmOmFh
YWE6Y2NjYzplZWVlOmJiYmI6ZGRkZDoyNTUuMjU1LjI1NS4yNTVdIiwgMCwgIi8iLCAiIiwgIiIs
ICJodHRwOi8vW2ZmZmY6YWFhYTpjY2NjOmVlZWU6YmJiYjpkZGRkOjI1NS4yNTUuMjU1LjI1NV0v
In0sIFRlc3RUYWJzOjpObyk7CkBAIC05ODEsNyArMTA0MiwzNyBAQCBURVNUX0YoVVJMUGFyc2Vy
VGVzdCwgUGFyc2VyRGlmZmVyZW5jZXMpCiAgICAgICAgIHsiaHR0cCIsICIiLCAiIiwgIlswOjA6
MDowOmE6YjpjOmRdIiwgMCwgIi8iLCAiIiwgIiIsICJodHRwOi8vWzA6MDowOjA6YTpiOmM6ZF0v
In0pOwogICAgIGNoZWNrVVJMRGlmZmVyZW5jZXMoImFzZGY6Ly9bMDowOjA6MDphOmI6YzpkXSIs
CiAgICAgICAgIHsiYXNkZiIsICIiLCAiIiwgIls6OmE6YjpjOmRdIiwgMCwgIiIsICIiLCAiIiwg
ImFzZGY6Ly9bOjphOmI6YzpkXSJ9LAotICAgICAgICB7ImFzZGYiLCAiIiwgIiIsICJbMDowOjA6
MDphOmI6YzpkXSIsIDAsICIiLCAiIiwgIiIsICJhc2RmOi8vWzA6MDowOjA6YTpiOmM6ZF0ifSk7
CisgICAgICAgIHsiYXNkZiIsICIiLCAiIiwgIlswOjA6MDowOmE6YjpjOmRdIiwgMCwgIiIsICIi
LCAiIiwgImFzZGY6Ly9bMDowOjA6MDphOmI6YzpkXSJ9LCBUZXN0VGFiczo6Tm8pOworICAgIHNo
b3VsZEZhaWwoImE6Ly8lOmEiKTsKKyAgICBjaGVja1VSTCgiYTovLyU6LyIsIHsiYSIsICIiLCAi
IiwgIiUiLCAwLCAiLyIsICIiLCAiIiwgImE6Ly8lLyJ9KTsKKyAgICBjaGVja1VSTCgiYTovLyU6
IiwgeyJhIiwgIiIsICIiLCAiJSIsIDAsICIiLCAiIiwgIiIsICJhOi8vJSJ9KTsKKyAgICBjaGVj
a1VSTCgiYTovLyU6MS8iLCB7ImEiLCAiIiwgIiIsICIlIiwgMSwgIi8iLCAiIiwgIiIsICJhOi8v
JToxLyJ9KTsKKyAgICBjaGVja1VSTERpZmZlcmVuY2VzKCJodHRwOi8vJToiLAorICAgICAgICB7
IiIsICIiLCAiIiwgIiIsIDAsICIiLCAiIiwgIiIsICJodHRwOi8vJToifSwKKyAgICAgICAgeyJo
dHRwIiwgIiIsICIiLCAiJSIsIDAsICIvIiwgIiIsICIiLCAiaHR0cDovLyUvIn0pOworICAgIGNo
ZWNrVVJMKCJhOi8vMTIzNDU2IiwgeyJhIiwgIiIsICIiLCAiMTIzNDU2IiwgMCwgIiIsICIiLCAi
IiwgImE6Ly8xMjM0NTYifSk7CisgICAgY2hlY2tVUkwoImE6Ly8xMjM0NTY6NyIsIHsiYSIsICIi
LCAiIiwgIjEyMzQ1NiIsIDcsICIiLCAiIiwgIiIsICJhOi8vMTIzNDU2OjcifSk7CisgICAgY2hl
Y2tVUkwoImE6Ly8xMjM0NTY6Ny8iLCB7ImEiLCAiIiwgIiIsICIxMjM0NTYiLCA3LCAiLyIsICIi
LCAiIiwgImE6Ly8xMjM0NTY6Ny8ifSk7CisgICAgY2hlY2tVUkwoImE6Ly9BIiwgeyJhIiwgIiIs
ICIiLCAiQSIsIDAsICIiLCAiIiwgIiIsICJhOi8vQSJ9KTsKKyAgICBjaGVja1VSTCgiYTovL0E6
MiIsIHsiYSIsICIiLCAiIiwgIkEiLCAyLCAiIiwgIiIsICIiLCAiYTovL0E6MiJ9KTsKKyAgICBj
aGVja1VSTCgiYTovL0E6Mi8iLCB7ImEiLCAiIiwgIiIsICJBIiwgMiwgIi8iLCAiIiwgIiIsICJh
Oi8vQToyLyJ9KTsKKyAgICBjaGVja1VSTERpZmZlcmVuY2VzKCJhc2Q6Ly/DnyIsCisgICAgICAg
IHsiYXNkIiwgIiIsICIiLCAiJUMzJTgzJUMyJTlGIiwgMCwgIiIsICIiLCAiIiwgImFzZDovLyVD
MyU4MyVDMiU5RiJ9LAorICAgICAgICB7IiIsICIiLCAiIiwgIiIsIDAsICIiLCAiIiwgIiIsICJh
Ym91dDpibGFuayJ9LCBUZXN0VGFiczo6Tm8pOworICAgIGNoZWNrVVJMRGlmZmVyZW5jZXMoImFz
ZDovL8OfOjQiLAorICAgICAgICB7ImFzZCIsICIiLCAiIiwgIiVDMyU4MyVDMiU5RiIsIDQsICIi
LCAiIiwgIiIsICJhc2Q6Ly8lQzMlODMlQzIlOUY6NCJ9LAorICAgICAgICB7IiIsICIiLCAiIiwg
IiIsIDAsICIiLCAiIiwgIiIsICJhYm91dDpibGFuayJ9LCBUZXN0VGFiczo6Tm8pOworICAgIGNo
ZWNrVVJMRGlmZmVyZW5jZXMoImFzZDovL8OfOjQvIiwKKyAgICAgICAgeyJhc2QiLCAiIiwgIiIs
ICIlQzMlODMlQzIlOUYiLCA0LCAiLyIsICIiLCAiIiwgImFzZDovLyVDMyU4MyVDMiU5Rjo0LyJ9
LAorICAgICAgICB7IiIsICIiLCAiIiwgIiIsIDAsICIiLCAiIiwgIiIsICJhYm91dDpibGFuayJ9
LCBUZXN0VGFiczo6Tm8pOworICAgIGNoZWNrVVJMRGlmZmVyZW5jZXMoImE6Ly9bQTo6Yl06NCIs
CisgICAgICAgIHsiYSIsICIiLCAiIiwgIlthOjpiXSIsIDQsICIiLCAiIiwgIiIsICJhOi8vW2E6
OmJdOjQifSwKKyAgICAgICAgeyJhIiwgIiIsICIiLCAiW0E6OmJdIiwgNCwgIiIsICIiLCAiIiwg
ImE6Ly9bQTo6Yl06NCJ9KTsKKyAgICBzaG91bGRGYWlsKCJodHRwOi8vW35dIik7CisgICAgc2hv
dWxkRmFpbCgiYTovL1t+XSIpOworICAgIGNoZWNrUmVsYXRpdmVVUkxEaWZmZXJlbmNlcygiYTov
L2IiLCAiLy9bYUJjXSIsCisgICAgICAgIHsiYSIsICIiLCAiIiwgImIiLCAwLCAiIiwgIiIsICIi
LCAiYTovL2IifSwKKyAgICAgICAgeyIiLCAiIiwgIiIsICIiLCAwLCAiIiwgIiIsICIiLCAiYTov
L2IifSk7CiB9CiAKIFRFU1RfRihVUkxQYXJzZXJUZXN0LCBEZWZhdWx0UG9ydCkKQEAgLTEwNzMs
MTYgKzExNjQsNiBAQCBURVNUX0YoVVJMUGFyc2VyVGVzdCwgRGVmYXVsdFBvcnQpCiAgICAgICAg
IHsiIiwgIiIsICIiLCAiIiwgMCwgIiIsICIiLCAiIiwgImZpbGU6Ly86MC9wYXRoIn0sCiAgICAg
ICAgIHsiZmlsZSIsICIiLCAiIiwgIiIsIDAsICIvcGF0aCIsICIiLCAiIiwgImZpbGU6Ly86MC9w
YXRoIn0pOwogfQotICAgIAotc3RhdGljIHZvaWQgc2hvdWxkRmFpbChjb25zdCBTdHJpbmcmIHVy
bFN0cmluZykKLXsKLSAgICBjaGVja1VSTCh1cmxTdHJpbmcsIHsiIiwgIiIsICIiLCAiIiwgMCwg
IiIsICIiLCAiIiwgdXJsU3RyaW5nfSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNob3VsZEZhaWwoY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVN0cmluZykKLXsKLSAgICBj
aGVja1JlbGF0aXZlVVJMKHVybFN0cmluZywgYmFzZVN0cmluZywgeyIiLCAiIiwgIiIsICIiLCAw
LCAiIiwgIiIsICIiLCB1cmxTdHJpbmd9KTsKLX0KIAogVEVTVF9GKFVSTFBhcnNlclRlc3QsIFBh
cnNlckZhaWx1cmVzKQogewpAQCAtMTEzNyw3ICsxMjE4LDkgQEAgVEVTVF9GKFVSTFBhcnNlclRl
c3QsIFBhcnNlckZhaWx1cmVzKQogICAgIHNob3VsZEZhaWwoImh0dHA6Ly9bYTpiOmM6ZDplOmY6
ZzpoOjEyNy4wLjAuMV0iKTsKICAgICBzaG91bGRGYWlsKCJodHRwOi8vW2E6YjpjOmQ6ZTpmOjEy
Ny4wLjAuMHgxMV0iKTsgLy8gQ2hyb21lIHRyZWF0cyB0aGlzIGFzIGhleCwgRmlyZWZveCBhbmQg
dGhlIHNwZWMgZmFpbAogICAgIHNob3VsZEZhaWwoImh0dHA6Ly9bYTpiOmM6ZDplOmY6MTI3LjAu
LTAuMV0iKTsKLSAgICBzaG91bGRGYWlsKCJhc2RmOi8vc3BhY2UgSW5Ib3N0Iik7CisgICAgY2hl
Y2tVUkxEaWZmZXJlbmNlcygiYXNkZjovL3NwYWNlIEluXGFIb3N0IiwKKyAgICAgICAgeyJhc2Rm
IiwgIiIsICIiLCAic3BhY2UgSW4lMDdIb3N0IiwgMCwgIiIsICIiLCAiIiwgImFzZGY6Ly9zcGFj
ZSBJbiUwN0hvc3QifSwKKyAgICAgICAgeyIiLCAiIiwgIiIsICIiLCAwLCAiIiwgIiIsICIiLCAi
YXNkZjovL3NwYWNlIEluXGFIb3N0In0pOwogICAgIHNob3VsZEZhaWwoImFzZGY6Ly9bMDowOjA6
MDphOmI6YzpkIik7CiB9CiAKQEAgLTExNzksNTcgKzEyNjIsNiBAQCBURVNUX0YoVVJMUGFyc2Vy
VGVzdCwgQWRkaXRpb25hbFRlc3RzKQogICAgIC8vIEZJWE1FOiBXcml0ZSBtb3JlIGludmFsaWQg
c3Vycm9nYXRlIHBhaXIgdGVzdHMgYmFzZWQgb24gZmVlZGJhY2sgZnJvbSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMTA1CiB9CiAKLXN0YXRpYyB2b2lkIGNoZWNr
VVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5n
LCBjb25zdCBFeHBlY3RlZFBhcnRzJiBwYXJ0cywgVGVzdFRhYnMgdGVzdFRhYnMgPSBUZXN0VGFi
czo6WWVzKQotewotICAgIFVSTFBhcnNlciBwYXJzZXIodXJsU3RyaW5nLCB7IH0sIGVuY29kaW5n
KTsKLSAgICBhdXRvIHVybCA9IHBhcnNlci5yZXN1bHQoKTsKLSAgICBFWFBFQ1RfVFJVRShlcShw
YXJ0cy5wcm90b2NvbCwgdXJsLnByb3RvY29sKCkudG9TdHJpbmcoKSkpOwotICAgIEVYUEVDVF9U
UlVFKGVxKHBhcnRzLnVzZXIsIHVybC51c2VyKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0
cy5wYXNzd29yZCwgdXJsLnBhc3MoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLmhvc3Qs
IHVybC5ob3N0KCkpKTsKLSAgICBFWFBFQ1RfRVEocGFydHMucG9ydCwgdXJsLnBvcnQoKS52YWx1
ZU9yKDApKTsKLSAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5wYXRoLCB1cmwucGF0aCgpKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoZXEocGFydHMucXVlcnksIHVybC5xdWVyeSgpKSk7Ci0gICAgRVhQRUNU
X1RSVUUoZXEocGFydHMuZnJhZ21lbnQsIHVybC5mcmFnbWVudElkZW50aWZpZXIoKSkpOwotICAg
IEVYUEVDVF9UUlVFKGVxKHBhcnRzLnN0cmluZywgdXJsLnN0cmluZygpKSk7Ci0KLSAgICBpZiAo
dGVzdFRhYnMgPT0gVGVzdFRhYnM6Ok5vKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHVybFN0cmluZy5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIFN0cmlu
ZyB1cmxTdHJpbmdXaXRoVGFiID0gaW5zZXJ0VGFiQXRMb2NhdGlvbih1cmxTdHJpbmcsIGkpOwot
ICAgICAgICBjaGVja1VSTCh1cmxTdHJpbmdXaXRoVGFiLCBlbmNvZGluZywKLSAgICAgICAgICAg
IHBhcnRzLmlzSW52YWxpZCgpID8gaW52YWxpZFBhcnRzKHVybFN0cmluZ1dpdGhUYWIpIDogcGFy
dHMsCi0gICAgICAgICAgICBUZXN0VGFiczo6Tm8pOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQg
Y2hlY2tVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0
cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZywgY29uc3QgRXhwZWN0ZWRQYXJ0cyYg
cGFydHMsIFRlc3RUYWJzIHRlc3RUYWJzID0gVGVzdFRhYnM6OlllcykKLXsKLSAgICBVUkxQYXJz
ZXIgYmFzZVBhcnNlcihiYXNlVVJMU3RyaW5nLCB7IH0sIGVuY29kaW5nKTsKLSAgICBVUkxQYXJz
ZXIgcGFyc2VyKHVybFN0cmluZywgYmFzZVBhcnNlci5yZXN1bHQoKSwgZW5jb2RpbmcpOwotICAg
IGF1dG8gdXJsID0gcGFyc2VyLnJlc3VsdCgpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBy
b3RvY29sLCB1cmwucHJvdG9jb2woKS50b1N0cmluZygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEo
cGFydHMudXNlciwgdXJsLnVzZXIoKSkpOwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhc3N3
b3JkLCB1cmwucGFzcygpKSk7Ci0gICAgRVhQRUNUX1RSVUUoZXEocGFydHMuaG9zdCwgdXJsLmhv
c3QoKSkpOwotICAgIEVYUEVDVF9FUShwYXJ0cy5wb3J0LCB1cmwucG9ydCgpLnZhbHVlT3IoMCkp
OwotICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzLnBhdGgsIHVybC5wYXRoKCkpKTsKLSAgICBFWFBF
Q1RfVFJVRShlcShwYXJ0cy5xdWVyeSwgdXJsLnF1ZXJ5KCkpKTsKLSAgICBFWFBFQ1RfVFJVRShl
cShwYXJ0cy5mcmFnbWVudCwgdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKSk7Ci0gICAgRVhQRUNU
X1RSVUUoZXEocGFydHMuc3RyaW5nLCB1cmwuc3RyaW5nKCkpKTsKLSAgICAKLSAgICBpZiAodGVz
dFRhYnMgPT0gVGVzdFRhYnM6Ok5vKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHVybFN0cmluZy5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIFN0cmluZyB1
cmxTdHJpbmdXaXRoVGFiID0gaW5zZXJ0VGFiQXRMb2NhdGlvbih1cmxTdHJpbmcsIGkpOwotICAg
ICAgICBjaGVja1VSTCh1cmxTdHJpbmdXaXRoVGFiLCBiYXNlVVJMU3RyaW5nLCBlbmNvZGluZywK
LSAgICAgICAgICAgIHBhcnRzLmlzSW52YWxpZCgpID8gaW52YWxpZFBhcnRzKHVybFN0cmluZ1dp
dGhUYWIpIDogcGFydHMsCi0gICAgICAgICAgICBUZXN0VGFiczo6Tm8pOwotICAgIH0KLX0KLQog
VEVTVF9GKFVSTFBhcnNlclRlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRm
MTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIFVURjhFbmNvZGluZygpLCB7
Imh0dHAiLCAiIiwgIiIsICJob3N0IiwgMCwgIi8iLCAiJUMzJTlGJUYwJTlGJTk4JThEIiwgIiVD
MyU5RiVGMCU5RiU5OCU4RCIsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5
RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQ
YWlycyk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDgxNjApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0xMS0wMSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFBlcmNlbnQtZW5j
b2RlIG5vbi1BU0NJSSBjb2RlIHBvaW50cyBpbiBob3N0cyBvZiBVUkxzIHdpdGggdW5yZWNvZ25p
emVkIHNjaGVtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDI5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC91cmwvaG9zdC1sb3dlcmNhc2UtcGVyLXNjaGVtZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC91cmwvc2FmYXJpLWV4dGVuc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmV0Y2gvY2xvc2luZy13aGlsZS1mZXRjaGluZy1ibG9iLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmZXRjaC9mZXRjaC11cmwtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQ6CisKIDIwMTYt
MTAtMzEgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogaU9TIFZv
aWNlb3ZlciBkb2VzIG5vdCBhbm5vdW5jZSBwcmV2aW91c2x5IHNlbGVjdGVkIHZhbHVlIGZyb20g
aW5wdXQgdHlwZT0iZGF0ZSIgZm9ybSBmaWVsZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC91cmwv
aG9zdC1sb3dlcmNhc2UtcGVyLXNjaGVtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC91cmwvaG9zdC1sb3dlcmNhc2UtcGVyLXNjaGVtZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDIwODE2MCkKKysrIExheW91dFRlc3RzL2Zhc3QvdXJsL2hvc3QtbG93ZXJjYXNl
LXBlci1zY2hlbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
IFBBU1Mgc3JjIGlzIGV4cGVjdGVkCiBQQVNTIHNyYyBpcyBleHBlY3RlZAogUEFTUyBzcmMgaXMg
ZXhwZWN0ZWQKIFBBU1Mgc3JjIGlzIGV4cGVjdGVkCi1GQUlMIHNyYyBzaG91bGQgYmUgZ2hvc3Q6
Ly9Vbmljb2RlRiVDMyVBQXRlLy4gV2FzIGdob3N0Oi8veG4tLXVuaWNvZGVmdGUtdDdhLy4KK1BB
U1Mgc3JjIGlzIGV4cGVjdGVkCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdXJsL3NhZmFyaS1leHRlbnNpb24t
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdXJsL3NhZmFyaS1l
eHRlbnNpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDgxNjApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3VybC9zYWZhcmktZXh0ZW5zaW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
Niw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogUEFT
UyBzcmMgaXMgZXhwZWN0ZWQKIFBBU1Mgc3JjIGlzIGV4cGVjdGVkCiBQQVNTIHNyYyBpcyBleHBl
Y3RlZAotRkFJTCBzcmMgc2hvdWxkIGJlIHNhZmFyaS1leHRlbnNpb246Ly9jb20uZiVDMyVBQXRl
Ly4gV2FzIHNhZmFyaS1leHRlbnNpb246Ly9jb20ueG4tLWZ0ZS1mbWEvLgorUEFTUyBzcmMgaXMg
ZXhwZWN0ZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpJbmRleDogTGF5b3V0VGVzdHMvZmV0Y2gvY2xvc2luZy13aGlsZS1mZXRjaGluZy1ibG9iLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mZXRjaC9jbG9zaW5nLXdoaWxl
LWZldGNoaW5nLWJsb2ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDgxNjApCisrKyBMYXlvdXRU
ZXN0cy9mZXRjaC9jbG9zaW5nLXdoaWxlLWZldGNoaW5nLWJsb2ItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLVBBU1MKSW5kZXg6IExheW91dFRlc3RzL2ZldGNoL2Zl
dGNoLXVybC1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mZXRjaC9mZXRjaC11cmwtc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDIwODE2MCkKKysrIExheW91dFRlc3RzL2ZldGNoL2ZldGNoLXVybC1zZXJpYWxpemF0aW9uLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzA5LDcgKzMwOSw3IEBAIFBBU1MgVGVzdGlu
ZyBSZXF1ZXN0IHVybCAnYWJvdXQ6Ly4uLycgd2kKIFBBU1MgVGVzdGluZyBSZXF1ZXN0IHVybCAn
ZGF0YTovLi4vJyB3aXRoIGJhc2UgJ2Fib3V0OmJsYW5rJyAKIFBBU1MgVGVzdGluZyBSZXF1ZXN0
IHVybCAnamF2YXNjcmlwdDovLi4vJyB3aXRoIGJhc2UgJ2Fib3V0OmJsYW5rJyAKIFBBU1MgVGVz
dGluZyBSZXF1ZXN0IHVybCAnbWFpbHRvOi8uLi8nIHdpdGggYmFzZSAnYWJvdXQ6YmxhbmsnIAot
UEFTUyBUZXN0aW5nIFJlcXVlc3QgdXJsICdzYzovL8OxLnRlc3QvJyB3aXRoIGJhc2UgJ2Fib3V0
OmJsYW5rJyAKK0ZBSUwgVGVzdGluZyBSZXF1ZXN0IHVybCAnc2M6Ly/DsS50ZXN0Lycgd2l0aCBi
YXNlICdhYm91dDpibGFuaycgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNjOi8veG4tLWlkYS50
ZXN0LyIgYnV0IGdvdCAic2M6Ly8lQzMlQjEudGVzdC8iCiBQQVNTIFRlc3RpbmcgUmVxdWVzdCB1
cmwgJ3NjOlwuLi8nIHdpdGggYmFzZSAnYWJvdXQ6YmxhbmsnIAogUEFTUyBUZXN0aW5nIFJlcXVl
c3QgdXJsICdzYzo6YUBleGFtcGxlLm5ldCcgd2l0aCBiYXNlICdhYm91dDpibGFuaycgCiBQQVNT
IFRlc3RpbmcgUmVxdWVzdCB1cmwgJ2h0dHA6Ly8xMjcuMC4wLjE6MTAxMDAvcmVsYXRpdmVfaW1w
b3J0Lmh0bWwnIHdpdGggYmFzZSAnYWJvdXQ6YmxhbmsnIApJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDgyMzgpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDEg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQ
ZXJjZW50LWVuY29kZSBub24tQVNDSUkgY29kZSBwb2ludHMgaW4gaG9zdHMgb2YgVVJMcyB3aXRo
IHVucmVjb2duaXplZCBzY2hlbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjQyOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC14aHRtbC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtY29uc3Ry
dWN0b3ItZXhwZWN0ZWQudHh0OgorCiAyMDE2LTEwLTMxICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmRleGVkREIgMi4wOiBTdXBwb3J0IElEQk9iamVjdFN0
b3JlIGdldEFsbC9nZXRBbGxLZXlzLgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDgxNjApCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTMsNyArMzEzLDcgQEAgUEFTUyBQYXJzaW5nOiA8YWJvdXQ6Ly4uLz4g
YWdhaW5zdCA8YWJvdQogUEFTUyBQYXJzaW5nOiA8ZGF0YTovLi4vPiBhZ2FpbnN0IDxhYm91dDpi
bGFuaz4gCiBQQVNTIFBhcnNpbmc6IDxqYXZhc2NyaXB0Oi8uLi8+IGFnYWluc3QgPGFib3V0OmJs
YW5rPiAKIEZBSUwgUGFyc2luZzogPG1haWx0bzovLi4vPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4g
YXNzZXJ0X2VxdWFsczogb3JpZ2luIGV4cGVjdGVkICJudWxsIiBidXQgZ290ICJtYWlsdG86Ly8i
Ci1GQUlMIFBhcnNpbmc6IDxzYzovL8OxLnRlc3QvPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4gYXNz
ZXJ0X2VxdWFsczogb3JpZ2luIGV4cGVjdGVkICJudWxsIiBidXQgZ290ICJzYzovL3huLS1pZGEu
dGVzdCIKK0ZBSUwgUGFyc2luZzogPHNjOi8vw7EudGVzdC8+IGFnYWluc3QgPGFib3V0OmJsYW5r
PiBhc3NlcnRfZXF1YWxzOiBocmVmIGV4cGVjdGVkICJzYzovL3huLS1pZGEudGVzdC8iIGJ1dCBn
b3QgInNjOi8vJUMzJUIxLnRlc3QvIgogRkFJTCBQYXJzaW5nOiA8c2M6XC4uLz4gYWdhaW5zdCA8
YWJvdXQ6Ymxhbms+IGFzc2VydF9lcXVhbHM6IG9yaWdpbiBleHBlY3RlZCAibnVsbCIgYnV0IGdv
dCAic2M6Ly8iCiBGQUlMIFBhcnNpbmc6IDxzYzo6YUBleGFtcGxlLm5ldD4gYWdhaW5zdCA8YWJv
dXQ6Ymxhbms+IGFzc2VydF9lcXVhbHM6IG9yaWdpbiBleHBlY3RlZCAibnVsbCIgYnV0IGdvdCAi
c2M6Ly8iCiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vMTI3LjAuMC4xOjEwMTAwL3JlbGF0aXZlX2lt
cG9ydC5odG1sPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4gCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQteGh0bWwtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdXJsL2EtZWxlbWVudC14aHRtbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwODE2MCkK
KysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxl
bWVudC14aHRtbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMxMyw3ICszMTMsNyBA
QCBQQVNTIFBhcnNpbmc6IDxhYm91dDovLi4vPiBhZ2FpbnN0IDxhYm91CiBQQVNTIFBhcnNpbmc6
IDxkYXRhOi8uLi8+IGFnYWluc3QgPGFib3V0OmJsYW5rPiAKIFBBU1MgUGFyc2luZzogPGphdmFz
Y3JpcHQ6Ly4uLz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+IAogRkFJTCBQYXJzaW5nOiA8bWFpbHRv
Oi8uLi8+IGFnYWluc3QgPGFib3V0OmJsYW5rPiBhc3NlcnRfZXF1YWxzOiBvcmlnaW4gZXhwZWN0
ZWQgIm51bGwiIGJ1dCBnb3QgIm1haWx0bzovLyIKLUZBSUwgUGFyc2luZzogPHNjOi8vw7EudGVz
dC8+IGFnYWluc3QgPGFib3V0OmJsYW5rPiBhc3NlcnRfZXF1YWxzOiBvcmlnaW4gZXhwZWN0ZWQg
Im51bGwiIGJ1dCBnb3QgInNjOi8veG4tLWlkYS50ZXN0IgorRkFJTCBQYXJzaW5nOiA8c2M6Ly/D
sS50ZXN0Lz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+IGFzc2VydF9lcXVhbHM6IGhyZWYgZXhwZWN0
ZWQgInNjOi8veG4tLWlkYS50ZXN0LyIgYnV0IGdvdCAic2M6Ly8lQzMlQjEudGVzdC8iCiBGQUlM
IFBhcnNpbmc6IDxzYzpcLi4vPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4gYXNzZXJ0X2VxdWFsczog
b3JpZ2luIGV4cGVjdGVkICJudWxsIiBidXQgZ290ICJzYzovLyIKIEZBSUwgUGFyc2luZzogPHNj
OjphQGV4YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4gYXNzZXJ0X2VxdWFsczogb3Jp
Z2luIGV4cGVjdGVkICJudWxsIiBidXQgZ290ICJzYzovLyIKIFBBU1MgUGFyc2luZzogPGh0dHA6
Ly8xMjcuMC4wLjE6MTAxMDAvcmVsYXRpdmVfaW1wb3J0Lmh0bWw+IGFnYWluc3QgPGFib3V0OmJs
YW5rPiAKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dXJsL3VybC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjA4MTYwKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMzE4LDcgKzMxOCw3IEBAIFBBU1MgUGFyc2luZzogPGFib3V0Oi8uLi8+
IGFnYWluc3QgPGFib3UKIFBBU1MgUGFyc2luZzogPGRhdGE6Ly4uLz4gYWdhaW5zdCA8YWJvdXQ6
Ymxhbms+IAogUEFTUyBQYXJzaW5nOiA8amF2YXNjcmlwdDovLi4vPiBhZ2FpbnN0IDxhYm91dDpi
bGFuaz4gCiBGQUlMIFBhcnNpbmc6IDxtYWlsdG86Ly4uLz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+
IGFzc2VydF9lcXVhbHM6IG9yaWdpbiBleHBlY3RlZCAibnVsbCIgYnV0IGdvdCAibWFpbHRvOi8v
IgotRkFJTCBQYXJzaW5nOiA8c2M6Ly/DsS50ZXN0Lz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+IGFz
c2VydF9lcXVhbHM6IG9yaWdpbiBleHBlY3RlZCAibnVsbCIgYnV0IGdvdCAic2M6Ly94bi0taWRh
LnRlc3QiCitGQUlMIFBhcnNpbmc6IDxzYzovL8OxLnRlc3QvPiBhZ2FpbnN0IDxhYm91dDpibGFu
az4gYXNzZXJ0X2VxdWFsczogaHJlZiBleHBlY3RlZCAic2M6Ly94bi0taWRhLnRlc3QvIiBidXQg
Z290ICJzYzovLyVDMyVCMS50ZXN0LyIKIEZBSUwgUGFyc2luZzogPHNjOlwuLi8+IGFnYWluc3Qg
PGFib3V0OmJsYW5rPiBhc3NlcnRfZXF1YWxzOiBvcmlnaW4gZXhwZWN0ZWQgIm51bGwiIGJ1dCBn
b3QgInNjOi8vIgogRkFJTCBQYXJzaW5nOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPiBhc3NlcnRfZXF1YWxzOiBvcmlnaW4gZXhwZWN0ZWQgIm51bGwiIGJ1dCBnb3Qg
InNjOi8vIgogUEFTUyBQYXJzaW5nOiA8aHR0cDovLzEyNy4wLjAuMToxMDEwMC9yZWxhdGl2ZV9p
bXBvcnQuaHRtbD4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+IAo=
</data>
<flag name="review"
          id="316448"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>