<?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>150529</bug_id>
          
          <creation_ts>2015-10-23 21:30:06 -0700</creation_ts>
          <short_desc>Add an option to make the graphics benchmark runs a specific test with fixed complexity</short_desc>
          <delta_ts>2015-11-01 18:31:57 -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>Animations</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1136239</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-10-23 21:30:06 -0700</bug_when>
    <thetext>This means the test complexity will not change to achieve the desired frame rate. But this can be useful in comparing two profiles of the same test but with different implementations or different configurations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136240</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-10-23 21:30:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/23246627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138129</commentid>
    <comment_count>2</comment_count>
      <attachid>264470</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-10-31 00:49:20 -0700</bug_when>
    <thetext>Created attachment 264470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138205</commentid>
    <comment_count>3</comment_count>
      <attachid>264470</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-31 14:46:00 -0700</bug_when>
    <thetext>Comment on attachment 264470
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138293</commentid>
    <comment_count>4</comment_count>
      <attachid>264510</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-11-01 02:15:41 -0800</bug_when>
    <thetext>Created attachment 264510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138440</commentid>
    <comment_count>5</comment_count>
      <attachid>264510</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-01 18:31:53 -0800</bug_when>
    <thetext>Comment on attachment 264510
Patch

Clearing flags on attachment: 264510

Committed r191873: &lt;http://trac.webkit.org/changeset/191873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138441</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-01 18:31:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264470</attachid>
            <date>2015-10-31 00:49:20 -0700</date>
            <delta_ts>2015-11-01 02:15:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150529-20151031004826.patch</filename>
            <type>text/plain</type>
            <size>75214</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNzA1CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKaW5kZXggYzcwMGQxNDYyMzQ4NjRhODA1
YjQ4MGNhNmE1NzdkNDdhMjIwZDhlMy4uMzU2NzNiZjQxMDg0M2ViNDY2MDc5YzUwYzIxYzc0OTNk
MTBmOThhNiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcwpAQCAtMTQsNiArMTQsMTEgQEAgUG9pbnQucG9pbnRPbkVsbGlwc2Ug
PSBmdW5jdGlvbihhbmdsZSwgcmFkaXVzZXMpCiAgICAgcmV0dXJuIG5ldyBQb2ludChyYWRpdXNl
cy54ICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXNlcy55ICogTWF0aC5zaW4oYW5nbGUpKTsKIH0K
IAorUG9pbnQuZWxlbWVudENsaWVudFNpemUgPSBmdW5jdGlvbihlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgUG9pbnQoZWxlbWVudC5jbGllbnRXaWR0aCwgZWxlbWVudC5jbGllbnRIZWlnaHQp
OworfQorCiBQb2ludC5wcm90b3R5cGUgPQogewogICAgIC8vIFVzZWQgd2hlbiB0aGUgcG9pbnQg
b2JqZWN0IGlzIHVzZWQgYXMgYSBzaXplIG9iamVjdC4KQEAgLTY1LDEyICs3MCwxOSBAQCBmdW5j
dGlvbiBJbnNldHModG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KQogCiBJbnNldHMucHJvdG90eXBl
ID0KIHsKLSAgICBnZXQgd2lkdGgoKSB7CisgICAgZ2V0IHdpZHRoKCkKKyAgICB7CiAgICAgICAg
IHJldHVybiB0aGlzLmxlZnQgKyB0aGlzLnJpZ2h0OwogICAgIH0sCiAKLSAgICBnZXQgaGVpZ2h0
KCkgeworICAgIGdldCBoZWlnaHQoKQorICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMudG9wICsg
dGhpcy5ib3R0b207CisgICAgfSwKKyAgICAKKyAgICBnZXQgc2l6ZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gbmV3IFBvaW50KHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTsKICAgICB9CiB9CiAK
QEAgLTExMCwxMCArMTIyLDUxIEBAIFNpbXBsZVByb21pc2UucHJvdG90eXBlLnJlc29sdmUgPSBm
dW5jdGlvbiAodmFsdWUpCiAgICAgICAgIHRoaXMuX2NoYWluZWRQcm9taXNlLnJlc29sdmUocmVz
dWx0KTsKIH0KIAotZnVuY3Rpb24gT3B0aW9ucyh0ZXN0SW50ZXJ2YWwsIGZyYW1lUmF0ZSkKK3dp
bmRvdy5Eb2N1bWVudEV4dGVuc2lvbiA9CiB7Ci0gICAgdGhpcy50ZXN0SW50ZXJ2YWwgPSB0ZXN0
SW50ZXJ2YWw7Ci0gICAgdGhpcy5mcmFtZVJhdGUgPSBmcmFtZVJhdGU7CisgICAgY3JlYXRlRWxl
bWVudCA6IGZ1bmN0aW9uKG5hbWUsIGF0dHJzLCBwYXJlbnRFbGVtZW50KQorICAgIHsKKyAgICAg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpOworCisgICAgICAg
IGZvciAodmFyIGtleSBpbiBhdHRycykKKyAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRl
KGtleSwgYXR0cnNba2V5XSk7CisKKyAgICAgICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgfSwKKworICAgIGNyZWF0ZVN2
Z0VsZW1lbnQ6IGZ1bmN0aW9uKG5hbWUsIGF0dHJzLCB4bGlua0F0dHJzLCBwYXJlbnRFbGVtZW50
KQorICAgIHsKKyAgICAgICAgY29uc3Qgc3ZnTmFtZXNwYWNlID0gImh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIjsKKyAgICAgICAgY29uc3QgeGxpbmtOYW1lc3BhY2UgPSAiaHR0cDovL3d3dy53
My5vcmcvMTk5OS94bGluayI7CisKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoc3ZnTmFtZXNwYWNlLCBuYW1lKTsKKyAgICAgICAgCisgICAgICAgIGZvciAo
dmFyIGtleSBpbiBhdHRycykKKyAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwg
YXR0cnNba2V5XSk7CisgICAgICAgICAgICAKKyAgICAgICAgZm9yICh2YXIga2V5IGluIHhsaW5r
QXR0cnMpCisgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5TKHhsaW5rTmFtZXNwYWNl
LCBrZXksIHhsaW5rQXR0cnNba2V5XSk7CisgICAgICAgICAgICAKKyAgICAgICAgcGFyZW50RWxl
bWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAg
fSwKKyAgICAKKyAgICBpbnNlcnRDc3NSdWxlQWZ0ZXI6IGZ1bmN0aW9uKG5ld1J1bGUsIHJlZmVy
ZW5jZVJ1bGUpCisgICAgeworICAgICAgICB2YXIgc3R5bGVTaGVldHMgPSBkb2N1bWVudC5zdHls
ZVNoZWV0czsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlU2hlZXRzLmxlbmd0
aDsgKytpKSB7ICAgICAgIAorICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHlsZVNo
ZWV0c1tpXS5jc3NSdWxlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChzdHls
ZVNoZWV0c1tpXS5jc3NSdWxlc1tqXS5zZWxlY3RvclRleHQgPT0gcmVmZXJlbmNlUnVsZSkgewor
ICAgICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0c1tpXS5pbnNlcnRSdWxlKG5ld1J1bGUsIGog
KyAxKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQogfQogCiBmdW5jdGlvbiBQcm9ncmVzc0JhcihlbGVtZW50LCByYW5nZXMpCkBA
IC0yMjcsMTEgKzI4MCwxMSBAQCBSZXN1bHRzVGFibGUucHJvdG90eXBlID0KIAogICAgIF9zaG93
SGVhZGVyOiBmdW5jdGlvbihtZXNzYWdlKQogICAgIHsKLSAgICAgICAgdmFyIHJvdyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CisgICAgICAgIHZhciB0aGVhZCA9IERvY3VtZW50RXh0
ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoInRoZWFkIiwge30sIHRoaXMuZWxlbWVudCk7CisgICAgICAg
IHZhciByb3cgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJ0ciIsIHt9LCB0aGVh
ZCk7CiAKICAgICAgICAgdmFyIHF1ZXVlID0gW107CiAgICAgICAgIHRoaXMuX3Nob3dIZWFkZXJS
b3cocm93LCBxdWV1ZSwgdGhpcy5faGVhZGVycywgbWVzc2FnZSk7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZChyb3cpOwogCiAgICAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGgpIHsK
ICAgICAgICAgICAgIHZhciByb3cgPSBudWxsOwpAQCAtMjQ2LDE0ICsyOTksMTMgQEAgUmVzdWx0
c1RhYmxlLnByb3RvdHlwZSA9CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAg
aWYgKCFyb3cpCi0gICAgICAgICAgICAgICAgICAgIHZhciByb3cgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ0ciIpOworICAgICAgICAgICAgICAgICAgICByb3cgPSBEb2N1bWVudEV4dGVuc2lv
bi5jcmVhdGVFbGVtZW50KCJ0ciIsIHt9LCB0aGVhZCk7CiAKICAgICAgICAgICAgICAgICB0aGlz
Ll9zaG93SGVhZGVyUm93KHJvdywgcXVldWUsIGVudHJ5LmhlYWRlcnMsICIiKTsKICAgICAgICAg
ICAgICAgICBlbnRyeS5lbGVtZW50LmNvbFNwYW4gPSBlbnRyeS5oZWFkZXJzLmxlbmd0aDsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKHJvdykgewotICAgICAgICAgICAgICAgIHRo
aXMuZWxlbWVudC5hcHBlbmRDaGlsZChyb3cpOwogICAgICAgICAgICAgICAgIGVudHJpZXMuZm9y
RWFjaChmdW5jdGlvbihlbnRyeSkgewogICAgICAgICAgICAgICAgICAgICArK2VudHJ5LnJvd1Nw
YW47CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0yOTAsMTQgKzM0MiwxNCBAQCBSZXN1bHRzVGFi
bGUucHJvdG90eXBlID0KICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdmFyIHRkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKLSAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiYnV0dG9uIik7CiAgICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAic21hbGwt
YnV0dG9uIjsKIAogICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHZhciBzYW1wbGVzID0gZGF0YVtTdHJpbmdzWyJKU09OX0dS
QVBIIl1bMF1dOwogICAgICAgICAgICAgdmFyIHNhbXBsaW5nVGltZU9mZnNldCA9IGRhdGFbU3Ry
aW5nc1siSlNPTl9HUkFQSCJdWzFdXTsKICAgICAgICAgICAgIHZhciBheGVzID0gU3RyaW5nc1si
VEVYVF9FWFBFUklNRU5UUyJdOwotICAgICAgICAgICAgd2luZG93LnNob3dUZXN0R3JhcGgodGVz
dE5hbWUsIGF4ZXMsIHNhbXBsZXMsIHNhbXBsaW5nVGltZU9mZnNldCk7CisgICAgICAgICAgICBi
ZW5jaG1hcmtDb250cm9sbGVyLnNob3dUZXN0R3JhcGgodGVzdE5hbWUsIGF4ZXMsIHNhbXBsZXMs
IHNhbXBsaW5nVGltZU9mZnNldCk7CiAgICAgICAgIH0pOwogICAgICAgICAgICAgCiAgICAgICAg
IGJ1dHRvbi50ZXh0Q29udGVudCA9IFN0cmluZ3NbIlRFWFRfUkVTVUxUUyJdWzFdICsgIi4uLiI7
CkBAIC0zMTQsMTEgKzM2NiwxMSBAQCBSZXN1bHRzVGFibGUucHJvdG90eXBlID0KICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQi
KTsKLSAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CiAg
ICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAic21hbGwtYnV0dG9uIjsKIAogICAgICAgICBidXR0
b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHdp
bmRvdy5zaG93VGVzdEpTT04odGVzdE5hbWUsIHRlc3RSZXN1bHRzKTsKKyAgICAgICAgICAgIGJl
bmNobWFya0NvbnRyb2xsZXIuc2hvd1Rlc3RKU09OKHRlc3ROYW1lLCB0ZXN0UmVzdWx0cyk7CiAg
ICAgICAgIH0pOwogICAgICAgICAgICAgCiAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9IFN0
cmluZ3NbIlRFWFRfUkVTVUxUUyJdWzJdICsgIi4uLiI7CkBAIC0zOTAsMyArNDQyLDQgQEAgUmVz
dWx0c1RhYmxlLnByb3RvdHlwZSA9CiAgICAgICAgIH0sIHRoaXMpOwogICAgIH0KIH0KKwpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9hbmltb21ldGVyLmh0
bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL2FuaW1vbWV0ZXIuaHRtbApp
bmRleCAyYTkzYmE2MmIxNjgwMzgzNDdhNzI2ZGNmOWViYmVjNWQwODAzOTI5Li44NzU1MjhmNTlk
MDhmMTIyMjQ5ZGY4Mjk3NDI4ODI1ODdhYTJmYThmIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcnVubmVyL2FuaW1vbWV0ZXIuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcnVubmVyL2FuaW1vbWV0ZXIuaHRtbApAQCAtMTQsNzAgKzE0LDg1IEBA
CiA8Ym9keT4KICAgICA8bWFpbj4KICAgICAgICAgPHNlY3Rpb24gaWQ9ImhvbWUiIGNsYXNzPSJz
ZWxlY3RlZCI+Ci0gICAgICAgICAgICA8cD4KLSAgICAgICAgICAgICAgICBBbmltb21ldGVyIGlz
IGEgYnJvd3NlciBiZW5jaG1hcmsgdGhhdCBtZWFzdXJlcyB0aGUgY29tcGxleGl0eSBvZiBhbiBh
bmltYXRpb24gZm9yCi0gICAgICAgICAgICAgICAgd2hpY2ggYSBicm93c2VyIGNhbiBhY2hpZXZl
IDUwIEZQUyAoZnJhbWUgcGVyIHNlY29uZCkuIEl0IHVzZXMgYWRhcHRpdmUgYW5pbWF0aW9ucwot
ICAgICAgICAgICAgICAgIHRvIHR1bmUgdGhlaXIgY29tcGxleGl0aWVzIHRvIHN0YXkgY2xvc2Ug
dG8gNTAgRlBTLgotICAgICAgICAgICAgPC9wPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0
aW9ucyI+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0ic3VpdGVzIiBjbGFzcz0iY29sdW1uIj4K
LSAgICAgICAgICAgICAgICA8cD4KLSAgICAgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9InRvZ2dsZVRlc3RzIj4gU2hvdyBpbmRpdmlkdWFsIHRlc3RzPC9s
YWJlbD4KLSAgICAgICAgICAgICAgICA8L3A+Ci0gICAgICAgICAgICAgICAgU3VpdGVzOjxicj4K
LSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICA8ZGl2PgotICAgICAgICAg
ICAgICAgICAgICA8bGFiZWw+VGVzdCBpbnRlcnZhbDogPGlucHV0IGlkPSJ0ZXN0LWludGVydmFs
IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMCI+IHNlY29uZHM8L2xhYmVsPjxicj4KLSAgICAgICAg
ICAgICAgICAgICAgPGxhYmVsPkZyYW1lIHJhdGU6IDxpbnB1dCBpZD0iZnJhbWUtcmF0ZSIgdHlw
ZT0ibnVtYmVyIiB2YWx1ZT0iNTAiPiBmcHM8L2xhYmVsPjxicj4KLSAgICAgICAgICAgICAgICAg
ICAgPGxhYmVsPjxpbnB1dCBpZD0iZXN0aW1hdGVkLWZyYW1lLXJhdGUiIHR5cGU9ImNoZWNrYm94
IiBjaGVja2VkPiBFc3RpbWF0ZWQgRnJhbWUgUmF0ZTwvbGFiZWw+PGJyPgotICAgICAgICAgICAg
ICAgICAgICA8bGFiZWw+PGlucHV0IGlkPSJmaXgtdGVzdC1jb21wbGV4aXR5IiB0eXBlPSJjaGVj
a2JveCI+IEZpeCB0ZXN0IGNvbXBsZXhpdHkgYWZ0ZXIgd2FybXVwPC9sYWJlbD48YnI+Ci0gICAg
ICAgICAgICAgICAgICAgIDxsYWJlbD48aW5wdXQgaWQ9InNob3ctcnVubmluZy1yZXN1bHRzIiB0
eXBlPSJjaGVja2JveCI+IFNob3cgcnVubmluZyByZXN1bHRzPC9sYWJlbD4KLSAgICAgICAgICAg
ICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0i
YnV0dG9ucyI+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzdGFydFRlc3QoKSI+
U3RhcnQgVGVzdDwvYnV0dG9uPgotICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8aGVh
ZGVyPgorICAgICAgICAgICAgICAgIDxoMj4KKyAgICAgICAgICAgICAgICAgICAgQW5pbW9tZXRl
ciBpcyBhIGJyb3dzZXIgYmVuY2htYXJrIHRoYXQgbWVhc3VyZXMgdGhlIGNvbXBsZXhpdHkgb2Yg
YW4gYW5pbWF0aW9uIGZvcgorICAgICAgICAgICAgICAgICAgICB3aGljaCBhIGJyb3dzZXIgY2Fu
IGFjaGlldmUgNTAgRlBTIChmcmFtZSBwZXIgc2Vjb25kKS4gSXQgdXNlcyBhZGFwdGl2ZSBhbmlt
YXRpb25zCisgICAgICAgICAgICAgICAgICAgIHRvIHR1bmUgdGhlaXIgY29tcGxleGl0aWVzIHRv
IHN0YXkgY2xvc2UgdG8gNTAgRlBTLgorICAgICAgICAgICAgICAgIDwvaDI+CisgICAgICAgICAg
ICA8L2hlYWRlcj4KKyAgICAgICAgICAgIDxzdWl0ZXM+CisgICAgICAgICAgICAgICAgPGgyPlN1
aXRlczo8L2gyPgorICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idHJlZSI+PC91bD4KKyAgICAg
ICAgICAgIDwvc3VpdGVzPgorICAgICAgICAgICAgPG9wdGlvbnM+CisgICAgICAgICAgICAgICAg
PGgyPk9wdGlvbnM6PC9oMj4KKyAgICAgICAgICAgICAgICA8bGFiZWw+VGVzdCBpbnRlcnZhbDog
PGlucHV0IGlkPSJ0ZXN0LWludGVydmFsIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMCI+IHNlY29u
ZHM8L2xhYmVsPjxicj4KKyAgICAgICAgICAgICAgICA8bGFiZWw+RnJhbWUgcmF0ZTogPGlucHV0
IGlkPSJmcmFtZS1yYXRlIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MCI+IGZwczwvbGFiZWw+PGJy
PgorICAgICAgICAgICAgICAgIDxsYWJlbD48aW5wdXQgaWQ9ImVzdGltYXRlZC1mcmFtZS1yYXRl
IiB0eXBlPSJjaGVja2JveCIgY2hlY2tlZD4gRXN0aW1hdGVkIEZyYW1lIFJhdGU8L2xhYmVsPjxi
cj4KKyAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IGlkPSJmaXgtdGVzdC1jb21wbGV4aXR5
IiB0eXBlPSJjaGVja2JveCI+IEZpeCB0ZXN0IGNvbXBsZXhpdHkgYWZ0ZXIgd2FybXVwPC9sYWJl
bD48YnI+CisgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCBpZD0ic2hvdy1ydW5uaW5nLXJl
c3VsdHMiIHR5cGU9ImNoZWNrYm94Ij4gU2hvdyBydW5uaW5nIHJlc3VsdHM8L2xhYmVsPjxicj4K
KyAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IGlkPSJub3JtYWxpemUtZm9yLWRldmljZS1z
Y2FsZS1mYWN0b3IiIHR5cGU9ImNoZWNrYm94Ij4gTm9ybWFsaXplIGZvciBkZXZpY2Ugc2NhbGUg
ZmFjdG9yPC9sYWJlbD48YnI+CisgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCBpZD0iYWRh
cHRpdmUtdGVzdCIgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQgb25jaGFuZ2U9ImJlbmNobWFya0Nv
bnRyb2xsZXIub25DaGFuZ2VBZGFwdGl2ZVRlc3RDaGVja2JveCgpIj4gQWRhcHRpdmUgdGVzdDwv
bGFiZWw+CisgICAgICAgICAgICA8L29wdGlvbnM+CisgICAgICAgICAgICA8Zm9vdGVyPgorICAg
ICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxhcmdlLWJ1dHRvbiIgb25jbGljaz0iYmVuY2ht
YXJrQ29udHJvbGxlci5zdGFydFRlc3QoKSI+U3RhcnQgVGVzdDwvYnV0dG9uPgorICAgICAgICAg
ICAgPC9mb290ZXI+CiAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgPHNlY3Rpb24gaWQ9InJ1
bm5pbmciPgotICAgICAgICAgICAgPGRpdiBpZD0idGVzdENvbnRhaW5lciI+PC9kaXY+CisgICAg
ICAgICAgICA8ZGl2IGlkPSJydW5uaW5nLXRlc3QiPjwvZGl2PgogICAgICAgICAgICAgPGRpdiBp
ZD0icHJvZ3Jlc3MiPgogICAgICAgICAgICAgICAgIDxkaXYgaWQ9InByb2dyZXNzLWNvbXBsZXRl
ZCI+PC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgaWQ9InJlY29y
ZCI+Ci0gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJyZWNvcmQtdGFibGUiPjwvdGFibGU+
CisgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJyZXN1bHRzLXRhYmxlIj48L3RhYmxlPgog
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgPHNlY3Rpb24g
aWQ9InJlc3VsdHMiPgotICAgICAgICAgICAgPGgxPlJlc3VsdHM6PC9oMT4KLSAgICAgICAgICAg
IDx0YWJsZSBjbGFzcz0icmVzdWx0cy10YWJsZSI+PC90YWJsZT4KLSAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJ1dHRvbnMiPgotICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd0pz
b24oKSI+SlNPTjwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic3Rh
cnRUZXN0KCkiPlRlc3QgQWdhaW48L2J1dHRvbj4KLSAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgICAgPGhlYWRlcj4KKyAgICAgICAgICAgICAgICA8aDE+UmVzdWx0czo8L2gxPgorICAgICAg
ICAgICAgPC9oZWFkZXI+CisgICAgICAgICAgICA8ZGF0YT4KKyAgICAgICAgICAgICAgICA8dGFi
bGUgY2xhc3M9InJlc3VsdHMtdGFibGUiPjwvdGFibGU+CisgICAgICAgICAgICA8L2RhdGE+Cisg
ICAgICAgICAgICA8Zm9vdGVyPgorICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Imxhcmdl
LWJ1dHRvbiIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zaG93SnNvbigpIj5KU09OPC9i
dXR0b24+CisgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibGFyZ2UtYnV0dG9uIiBvbmNs
aWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnN0YXJ0VGVzdCgpIj5UZXN0IEFnYWluPC9idXR0b24+
CisgICAgICAgICAgICA8L2Zvb3Rlcj4KICAgICAgICAgPC9zZWN0aW9uPiAgCiAgICAgICAgIDxz
ZWN0aW9uIGlkPSJqc29uIj4KLSAgICAgICAgICAgIDxoMT5KU09OOjwvaDE+Ci0gICAgICAgICAg
ICA8dGV4dGFyZWEgY2xhc3M9InJlc3VsdHMtanNvbiI+PC90ZXh0YXJlYT4KLSAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImJ1dHRvbnMiPgotICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0i
c2hvd1Jlc3VsdHMoKSI+UmVzdWx0czwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDxidXR0b24g
b25jbGljaz0ic3RhcnRUZXN0KCkiPlRlc3QgQWdhaW48L2J1dHRvbj4KLSAgICAgICAgICAgIDwv
ZGl2PgotICAgICAgICA8L3NlY3Rpb24+ICAKLSAgICAgICAgPHNlY3Rpb24gaWQ9InRlc3QtZ3Jh
cGgiPgotICAgICAgICAgICAgPGgxPkdyYXBoOjwvaDE+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJn
cmFwaENvbnRhaW5lciI+PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b25zIj4K
LSAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dSZXN1bHRzKCkiPlJlc3VsdHM8
L2J1dHRvbj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InN0YXJ0VGVzdCgpIj5U
ZXN0IEFnYWluPC9idXR0b24+ICAgICAgICAKLSAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAg
ICAgPGhlYWRlcj4KKyAgICAgICAgICAgICAgICA8aDE+SlNPTjo8L2gxPgorICAgICAgICAgICAg
PC9oZWFkZXI+CisgICAgICAgICAgICA8ZGF0YT4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJyZXN1bHRzLWpzb24iIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CisgICAgICAgICAg
ICA8L2RhdGE+CisgICAgICAgICAgICA8Zm9vdGVyPgorICAgICAgICAgICAgICAgIDxidXR0b24g
Y2xhc3M9ImxhcmdlLWJ1dHRvbiIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVz
dWx0cygpIj5SZXN1bHRzPC9idXR0b24+CisgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0i
bGFyZ2UtYnV0dG9uIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnN0YXJ0VGVzdCgpIj5U
ZXN0IEFnYWluPC9idXR0b24+CisgICAgICAgICAgICA8L2Zvb3Rlcj4KICAgICAgICAgPC9zZWN0
aW9uPiAgCiAgICAgICAgIDxzZWN0aW9uIGlkPSJ0ZXN0LWpzb24iPgotICAgICAgICAgICAgPGgx
PkpTT046PC9oMT4KLSAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz0icmVzdWx0cy1qc29uIj48
L3RleHRhcmVhPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9ucyI+Ci0gICAgICAgICAg
ICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93UmVzdWx0cygpIj5SZXN1bHRzPC9idXR0b24+Ci0g
ICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzdGFydFRlc3QoKSI+VGVzdCBBZ2Fpbjwv
YnV0dG9uPiAgICAgICAgCi0gICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxoZWFkZXI+
CisgICAgICAgICAgICAgICAgPGgxPkpTT046PC9oMT4KKyAgICAgICAgICAgIDwvaGVhZGVyPgor
ICAgICAgICAgICAgPGRhdGE+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzdWx0cy1q
c29uIiBjb250ZW50RWRpdGFibGU9InRydWUiPjwvZGl2PgorICAgICAgICAgICAgPC9kYXRhPgor
ICAgICAgICAgICAgPGZvb3Rlcj4KKyAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYXJn
ZS1idXR0b24iIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMoKSI+UmVz
dWx0czwvYnV0dG9uPgorICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxhcmdlLWJ1dHRv
biIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zdGFydFRlc3QoKSI+VGVzdCBBZ2Fpbjwv
YnV0dG9uPiAgICAgICAgCisgICAgICAgICAgICA8L2Zvb3Rlcj4KKyAgICAgICAgPC9zZWN0aW9u
PgorICAgICAgICA8c2VjdGlvbiBpZD0idGVzdC1ncmFwaCI+CisgICAgICAgICAgICA8aGVhZGVy
PgorICAgICAgICAgICAgICAgIDxoMT5HcmFwaDo8L2gxPgorICAgICAgICAgICAgPC9oZWFkZXI+
CisgICAgICAgICAgICA8ZGF0YT48L2RhdGE+CisgICAgICAgICAgICA8Zm9vdGVyPgorICAgICAg
ICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxhcmdlLWJ1dHRvbiIgb25jbGljaz0iYmVuY2htYXJr
Q29udHJvbGxlci5zaG93UmVzdWx0cygpIj5SZXN1bHRzPC9idXR0b24+CisgICAgICAgICAgICAg
ICAgPGJ1dHRvbiBjbGFzcz0ibGFyZ2UtYnV0dG9uIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9s
bGVyLnN0YXJ0VGVzdCgpIj5UZXN0IEFnYWluPC9idXR0b24+ICAgICAgICAKKyAgICAgICAgICAg
IDwvZm9vdGVyPgogICAgICAgICA8L3NlY3Rpb24+ICAKICAgICA8L21haW4+CiA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9h
bmltb21ldGVyLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3Vy
Y2VzL2FuaW1vbWV0ZXIuY3NzCmluZGV4IDRiM2U2YTAyMDIxNjhiM2U3NmVjNmY4ZWY2ZTg0Mjkx
MjViYjkzY2EuLjYyZjA0NjA0NmVhNDk4NDU2YmY0MmE5MmM3ZDgwYTJjZjgwNzMxOTAgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1v
bWV0ZXIuY3NzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3Vy
Y2VzL2FuaW1vbWV0ZXIuY3NzCkBAIC0xLDI1NSArMSw0NDEgQEAKKy8qIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTCBhbmQgQm9keSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K
KworaHRtbCxib2R5IHsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgbWFyZ2luOiAwcHg7CisgICAg
cGFkZGluZzogMHB4OworfQorCiBib2R5IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTYs
IDk2LCA5Nik7CiAgICAgY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKICAgICBmb250LWZhbWls
eTogIkhlbHZldGljYSBOZXVlIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBzYW5zLXNlcmlmOwogfQog
Ci1tYWluIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgd2lkdGg6IDgwMHB4OwotICAgIGhlaWdodDogNjAwcHg7Ci0gICAgdG9wOiA1MCU7Ci0gICAg
bGVmdDogNTAlOwotICAgIG1hcmdpbi10b3A6IC0zMjFweDsKLSAgICBtYXJnaW4tbGVmdDogLTQy
MXB4OwotICAgIHBhZGRpbmc6IDE1cHg7Ci0gICAgYm9yZGVyOiA2cHggc29saWQgcmdiKDIzNSwg
MjM1LCAyMzUpOwotICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CisvKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdXR0b25zICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisK
K2J1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOworICAgIC13ZWJraXQtdXNl
ci1zZWxlY3Q6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiB9CiAK
LWlmcmFtZSB7Ci0gICAgd2lkdGg6IDgwMHB4OwotICAgIGhlaWdodDogNjAwcHg7Ci0gICAgYm9y
ZGVyOiAwcHggbm9uZTsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7CitidXR0b24ubGFyZ2UtYnV0
dG9uIHsKKyAgICBib3JkZXI6IDNweCBzb2xpZCByZ2IoMjM1LCAyMzUsIDIzNSk7CisgICAgYm9y
ZGVyLXJhZGl1czogMTBweDsKKyAgICBtaW4td2lkdGg6IDIwMHB4OworICAgIHBhZGRpbmc6IC41
ZW0gMmVtOworICAgIG1hcmdpbjogMCAxZW07CisgICAgZm9udC1zaXplOiAyNXB4OworICAgIGNv
bG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7CiB9CiAKLWxhYmVsLCBwIHsKLSAgICBmb250LXNpemU6
IDE2cHg7Ci0gICAgbGluZS1oZWlnaHQ6IDIxcHg7CitidXR0b24ubGFyZ2UtYnV0dG9uOmFjdGl2
ZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNSwgMjM1LCAyMzUpOworICAgIGNvbG9y
OiByZ2IoNDYsIDUxLCA1NSk7CisgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSkg
IWltcG9ydGFudDsKIH0KIAotc2VjdGlvbiB7Ci0gICAgZGlzcGxheTogbm9uZTsKK2J1dHRvbi5s
YXJnZS1idXR0b246ZGlzYWJsZWQgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5NiwgOTYs
IDk2KTsKKyAgICBjb2xvcjogcmdiKDEyOCwgMTI4LCAxMjgpOwogfQogCi1zZWN0aW9uID4gcCB7
Ci0gICAgbWFyZ2luOiAxMHB4IDIwcHg7CitidXR0b24uc21hbGwtYnV0dG9uIHsKKyAgICBib3Jk
ZXI6IDFweCBzb2xpZCBEYXJrQ3lhbjsKKyAgICBib3JkZXItcmFkaXVzOiAycHg7CisgICAgcGFk
ZGluZzogMXB4IDRweDsKKyAgICBtYXJnaW46IDAgNHB4OworICAgIGZvbnQtc2l6ZTogOXB4Owor
ICAgIGNvbG9yOiBibGFjazsKIH0KIAotc2VjdGlvbiNob21lID4gcCB7Ci0gICAgbWFyZ2luOiAw
IGF1dG87Ci0gICAgd2lkdGg6IDcwJTsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CitidXR0b24u
c21hbGwtYnV0dG9uOmFjdGl2ZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogRGFya0N5YW47Cisg
ICAgY29sb3I6IHJnYig0NiwgNTEsIDU1KTsKKyAgICBib3JkZXItY29sb3I6IERhcmtDeWFuICFp
bXBvcnRhbnQ7CiB9CiAKLXNlY3Rpb24jaG9tZSA+IHA6Zmlyc3QtY2hpbGQgewotICAgIG1hcmdp
bi10b3A6IDE2MHB4OwotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKy8qIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmVlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K
KworLnRyZWUgeworICAgIG1hcmdpbjogMWVtOworICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAg
ICBoZWlnaHQ6IDgwJTsKIH0KIAotc2VjdGlvbi5zZWxlY3RlZCB7CisudHJlZSAuZXhwYW5kLWJ1
dHRvbiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwg
MCk7Cit9CisKKy50cmVlIC5leHBhbmQtYnV0dG9uIH4gdWwgeworICAgIGRpc3BsYXk6IG5vbmU7
Cit9CisKKy50cmVlIC5leHBhbmQtYnV0dG9uOmNoZWNrZWQgfiB1bCB7CiAgICAgZGlzcGxheTog
YmxvY2s7CiB9CiAKLSN0ZXN0Q29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgdG9wOiAxNXB4OwotICAgIGxlZnQ6IDE1cHg7Ci0gICAgd2lkdGg6IDgwMHB4OwotICAgIGhl
aWdodDogNjAwcHg7CisudHJlZSB1bCB7CisgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CiB9CiAK
LXNlY3Rpb24jcnVubmluZyA+ICNwcm9ncmVzcyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwot
ICAgIGJvdHRvbTogLTZweDsKLSAgICBsZWZ0OiA2MHB4OwotICAgIHJpZ2h0OiA2MHB4OwotICAg
IGhlaWdodDogNnB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KTsK
LSAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYig0NiwgNTEsIDU1KTsKLSAgICBib3JkZXIt
cmlnaHQ6IDZweCBzb2xpZCByZ2IoNDYsIDUxLCA1NSk7CisudHJlZSBsaSB7CisgICAgcG9zaXRp
b246IHJlbGF0aXZlOworICAgIHBhZGRpbmc6IDAgMCAxZW0gMWVtOwogfQogCi1zZWN0aW9uI3J1
bm5pbmcgI3Byb2dyZXNzLWNvbXBsZXRlZCB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAg
IHRvcDogMDsKLSAgICBsZWZ0OiAwOwotICAgIGhlaWdodDogNnB4OwotICAgIHdpZHRoOiAwOwot
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKKy50cmVlIHVsIGxpIHsK
KyAgICBsaXN0LXN0eWxlOm5vbmU7CisgICAgcGFkZGluZzogMWVtIDAgMCAwZW07CiB9CiAKLXNl
Y3Rpb24jcnVubmluZyA+ICNyZWNvcmQgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBi
b3R0b206IC0xMzBweDsKLSAgICBsZWZ0OiAwcHg7Ci0gICAgcmlnaHQ6IDBweDsKLSAgICBoZWln
aHQ6IDc1cHg7Ci0gICAgY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KTsKLSAgICBwYWRkaW5nOiAx
NXB4OwotICAgIGJvcmRlcjogNnB4IHNvbGlkIHJnYigyMzUsIDIzNSwgMjM1KTsKLSAgICBib3Jk
ZXItcmFkaXVzOiAyMHB4OworLnRyZWUgPiBsaTpsYXN0LWNoaWxkIHsKKyAgICBwYWRkaW5nLWJv
dHRvbTogMDsKK30KKworLnRyZWUtbGFiZWwgeworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKK30KKworbGFiZWwudHJlZS1sYWJlbCB7CisgICAgY3Vyc29y
OiBwb2ludGVyOworfQorCitsYWJlbC50cmVlLWxhYmVsOmJlZm9yZSB7CisgICAgYmFja2dyb3Vu
ZDogYmxhY2s7CisgICAgY29sb3I6IHdoaXRlOworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICB6LWluZGV4OiAxOworICAgIGZsb2F0OiBsZWZ0OworICAgIG1hcmdpbjogMCAxZW0gMCAtMi4x
ZW07CisgICAgd2lkdGg6IDFlbTsKKyAgICBoZWlnaHQ6IDFlbTsKKyAgICBib3JkZXItcmFkaXVz
OiAxZW07CisgICAgY29udGVudDogJysnOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBs
aW5lLWhlaWdodDogLjllbTsKK30KKworOmNoZWNrZWQgfiBsYWJlbC50cmVlLWxhYmVsOmJlZm9y
ZSB7CisgICAgY29udGVudDogJ1wyMDEzJzsKIH0KIAotc2VjdGlvbiNydW5uaW5nID4gI3JlY29y
ZCA+IHRhYmxlLAotc2VjdGlvbiNyZXN1bHRzID4gdGFibGUgeworLyogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0cyBUYWJsZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor
Cit0YWJsZS5yZXN1bHRzLXRhYmxlIHsKICAgICB3aWR0aDogMTAwJTsKKyAgICBib3JkZXI6IDJw
eCBzb2xpZCBEYXJrQ3lhbjsKKyAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogfQogCi1z
ZWN0aW9uI3J1bm5pbmcgPiAjcmVjb3JkID4gdGFibGUgdGQsIHRoLAotc2VjdGlvbiNyZXN1bHRz
ID4gdGFibGUgdGQsIHRoIHsKKy5yZXN1bHRzLXRhYmxlIHRoLAorLnJlc3VsdHMtdGFibGUgdGQg
ewogICAgIGZvbnQtc2l6ZTogMTFweDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCAjOThiZjIxOwog
ICAgIHBhZGRpbmc6IDNweCA0cHggMnB4IDRweDsKIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKLXNlY3Rpb24jcnVubmluZyA+ICNyZWNvcmQgPiB0YWJsZSB0
ci5hbHQsIHRkCi1zZWN0aW9uI3Jlc3VsdHMgPiB0YWJsZSB0ci5hbHQsIHRkIHsKLSAgICBjb2xv
cjogIzAwMDAwMDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUFGMkQzOworCisucmVzdWx0cy10
YWJsZSB0aCB7CisgICAgYmFja2dyb3VuZDogRGFya0N5YW47CisgICAgYm9yZGVyLWxlZnQ6IDFw
eCBzb2xpZCBMaWdodEN5YW47CisgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgTGlnaHRDeWFu
OworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBMaWdodEN5YW47CiB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLXNlY3Rpb24jcnVubmluZyA+ICNyZWNv
cmQgPiB0YWJsZSB0aCwKLXNlY3Rpb24jcmVzdWx0cyA+IHRhYmxlIHRoIHsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjQTdDOTQyOyAKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisKKy5yZXN1bHRz
LXRhYmxlIHRkIHsKKyAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAgICBib3JkZXItYm90dG9tOiBu
b25lOworICAgIGJvcmRlci1sZWZ0OiBub25lOworICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlk
IERhcmtDeWFuOworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBEYXJrQ3lhbjsKKyAgICBjb2xv
cjogYmxhY2s7CiB9CiAKLXNlY3Rpb24jdGVzdC1qc29uID4gdGV4dGFyZWEsCi1zZWN0aW9uI2pz
b24gPiB0ZXh0YXJlYSB7Ci0gICAgd2lkdGg6IDgwMHB4OwotICAgIGhlaWdodDogNDYwcHg7Cisv
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZXN1bHRzIEpTT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisKK2Rpdi5yZXN1bHRzLWpzb24geworICAgIHdpZHRoOiAxMDAlOwog
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KTsKLSAgICBib3JkZXI6IDFw
eCBzb2xpZCByZ2IoMjM1LCAyMzUsIDIzNSk7Ci0gICAgY29sb3I6IHdoaXRlOworICAgIGNvbG9y
OiByZ2IoMjM1LCAyMzUsIDIzNSk7CiAgICAgd2hpdGUtc3BhY2U6IHByZTsKLSAgICBvdmVyZmxv
dzogc2Nyb2xsOworICAgIGZvbnQtc2l6ZTogMTJweDsKIH0KIAotLm9wdGlvbnMgewotICAgIG1h
cmdpbjowIGF1dG87ICAgIAotICAgIG1hcmdpbi10b3A6IDMwcHg7Ci0gICAgd2lkdGg6IDYwMHB4
OwotICAgIGFsaWduOiBjZW50ZXI7CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluIExheW91dCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKK21haW4geworICAgIHdp
ZHRoOiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsK
KyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgZGlzcGxheTogZmxleDsKKyAgICAtbXMt
ZmxleC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAg
ICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cisg
ICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICAtbXMtZmxleC1wYWNrOiBj
ZW50ZXI7CisgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiB9CiAKLS5vcHRpb25zIHAgewot
ICAgIG1hcmdpbi10b3A6IDA7CitzZWN0aW9uIHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgaGVp
Z2h0OiA2MDBweDsKKyAgICBkaXNwbGF5OiBub25lOworICAgIHBhZGRpbmc6IDEwcHg7CisgICAg
Ym9yZGVyOiA2cHggc29saWQgcmdiKDIzNSwgMjM1LCAyMzUpOworICAgIGJvcmRlci1yYWRpdXM6
IDIwcHg7CiB9CiAKLSNzdWl0ZXMgdWwgewotICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKLSAg
ICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKK3NlY3Rpb24uc2VsZWN0ZWQgeworICAgIGRp
c3BsYXk6IC1tcy1mbGV4Ym94OworICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICBkaXNw
bGF5OiBmbGV4OwogfQogCi0jc3VpdGVzIHVsIHVsIHsKLSAgICBwYWRkaW5nLWxlZnQ6IDEuNWVt
OwotICAgIGRpc3BsYXk6IG5vbmU7CitzZWN0aW9uID4gaGVhZGVyLAorc2VjdGlvbiA+IGZvb3Rl
ciB7CisgICAgbWFyZ2luOiAxMHB4OworICAgIHBhZGRpbmc6IDEwcHg7CisgICAgLXdlYmtpdC1m
bGV4OiAwIDEgMTAwJTsKKyAgICAtbXMtZmxleDogMCAxIDEwMCU7CisgICAgZmxleDogMCAxIDEw
MCU7CisgICAgbWF4LWhlaWdodDogMTUlOwogfQogCi0jc3VpdGVzIHVsIHVsIGlucHV0LCAjc3Vp
dGVzIHVsIHVsIGxhYmVsIHsKLSAgICBmb250LXNpemU6IC44ZW07CitzZWN0aW9uID4gZm9vdGVy
IHsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgY2xlYXI6IGJvdGg7CisgICAgZGlzcGxh
eTogLW1zLWZsZXhib3g7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIGRpc3BsYXk6
IGZsZXg7CisgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWFsaWduLWl0
ZW1zOiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICBhbGlnbi1p
dGVtczogY2VudGVyOworICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAg
LW1zLWZsZXgtcGFjazogY2VudGVyOworICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogfQog
Ci0jc3VpdGVzLnNob3dUZXN0cyB1bCB1bCB7Ci0gICAgZGlzcGxheTogYmxvY2s7CisvKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb21l
IFNlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCisKK3NlY3Rpb24jaG9tZSB7CisgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjog
cm93OworICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OworICAgIGZsZXgtZGlyZWN0aW9uOiBy
b3c7CisgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7CisgICAgLW1zLWZsZXgtd3JhcDogd3Jh
cDsKKyAgICBmbGV4LXdyYXA6IHdyYXA7CisgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBjZW50
ZXI7CisgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXI7CisgICAgYWxpZ24tY29udGVudDog
Y2VudGVyOwogfQogCi0uY29sdW1uIHsKLSAgICB3aWR0aDogNTUlOwotICAgIGZsb2F0OmxlZnQ7
CitzZWN0aW9uI2hvbWUgPiBzdWl0ZXMsCitzZWN0aW9uI2hvbWUgPiBvcHRpb25zIHsKKyAgICBw
YWRkaW5nOiAxMHB4OworICAgIG1hcmdpbjogMTBweDsKKyAgICBoZWlnaHQ6IDUwJTsKIH0KIAot
aW5wdXRbdHlwZT0ibnVtYmVyIl0gewotICAgd2lkdGg6NTBweDsKK3NlY3Rpb24jaG9tZSA+IHN1
aXRlcyB7CisgICAgcGFkZGluZy1sZWZ0OiA4MHB4OworICAgIC13ZWJraXQtZmxleDogMCAxIDQw
JTsKKyAgICAtbXMtZmxleDogMCAxIDQwJTsKKyAgICBmbGV4OiAwIDEgNDAlOwogfQogCi0uYnV0
dG9ucyB7Ci0gICAgbWFyZ2luLXRvcDogMTBweDsKK3NlY3Rpb24jaG9tZSA+IG9wdGlvbnMgewor
ICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgICAgLW1zLWZsZXg6IDEgMSBhdXRvOworICAg
IGZsZXg6IDEgMSBhdXRvOworfQorCitzZWN0aW9uI2hvbWUgPiBvcHRpb25zID4gbGFiZWwgewor
ICAgIG1hcmdpbjogMmVtOworICAgIGxpbmUtaGVpZ2h0OiAyOworfQorCitzZWN0aW9uI2hvbWUg
PiBoZWFkZXIgPiBoMiB7CisgICAgbWFyZ2luOiAwIGF1dG87CisgICAgd2lkdGg6IDcwJTsKICAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgY2xlYXI6IGJvdGg7CiB9CiAKLWJ1dHRvbiB7Ci0g
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwotICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYigy
MzUsIDIzNSwgMjM1KTsKLSAgICBib3JkZXItcmFkaXVzOiAxMHB4OwotICAgIG1pbi13aWR0aDog
MjAwcHg7Ci0gICAgcGFkZGluZzogNXB4IDIwcHg7Ci0gICAgbWFyZ2luOiAwIDQwcHg7Ci0gICAg
Zm9udC1zaXplOiAyNXB4OwotICAgIGNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7Ci0gICAgYmFj
a2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CitzZWN0aW9uI2hvbWUgaW5wdXRbdHlwZT0ibnVt
YmVyIl0geworICAgIHdpZHRoOiA3MHB4OworfQogCi0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDog
bm9uZTsKK3NlY3Rpb24jaG9tZSA+IHN1aXRlcyBpbnB1dFt0eXBlPSJudW1iZXIiXSB7CisgICAg
ZGlzcGxheTogbm9uZTsKKyAgICBmbG9hdDogcmlnaHQ7CiB9CiAKLWJ1dHRvbjphY3RpdmUgewot
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKLSAgICBjb2xvcjogcmdi
KDQ2LCA1MSwgNTUpOwotICAgIGJvcmRlci1jb2xvcjogcmdiKDIzNSwgMjM1LCAyMzUpICFpbXBv
cnRhbnQ7CitzZWN0aW9uI2hvbWUgPiBzdWl0ZXMgaW5wdXRbdHlwZT0ibnVtYmVyIl0uc2VsZWN0
ZWQgeworICAgIGRpc3BsYXk6IGlubGluZTsKIH0KIAotYnV0dG9uOmZvY3VzIHsKLSAgICBvdXRs
aW5lOiBub25lOwotICAgIGJvcmRlci1jb2xvcjogcmdiKDIzMiwgNzksIDc5KTsKKy8qIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bm5pbmcgU2Vj
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKi8KKworc2VjdGlvbiNydW5uaW5nIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50
ZXI7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICBhbGlnbi1pdGVtczogY2Vu
dGVyOworICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgLW1zLWZsZXgt
cGFjazogY2VudGVyOworICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogfQogCi0uc21hbGwt
YnV0dG9uIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci0gICAgYm9yZGVyOiAxcHgg
c29saWQgcmdiKDk2LCA5NiwgOTYpOwotICAgIGJvcmRlci1yYWRpdXM6IDJweDsKLSAgICBwYWRk
aW5nOiAxcHggNHB4OwotICAgIG1hcmdpbjogMCA0cHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjog
dHJhbnNwYXJlbnQ7Ci0gICAgY3Vyc29yOiBwb2ludGVyOwotICAgIHRleHQtYWxpZ246IGNlbnRl
cjsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworc2VjdGlvbiNydW5uaW5nID4gI3J1
bm5pbmctdGVzdCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOwogfQogCi0j
Z3JhcGhDb250YWluZXIgewotICBmb250OiAxMHB4IHNhbnMtc2VyaWY7Ci0gIGNvbG9yOiByZ2Io
MjM1LCAyMzUsIDIzNSk7ICAKK3NlY3Rpb24jcnVubmluZyA+ICNydW5uaW5nLXRlc3QgPiBpZnJh
bWUgeworICAgIHdpZHRoOiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAgICBib3JkZXI6IDBw
eCBub25lOworfQorCitzZWN0aW9uI3J1bm5pbmcgPiAjcHJvZ3Jlc3MgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICBib3R0b206IC02cHg7CisgICAgbGVmdDogNjBweDsKKyAgICByaWdo
dDogNjBweDsKKyAgICBoZWlnaHQ6IDZweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4
LCAxMjgsIDEyOCk7CisgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2IoNDYsIDUxLCA1NSk7
CisgICAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiKDQ2LCA1MSwgNTUpOworfQorCitzZWN0
aW9uI3J1bm5pbmcgPiAjcHJvZ3Jlc3MgPiAjcHJvZ3Jlc3MtY29tcGxldGVkIHsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgaGVpZ2h0OiA2
cHg7CisgICAgd2lkdGg6IDA7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNSwgMjM1LCAy
MzUpOworfQorCitzZWN0aW9uI3J1bm5pbmcgPiAjcmVjb3JkIHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgYm90dG9tOiAtOTVweDsKKyAgICBsZWZ0OiAwcHg7CisgICAgcmlnaHQ6IDBw
eDsKKyAgICBwYWRkaW5nOiAxNnB4OworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyog
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHRzIFNlY3Rpb24gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKK3NlY3Rpb24j
cmVzdWx0cywKK3NlY3Rpb24janNvbiwKK3NlY3Rpb24jdGVzdC1qc29uLAorc2VjdGlvbiN0ZXN0
LWdyYXBoIHsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgLW1zLWZsZXgt
ZGlyZWN0aW9uOiByb3c7CisgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICAtd2Via2l0LWZs
ZXgtd3JhcDogd3JhcDsKKyAgICAtbXMtZmxleC13cmFwOiB3cmFwOworICAgIGZsZXgtd3JhcDog
d3JhcDsKKyAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKKyAgICAt
bXMtZmxleC1wYWNrOiBqdXN0aWZ5OworICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vl
bjsKKyAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CisgICAgLW1zLWZs
ZXgtbGluZS1wYWNrOiBqdXN0aWZ5OworICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47
CisgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDsKKyAgICAtbXMtZmxleC1hbGln
bjogc3RhcnQ7CisgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Cit9CisKK3NlY3Rpb24jcmVz
dWx0cyA+IGRhdGEsCitzZWN0aW9uI2pzb24gPiBkYXRhLAorc2VjdGlvbiN0ZXN0LWpzb24gPiBk
YXRhLAorc2VjdGlvbiN0ZXN0LWdyYXBoID4gZGF0YSB7CisgICAgb3ZlcmZsb3cteTogc2Nyb2xs
OworICAgIGhlaWdodDogNzAlOworICAgIC13ZWJraXQtZmxleDogMCAxIDEwMCU7CisgICAgLW1z
LWZsZXg6IDAgMSAxMDAlOworICAgIGZsZXg6IDAgMSAxMDAlOworICAgIC13ZWJraXQtYWxpZ24t
c2VsZjogc3RyZXRjaDsKKyAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoOworICAgIGFs
aWduLXNlbGY6IHN0cmV0Y2g7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdyYXBoIFNlY3Rpb24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworc2VjdGlvbiN0ZXN0
LWdyYXBoID4gZGF0YSB7CisgICAgZm9udDogMTBweCBzYW5zLXNlcmlmOworICAgIGNvbG9yOiBy
Z2IoMjM1LCAyMzUsIDIzNSk7Cit9CisKK3NlY3Rpb24jdGVzdC1ncmFwaCA+IGRhdGEgPiBzdmcg
eworICAgIGZpbGw6IG5vbmU7CisgICAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzOyAgCiB9
CiAKIC5heGlzIHBhdGgsCiAuYXhpcyBsaW5lIHsKLSAgZmlsbDogbm9uZTsKLSAgc3Ryb2tlOiAj
OTk5OwotICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7CisgICAgZmlsbDogbm9uZTsKKyAg
ICBzdHJva2U6ICM5OTk5OTk7CisgICAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzOwogfQog
CiAubGVmdC1zYW1wbGVzIHsKLSAgZmlsbDogbm9uZTsKLSAgc3Ryb2tlOiAjN0FERDQ5OwotICBz
dHJva2Utd2lkdGg6IDEuNXB4OworICAgIHN0cm9rZTogIzdBREQ0OTsKKyAgICBzdHJva2Utd2lk
dGg6IDEuNXB4OwogfQogCiAucmlnaHQtc2FtcGxlcyB7Ci0gICAgZmlsbDogbm9uZTsKICAgICBz
dHJva2U6ICNGQTQ5MjU7CiAgICAgc3Ryb2tlLXdpZHRoOiAxLjVweDsKIH0KIAogLnNhbXBsZS10
aW1lIHsKLSAgICBmaWxsOiBub25lOwogICAgIHN0cm9rZTogIzU0OTNENjsKLSAgICBzdHJva2Ut
d2lkdGg6IDFweDsKIH0KIAogLmxlZnQtbWVhbiB7Ci0gICAgZmlsbDogbm9uZTsKICAgICBzdHJv
a2U6ICM3QURENDk7Ci0gICAgc3Ryb2tlLXdpZHRoOiAxcHg7CiAgICAgb3BhY2l0eTogLjg7CiB9
CiAKIC5yaWdodC1tZWFuIHsKLSAgICBmaWxsOiBub25lOwogICAgIHN0cm9rZTogI0ZBNDkyNTsK
LSAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICBvcGFjaXR5OiAuODsKIH0KKworLyogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTiBTZWN0aW9u
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqLworCitzZWN0aW9uI2pzb24gPiBkYXRhLAorc2VjdGlvbiN0ZXN0LWpzb24gPiBkYXRhIHsK
KyAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjM1LCAyMzUsIDIzNSk7CisgICAgYm94LXNpemlu
ZzogYm9yZGVyLWJveDsKK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzCmluZGV4IDBiMWI3ZTgzZjYwMWI5
NTZiNzg4MTIwOTk3OWQ0ZDE5MjgyZTNlY2EuLjEyYTY3M2NmNjM2MjQ5OGQ4ZDBiM2Q0Y2M4YjE5
NjA3MWFlOTQwYWQgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5u
ZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3J1bm5lci9yZXNvdXJjZXMvYW5pbW9tZXRlci5qcwpAQCAtMywxMSArMywxNyBAQCB3aW5k
b3cuYmVuY2htYXJrUnVubmVyQ2xpZW50ID0gewogICAgIHRlc3RzQ291bnQ6IG51bGwsCiAgICAg
cHJvZ3Jlc3NCYXI6IG51bGwsCiAgICAgcmVjb3JkVGFibGU6IG51bGwsCi0gICAgb3B0aW9uczog
eyB0ZXN0SW50ZXJ2YWw6IDMwMDAwLCBmcmFtZVJhdGU6IDUwLCBlc3RpbWF0ZWRGcmFtZVJhdGU6
IHRydWUsIGZpeFRlc3RDb21wbGV4aXR5IDogZmFsc2UgfSwKKyAgICBvcHRpb25zOiBudWxsLAog
ICAgIHNjb3JlOiAwLAogICAgIF9yZXN1bHRzRGFzaGJvYXJkOiBudWxsLAogICAgIF9yZXN1bHRz
VGFibGU6IG51bGwsCiAgICAgCisgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oc3VpdGVzLCBvcHRp
b25zKQorICAgIHsKKyAgICAgICAgdGhpcy50ZXN0c0NvdW50ID0gdGhpcy5pdGVyYXRpb25Db3Vu
dCAqIHN1aXRlcy5yZWR1Y2UoZnVuY3Rpb24gKGNvdW50LCBzdWl0ZSkgeyByZXR1cm4gY291bnQg
KyBzdWl0ZS50ZXN0cy5sZW5ndGg7IH0sIDApOworICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRp
b25zOworICAgIH0sCisKICAgICB3aWxsQWRkVGVzdEZyYW1lOiBmdW5jdGlvbiAoZnJhbWUpCiAg
ICAgewogICAgICAgICB2YXIgbWFpbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIm1haW4iKTsK
QEAgLTI0LDEwICszMCwxMCBAQCB3aW5kb3cuYmVuY2htYXJrUnVubmVyQ2xpZW50ID0gewogICAg
IHdpbGxTdGFydEZpcnN0SXRlcmF0aW9uOiBmdW5jdGlvbiAoKQogICAgIHsKICAgICAgICAgdGhp
cy5fcmVzdWx0c0Rhc2hib2FyZCA9IG5ldyBSZXN1bHRzRGFzaGJvYXJkKCk7Ci0gICAgICAgIHRo
aXMuX3Jlc3VsdHNUYWJsZSA9IG5ldyBSZXN1bHRzVGFibGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiLnJlc3VsdHMtdGFibGUiKSwgSGVhZGVycyk7CisgICAgICAgIHRoaXMuX3Jlc3VsdHNUYWJs
ZSA9IG5ldyBSZXN1bHRzVGFibGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2VjdGlvbiNyZXN1
bHRzID4gZGF0YSA+IHRhYmxlIiksIEhlYWRlcnMpOwogICAgICAgICAKICAgICAgICAgdGhpcy5w
cm9ncmVzc0JhciA9IG5ldyBQcm9ncmVzc0Jhcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJv
Z3Jlc3MtY29tcGxldGVkIiksIHRoaXMudGVzdHNDb3VudCk7Ci0gICAgICAgIHRoaXMucmVjb3Jk
VGFibGUgPSBuZXcgUmVzdWx0c1RhYmxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5yZWNvcmQt
dGFibGUiKSwgSGVhZGVycyk7CisgICAgICAgIHRoaXMucmVjb3JkVGFibGUgPSBuZXcgUmVzdWx0
c1RhYmxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24jcnVubmluZyA+ICNyZWNvcmQg
PiB0YWJsZSIpLCBIZWFkZXJzKTsKICAgICB9LAogICAgIAogICAgIGRpZFJ1blN1aXRlczogZnVu
Y3Rpb24gKHN1aXRlc1NhbXBsZXJzKQpAQCAtMzgsMjI2ICs0NCw0MjMgQEAgd2luZG93LmJlbmNo
bWFya1J1bm5lckNsaWVudCA9IHsKICAgICBkaWRGaW5pc2hMYXN0SXRlcmF0aW9uOiBmdW5jdGlv
biAoKQogICAgIHsKICAgICAgICAgdmFyIGpzb24gPSB0aGlzLl9yZXN1bHRzRGFzaGJvYXJkLnRv
SlNPTih0cnVlLCB0cnVlKTsKLSAgICAgICAgdGhpcy5fcmVzdWx0c1RhYmxlLnNob3dJdGVyYXRp
b25zKGpzb25bU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMF1dKTsKLSAgICAgICAgCi0gICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2pzb24gPiB0ZXh0YXJlYSIp
OwotICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGpzb25bU3RyaW5n
c1siSlNPTl9SRVNVTFRTIl1bMF1dWzBdLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7IAotICAgICAg
ICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAibnVtYmVyIikKLSAgICAgICAgICAgICAgICByZXR1
cm4gdmFsdWUudG9GaXhlZCgyKTsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAg
fSwgNCk7Ci0gICAgICAgIAogICAgICAgICB0aGlzLnNjb3JlID0ganNvbltTdHJpbmdzWyJKU09O
X1NDT1JFIl1dOwotICAgICAgICBzaG93UmVzdWx0cygpOworICAgICAgICB0aGlzLl9yZXN1bHRz
VGFibGUuc2hvd0l0ZXJhdGlvbnMoanNvbltTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVswXV0pOwor
ICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd0pTT04oImpzb24iLCBqc29uW1N0cmluZ3NbIkpT
T05fUkVTVUxUUyJdWzBdXVswXSk7CisgICAgICAgIHN1aXRlc01hbmFnZXIudXBkYXRlTG9jYWxT
dG9yYWdlRnJvbUpTT04oanNvbltTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVswXV1bMF0pOworICAg
ICAgICBiZW5jaG1hcmtDb250cm9sbGVyLnNob3dSZXN1bHRzKCk7CiAgICAgfQogfQogCi1mdW5j
dGlvbiBzaG93U2VjdGlvbihzZWN0aW9uSWRlbnRpZmllciwgcHVzaFN0YXRlKQord2luZG93LnNl
Y3Rpb25zTWFuYWdlciA9CiB7Ci0gICAgdmFyIGN1cnJlbnRTZWN0aW9uRWxlbWVudCA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24uc2VsZWN0ZWQiKTsKLSAgICBjb25zb2xlLmFzc2Vy
dChjdXJyZW50U2VjdGlvbkVsZW1lbnQpOworICAgIF9zZWN0aW9uSGVhZGVySDFFbGVtZW50OiBm
dW5jdGlvbihzZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCIjIiArIHNlY3Rpb25JZGVudGlmaWVyICsgIiA+IGhlYWRlciA+IGgx
Iik7CisgICAgfSwKKyAgICAKKyAgICBfc2VjdGlvbkRhdGFEaXZFbGVtZW50OiBmdW5jdGlvbihz
ZWN0aW9uSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCIjIiArIHNlY3Rpb25JZGVudGlmaWVyICsgIiA+ICBkYXRhID4gZGl2Iik7CisgICAg
fSwKKyAgICAKKyAgICBzaG93U2NvcmU6IGZ1bmN0aW9uKHNlY3Rpb25JZGVudGlmaWVyLCB0aXRs
ZSkKKyAgICB7CisgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5fc2VjdGlvbkhlYWRlckgxRWxl
bWVudChzZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0
aXRsZSArICI6IjsKIAotICAgIHZhciBuZXdTZWN0aW9uRWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKHNlY3Rpb25JZGVudGlmaWVyKTsKLSAgICBjb25zb2xlLmFzc2VydChuZXdTZWN0
aW9uRWxlbWVudCk7CisgICAgICAgIHZhciBzY29yZSA9IGJlbmNobWFya1J1bm5lckNsaWVudC5z
Y29yZS50b0ZpeGVkKDIpOworICAgICAgICBlbGVtZW50LnRleHRDb250ZW50ICs9ICIgW1Njb3Jl
ID0gIiArIHNjb3JlICsgIl0iOworICAgIH0sCisgICAgCisgICAgc2hvd1Rlc3ROYW1lOiBmdW5j
dGlvbihzZWN0aW9uSWRlbnRpZmllciwgdGl0bGUsIHRlc3ROYW1lKQorICAgIHsKKyAgICAgICAg
dmFyIGVsZW1lbnQgPSB0aGlzLl9zZWN0aW9uSGVhZGVySDFFbGVtZW50KHNlY3Rpb25JZGVudGlm
aWVyKTsKKyAgICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9IHRpdGxlICsgIjoiOwogCi0gICAg
Y3VycmVudFNlY3Rpb25FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIik7Ci0gICAg
bmV3U2VjdGlvbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKKyAgICAgICAgaWYg
KCF0ZXN0TmFtZS5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAKKyAg
ICAgICAgZWxlbWVudC50ZXh0Q29udGVudCArPSAiIFt0ZXN0ID0gIiArIHRlc3ROYW1lICsgIl0i
OworICAgIH0sCisgICAgCisgICAgc2hvd0pTT046IGZ1bmN0aW9uKHNlY3Rpb25JZGVudGlmaWVy
LCBqc29uKQorICAgIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLl9zZWN0aW9uRGF0YURp
dkVsZW1lbnQoc2VjdGlvbklkZW50aWZpZXIpOworICAgICAgICBlbGVtZW50LnRleHRDb250ZW50
ID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgeyAKKyAgICAgICAg
ICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gIm51bWJlciIpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLnRvRml4ZWQoMik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0s
IDQpOworICAgIH0sCisgICAgCisgICAgc2hvd1NlY3Rpb246IGZ1bmN0aW9uKHNlY3Rpb25JZGVu
dGlmaWVyLCBwdXNoU3RhdGUpCisgICAgeworICAgICAgICB2YXIgY3VycmVudFNlY3Rpb25FbGVt
ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2VjdGlvbi5zZWxlY3RlZCIpOworICAgICAg
ICBjb25zb2xlLmFzc2VydChjdXJyZW50U2VjdGlvbkVsZW1lbnQpOwogCi0gICAgaWYgKHB1c2hT
dGF0ZSkKLSAgICAgICAgaGlzdG9yeS5wdXNoU3RhdGUoe3NlY3Rpb246IHNlY3Rpb25JZGVudGlm
aWVyfSwgZG9jdW1lbnQudGl0bGUpOwotfQorICAgICAgICB2YXIgbmV3U2VjdGlvbkVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KG5ld1NlY3Rpb25FbGVtZW50KTsKIAotZnVuY3Rpb24gc3RhcnRCZW5jaG1h
cmsoKQotewotICAgIHZhciBlbmFibGVkU3VpdGVzID0gW107Ci0KLSAgICBsb2NhbFN0b3JhZ2Uu
Y2xlYXIoKTsKLSAgICB2YXIgc3VpdGVJdGVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IiNzdWl0ZXMgPiB1bCA+IGxpIik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdWl0ZUl0ZW1z
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBzdWl0ZUl0ZW0gPSBzdWl0ZUl0ZW1zW2ldOwot
ICAgICAgICB2YXIgc3VpdGVDaGVja2JveCA9IHN1aXRlSXRlbS5xdWVyeVNlbGVjdG9yKCJpbnB1
dCIpOwotCi0gICAgICAgIGlmICghc3VpdGVDaGVja2JveC5jaGVja2VkKQotICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgdmFyIGVuYWJsZWRUZXN0cyA9IFtdOwotICAgICAgICB2YXIg
dGVzdENoZWNrYm94ZXMgPSBzdWl0ZUl0ZW0ucXVlcnlTZWxlY3RvcigidWwiKS5xdWVyeVNlbGVj
dG9yQWxsKCJpbnB1dCIpOwotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRlc3RDaGVja2Jv
eGVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICB2YXIgdGVzdENoZWNrYm94ID0gdGVzdENo
ZWNrYm94ZXNbal07Ci0gICAgICAgICAgICBpZiAoIXRlc3RDaGVja2JveC5jaGVja2VkKQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50U2VjdGlvbkVsZW1lbnQuY2xh
c3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKTsKKyAgICAgICAgbmV3U2VjdGlvbkVsZW1lbnQuY2xh
c3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKIAotICAgICAgICAgICAgZW5hYmxlZFRlc3RzLnB1c2go
dGVzdENoZWNrYm94LnRlc3QpOwotICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obG9j
YWxTdG9yYWdlTmFtZUZvclRlc3Qoc3VpdGVDaGVja2JveC5zdWl0ZSwgdGVzdENoZWNrYm94LnRl
c3QpLCArdGVzdENoZWNrYm94LmNoZWNrZWQpOwotICAgICAgICB9CisgICAgICAgIGlmIChwdXNo
U3RhdGUpCisgICAgICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7c2VjdGlvbjogc2VjdGlvbklk
ZW50aWZpZXJ9LCBkb2N1bWVudC50aXRsZSk7CisgICAgfSwKIAotICAgICAgICBlbmFibGVkU3Vp
dGVzLnB1c2gobmV3IFN1aXRlKHN1aXRlQ2hlY2tib3guc3VpdGUubmFtZSwgZW5hYmxlZFRlc3Rz
KSk7CisgICAgc2V0dXBTZWN0aW9uU3R5bGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlm
IChzY3JlZW4ud2lkdGggPj0gMTgwMCAmJiBzY3JlZW4uaGVpZ2h0ID49IDEwMDApCisgICAgICAg
ICAgICBEb2N1bWVudEV4dGVuc2lvbi5pbnNlcnRDc3NSdWxlQWZ0ZXIoIiBzZWN0aW9uIHsgd2lk
dGg6IDE2MDBweDsgaGVpZ2h0OiA4MDBweDsgfSIsICJzZWN0aW9uIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIERvY3VtZW50RXh0ZW5zaW9uLmluc2VydENzc1J1bGVBZnRlcigiIHNlY3Rp
b24geyB3aWR0aDogODAwcHg7IGhlaWdodDogNjAwcHg7IH0iLCAic2VjdGlvbiIpOworICAgIH0s
CisgICAgCisgICAgc2V0dXBSdW5uaW5nU2VjdGlvblN0eWxlOiBmdW5jdGlvbihvcHRpb25zKQor
ICAgIHsKKyAgICAgICAgaWYgKCFvcHRpb25zWyJzaG93LXJ1bm5pbmctcmVzdWx0cyJdKQorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlY29yZCIpLnN0eWxlLmRpc3BsYXkg
PSAibm9uZSI7CisKKyAgICAgICAgaWYgKG9wdGlvbnNbIm5vcm1hbGl6ZS1mb3ItZGV2aWNlLXNj
YWxlLWZhY3RvciJdICYmIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvICE9IDEpIHsKKyAgICAgICAg
ICAgIHZhciBwZXJjZW50YWdlID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gKiAxMDA7CisgICAg
ICAgICAgICB2YXIgcnVsZSA9ICJzZWN0aW9uI3J1bm5pbmcgPiAjcnVubmluZy10ZXN0ID4gaWZy
YW1lIjsKKyAgICAgICAgICAgIHZhciBuZXdSdWxlID0gcnVsZTsKKyAgICAgICAgICAgIG5ld1J1
bGUgKz0gIiB7ICI7CisgICAgICAgICAgICBuZXdSdWxlICs9ICJ3aWR0aDogIiArIHBlcmNlbnRh
Z2UgKyAiJTsgIjsKKyAgICAgICAgICAgIG5ld1J1bGUgKz0gImhlaWdodDogIiArIHBlcmNlbnRh
Z2UgKyAiJTsgIjsKKyAgICAgICAgICAgIG5ld1J1bGUgKz0gInRyYW5zZm9ybTogc2NhbGUoIiAr
IDEwMCAvIHBlcmNlbnRhZ2UgKyAiKSB0cmFuc2xhdGUoIiArICgxMDAgLSBwZXJjZW50YWdlKSAv
IDIgKyAiJSwiICsgKDEwMCAtIHBlcmNlbnRhZ2UpIC8gMiArICIlKTsiOworICAgICAgICAgICAg
bmV3UnVsZSArPSAiIH0iOworICAgICAgICAgICAgRG9jdW1lbnRFeHRlbnNpb24uaW5zZXJ0Q3Nz
UnVsZUFmdGVyKG5ld1J1bGUsIHJ1bGUpOworICAgICAgICB9CiAgICAgfQorfQogCi0gICAgbG9j
YWxTdG9yYWdlLnNldEl0ZW0oInRlc3QtaW50ZXJ2YWwiLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdC1pbnRlcnZhbCIpLnZhbHVlKTsKLQotICAgIHZhciB0ZXN0c0NvdW50ID0gZW5hYmxl
ZFN1aXRlcy5yZWR1Y2UoZnVuY3Rpb24gKHRlc3RzQ291bnQsIHN1aXRlKSB7IHJldHVybiB0ZXN0
c0NvdW50ICsgc3VpdGUudGVzdHMubGVuZ3RoOyB9LCAwKTsKLSAgICBiZW5jaG1hcmtSdW5uZXJD
bGllbnQudGVzdHNDb3VudCA9IGJlbmNobWFya1J1bm5lckNsaWVudC5pdGVyYXRpb25Db3VudCAq
IHRlc3RzQ291bnQ7Ci0gICAgYmVuY2htYXJrUnVubmVyQ2xpZW50Lm9wdGlvbnNbInRlc3RJbnRl
cnZhbCJdID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtaW50ZXJ2YWwi
KS52YWx1ZSkgKiAxMDAwOwotICAgIGJlbmNobWFya1J1bm5lckNsaWVudC5vcHRpb25zWyJmcmFt
ZVJhdGUiXSA9IHBhcnNlSW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZS1yYXRlIiku
dmFsdWUpOwotICAgIGJlbmNobWFya1J1bm5lckNsaWVudC5vcHRpb25zWyJlc3RpbWF0ZWRGcmFt
ZVJhdGUiXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlc3RpbWF0ZWQtZnJhbWUtcmF0ZSIp
LmNoZWNrZWQ7ICAgIAotICAgIGJlbmNobWFya1J1bm5lckNsaWVudC5vcHRpb25zWyJmaXhUZXN0
Q29tcGxleGl0eSJdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpeC10ZXN0LWNvbXBsZXhp
dHkiKS5jaGVja2VkOwotICAgIGJlbmNobWFya1J1bm5lckNsaWVudC5vcHRpb25zWyJzaG93UnVu
bmluZ1Jlc3VsdHMiXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93LXJ1bm5pbmctcmVz
dWx0cyIpLmNoZWNrZWQ7Cit3aW5kb3cub3B0aW9uc01hbmFnZXIgPQoreworICAgIF9vcHRpb25z
RWxlbWVudHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJzZWN0aW9uI2hvbWUgPiBvcHRpb25zIGlucHV0Iik7OworICAgIH0sCisg
ICAgCisgICAgX2FkYXB0aXZlVGVzdEVsZW1lbnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzZWN0aW9uI2hvbWUgPiBvcHRpb25zICNh
ZGFwdGl2ZS10ZXN0Iik7OworICAgIH0sCiAgICAgCi0gICAgaWYgKCFiZW5jaG1hcmtSdW5uZXJD
bGllbnQub3B0aW9uc1sic2hvd1J1bm5pbmdSZXN1bHRzIl0pCi0gICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWNvcmQiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgIHVwZGF0
ZVVJRnJvbUxvY2FsU3RvcmFnZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIG9wdGlv
bnNFbGVtZW50cyA9IHRoaXMuX29wdGlvbnNFbGVtZW50cygpOwogCi0gICAgdmFyIHJ1bm5lciA9
IG5ldyBCZW5jaG1hcmtSdW5uZXIoZW5hYmxlZFN1aXRlcywgYmVuY2htYXJrUnVubmVyQ2xpZW50
KTsKLSAgICBydW5uZXIucnVuTXVsdGlwbGVJdGVyYXRpb25zKGJlbmNobWFya1J1bm5lckNsaWVu
dC5pdGVyYXRpb25Db3VudCk7Ci19CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0aW9u
c0VsZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgb3B0aW9uRWxlbWVudCA9
IG9wdGlvbnNFbGVtZW50c1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIHZhbHVl
ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0ob3B0aW9uRWxlbWVudC5pZCk7CisgICAgICAgICAgICBp
ZiAodmFsdWUgPT09IG51bGwpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAKLWZ1bmN0aW9u
IHN0YXJ0VGVzdCgpCi17Ci0gICAgc2hvd1NlY3Rpb24oInJ1bm5pbmciKTsKLSAgICBzdGFydEJl
bmNobWFyaygpOwotfQorICAgICAgICAgICAgaWYgKG9wdGlvbkVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJ0eXBlIikgPT0gIm51bWJlciIpCisgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC52YWx1
ZSA9ICt2YWx1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbkVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJ0eXBlIikgPT0gImNoZWNrYm94IikKKyAgICAgICAgICAgICAgICBvcHRpb25FbGVtZW50
LmNoZWNrZWQgPSB2YWx1ZSA9PSAidHJ1ZSI7CisgICAgICAgIH0KKyAgICB9LAogCi1mdW5jdGlv
biBzaG93UmVzdWx0cygpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCIjcmVzdWx0cyA+IGgxIik7Ci0gICAgZWxlbWVudC50ZXh0Q29udGVudCA9IFN0cmluZ3Nb
IlRFWFRfUkVTVUxUUyJdWzBdICsgIjoiOworICAgIHVwZGF0ZUxvY2FsU3RvcmFnZUZyb21VSTog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIG9wdGlvbnNFbGVtZW50cyA9IHRoaXMuX29w
dGlvbnNFbGVtZW50cygpOworICAgICAgICB2YXIgb3B0aW9ucyA9IHt9OyAgICAgICAgCisKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zRWxlbWVudHMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgIHZhciBvcHRpb25FbGVtZW50ID0gb3B0aW9uc0VsZW1lbnRzW2ldOworICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChvcHRpb25FbGVtZW50LmdldEF0dHJpYnV0ZSgidHlwZSIp
ID09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgIG9wdGlvbnNbb3B0aW9uRWxlbWVudC5pZF0g
PSBvcHRpb25FbGVtZW50LnZhbHVlOworICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoInR5cGUiKSA9PSAiY2hlY2tib3giKQorICAgICAgICAgICAgICAgIG9w
dGlvbnNbb3B0aW9uRWxlbWVudC5pZF0gPSBvcHRpb25FbGVtZW50LmNoZWNrZWQ7CiAgICAgCi0g
ICAgdmFyIHNjb3JlID0gYmVuY2htYXJrUnVubmVyQ2xpZW50LnNjb3JlLnRvRml4ZWQoMik7Ci0g
ICAgZWxlbWVudC50ZXh0Q29udGVudCArPSAiIFtTY29yZSA9ICIgKyBzY29yZSArICJdIjsKKyAg
ICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG9wdGlvbkVsZW1lbnQuaWQsIG9wdGlvbnNb
b3B0aW9uRWxlbWVudC5pZF0pOworICAgICAgICB9CiAgICAgICAgIAotICAgIHNob3dTZWN0aW9u
KCJyZXN1bHRzIiwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBvcHRpb25zOworICAgIH0KIH0KIAot
ZnVuY3Rpb24gc2hvd0pzb24oKQord2luZG93LnN1aXRlc01hbmFnZXIgPQogewotICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2pzb24gPiBoMSIpOwotICAgIGVsZW1l
bnQudGV4dENvbnRlbnQgPSBTdHJpbmdzWyJURVhUX1JFU1VMVFMiXVsyXSArICI6IjsKKyAgICBf
dHJlZUVsZW1lbnQgOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQu
cXVlcnlTZWxlY3Rvcigic3VpdGVzID4gLnRyZWUiKTsKKyAgICB9LAogICAgIAotICAgIHZhciBz
Y29yZSA9IGJlbmNobWFya1J1bm5lckNsaWVudC5zY29yZS50b0ZpeGVkKDIpOwotICAgIGVsZW1l
bnQudGV4dENvbnRlbnQgKz0gIiBbU2NvcmUgPSAiICsgc2NvcmUgKyAiXSI7CisgICAgX3N1aXRl
c0VsZW1lbnRzIDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiNob21lID4gc3VpdGVzID4gdWwgPiBsaSIpOworICAgIH0sCisgICAg
CisgICAgX2NoZWNrYm94RWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCkKKyAgICB7CisgICAgICAg
IHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9J2NoZWNrYm94J106bm90
KC5leHBhbmQtYnV0dG9uKSIpOworICAgIH0sCiAKLSAgICBzaG93U2VjdGlvbigianNvbiIsIHRy
dWUpOwotfQorICAgIF9lZGl0RWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0W3R5cGU9J251bWJlciddIik7
CisgICAgfSwKIAotZnVuY3Rpb24gc2hvd1Rlc3RHcmFwaCh0ZXN0TmFtZSwgYXhlcywgc2FtcGxl
cywgc2FtcGxpbmdUaW1lT2Zmc2V0KQotewotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3Rlc3QtZ3JhcGggPiBoMSIpOwotICAgIGVsZW1lbnQudGV4dENvbnRlbnQg
PSBTdHJpbmdzWyJURVhUX1JFU1VMVFMiXVsxXSArICI6IjsKKyAgICBfZWRpdHNFbGVtZW50czog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoInNlY3Rpb24jaG9tZSA+IHN1aXRlcyBpbnB1dFt0eXBlPSdudW1iZXInXSIpOworICAgIH0s
CiAKLSAgICBpZiAodGVzdE5hbWUubGVuZ3RoKQotICAgICAgICBlbGVtZW50LnRleHRDb250ZW50
ICs9ICIgW3Rlc3QgPSAiICsgdGVzdE5hbWUgKyAiXSI7Ci0gICAgICAgICAgICAKLSAgICBncmFw
aCgiI2dyYXBoQ29udGFpbmVyIiwgbmV3IFBvaW50KDcwMCwgNDAwKSwgbmV3IEluc2V0cygyMCwg
NTAsIDIwLCA1MCksIGF4ZXMsIHNhbXBsZXMsIHNhbXBsaW5nVGltZU9mZnNldCk7Ci0gICAgc2hv
d1NlY3Rpb24oInRlc3QtZ3JhcGgiLCB0cnVlKTsgICAgCi19CisgICAgX2xvY2FsU3RvcmFnZU5h
bWVGb3JUZXN0OiBmdW5jdGlvbihzdWl0ZU5hbWUsIHRlc3ROYW1lKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHN1aXRlTmFtZSArICIvIiArIHRlc3ROYW1lOworICAgIH0sCiAKLWZ1bmN0aW9uIHNo
b3dUZXN0SlNPTih0ZXN0TmFtZSwgdGVzdFJlc3VsdHMpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGVzdC1qc29uID4gaDEiKTsKLSAgICBlbGVtZW50LnRl
eHRDb250ZW50ID0gU3RyaW5nc1siVEVYVF9SRVNVTFRTIl1bMl0gKyAiOiI7CisgICAgX3VwZGF0
ZVN1aXRlQ2hlY2tib3hTdGF0ZTogZnVuY3Rpb24oc3VpdGVDaGVja2JveCkKKyAgICB7CisgICAg
ICAgIHZhciBudW1iZXJFbmFibGVkVGVzdHMgPSAwOworICAgICAgICBzdWl0ZUNoZWNrYm94LnRl
c3RzRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbih0ZXN0RWxlbWVudCkgeworICAgICAgICAgICAg
dmFyIHRlc3RDaGVja2JveCA9IHRoaXMuX2NoZWNrYm94RWxlbWVudCh0ZXN0RWxlbWVudCk7Cisg
ICAgICAgICAgICBpZiAodGVzdENoZWNrYm94LmNoZWNrZWQpCisgICAgICAgICAgICAgICAgKytu
dW1iZXJFbmFibGVkVGVzdHM7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgICBzdWl0ZUNoZWNr
Ym94LmNoZWNrZWQgPSBudW1iZXJFbmFibGVkVGVzdHMgPiAwOworICAgICAgICBzdWl0ZUNoZWNr
Ym94LmluZGV0ZXJtaW5hdGUgPSBudW1iZXJFbmFibGVkVGVzdHMgPiAwICYmIG51bWJlckVuYWJs
ZWRUZXN0cyA8IHN1aXRlQ2hlY2tib3gudGVzdHNFbGVtZW50cy5sZW5ndGg7CisgICAgfSwKIAot
ICAgIGlmICh0ZXN0TmFtZS5sZW5ndGgpCi0gICAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgKz0g
IiBbdGVzdCA9ICIgKyB0ZXN0TmFtZSArICJdIjsKKyAgICBfdXBkYXRlU3RhcnRCdXR0b25TdGF0
ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHN1aXRlc0VsZW1lbnRzID0gdGhpcy5f
c3VpdGVzRWxlbWVudHMoKTsKKyAgICAgICAgdmFyIHN0YXJ0QnV0dG9uID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI2hvbWUgPiBmb290ZXIgPiBidXR0b24iKTsKKyAgICAgICAgCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgc3VpdGVzRWxlbWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciBzdWl0ZUVsZW1lbnQgPSBzdWl0ZXNFbGVtZW50c1tpXTsKKyAgICAgICAgICAg
IHZhciBzdWl0ZUNoZWNrYm94ID0gdGhpcy5fY2hlY2tib3hFbGVtZW50KHN1aXRlRWxlbWVudCk7
CiAgICAgICAgICAgICAKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
IiN0ZXN0LWpzb24gPiB0ZXh0YXJlYSIpOwotICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gSlNPTi5z
dHJpbmdpZnkodGVzdFJlc3VsdHMsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsgCi0gICAgICAgIGlm
ICh0eXBlb2YgdmFsdWUgPT0gIm51bWJlciIpCi0gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9G
aXhlZCgyKTsKLSAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgIH0sIDQpOwotCi0gICAgc2hvd1Nl
Y3Rpb24oInRlc3QtanNvbiIsIHRydWUpOyAgICAKLX0KKyAgICAgICAgICAgIGlmIChzdWl0ZUNo
ZWNrYm94LmNoZWNrZWQpIHsKKyAgICAgICAgICAgICAgICBzdGFydEJ1dHRvbi5kaXNhYmxlZCA9
IGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIAorICAgICAgICBzdGFydEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CisgICAgfSwKKyAg
ICAKKyAgICBfb25DaGFuZ2VTdWl0ZUNoZWNrYm94OiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHZhciBzZWxlY3RlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkOworICAgICAgICBldmVu
dC50YXJnZXQudGVzdHNFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RFbGVtZW50KSB7Cisg
ICAgICAgICAgICB2YXIgdGVzdENoZWNrYm94ID0gdGhpcy5fY2hlY2tib3hFbGVtZW50KHRlc3RF
bGVtZW50KTsKKyAgICAgICAgICAgIHRlc3RDaGVja2JveC5jaGVja2VkID0gc2VsZWN0ZWQ7ICAg
ICAgICAKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXJ0QnV0dG9u
U3RhdGUoKTsKKyAgICB9LAogCi1mdW5jdGlvbiBpbml0aWFsaXplKCkgewotICAgIHBvcHVsYXRl
U2V0dGluZ3MoKTsKKyAgICBfb25DaGFuZ2VUZXN0Q2hlY2tib3g6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgdmFyIHN1aXRlQ2hlY2tib3ggPSBldmVudC50YXJnZXQuc3VpdGVDaGVj
a2JveDsKKyAgICAgICAgdGhpcy5fdXBkYXRlU3VpdGVDaGVja2JveFN0YXRlKHN1aXRlQ2hlY2ti
b3gpOworICAgICAgICB0aGlzLl91cGRhdGVTdGFydEJ1dHRvblN0YXRlKCk7CisgICAgfSwKIAot
ICAgIHZhciB0b2dnbGVUZXN0c0NoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRv
Z2dsZVRlc3RzIik7Ci0gICAgdG9nZ2xlVGVzdHNDaGVja2JveC5vbmNoYW5nZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkKLSAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWl0ZXMiKS5jbGFzc0xpc3QuYWRkKCJzaG93VGVz
dHMiKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InN1aXRlcyIpLmNsYXNzTGlzdC5yZW1vdmUoInNob3dUZXN0cyIpOwotICAgIH07Ci19CisgICAg
X2NyZWF0ZVN1aXRlRWxlbWVudDogZnVuY3Rpb24odHJlZUVsZW1lbnQsIHN1aXRlLCBpZCkKKyAg
ICB7CisgICAgICAgIHZhciBzdWl0ZUVsZW1lbnQgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVF
bGVtZW50KCJsaSIsIHt9LCB0cmVlRWxlbWVudCk7CisgICAgICAgIHZhciBleHBhbmQgPSBEb2N1
bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJpbnB1dCIsIHsgdHlwZTogImNoZWNrYm94Iiwg
IGNsYXNzOiAiZXhwYW5kLWJ1dHRvbiIsIGlkOiBpZCB9LCBzdWl0ZUVsZW1lbnQpOworICAgICAg
ICB2YXIgbGFiZWwgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJsYWJlbCIsIHsg
Y2xhc3M6ICJ0cmVlLWxhYmVsIiwgZm9yOiBpZCB9LCBzdWl0ZUVsZW1lbnQpOwogCi1mdW5jdGlv
biB1cGRhdGVTdWl0ZVNlbGVjdGlvbihldmVudCkgewotICAgIHZhciBzZWxlY3RlZCA9IGV2ZW50
LnRhcmdldC5jaGVja2VkOwotICAgIHZhciB0ZXN0Q2hlY2tib3hlcyA9IGV2ZW50LnRhcmdldC5w
YXJlbnROb2RlLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcigidWwiKS5xdWVyeVNlbGVjdG9yQWxs
KCJpbnB1dCIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENoZWNrYm94ZXMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgdGVzdENoZWNrYm94ZXNbaV0uY2hlY2tlZCA9IHNlbGVjdGVkOwot
ICAgIH0KLX0KKyAgICAgICAgdmFyIHN1aXRlQ2hlY2tib3ggPSBEb2N1bWVudEV4dGVuc2lvbi5j
cmVhdGVFbGVtZW50KCJpbnB1dCIsIHsgdHlwZTogImNoZWNrYm94IiB9LCBsYWJlbCk7CisgICAg
ICAgIHN1aXRlQ2hlY2tib3guc3VpdGUgPSBzdWl0ZTsKKyAgICAgICAgc3VpdGVDaGVja2JveC5v
bmNoYW5nZSA9IHRoaXMuX29uQ2hhbmdlU3VpdGVDaGVja2JveC5iaW5kKHRoaXMpOworICAgICAg
ICBzdWl0ZUNoZWNrYm94LnRlc3RzRWxlbWVudHMgPSBbXTsKIAotZnVuY3Rpb24gdXBkYXRlVGVz
dFNlbGVjdGlvbihldmVudCkgewotICAgIHZhciB0ZXN0c0xpc3QgPSBldmVudC50YXJnZXQucGFy
ZW50Tm9kZS5wYXJlbnROb2RlLnBhcmVudE5vZGU7Ci0gICAgdmFyIHN1aXRlQ2hlY2tib3ggPSB0
ZXN0c0xpc3QucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCJsYWJlbCA+IGlucHV0Iik7CisgICAg
ICAgIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiArIHN1aXRl
Lm5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHN1aXRlRWxlbWVudDsKKyAgICB9LAogCi0gICAgdXBk
YXRlU3VpdGVDaGVja2JveCh0ZXN0c0xpc3QsIHN1aXRlQ2hlY2tib3gpOwotfQorICAgIF9jcmVh
dGVUZXN0RWxlbWVudDogZnVuY3Rpb24obGlzdEVsZW1lbnQsIHRlc3QsIHN1aXRlQ2hlY2tib3gp
CisgICAgeworICAgICAgICB2YXIgdGVzdEVsZW1lbnQgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVh
dGVFbGVtZW50KCJsaSIsIHt9LCBsaXN0RWxlbWVudCk7CisgICAgICAgIHZhciBzcGFuID0gRG9j
dW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCgic3BhbiIsIHsgY2xhc3M6ICJ0cmVlLWxhYmVs
IiB9LCB0ZXN0RWxlbWVudCk7CisKKyAgICAgICAgdmFyIHRlc3RDaGVja2JveCA9IERvY3VtZW50
RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoImlucHV0IiwgeyB0eXBlOiAiY2hlY2tib3giIH0sIHNw
YW4pOworICAgICAgICB0ZXN0Q2hlY2tib3gudGVzdCA9IHRlc3Q7CisgICAgICAgIHRlc3RDaGVj
a2JveC5vbmNoYW5nZSA9IHRoaXMuX29uQ2hhbmdlVGVzdENoZWNrYm94LmJpbmQodGhpcyk7Cisg
ICAgICAgIHRlc3RDaGVja2JveC5zdWl0ZUNoZWNrYm94ID0gc3VpdGVDaGVja2JveDsKKworICAg
ICAgICBzdWl0ZUNoZWNrYm94LnRlc3RzRWxlbWVudHMucHVzaCh0ZXN0RWxlbWVudCk7CisgICAg
ICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiICsgdGVzdC5u
YW1lKSk7CisgICAgICAgIERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoImlucHV0Iiwg
eyB0eXBlOiAibnVtYmVyIiB9LCB0ZXN0RWxlbWVudCk7CisgICAgICAgIHJldHVybiB0ZXN0RWxl
bWVudDsKKyAgICB9LAogCi1mdW5jdGlvbiB1cGRhdGVTdWl0ZUNoZWNrYm94KHRlc3RzTGlzdCwg
c3VpdGVDaGVja2JveCkgewotICAgIHZhciBudW1iZXJFbmFibGVkVGVzdHMgPSAwOwotICAgIHZh
ciB0ZXN0Q2hlY2tib3hlcyA9IHRlc3RzTGlzdC5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCIpOwot
ICAgIHZhciB0b3RhbENoZWNrYm94ZXMgPSB0ZXN0Q2hlY2tib3hlcy5sZW5ndGg7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0b3RhbENoZWNrYm94ZXM7ICsraSkgewotICAgICAgICBpZiAodGVz
dENoZWNrYm94ZXNbaV0uY2hlY2tlZCkKLSAgICAgICAgICAgICsrbnVtYmVyRW5hYmxlZFRlc3Rz
OwotICAgIH0KLSAgICBzdWl0ZUNoZWNrYm94LmNoZWNrZWQgPSBudW1iZXJFbmFibGVkVGVzdHMg
PiAwOwotICAgIHN1aXRlQ2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IG51bWJlckVuYWJsZWRUZXN0
cyA+IDAgJiYgbnVtYmVyRW5hYmxlZFRlc3RzIDwgdG90YWxDaGVja2JveGVzOwotfQorICAgIGNy
ZWF0ZUVsZW1lbnRzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgdHJlZUVsZW1lbnQg
PSB0aGlzLl90cmVlRWxlbWVudCgpOworCisgICAgICAgIFN1aXRlcy5mb3JFYWNoKGZ1bmN0aW9u
KHN1aXRlLCBpbmRleCkgeworICAgICAgICAgICAgdmFyIHN1aXRlRWxlbWVudCA9IHRoaXMuX2Ny
ZWF0ZVN1aXRlRWxlbWVudCh0cmVlRWxlbWVudCwgc3VpdGUsICJzdWl0ZS0iICsgaW5kZXgpOwor
ICAgICAgICAgICAgdmFyIGxpc3RFbGVtZW50ID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxl
bWVudCgidWwiLCB7fSwgc3VpdGVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzdWl0ZUNoZWNr
Ym94ID0gdGhpcy5fY2hlY2tib3hFbGVtZW50KHN1aXRlRWxlbWVudCk7CisKKyAgICAgICAgICAg
IHN1aXRlLnRlc3RzLmZvckVhY2goZnVuY3Rpb24odGVzdCkgeworICAgICAgICAgICAgICAgIHZh
ciB0ZXN0RWxlbWVudCA9IHRoaXMuX2NyZWF0ZVRlc3RFbGVtZW50KGxpc3RFbGVtZW50LCB0ZXN0
LCBzdWl0ZUNoZWNrYm94KTsKKyAgICAgICAgICAgIH0sIHRoaXMpOworICAgICAgICB9LCB0aGlz
KTsKKyAgICB9LAorICAgIAorICAgIHVwZGF0ZUVkaXRzRWxlbWVudHNTdGF0ZTogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdmFyIGVkaXRzRWxlbWVudHMgPSB0aGlzLl9lZGl0c0VsZW1lbnRz
KCk7CisgICAgICAgIHZhciBzaG93ID0gIW9wdGlvbnNNYW5hZ2VyLl9hZGFwdGl2ZVRlc3RFbGVt
ZW50KCkuY2hlY2tlZDsKKyAgICAgICAgCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWRp
dHNFbGVtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGVkaXRFbGVtZW50ID0g
ZWRpdHNFbGVtZW50c1tpXTsKKyAgICAgICAgICAgIGlmIChzaG93KQorICAgICAgICAgICAgICAg
IGVkaXRFbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgZWRpdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQi
KTsKKyAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgdXBkYXRlVUlGcm9tTG9jYWxTdG9yYWdl
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc3VpdGVzRWxlbWVudHMgPSB0aGlzLl9z
dWl0ZXNFbGVtZW50cygpOworICAgICAgICAKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBz
dWl0ZXNFbGVtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHN1aXRlRWxlbWVu
dCA9IHN1aXRlc0VsZW1lbnRzW2ldOworICAgICAgICAgICAgdmFyIHN1aXRlQ2hlY2tib3ggPSB0
aGlzLl9jaGVja2JveEVsZW1lbnQoc3VpdGVFbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBzdWl0
ZSA9IHN1aXRlQ2hlY2tib3guc3VpdGU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1aXRl
Q2hlY2tib3gudGVzdHNFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RFbGVtZW50KSB7Cisg
ICAgICAgICAgICAgICAgdmFyIHRlc3RDaGVja2JveCA9IHRoaXMuX2NoZWNrYm94RWxlbWVudCh0
ZXN0RWxlbWVudCk7CisgICAgICAgICAgICAgICAgdmFyIHRlc3RFZGl0ID0gdGhpcy5fZWRpdEVs
ZW1lbnQodGVzdEVsZW1lbnQpOworICAgICAgICAgICAgICAgIHZhciB0ZXN0ID0gdGVzdENoZWNr
Ym94LnRlc3Q7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdmFyIHN0ciA9IGxv
Y2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuX2xvY2FsU3RvcmFnZU5hbWVGb3JUZXN0KHN1aXRlLm5h
bWUsIHRlc3QubmFtZSkpOworICAgICAgICAgICAgICAgIGlmIChzdHIgPT09IG51bGwpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IEpT
T04ucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2hlY2tib3guY2hlY2tlZCA9IHZh
bHVlLmNoZWNrZWQ7CisgICAgICAgICAgICAgICAgdGVzdEVkaXQudmFsdWUgPSB2YWx1ZS5jb21w
bGV4aXR5OworICAgICAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZVN1aXRlQ2hlY2tib3hTdGF0ZShzdWl0ZUNoZWNrYm94KTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgdGhpcy5fdXBkYXRlU3RhcnRCdXR0b25TdGF0ZSgpOworICAgIH0sCisKKyAgICB1
cGRhdGVMb2NhbFN0b3JhZ2VGcm9tVUk6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBz
dWl0ZXNFbGVtZW50cyA9IHRoaXMuX3N1aXRlc0VsZW1lbnRzKCk7CisgICAgICAgIHZhciBzdWl0
ZXMgPSBbXTsKKyAgICAgICAgCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3VpdGVzRWxl
bWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBzdWl0ZUVsZW1lbnQgPSBzdWl0
ZXNFbGVtZW50c1tpXTsKKyAgICAgICAgICAgIHZhciBzdWl0ZUNoZWNrYm94ID0gdGhpcy5fY2hl
Y2tib3hFbGVtZW50KHN1aXRlRWxlbWVudCk7CisgICAgICAgICAgICB2YXIgc3VpdGUgPSBzdWl0
ZUNoZWNrYm94LnN1aXRlOworCisgICAgICAgICAgICB2YXIgdGVzdHMgPSBbXTsKKyAgICAgICAg
ICAgIHN1aXRlQ2hlY2tib3gudGVzdHNFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RFbGVt
ZW50KSB7CisgICAgICAgICAgICAgICAgdmFyIHRlc3RDaGVja2JveCA9IHRoaXMuX2NoZWNrYm94
RWxlbWVudCh0ZXN0RWxlbWVudCk7CisgICAgICAgICAgICAgICAgdmFyIHRlc3RFZGl0ID0gdGhp
cy5fZWRpdEVsZW1lbnQodGVzdEVsZW1lbnQpOworICAgICAgICAgICAgICAgIHZhciB0ZXN0ID0g
dGVzdENoZWNrYm94LnRlc3Q7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYg
KHRlc3RDaGVja2JveC5jaGVja2VkKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3QuY29tcGxl
eGl0eSA9IHRlc3RFZGl0LnZhbHVlOworICAgICAgICAgICAgICAgICAgICB0ZXN0cy5wdXNoKHRl
c3QpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHsg
Y2hlY2tlZDogdGVzdENoZWNrYm94LmNoZWNrZWQsIGNvbXBsZXhpdHk6IHRlc3RFZGl0LnZhbHVl
IH07CisgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5fbG9jYWxTdG9y
YWdlTmFtZUZvclRlc3Qoc3VpdGUubmFtZSwgdGVzdC5uYW1lKSwgSlNPTi5zdHJpbmdpZnkodmFs
dWUpKTsKKyAgICAgICAgICAgIH0sIHRoaXMpOworCisgICAgICAgICAgICBpZiAodGVzdHMubGVu
Z3RoKQorICAgICAgICAgICAgICAgIHN1aXRlcy5wdXNoKG5ldyBTdWl0ZShzdWl0ZUNoZWNrYm94
LnN1aXRlLm5hbWUsIHRlc3RzKSk7CisgICAgICAgIH0KIAotZnVuY3Rpb24gbG9jYWxTdG9yYWdl
TmFtZUZvclRlc3Qoc3VpdGUsIHRlc3QpIHsKLSAgICByZXR1cm4gc3VpdGUubmFtZSArICIvIiAr
IHRlc3QubmFtZTsKKyAgICAgICAgcmV0dXJuIHN1aXRlczsKKyAgICB9LAorICAgIAorICAgIHVw
ZGF0ZUxvY2FsU3RvcmFnZUZyb21KU09OOiBmdW5jdGlvbihpdGVyYXRpb25SZXN1bHRzKQorICAg
IHsKKyAgICAgICAgZm9yICh2YXIgc3VpdGVOYW1lIGluIGl0ZXJhdGlvblJlc3VsdHNbU3RyaW5n
c1siSlNPTl9SRVNVTFRTIl1bMV1dKSB7CisgICAgICAgICAgICB2YXIgc3VpdGVSZXN1bHRzID0g
aXRlcmF0aW9uUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsxXV1bc3VpdGVOYW1lXTsK
KworICAgICAgICAgICAgZm9yICh2YXIgdGVzdE5hbWUgaW4gc3VpdGVSZXN1bHRzW1N0cmluZ3Nb
IkpTT05fUkVTVUxUUyJdWzJdXSkgeworICAgICAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0cyA9
IHN1aXRlUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsyXV1bdGVzdE5hbWVdOworICAg
ICAgICAgICAgICAgIHZhciBkYXRhID0gdGVzdFJlc3VsdHNbU3RyaW5nc1siSlNPTl9FWFBFUklN
RU5UUyJdWzBdXQorICAgICAgICAgICAgICAgIHZhciBjb21wbGV4aXR5ID0gTWF0aC5yb3VuZChk
YXRhW1N0cmluZ3NbIkpTT05fTUVBU1VSRU1FTlRTIl1bMF1dKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB7IGNoZWNrZWQ6IHRydWUsIGNvbXBsZXhpdHk6
IGNvbXBsZXhpdHkgfTsKKyAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlz
Ll9sb2NhbFN0b3JhZ2VOYW1lRm9yVGVzdChzdWl0ZU5hbWUsIHRlc3ROYW1lKSwgSlNPTi5zdHJp
bmdpZnkodmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIH0KIAotZnVu
Y3Rpb24gcG9wdWxhdGVTZXR0aW5ncygpIHsKLSAgICB2YXIgc3VpdGVzRGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN1aXRlcyIpOword2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIgPQor
eworICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHNlY3Rpb25zTWFu
YWdlci5zZXR1cFNlY3Rpb25TdHlsZSgpOworICAgICAgICBvcHRpb25zTWFuYWdlci51cGRhdGVV
SUZyb21Mb2NhbFN0b3JhZ2UoKTsKKyAgICAgICAgc3VpdGVzTWFuYWdlci5jcmVhdGVFbGVtZW50
cygpOworICAgICAgICBzdWl0ZXNNYW5hZ2VyLnVwZGF0ZVVJRnJvbUxvY2FsU3RvcmFnZSgpOwor
ICAgICAgICBzdWl0ZXNNYW5hZ2VyLnVwZGF0ZUVkaXRzRWxlbWVudHNTdGF0ZSgpOworICAgIH0s
CiAKLSAgICB2YXIgc3VpdGVzTGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7Ci0g
ICAgc3VpdGVzRGl2LmFwcGVuZENoaWxkKHN1aXRlc0xpc3QpOworICAgIG9uQ2hhbmdlQWRhcHRp
dmVUZXN0Q2hlY2tib3g6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHN1aXRlc01hbmFnZXIu
dXBkYXRlRWRpdHNFbGVtZW50c1N0YXRlKCk7CisgICAgfSwKIAotICAgIFN1aXRlcy5mb3JFYWNo
KGZ1bmN0aW9uKHN1aXRlKSB7Ci0gICAgICAgIHZhciBzdWl0ZUl0ZW0gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJsaSIpOwotICAgICAgICBzdWl0ZXNMaXN0LmFwcGVuZENoaWxkKHN1aXRlSXRl
bSk7CisgICAgX3J1bkJlbmNobWFyazogZnVuY3Rpb24oc3VpdGVzLCBvcHRpb25zKQorICAgIHsK
KyAgICAgICAgYmVuY2htYXJrUnVubmVyQ2xpZW50LmluaXRpYWxpemUoc3VpdGVzLCBvcHRpb25z
KTsKKyAgICAgICAgdmFyIGZyYW1lQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
I3J1bm5pbmcgPiAjcnVubmluZy10ZXN0Iik7CisgICAgICAgIHZhciBydW5uZXIgPSBuZXcgQmVu
Y2htYXJrUnVubmVyKHN1aXRlcywgZnJhbWVDb250YWluZXIgfHwgZG9jdW1lbnQuYm9keSwgYmVu
Y2htYXJrUnVubmVyQ2xpZW50KTsKKyAgICAgICAgcnVubmVyLnJ1bk11bHRpcGxlSXRlcmF0aW9u
cygpOworICAgIH0sCiAKLSAgICAgICAgdmFyIHN1aXRlTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJsYWJlbCIpOwotICAgICAgICBzdWl0ZUl0ZW0uYXBwZW5kQ2hpbGQoc3VpdGVMYWJl
bCk7CisgICAgc3RhcnRUZXN0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgb3B0aW9u
cyA9IG9wdGlvbnNNYW5hZ2VyLnVwZGF0ZUxvY2FsU3RvcmFnZUZyb21VSSgpOworICAgICAgICB2
YXIgc3VpdGVzID0gc3VpdGVzTWFuYWdlci51cGRhdGVMb2NhbFN0b3JhZ2VGcm9tVUkoKTsKKyAg
ICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNldHVwUnVubmluZ1NlY3Rpb25TdHlsZShvcHRpb25zKTsK
KyAgICAgICAgdGhpcy5fcnVuQmVuY2htYXJrKHN1aXRlcywgb3B0aW9ucyk7CisgICAgICAgIHNl
Y3Rpb25zTWFuYWdlci5zaG93U2VjdGlvbigicnVubmluZyIpOworICAgIH0sCisgICAgCisgICAg
c2hvd1Jlc3VsdHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHNlY3Rpb25zTWFuYWdlci5z
aG93U2NvcmUoInJlc3VsdHMiLCBTdHJpbmdzWyJURVhUX1JFU1VMVFMiXVswXSk7CisgICAgICAg
IHNlY3Rpb25zTWFuYWdlci5zaG93U2VjdGlvbigicmVzdWx0cyIsIHRydWUpOworICAgIH0sCisg
ICAgCisgICAgc2hvd0pzb246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHNlY3Rpb25zTWFu
YWdlci5zaG93U2NvcmUoImpzb24iLCBTdHJpbmdzWyJURVhUX1JFU1VMVFMiXVswXSk7CisgICAg
ICAgIHNlY3Rpb25zTWFuYWdlci5zaG93U2VjdGlvbigianNvbiIsIHRydWUpOworICAgIH0sCisg
ICAgCisgICAgc2hvd1Rlc3RHcmFwaDogZnVuY3Rpb24odGVzdE5hbWUsIGF4ZXMsIHNhbXBsZXMs
IHNhbXBsaW5nVGltZU9mZnNldCkKKyAgICB7CisgICAgICAgIHNlY3Rpb25zTWFuYWdlci5zaG93
VGVzdE5hbWUoInRlc3QtZ3JhcGgiLCBTdHJpbmdzWyJURVhUX1JFU1VMVFMiXVsxXSwgdGVzdE5h
bWUpOworICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24oInRlc3QtZ3JhcGgiLCB0
cnVlKTsKKyAgICAgICAgZ3JhcGgoInNlY3Rpb24jdGVzdC1ncmFwaCA+IGRhdGEiLCBuZXcgSW5z
ZXRzKDIwLCA1MCwgMjAsIDUwKSwgYXhlcywgc2FtcGxlcywgc2FtcGxpbmdUaW1lT2Zmc2V0KTsK
KyAgICB9LAogCi0gICAgICAgIHZhciBzdWl0ZUNoZWNrYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKLSAgICAgICAgc3VpdGVDaGVja2JveC5zZXRBdHRyaWJ1dGUoInR5cGUi
LCAiY2hlY2tib3giKTsKLSAgICAgICAgc3VpdGVDaGVja2JveC5zdWl0ZSA9IHN1aXRlOwotICAg
ICAgICBzdWl0ZUNoZWNrYm94Lm9uY2hhbmdlID0gdXBkYXRlU3VpdGVTZWxlY3Rpb247Ci0gICAg
ICAgIHN1aXRlTGFiZWwuYXBwZW5kQ2hpbGQoc3VpdGVDaGVja2JveCk7Ci0gICAgICAgIHN1aXRl
TGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiICsgc3VpdGUubmFt
ZSkpOwotCi0gICAgICAgIHZhciB0ZXN0c0xpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1
bCIpOwotICAgICAgICBzdWl0ZUl0ZW0uYXBwZW5kQ2hpbGQodGVzdHNMaXN0KTsKLQotICAgICAg
ICBzdWl0ZS50ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICAgIHZhciB0
ZXN0SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgICAgICAgICB0ZXN0
c0xpc3QuYXBwZW5kQ2hpbGQodGVzdEl0ZW0pOwotCi0gICAgICAgICAgICB2YXIgdGVzdExhYmVs
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTsKLSAgICAgICAgICAgIHRlc3RJdGVt
LmFwcGVuZENoaWxkKHRlc3RMYWJlbCk7Ci0KLSAgICAgICAgICAgIHZhciB0ZXN0Q2hlY2tib3gg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotICAgICAgICAgICAgdGVzdENoZWNr
Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsICJjaGVja2JveCIpOwotICAgICAgICAgICAgdGVzdENo
ZWNrYm94LnRlc3QgPSB0ZXN0OwotICAgICAgICAgICAgdGVzdENoZWNrYm94Lm9uY2hhbmdlID0g
dXBkYXRlVGVzdFNlbGVjdGlvbjsKLSAgICAgICAgICAgIGlmICgrbG9jYWxTdG9yYWdlLmdldEl0
ZW0obG9jYWxTdG9yYWdlTmFtZUZvclRlc3Qoc3VpdGUsIHRlc3QpKSkKLSAgICAgICAgICAgICAg
ICB0ZXN0Q2hlY2tib3guY2hlY2tlZCA9IHRydWU7Ci0gICAgICAgICAgICB0ZXN0TGFiZWwuYXBw
ZW5kQ2hpbGQodGVzdENoZWNrYm94KTsKLSAgICAgICAgICAgIHRlc3RMYWJlbC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIgKyB0ZXN0Lm5hbWUpKTsKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgdXBkYXRlU3VpdGVDaGVja2JveCh0ZXN0c0xpc3QsIHN1aXRlQ2hlY2tib3gp
OwotICAgIH0pOwotCi0gICAgdmFyIGludGVydmFsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oInRl
c3QtaW50ZXJ2YWwiKTsKLSAgICBpZiAoaW50ZXJ2YWwpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3QtaW50ZXJ2YWwiKS52YWx1ZSA9IGludGVydmFsOworICAgIHNob3dU
ZXN0SlNPTjogZnVuY3Rpb24odGVzdE5hbWUsIGpzb24pCisgICAgeworICAgICAgICBzZWN0aW9u
c01hbmFnZXIuc2hvd1Rlc3ROYW1lKCJ0ZXN0LWpzb24iLCBTdHJpbmdzWyJURVhUX1JFU1VMVFMi
XVsxXSwgdGVzdE5hbWUpOworICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd0pTT04oInRlc3Qt
anNvbiIsIGpzb24pOworICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24oInRlc3Qt
anNvbiIsIHRydWUpOwogICAgIH0KIH0KLWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNv
bnRlbnRMb2FkZWQiLCBpbml0aWFsaXplKTsKKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
RE9NQ29udGVudExvYWRlZCIsIGJlbmNobWFya0NvbnRyb2xsZXIuaW5pdGlhbGl6ZSgpKTsKZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2Jl
bmNobWFyay1ydW5uZXIuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jl
c291cmNlcy9iZW5jaG1hcmstcnVubmVyLmpzCmluZGV4IDEyNzM5NjRlMmE5NzY0YTJhZDgzODM1
NDc4NDdiYWUxODliYWMzMDEuLjRmNDgzNDUyNDMzNWI3NTgwNzZkZWE0MDY4ZTYxNzg2MTk1Nzgx
M2UgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3Vy
Y2VzL2JlbmNobWFyay1ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3J1bm5lci9yZXNvdXJjZXMvYmVuY2htYXJrLXJ1bm5lci5qcwpAQCAtNTAsMTAgKzUwLDExIEBA
IEJlbmNobWFya1J1bm5lclN0YXRlLnByb3RvdHlwZS5wcmVwYXJlQ3VycmVudFRlc3QgPSBmdW5j
dGlvbihydW5uZXIsIGZyYW1lKQogICAgIHJldHVybiBwcm9taXNlOwogfQogCi1mdW5jdGlvbiBC
ZW5jaG1hcmtSdW5uZXIoc3VpdGVzLCBjbGllbnQpCitmdW5jdGlvbiBCZW5jaG1hcmtSdW5uZXIo
c3VpdGVzLCBmcmFtZUNvbnRhaW5lciwgY2xpZW50KQogewogICAgIHRoaXMuX3N1aXRlcyA9IHN1
aXRlczsKICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7CisgICAgdGhpcy5fZnJhbWVDb250YWlu
ZXIgPSBmcmFtZUNvbnRhaW5lcjsKIH0KIAogQmVuY2htYXJrUnVubmVyLnByb3RvdHlwZS53YWl0
Rm9yRWxlbWVudCA9IGZ1bmN0aW9uKHNlbGVjdG9yKQpAQCAtNzIsMjUgKzczLDE1IEBAIEJlbmNo
bWFya1J1bm5lci5wcm90b3R5cGUud2FpdEZvckVsZW1lbnQgPSBmdW5jdGlvbihzZWxlY3RvcikK
ICAgICByZXR1cm4gcHJvbWlzZTsKIH0KIAotQmVuY2htYXJrUnVubmVyLnByb3RvdHlwZS5fYXBw
ZW5kRnJhbWUgPSBmdW5jdGlvbihzcmMpCitCZW5jaG1hcmtSdW5uZXIucHJvdG90eXBlLl9hcHBl
bmRGcmFtZSA9IGZ1bmN0aW9uKCkKIHsKICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKICAgICBmcmFtZS5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsICJu
byIpOwogCi0gICAgdmFyIG1hcmdpbkxlZnQgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmJvZHkpLm1hcmdpbkxlZnQpOwotICAgIHZhciBtYXJnaW5Ub3AgPSBwYXJzZUludChn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLm1hcmdpblRvcCk7Ci0gICAgaWYgKHdpbmRv
dy5pbm5lcldpZHRoID4gODAwICsgbWFyZ2luTGVmdCAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPiA2
MDAgKyBtYXJnaW5Ub3ApIHsKLSAgICAgICAgZnJhbWUuc3R5bGUubGVmdCA9IG1hcmdpbkxlZnQg
KyAicHgiOwotICAgICAgICBmcmFtZS5zdHlsZS50b3AgPSBtYXJnaW5Ub3AgKyAicHgiOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGZyYW1lLnN0eWxlLmxlZnQgPSAiMHB4IjsKLSAgICAgICAgZnJh
bWUuc3R5bGUudG9wID0gIjBweCI7Ci0gICAgfQotCiAgICAgaWYgKHRoaXMuX2NsaWVudCAmJiB0
aGlzLl9jbGllbnQud2lsbEFkZFRlc3RGcmFtZSkKICAgICAgICAgdGhpcy5fY2xpZW50LndpbGxB
ZGRUZXN0RnJhbWUoZnJhbWUpOwogCi0gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZnJh
bWUsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CisgICAgdGhpcy5fZnJhbWVDb250YWluZXIu
aW5zZXJ0QmVmb3JlKGZyYW1lLCB0aGlzLl9mcmFtZUNvbnRhaW5lci5maXJzdENoaWxkKTsKICAg
ICB0aGlzLl9mcmFtZSA9IGZyYW1lOwogICAgIHJldHVybiBmcmFtZTsKIH0KQEAgLTE2NywyMSAr
MTU4LDIxIEBAIEJlbmNobWFya1J1bm5lci5wcm90b3R5cGUucnVuQWxsU3RlcHMgPSBmdW5jdGlv
bihzdGFydGluZ1N0YXRlKQogICAgIH0pOwogfQogCi1CZW5jaG1hcmtSdW5uZXIucHJvdG90eXBl
LnJ1bk11bHRpcGxlSXRlcmF0aW9ucyA9IGZ1bmN0aW9uKGl0ZXJhdGlvbkNvdW50KQorQmVuY2ht
YXJrUnVubmVyLnByb3RvdHlwZS5ydW5NdWx0aXBsZUl0ZXJhdGlvbnMgPSBmdW5jdGlvbigpCiB7
CiAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgIHZhciBjdXJyZW50SXRlcmF0aW9uID0gMDsKIAog
ICAgIHRoaXMuX3J1bk5leHRJdGVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgY3VycmVu
dEl0ZXJhdGlvbisrOwotICAgICAgICBpZiAoY3VycmVudEl0ZXJhdGlvbiA8IGl0ZXJhdGlvbkNv
dW50KQorICAgICAgICBpZiAoY3VycmVudEl0ZXJhdGlvbiA8IHNlbGYuX2NsaWVudC5pdGVyYXRp
b25Db3VudCkKICAgICAgICAgICAgIHNlbGYucnVuQWxsU3RlcHMoKTsKICAgICAgICAgZWxzZSBp
ZiAodGhpcy5fY2xpZW50ICYmIHRoaXMuX2NsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9uKQog
ICAgICAgICAgICAgc2VsZi5fY2xpZW50LmRpZEZpbmlzaExhc3RJdGVyYXRpb24oKTsKICAgICB9
CiAKICAgICBpZiAoc2VsZi5fY2xpZW50ICYmIHNlbGYuX2NsaWVudC53aWxsU3RhcnRGaXJzdEl0
ZXJhdGlvbikKLSAgICAgICAgc2VsZi5fY2xpZW50LndpbGxTdGFydEZpcnN0SXRlcmF0aW9uKGl0
ZXJhdGlvbkNvdW50KTsKKyAgICAgICAgc2VsZi5fY2xpZW50LndpbGxTdGFydEZpcnN0SXRlcmF0
aW9uKCk7CiAKICAgICBzZWxmLnJ1bkFsbFN0ZXBzKCk7CiB9CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9ncmFwaC5qcyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2dyYXBoLmpzCmluZGV4IGQwYjEw
MzQxMTQ2Mzc1OWMxNGY2N2YzN2M4ZGJiM2JmZGUwZmNmODAuLjAyMWY1ZjVkNjY5ZGUwMGZlZjM5
ZDJlOTJjY2IzOWJjMDQ2NTVjMWMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9ydW5uZXIvcmVzb3VyY2VzL2dyYXBoLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2dyYXBoLmpzCkBAIC0xLDcgKzEsOSBAQAotZnVuY3Rp
b24gZ3JhcGgoc2VsZWN0b3IsIHNpemUsIG1hcmdpbnMsIGF4ZXMsIHNhbXBsZXMsIHNhbXBsaW5n
VGltZU9mZnNldCkKK2Z1bmN0aW9uIGdyYXBoKHNlbGVjdG9yLCBtYXJnaW5zLCBheGVzLCBzYW1w
bGVzLCBzYW1wbGluZ1RpbWVPZmZzZXQpCiB7CiAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKLSAgICBlbGVtZW50LnRleHRDb250ZW50ID0gbnVsbDsK
KyAgICBlbGVtZW50LmlubmVySFRNTCA9ICcnOworCisgICAgdmFyIHNpemUgPSBQb2ludC5lbGVt
ZW50Q2xpZW50U2l6ZShlbGVtZW50KS5zdWJ0cmFjdChtYXJnaW5zLnNpemUpOwogCiAgICAgdmFy
IHggPSBkMy5zY2FsZS5saW5lYXIoKQogICAgICAgICAgICAgLnJhbmdlKFswLCBzaXplLndpZHRo
XSkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2lu
Zy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXN2Zy1pbWFnZXMuanMgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9ib3Vu
Y2luZy1zdmctaW1hZ2VzLmpzCmluZGV4IGNmZTJjNDAyNzVmNWZiZjM0ZDI2MmNlNzA4OWZiODAy
ZGQxOGQ3ODQuLmM2OGJjZTBhMWJmY2NmNDA3ZjkxYjExZDhhMDM0NjE2MTgyN2FjYTcgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNs
ZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXN2Zy1pbWFnZXMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmct
c3ZnLWltYWdlcy5qcwpAQCAtNSw3ICs1LDcgQEAgZnVuY3Rpb24gQm91bmNpbmdTdmdJbWFnZShz
dGFnZSkKICAgICAKICAgICB2YXIgYXR0cnMgPSB7IHg6IDAsIHk6IDAsIHdpZHRoOiB0aGlzLl9z
aXplLngsIGhlaWdodDogdGhpcy5fc2l6ZS55IH07CiAgICAgdmFyIHhsaW5rQXR0cnMgPSB7IGhy
ZWY6IHN0YWdlLmltYWdlU3JjIH07Ci0gICAgdGhpcy5lbGVtZW50ID0gVXRpbGl0aWVzLmNyZWF0
ZVN2Z0VsZW1lbnQoImltYWdlIiwgYXR0cnMsIHhsaW5rQXR0cnMsIHN0YWdlLmVsZW1lbnQpOwor
ICAgIHRoaXMuZWxlbWVudCA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZVN2Z0VsZW1lbnQoImlt
YWdlIiwgYXR0cnMsIHhsaW5rQXR0cnMsIHN0YWdlLmVsZW1lbnQpOwogICAgIHRoaXMuX21vdmUo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2Jv
dW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmctc3ZnLXBhcnRpY2xlcy5qcyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3Vy
Y2VzL2JvdW5jaW5nLXN2Zy1wYXJ0aWNsZXMuanMKaW5kZXggMmQyOWJmNDBhNWE1YTdmMDBhYzJj
ZmM3ZTAwZjVlNjRhNTA4NjNhMS4uNjljNjc1NDE1Yjg5YmIzOTJhZTVhYWJkNTUxMWQ5ZWZkMjA2
NDZhZCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5j
aW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmctc3ZnLXBhcnRpY2xlcy5qcworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291
cmNlcy9ib3VuY2luZy1zdmctcGFydGljbGVzLmpzCkBAIC0zOSw3ICszOSw3IEBAIEJvdW5jaW5n
U3ZnUGFydGljbGVzU3RhZ2UucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gQm91bmNpbmdTdmdQYXJ0
aWNsZXNTdGFnZTsKIAogQm91bmNpbmdTdmdQYXJ0aWNsZXNTdGFnZS5wcm90b3R5cGUuX2NyZWF0
ZURlZnMgPSBmdW5jdGlvbigpCiB7Ci0gICAgcmV0dXJuIFV0aWxpdGllcy5jcmVhdGVTdmdFbGVt
ZW50KCJkZWZzIiwge30sIHt9LCB0aGlzLmVsZW1lbnQpOworICAgIHJldHVybiBEb2N1bWVudEV4
dGVuc2lvbi5jcmVhdGVTdmdFbGVtZW50KCJkZWZzIiwge30sIHt9LCB0aGlzLmVsZW1lbnQpOwog
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiBCb3VuY2luZ1N2Z1BhcnRpY2xlc1N0YWdlLnByb3RvdHlwZS5fZW5zdXJlRGVm
c0lzQ3JlYXRlZCA9IGZ1bmN0aW9uKCkKQEAgLTUwLDEwICs1MCwxMCBAQCBCb3VuY2luZ1N2Z1Bh
cnRpY2xlc1N0YWdlLnByb3RvdHlwZS5fZW5zdXJlRGVmc0lzQ3JlYXRlZCA9IGZ1bmN0aW9uKCkK
IEJvdW5jaW5nU3ZnUGFydGljbGVzU3RhZ2UucHJvdG90eXBlLl9jcmVhdGVDbGlwU3RhciA9IGZ1
bmN0aW9uKCkKIHsKICAgICB2YXIgYXR0cnMgPSB7IGlkOiAic3Rhci1jbGlwIiwgY2xpcFBhdGhV
bml0czogIm9iamVjdEJvdW5kaW5nQm94IiB9OwotICAgIHZhciBjbGlwUGF0aCAgPSBVdGlsaXRp
ZXMuY3JlYXRlU3ZnRWxlbWVudCgiY2xpcFBhdGgiLCBhdHRycywge30sIHRoaXMuX2Vuc3VyZURl
ZnNJc0NyZWF0ZWQoKSk7CisgICAgdmFyIGNsaXBQYXRoICA9IERvY3VtZW50RXh0ZW5zaW9uLmNy
ZWF0ZVN2Z0VsZW1lbnQoImNsaXBQYXRoIiwgYXR0cnMsIHt9LCB0aGlzLl9lbnN1cmVEZWZzSXND
cmVhdGVkKCkpOwogCiAgICAgYXR0cnMgPSB7IGQ6ICJNLjUwLDBMLjM4LC4zOEwwLC4zOEwuMzAs
LjYwTC4xOCwxTC41MCwuNzVMLjgyLDFMLjcwLC42MEwxLC4zOEwuNjIsLjM4eiIgfTsKLSAgICBV
dGlsaXRpZXMuY3JlYXRlU3ZnRWxlbWVudCgicGF0aCIsIGF0dHJzLCB7fSwgY2xpcFBhdGgpOwor
ICAgIERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZVN2Z0VsZW1lbnQoInBhdGgiLCBhdHRycywge30s
IGNsaXBQYXRoKTsKICAgICByZXR1cm4gY2xpcFBhdGg7CiB9CiAKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2Vz
L2JvdW5jaW5nLXN2Zy1zaGFwZXMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy1zdmctc2hhcGVzLmpzCmlu
ZGV4IDE5ODAxMTBhMjVkYmYyYWRiNGJiMzg1ZjU1NGNjYTA1MjRlNjhjODUuLjc2ZGM5ZWU1NTM3
MDk0NzYzMTdlYzk1NDQ0NDkwYjQ4NDg5NzI2ZjEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5n
LXN2Zy1zaGFwZXMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2Jv
dW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmctc3ZnLXNoYXBlcy5qcwpAQCAtMTks
MTMgKzE5LDEzIEBAIEJvdW5jaW5nU3ZnU2hhcGUucHJvdG90eXBlLl9jcmVhdGVTaGFwZSA9IGZ1
bmN0aW9uKHN0YWdlKQogICAgIHN3aXRjaCAodGhpcy5fc2hhcGUpIHsKICAgICBjYXNlICJyZWN0
IjoKICAgICAgICAgdmFyIGF0dHJzID0geyB4OiAwLCB5OiAwLCB3aWR0aDogdGhpcy5fc2l6ZS54
LCBoZWlnaHQ6IHRoaXMuX3NpemUueSB9OwotICAgICAgICB0aGlzLmVsZW1lbnQgPSBVdGlsaXRp
ZXMuY3JlYXRlU3ZnRWxlbWVudCgicmVjdCIsIGF0dHJzLCB7fSwgc3RhZ2UuZWxlbWVudCk7Cisg
ICAgICAgIHRoaXMuZWxlbWVudCA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZVN2Z0VsZW1lbnQo
InJlY3QiLCBhdHRycywge30sIHN0YWdlLmVsZW1lbnQpOwogICAgICAgICBicmVhazsKICAgICAK
ICAgICBjYXNlICJjaXJjbGUiOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHZhciBhdHRycyA9IHsg
Y3g6IHRoaXMuX3NpemUueCAvIDIsIGN5OiB0aGlzLl9zaXplLnkgLyAyLCByOiBNYXRoLm1pbih0
aGlzLl9zaXplLngsIHRoaXMuX3NpemUueSkgLyAyIH07Ci0gICAgICAgIHRoaXMuZWxlbWVudCA9
IFV0aWxpdGllcy5jcmVhdGVTdmdFbGVtZW50KCJjaXJjbGUiLCBhdHRycywge30sIHN0YWdlLmVs
ZW1lbnQpOworICAgICAgICB0aGlzLmVsZW1lbnQgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVT
dmdFbGVtZW50KCJjaXJjbGUiLCBhdHRycywge30sIHN0YWdlLmVsZW1lbnQpOwogICAgICAgICBi
cmVhazsgICAgICAgIAogICAgIH0KIH0KQEAgLTU4LDExICs1OCwxMSBAQCBCb3VuY2luZ1N2Z1No
YXBlc1N0YWdlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEJvdW5jaW5nU3ZnU2hhcGVzU3RhZ2U7
CiBCb3VuY2luZ1N2Z1NoYXBlc1N0YWdlLnByb3RvdHlwZS5jcmVhdGVHcmFkaWVudCA9IGZ1bmN0
aW9uKHN0b3BzKQogewogICAgIHZhciBhdHRycyA9IHsgaWQ6ICJnYWRpZW50LSIgKyArK3RoaXMu
X2dyYWRpZW50c0NvdW50IH07Ci0gICAgdmFyIGdyYWRpZW50ID0gVXRpbGl0aWVzLmNyZWF0ZVN2
Z0VsZW1lbnQoImxpbmVhckdyYWRpZW50IiwgYXR0cnMsIHt9LCB0aGlzLl9lbnN1cmVEZWZzSXND
cmVhdGVkKCkpOyAgICAKKyAgICB2YXIgZ3JhZGllbnQgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVh
dGVTdmdFbGVtZW50KCJsaW5lYXJHcmFkaWVudCIsIGF0dHJzLCB7fSwgdGhpcy5fZW5zdXJlRGVm
c0lzQ3JlYXRlZCgpKTsgICAgCiAgICAgCiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdG9wczsg
KytpKSB7CiAgICAgICAgIGF0dHJzID0geyBvZmZzZXQ6IGkgKiAxMDAgLyBzdG9wcyArICIlIiwg
J3N0b3AtY29sb3InOiB0aGlzLnJhbmRvbUNvbG9yKCkgfTsKLSAgICAgICAgVXRpbGl0aWVzLmNy
ZWF0ZVN2Z0VsZW1lbnQoInN0b3AiLCBhdHRycywge30sIGdyYWRpZW50KTsKKyAgICAgICAgRG9j
dW1lbnRFeHRlbnNpb24uY3JlYXRlU3ZnRWxlbWVudCgic3RvcCIsIGF0dHJzLCB7fSwgZ3JhZGll
bnQpOwogICAgIH0KIAogICAgIHJldHVybiBncmFkaWVudDsKZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcwppbmRleCAzOTNkNzlmYzcz
ZTNkNDc1MGY3OTVhM2FkYzY2NzAyNTkzOTE2ODU1Li44NDgyNjQ3YzM0YTMwZTEzMjFiMmNmYTkx
MWY0NjIxMDE2MTFlNTkwIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
dGVzdHMvcmVzb3VyY2VzL21haW4uanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCkBAIC0xMDksNyArMTA5LDcgQEAgQW5pbWF0b3IucHJv
dG90eXBlID0KICAgICAgICAgdmFyIGN1cnJlbnRGcmFtZVJhdGUgPSBNYXRoLmZsb29yKDEwMDAg
LyAobWVhc3VyZVRpbWVEZWx0YSAvIHRoaXMuX21lYXN1cmVGcmFtZUNvdW50KSk7CiAgICAgICAg
ICAKICAgICAgICAgLy8gVXNlIEthbG1hbiBmaWx0ZXIgdG8gZ2V0IGEgbW9yZSBub24tZmx1Y3R1
YXRpbmcgZnJhbWUgcmF0ZS4KLSAgICAgICAgaWYgKHRoaXMuX2JlbmNobWFyay5vcHRpb25zLmVz
dGltYXRlZEZyYW1lUmF0ZSkKKyAgICAgICAgaWYgKHRoaXMuX2JlbmNobWFyay5vcHRpb25zWyJl
c3RpbWF0ZWQtZnJhbWUtcmF0ZSJdKQogICAgICAgICAgICAgY3VycmVudEZyYW1lUmF0ZSA9IHRo
aXMuX2VzdGltYXRvci5lc3RpbWF0ZShtZWFzdXJlVGltZURlbHRhLCBjdXJyZW50RnJhbWVSYXRl
KTsKICAgICAgICAgCiAgICAgICAgIC8vIEFkanVzdCB0aGUgdGVzdCB0byByZWFjaCB0aGUgZGVz
aXJlZCBGUFMuCkBAIC0xNDYsOSArMTQ2LDkgQEAgZnVuY3Rpb24gQmVuY2htYXJrKG9wdGlvbnMp
CiAgICAgdmFyIGxvd1ZhbHVlID0gLXBhcnNlSW50KHRoaXMuX29wdGlvbnNbImFkZExpbWl0Il0p
IHx8IDE7CiAgICAgdmFyIGhpZ2hWYWx1ZSA9IHBhcnNlSW50KHRoaXMuX29wdGlvbnNbInJlbW92
ZUxpbWl0Il0pIHx8IDE7CiAgICAgCi0gICAgdGhpcy5fY29udHJvbGxlciA9IG5ldyBQSURDb250
cm9sbGVyKGdhaW4sIG9wdGlvbnMuZnJhbWVSYXRlLCBsb3dWYWx1ZSwgaGlnaFZhbHVlKTsKKyAg
ICB0aGlzLl9jb250cm9sbGVyID0gbmV3IFBJRENvbnRyb2xsZXIoZ2Fpbiwgb3B0aW9uc1siZnJh
bWUtcmF0ZSJdLCBsb3dWYWx1ZSwgaGlnaFZhbHVlKTsKICAgICB0aGlzLl9zYW1wbGVyID0gbmV3
IFNhbXBsZXIoMik7Ci0gICAgdGhpcy5fc3RhdGUgPSBuZXcgQmVuY2htYXJrU3RhdGUodGhpcy5v
cHRpb25zLnRlc3RJbnRlcnZhbCk7ICAgIAorICAgIHRoaXMuX3N0YXRlID0gbmV3IEJlbmNobWFy
a1N0YXRlKHRoaXMub3B0aW9uc1sidGVzdC1pbnRlcnZhbCJdICogMTAwMCk7CiB9CiAKIEJlbmNo
bWFyay5wcm90b3R5cGUgPQpAQCAtMTc5LDcgKzE3OSwxMCBAQCBCZW5jaG1hcmsucHJvdG90eXBl
ID0KICAgICAgICAgfQogCiAgICAgICAgIHZhciB0dW5lVmFsdWUgPSAwOwotICAgICAgICBpZiAo
ISh0aGlzLl9pc1NhbXBsaW5nICYmIHRoaXMub3B0aW9ucy5maXhUZXN0Q29tcGxleGl0eSkpIHsK
KyAgICAgICAgaWYgKHRoaXMub3B0aW9uc1siY29tcGxleGl0eSJdICYmICF0aGlzLm9wdGlvbnNb
ImFkYXB0aXZlLXRlc3QiXSkgeworICAgICAgICAgICAgdHVuZVZhbHVlID0gdGhpcy5vcHRpb25z
WyJjb21wbGV4aXR5Il0gLSB0aGlzLnR1bmUoMCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBp
ZiAoISh0aGlzLl9pc1NhbXBsaW5nICYmIHRoaXMub3B0aW9uc1siZml4LXRlc3QtY29tcGxleGl0
eSJdKSkgewogICAgICAgICAgICAgLy8gVGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGZyYW1lUmF0
ZSBhbmQgdGVzdCBjb21wbGV4aXR5IGlzIGludmVyc2UtcHJvcG9ydGlvbmFsIHNvIHdlCiAgICAg
ICAgICAgICAvLyBuZWVkIHRvIHVzZSB0aGUgbmVnYXRpdmUgb2YgUElEQ29udHJvbGxlci50dW5l
KCkgdG8gY2hhbmdlIHRoZSBjb21wbGV4aXR5IG9mIHRoZSB0ZXN0LgogICAgICAgICAgICAgdHVu
ZVZhbHVlID0gLXRoaXMuX2NvbnRyb2xsZXIudHVuZShjdXJyZW50RnJhbWVSYXRlLCB0aW1lRGVs
dGEgLyAxMDAwKTsKQEAgLTIzNyw3ICsyNDAsOSBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIGZ1bmN0aW9uKCkKIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gdGhlIHN1
aXRlIGNvbnRyb2xsZXIgcnVuLWNhbGxiYWNrIHdoZW4gcnVubmluZyB0aGUgYmVuY2htYXJrIHJ1
bm5lci4KIHdpbmRvdy5ydW5CZW5jaG1hcmsgPSBmdW5jdGlvbihzdWl0ZSwgdGVzdCwgb3B0aW9u
cywgcmVjb3JkVGFibGUsIHByb2dyZXNzQmFyKQogewotICAgIHZhciBtZXJnZWRPcHRpb25zID0g
VXRpbGl0aWVzLm1lcmdlT2JqZWN0cyhvcHRpb25zLCBVdGlsaXRpZXMucGFyc2VQYXJhbWV0ZXJz
KCkpOwotICAgIHdpbmRvdy5iZW5jaG1hcmsgPSB3aW5kb3cuYmVuY2htYXJrQ2xpZW50LmNyZWF0
ZShzdWl0ZSwgdGVzdCwgbWVyZ2VkT3B0aW9ucywgcmVjb3JkVGFibGUsIHByb2dyZXNzQmFyKTsK
KyAgICB2YXIgYmVuY2htYXJrT3B0aW9ucyA9IHsgY29tcGxleGl0eTogdGVzdC5jb21wbGV4aXR5
IH07CisgICAgYmVuY2htYXJrT3B0aW9ucyA9IFV0aWxpdGllcy5tZXJnZU9iamVjdHMoYmVuY2ht
YXJrT3B0aW9ucywgb3B0aW9ucyk7CisgICAgYmVuY2htYXJrT3B0aW9ucyA9IFV0aWxpdGllcy5t
ZXJnZU9iamVjdHMoYmVuY2htYXJrT3B0aW9ucywgVXRpbGl0aWVzLnBhcnNlUGFyYW1ldGVycygp
KTsKKyAgICB3aW5kb3cuYmVuY2htYXJrID0gd2luZG93LmJlbmNobWFya0NsaWVudC5jcmVhdGUo
c3VpdGUsIHRlc3QsIGJlbmNobWFya09wdGlvbnMsIHJlY29yZFRhYmxlLCBwcm9ncmVzc0Jhcik7
CiAgICAgcmV0dXJuIHdpbmRvdy5iZW5jaG1hcmsucnVuKCk7CiB9CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmpzIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFnZS5qcwppbmRleCAwN2Zh
NjYxN2Q2ZmI1NTA1OGZhMGJiMDc3ZjZhYzBhYWEzY2U3ODFmLi4yYmI0OWQ1ZmRkYjIwM2RkODk1
OTEyZWZiNmU5MWIxZWM4ZTlmNDJlIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuanMKQEAgLTE3Nyw3ICsxNzcsNyBAQCBTdGFn
ZUJlbmNobWFyay5wcm90b3R5cGUuc2hvd1Jlc3VsdHMgPSBmdW5jdGlvbihtZXNzYWdlLCBwcm9n
cmVzcykKICAgICBpZiAoIXRoaXMuX3JlY29yZFRhYmxlIHx8ICF0aGlzLl9wcm9ncmVzc0JhciB8
fCAhdGhpcy5fdGVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHRoaXMub3B0aW9ucy5z
aG93UnVubmluZ1Jlc3VsdHMpCisgICAgaWYgKHRoaXMub3B0aW9uc1sic2hvdy1ydW5uaW5nLXJl
c3VsdHMiXSkKICAgICAgICAgdGhpcy5fcmVjb3JkVGFibGUuc2hvd1JlY29yZCh0aGlzLl90ZXN0
Lm5hbWUsIG1lc3NhZ2UsIHRoaXMuX3NhbXBsZXIudG9KU09OKHRydWUsIGZhbHNlKSk7CiAKICAg
ICB0aGlzLl9wcm9ncmVzc0Jhci5zZXRQb3MocHJvZ3Jlc3MpOwpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy91dGlsaXRpZXMuanMgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3V0aWxpdGllcy5qcwppbmRl
eCAwNzI2MDAxZjU2YzhhMDFlODM0ZDFkYzU0ZGU4NjA1NjJjMGMwM2Q3Li5hNmM3NjQ5ZGM3N2E0
MmE0NTJhNmFjYzM1YjY5ODY4ZTE4YjczMmRjIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3V0aWxpdGllcy5qcworKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3V0aWxpdGllcy5qcwpAQCAtMzksMjIg
KzM5LDUgQEAgd2luZG93LlV0aWxpdGllcyA9CiAgICAgbWVyZ2VPYmplY3RzOiBmdW5jdGlvbihv
YmoxLCBvYmoyKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kT2JqZWN0KHRoaXMu
Y29weU9iamVjdChvYmoxKSwgb2JqMik7Ci0gICAgfSwKLSAgICAKLSAgICBjcmVhdGVTdmdFbGVt
ZW50OiBmdW5jdGlvbihuYW1lLCBhdHRycywgeGxpbmtBdHRycywgcGFyZW50KQotICAgIHsKLSAg
ICAgICAgY29uc3Qgc3ZnTmFtZXNwYWNlID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsK
LSAgICAgICAgY29uc3QgeGxpbmtOYW1lc3BhY2UgPSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
bGluayI7Ci0KLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMo
c3ZnTmFtZXNwYWNlLCBuYW1lKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAodmFyIGtleSBpbiBh
dHRycykKLSAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgYXR0cnNba2V5XSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgZm9yICh2YXIga2V5IGluIHhsaW5rQXR0cnMpCi0gICAg
ICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5TKHhsaW5rTmFtZXNwYWNlLCBrZXksIHhsaW5r
QXR0cnNba2V5XSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOwotICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0
bWwKaW5kZXggZjU4ZWY0Y2E2ZmRmNGNjNjEyYWE5N2RiOWYzZDE5ZmE4YjZlMTRjNS4uMWYyYTMz
ZTM0MWVkYWUyY2Q3MmZmMDE4ZWNhODQyNzYwODU0NmVmNSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmctdGV4dC5odG1sCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L2xheWVyaW5nLXRleHQuaHRtbApA
QCAtMywxMiArMywxMiBAQAogPGhlYWQ+CiAgICAgPHN0eWxlPgogICAgICAgICAudGV4dC1sYXll
ciB7Ci0gICAgICAgICAgICBmb250LXNpemU6IDUuNXB4OwogICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOwogICAgICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgICAgdG9wOiAwcHg7
CiAgICAgICAgICAgICBwYWRkaW5nOiAzcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB0cmFuc3BhcmVudDsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgIH0K
ICAgICA8L3N0eWxlPiAgCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyIgaHJlZj0iLi4vcmVzb3VyY2VzL3N0YWdlLmNzcyI+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9yZXNvdXJjZXMvbGF5ZXJpbmctdGV4dC5qcyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy9sYXllcmlu
Zy10ZXh0LmpzCmluZGV4IDM4NWUxOTc2YmNlOTI4MDRhYzc2YzJiNDgyYjNkNWIwMmNlNmJiYmMu
LjFkNjQ2NTRhMzQ1ZDFjNTZiOWUxOWFlZmI0ZWJkMmI2NDM0NmM4MDggMTAwNjQ0Ci0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy9sYXllcmluZy10
ZXh0LmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291
cmNlcy9sYXllcmluZy10ZXh0LmpzCkBAIC02LDYgKzYsNyBAQCBmdW5jdGlvbiBMYXllcmluZ1Rl
eHRTdGFnZShlbGVtZW50LCBvcHRpb25zKQogICAgIHRoaXMuX3RleHRJdGVtSW5kZXggPSAwOwog
ICAgIHRoaXMuX2NvbG9ySW5kZXggPSAwOwogICAgIHRoaXMuX2FuaW1hdGVDb3VudHMgPSAwOwor
ICAgIHRoaXMuX3NldEZvbnRTaXplKCk7CiB9CiAKIExheWVyaW5nVGV4dFN0YWdlLnRleHRJdGVt
cyA9IFsKQEAgLTEzNyw2ICsxMzgsMTQgQEAgTGF5ZXJpbmdUZXh0U3RhZ2UuY29sb3JJbmRleFRv
VGV4dEVsZW1lbnRJbmRleCA9IGZ1bmN0aW9uKGNvbG9ySW5kZXgpCiBMYXllcmluZ1RleHRTdGFn
ZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN0YWdlLnByb3RvdHlwZSk7CiBMYXllcmluZ1Rl
eHRTdGFnZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMYXllcmluZ1RleHRTdGFnZTsKIAorTGF5
ZXJpbmdUZXh0U3RhZ2UucHJvdG90eXBlLl9zZXRGb250U2l6ZSA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICB2YXIgbGluZUhlaWdodCA9IHRoaXMuc2l6ZS5oZWlnaHQgLyBMYXllcmluZ1RleHRTdGFnZS5j
b2xvcmFibGVUZXh0SXRlbXM7CisgICAgdmFyIGZvbnRIZWlnaHQgPSBsaW5lSGVpZ2h0IC8gMS41
OworICAgIHZhciBmb250U2l6ZSA9IGZvbnRIZWlnaHQgKiA3Mi4wIC8gOTYuMDsKKyAgICBEb2N1
bWVudEV4dGVuc2lvbi5pbnNlcnRDc3NSdWxlQWZ0ZXIoIi50ZXh0LWxheWVyIiwgIi50ZXh0LWxh
eWVyIHsgZm9udC1zaXplOiAiICsgZm9udFNpemUudG9GaXhlZCgyKSArICJweDsgfSIpOworfQor
CiBMYXllcmluZ1RleHRTdGFnZS5wcm90b3R5cGUuX25leHRUZXh0SXRlbSA9IGZ1bmN0aW9uKHRl
eHRJdGVtRmxhZ3MpCiB7CiAgICAgdmFyIHRleHRJdGVtID0gTGF5ZXJpbmdUZXh0U3RhZ2UudGV4
dEl0ZW1zW3RoaXMuX3RleHRJdGVtSW5kZXhdOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAyOGJhNjE4MTk1
MmJhNGE5ZTdiY2IzMDg5NWU5Nzg0YzJmY2IyYjY1Li42NmNhMGQwZDViMWFiMTc2YmViNDdiMWQ5
M2RhMjcxY2I3ZDJiMmFmIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0x
MC0zMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUsY29tPgorCisgICAg
ICAgIEFkZCBhbiBvcHRpb24gdG8gbWFrZSB0aGUgZ3JhcGhpY3MgYmVuY2htYXJrIHJ1bnMgYSBz
cGVjaWZpYyB0ZXN0IHdpdGggZml4ZWQgY29tcGxleGl0eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIHRo
ZSBmaXggb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDUzMC4K
KyAgICAgICAgSSB3aWxsIHVwZGF0ZSB0aGUgcGF0Y2ggb25jZSB0aGUgb3RoZXIgYnVnIGlzIGxh
bmRlZC4gVGhlIGRpZmYgYmV0d2VlbiB0aGUKKyAgICAgICAgdHdvIHBhdGNoZXMgc2hvdWxkIGJl
IHNtYWxsLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qczoK
KyAgICAgICAgKFBvaW50LmVsZW1lbnRDbGllbnRTaXplKToKKyAgICAgICAgKEluc2V0cy5wcm90
b3R5cGUuZ2V0IHdpZHRoKToKKyAgICAgICAgKEluc2V0cy5wcm90b3R5cGUuZ2V0IGhlaWdodCk6
CisgICAgICAgIChJbnNldHMucHJvdG90eXBlLmdldCBzaXplKToKKyAgICAgICAgKHdpbmRvdy5E
b2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KToKKyAgICAgICAgKHdpbmRvdy5Eb2N1bWVu
dEV4dGVuc2lvbi5jcmVhdGVTdmdFbGVtZW50KToKKyAgICAgICAgKHdpbmRvdy5Eb2N1bWVudEV4
dGVuc2lvbi5pbnNlcnRDc3NSdWxlQWZ0ZXIpOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3Rv
dHlwZS5fc2hvd0hlYWRlcik6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93
R3JhcGgpOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd0pTT04pOgorICAg
ICAgICAoT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogQW5pbW9tZXRlci9ydW5uZXIvYW5p
bW9tZXRlci5odG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmlt
b21ldGVyLmNzczoKKyAgICAgICAgKGh0bWwsYm9keSk6CisgICAgICAgIChidXR0b24pOgorICAg
ICAgICAoYnV0dG9uLmxhcmdlLWJ1dHRvbik6CisgICAgICAgIChidXR0b24ubGFyZ2UtYnV0dG9u
OmFjdGl2ZSk6CisgICAgICAgIChidXR0b24ubGFyZ2UtYnV0dG9uOmRpc2FibGVkKToKKyAgICAg
ICAgKGJ1dHRvbi5zbWFsbC1idXR0b24pOgorICAgICAgICAoYnV0dG9uLnNtYWxsLWJ1dHRvbjph
Y3RpdmUpOgorICAgICAgICAoLnRyZWUpOgorICAgICAgICAoLnRyZWUgLmV4cGFuZC1idXR0b24p
OgorICAgICAgICAoLnRyZWUgLmV4cGFuZC1idXR0b24gfiB1bCk6CisgICAgICAgICgudHJlZSAu
ZXhwYW5kLWJ1dHRvbjpjaGVja2VkIH4gdWwpOgorICAgICAgICAoLnRyZWUgdWwpOgorICAgICAg
ICAoLnRyZWUgbGkpOgorICAgICAgICAoLnRyZWUgdWwgbGkpOgorICAgICAgICAoLnRyZWUgPiBs
aTpsYXN0LWNoaWxkKToKKyAgICAgICAgKC50cmVlLWxhYmVsKToKKyAgICAgICAgKGxhYmVsLnRy
ZWUtbGFiZWwpOgorICAgICAgICAobGFiZWwudHJlZS1sYWJlbDpiZWZvcmUpOgorICAgICAgICAo
OmNoZWNrZWQgfiBsYWJlbC50cmVlLWxhYmVsOmJlZm9yZSk6CisgICAgICAgICh0YWJsZS5yZXN1
bHRzLXRhYmxlKToKKyAgICAgICAgKC5yZXN1bHRzLXRhYmxlIHRkKToKKyAgICAgICAgKC5yZXN1
bHRzLXRhYmxlIHRoKToKKyAgICAgICAgKGRpdi5yZXN1bHRzLWpzb24pOgorICAgICAgICAobWFp
bik6CisgICAgICAgIChzZWN0aW9uKToKKyAgICAgICAgKHNlY3Rpb24uc2VsZWN0ZWQpOgorICAg
ICAgICAoc2VjdGlvbiA+IGZvb3Rlcik6CisgICAgICAgIChzZWN0aW9uI2hvbWUpOgorICAgICAg
ICAoc2VjdGlvbiNob21lID4gb3B0aW9ucyk6CisgICAgICAgIChzZWN0aW9uI2hvbWUgPiBzdWl0
ZXMpOgorICAgICAgICAoc2VjdGlvbiNob21lID4gb3B0aW9ucyA+IGxhYmVsKToKKyAgICAgICAg
KHNlY3Rpb24jaG9tZSA+IGhlYWRlciA+IGgyKToKKyAgICAgICAgKHNlY3Rpb24jaG9tZSBpbnB1
dFt0eXBlPSJudW1iZXIiXSk6CisgICAgICAgIChzZWN0aW9uI2hvbWUgPiBzdWl0ZXMgaW5wdXRb
dHlwZT0ibnVtYmVyIl0pOgorICAgICAgICAoc2VjdGlvbiNob21lID4gc3VpdGVzIGlucHV0W3R5
cGU9Im51bWJlciJdLnNlbGVjdGVkKToKKyAgICAgICAgKHNlY3Rpb24jcnVubmluZyk6CisgICAg
ICAgIChzZWN0aW9uI3J1bm5pbmcgPiAjcnVubmluZy10ZXN0KToKKyAgICAgICAgKHNlY3Rpb24j
cnVubmluZyA+ICNydW5uaW5nLXRlc3QgPiBpZnJhbWUpOgorICAgICAgICAoc2VjdGlvbiNydW5u
aW5nID4gI3Byb2dyZXNzKToKKyAgICAgICAgKHNlY3Rpb24jcnVubmluZyA+ICNwcm9ncmVzcyA+
ICNwcm9ncmVzcy1jb21wbGV0ZWQpOgorICAgICAgICAoc2VjdGlvbiNydW5uaW5nID4gI3JlY29y
ZCk6CisgICAgICAgIChzZWN0aW9uI3Rlc3QtZ3JhcGgpOgorICAgICAgICAoc2VjdGlvbiN0ZXN0
LWdyYXBoID4gZGF0YSk6CisgICAgICAgIChzZWN0aW9uI3Rlc3QtZ3JhcGggPiBkYXRhID4gc3Zn
KToKKyAgICAgICAgKC5heGlzIGxpbmUpOgorICAgICAgICAoLmxlZnQtc2FtcGxlcyk6CisgICAg
ICAgIChzZWN0aW9uI3Rlc3QtanNvbiA+IGRhdGEpOgorICAgICAgICAoaWZyYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKGxhYmVsLCBwKTogRGVsZXRlZC4KKyAgICAgICAgKHNlY3Rpb24gPiBwKTog
RGVsZXRlZC4KKyAgICAgICAgKHNlY3Rpb24jaG9tZSA+IHApOiBEZWxldGVkLgorICAgICAgICAo
c2VjdGlvbiNob21lID4gcDpmaXJzdC1jaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICgjdGVzdENv
bnRhaW5lcik6IERlbGV0ZWQuCisgICAgICAgIChzZWN0aW9uI3J1bm5pbmcgI3Byb2dyZXNzLWNv
bXBsZXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChzZWN0aW9uI3Jlc3VsdHMgPiB0YWJsZSk6IERl
bGV0ZWQuCisgICAgICAgIChzZWN0aW9uI3Jlc3VsdHMgPiB0YWJsZSB0ZCwgdGgpOiBEZWxldGVk
LgorICAgICAgICAoc2VjdGlvbiNyZXN1bHRzID4gdGFibGUgdHIuYWx0LCB0ZCk6IERlbGV0ZWQu
CisgICAgICAgIChzZWN0aW9uI3Jlc3VsdHMgPiB0YWJsZSB0aCk6IERlbGV0ZWQuCisgICAgICAg
IChzZWN0aW9uI2pzb24gPiB0ZXh0YXJlYSk6IERlbGV0ZWQuCisgICAgICAgICgub3B0aW9ucyk6
IERlbGV0ZWQuCisgICAgICAgICgub3B0aW9ucyBwKTogRGVsZXRlZC4KKyAgICAgICAgKCNzdWl0
ZXMgdWwpOiBEZWxldGVkLgorICAgICAgICAoI3N1aXRlcyB1bCB1bCk6IERlbGV0ZWQuCisgICAg
ICAgICgjc3VpdGVzIHVsIHVsIGlucHV0LCAjc3VpdGVzIHVsIHVsIGxhYmVsKTogRGVsZXRlZC4K
KyAgICAgICAgKCNzdWl0ZXMuc2hvd1Rlc3RzIHVsIHVsKTogRGVsZXRlZC4KKyAgICAgICAgKC5j
b2x1bW4pOiBEZWxldGVkLgorICAgICAgICAoaW5wdXRbdHlwZT0ibnVtYmVyIl0pOiBEZWxldGVk
LgorICAgICAgICAoLmJ1dHRvbnMpOiBEZWxldGVkLgorICAgICAgICAoYnV0dG9uOmFjdGl2ZSk6
IERlbGV0ZWQuCisgICAgICAgIChidXR0b246Zm9jdXMpOiBEZWxldGVkLgorICAgICAgICAoLnNt
YWxsLWJ1dHRvbik6IERlbGV0ZWQuCisgICAgICAgICgjZ3JhcGhDb250YWluZXIpOiBEZWxldGVk
LgorICAgICAgICAoLnJpZ2h0LXNhbXBsZXMpOiBEZWxldGVkLgorICAgICAgICAoLnNhbXBsZS10
aW1lKTogRGVsZXRlZC4KKyAgICAgICAgKC5sZWZ0LW1lYW4pOiBEZWxldGVkLgorICAgICAgICAo
LnJpZ2h0LW1lYW4pOiBEZWxldGVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291
cmNlcy9hbmltb21ldGVyLmpzOgorICAgICAgICAod2luZG93LmJlbmNobWFya1J1bm5lckNsaWVu
dC5pbml0aWFsaXplKToKKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtSdW5uZXJDbGllbnQud2ls
bFN0YXJ0Rmlyc3RJdGVyYXRpb24pOgorICAgICAgICAod2luZG93LmJlbmNobWFya1J1bm5lckNs
aWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9uKToKKyAgICAgICAgKHdpbmRvdy5zZWN0aW9uc01h
bmFnZXIuX3NlY3Rpb25IZWFkZXJIMUVsZW1lbnQpOgorICAgICAgICAod2luZG93LnNlY3Rpb25z
TWFuYWdlci5fc2VjdGlvbkRhdGFEaXZFbGVtZW50KToKKyAgICAgICAgKHdpbmRvdy5zZWN0aW9u
c01hbmFnZXIuc2hvd1Njb3JlKToKKyAgICAgICAgKHdpbmRvdy5zZWN0aW9uc01hbmFnZXIuc2hv
d1Rlc3ROYW1lKToKKyAgICAgICAgKHdpbmRvdy5zZWN0aW9uc01hbmFnZXIuc2hvd0pTT04pOgor
ICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5zaG93U2VjdGlvbik6CisgICAgICAgICh3
aW5kb3cuc2VjdGlvbnNNYW5hZ2VyLnNldHVwU2VjdGlvblN0eWxlKToKKyAgICAgICAgKHdpbmRv
dy5zZWN0aW9uc01hbmFnZXIuc2V0dXBSdW5uaW5nU2VjdGlvblN0eWxlKToKKyAgICAgICAgKHdp
bmRvdy5vcHRpb25zTWFuYWdlci5fb3B0aW9uc0VsZW1lbnRzKToKKyAgICAgICAgKHdpbmRvdy5v
cHRpb25zTWFuYWdlci5fYWRhcHRpdmVUZXN0RWxlbWVudCk6CisgICAgICAgICh3aW5kb3cub3B0
aW9uc01hbmFnZXIudXBkYXRlVUlGcm9tTG9jYWxTdG9yYWdlKToKKyAgICAgICAgKHdpbmRvdy5v
cHRpb25zTWFuYWdlci51cGRhdGVMb2NhbFN0b3JhZ2VGcm9tVUkpOgorICAgICAgICAod2luZG93
LnN1aXRlc01hbmFnZXIuX3RyZWVFbGVtZW50KToKKyAgICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5h
Z2VyLl9zdWl0ZXNFbGVtZW50cyk6CisgICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fY2hl
Y2tib3hFbGVtZW50KToKKyAgICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5hZ2VyLl9lZGl0RWxlbWVu
dCk6CisgICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fZWRpdHNFbGVtZW50cyk6CisgICAg
ICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fbG9jYWxTdG9yYWdlTmFtZUZvclRlc3QpOgorICAg
ICAgICAod2luZG93LnN1aXRlc01hbmFnZXIuX3VwZGF0ZVN1aXRlQ2hlY2tib3hTdGF0ZSk6Cisg
ICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fdXBkYXRlU3RhcnRCdXR0b25TdGF0ZSk6Cisg
ICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fb25DaGFuZ2VTdWl0ZUNoZWNrYm94KToKKyAg
ICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5hZ2VyLl9vbkNoYW5nZVRlc3RDaGVja2JveCk6CisgICAg
ICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci4pOgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFn
ZXIuX2NyZWF0ZVN1aXRlRWxlbWVudCk6CisgICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5f
Y3JlYXRlVGVzdEVsZW1lbnQpOgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFnZXIuY3JlYXRl
RWxlbWVudHMpOgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFnZXIudXBkYXRlRWRpdHNFbGVt
ZW50c1N0YXRlKToKKyAgICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5hZ2VyLnVwZGF0ZVVJRnJvbUxv
Y2FsU3RvcmFnZSk6CisgICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci51cGRhdGVMb2NhbFN0
b3JhZ2VGcm9tVUkpOgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFnZXIudXBkYXRlTG9jYWxT
dG9yYWdlRnJvbUpTT04pOgorICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuaW5p
dGlhbGl6ZSk6CisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5vbkNoYW5nZUFk
YXB0aXZlVGVzdENoZWNrYm94KToKKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVy
Ll9ydW5CZW5jaG1hcmspOgorICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc3Rh
cnRUZXN0KToKKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLnNob3dSZXN1bHRz
KToKKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLnNob3dKc29uKToKKyAgICAg
ICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLnNob3dUZXN0R3JhcGgpOgorICAgICAgICAo
d2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Rlc3RKU09OKToKKyAgICAgICAgKHNob3dT
ZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKHN0YXJ0VGVzdCk6IERlbGV0ZWQuCisgICAgICAg
IChzaG93UmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgIChzaG93SnNvbik6IERlbGV0ZWQuCisg
ICAgICAgIChzaG93VGVzdEdyYXBoKTogRGVsZXRlZC4KKyAgICAgICAgKHNob3dUZXN0SlNPTik6
IERlbGV0ZWQuCisgICAgICAgIChpbml0aWFsaXplLnRvZ2dsZVRlc3RzQ2hlY2tib3gub25jaGFu
Z2UpOiBEZWxldGVkLgorICAgICAgICAoaW5pdGlhbGl6ZSk6IERlbGV0ZWQuCisgICAgICAgICh1
cGRhdGVTdWl0ZVNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICh1cGRhdGVUZXN0U2VsZWN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKHVwZGF0ZVN1aXRlQ2hlY2tib3gpOiBEZWxldGVkLgor
ICAgICAgICAobG9jYWxTdG9yYWdlTmFtZUZvclRlc3QpOiBEZWxldGVkLgorICAgICAgICAocG9w
dWxhdGVTZXR0aW5ncy4pOiBEZWxldGVkLgorICAgICAgICAocG9wdWxhdGVTZXR0aW5ncyk6IERl
bGV0ZWQuCisgICAgICAgICogQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2JlbmNobWFyay1y
dW5uZXIuanM6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIpOgorICAgICAgICAoQmVuY2htYXJr
UnVubmVyLnByb3RvdHlwZS5fYXBwZW5kRnJhbWUpOgorICAgICAgICAodGhpcy5fcnVuTmV4dEl0
ZXJhdGlvbik6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIucHJvdG90eXBlLnJ1bk11bHRpcGxl
SXRlcmF0aW9ucyk6CisgICAgICAgICogQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2dyYXBo
LmpzOgorICAgICAgICAoZ3JhcGgpOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNp
bmctcGFydGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy1zdmctaW1hZ2VzLmpzOgorICAgICAgICAo
Qm91bmNpbmdTdmdJbWFnZSk6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1w
YXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXN2Zy1wYXJ0aWNsZXMuanM6CisgICAgICAgIChC
b3VuY2luZ1N2Z1BhcnRpY2xlc1N0YWdlLnByb3RvdHlwZS5fY3JlYXRlRGVmcyk6CisgICAgICAg
IChCb3VuY2luZ1N2Z1BhcnRpY2xlc1N0YWdlLnByb3RvdHlwZS5fY3JlYXRlQ2xpcFN0YXIpOgor
ICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9i
b3VuY2luZy1zdmctc2hhcGVzLmpzOgorICAgICAgICAoQm91bmNpbmdTdmdTaGFwZS5wcm90b3R5
cGUuX2NyZWF0ZVNoYXBlKToKKyAgICAgICAgKEJvdW5jaW5nU3ZnU2hhcGVzU3RhZ2UucHJvdG90
eXBlLmNyZWF0ZUdyYWRpZW50KToKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNl
cy9tYWluLmpzOgorICAgICAgICAoQW5pbWF0b3IucHJvdG90eXBlLmFuaW1hdGUpOgorICAgICAg
ICAoQmVuY2htYXJrKToKKyAgICAgICAgKEJlbmNobWFyay5wcm90b3R5cGUudXBkYXRlKToKKyAg
ICAgICAgKHdpbmRvdy5ydW5CZW5jaG1hcmspOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMv
cmVzb3VyY2VzL3N0YWdlLmpzOgorICAgICAgICAoU3RhZ2VCZW5jaG1hcmsucHJvdG90eXBlLnNo
b3dSZXN1bHRzKToKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy91dGlsaXRp
ZXMuanM6CisgICAgICAgICh3aW5kb3cuVXRpbGl0aWVzLm1lcmdlT2JqZWN0cyk6IERlbGV0ZWQu
CisgICAgICAgICh3aW5kb3cuVXRpbGl0aWVzLmNyZWF0ZVN2Z0VsZW1lbnQpOiBEZWxldGVkLgor
ICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWw6CisgICAg
ICAgICogQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy9sYXllcmluZy10ZXh0LmpzOgor
ICAgICAgICAoTGF5ZXJpbmdUZXh0U3RhZ2UpOgorICAgICAgICAoTGF5ZXJpbmdUZXh0U3RhZ2Uu
cHJvdG90eXBlLl9zZXRGb250U2l6ZSk6CisKIDIwMTUtMTAtMjcgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBvcHRpb24gdG8gbWFrZSB0aGUgZ3JhcGhpY3Mg
YmVuY2htYXJrIHJ1bnMgYSBzcGVjaWZpYyB0ZXN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264510</attachid>
            <date>2015-11-01 02:15:41 -0800</date>
            <delta_ts>2015-11-01 18:31:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150529-20151101021447.patch</filename>
            <type>text/plain</type>
            <size>13540</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxODU0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcnVubmVyL2FuaW1vbWV0ZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9ydW5uZXIvYW5pbW9tZXRlci5odG1sCmluZGV4IDBhYTI0NjcyZjZiZmE3MTU1ZDI0
MDhmYmNhYzkzNzFiNWE2YjA5NTYuLjg3NTUyOGY1OWQwOGYxMjIyNDlkZjgyOTc0Mjg4MjU4N2Fh
MmZhOGYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvYW5p
bW9tZXRlci5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvYW5p
bW9tZXRlci5odG1sCkBAIC0zMiw3ICszMiw4IEBACiAgICAgICAgICAgICAgICAgPGxhYmVsPjxp
bnB1dCBpZD0iZXN0aW1hdGVkLWZyYW1lLXJhdGUiIHR5cGU9ImNoZWNrYm94IiBjaGVja2VkPiBF
c3RpbWF0ZWQgRnJhbWUgUmF0ZTwvbGFiZWw+PGJyPgogICAgICAgICAgICAgICAgIDxsYWJlbD48
aW5wdXQgaWQ9ImZpeC10ZXN0LWNvbXBsZXhpdHkiIHR5cGU9ImNoZWNrYm94Ij4gRml4IHRlc3Qg
Y29tcGxleGl0eSBhZnRlciB3YXJtdXA8L2xhYmVsPjxicj4KICAgICAgICAgICAgICAgICA8bGFi
ZWw+PGlucHV0IGlkPSJzaG93LXJ1bm5pbmctcmVzdWx0cyIgdHlwZT0iY2hlY2tib3giPiBTaG93
IHJ1bm5pbmcgcmVzdWx0czwvbGFiZWw+PGJyPgotICAgICAgICAgICAgICAgIDxsYWJlbD48aW5w
dXQgaWQ9Im5vcm1hbGl6ZS1mb3ItZGV2aWNlLXNjYWxlLWZhY3RvciIgdHlwZT0iY2hlY2tib3gi
PiBOb3JtYWxpemUgZm9yIGRldmljZSBzY2FsZSBmYWN0b3I8L2xhYmVsPgorICAgICAgICAgICAg
ICAgIDxsYWJlbD48aW5wdXQgaWQ9Im5vcm1hbGl6ZS1mb3ItZGV2aWNlLXNjYWxlLWZhY3RvciIg
dHlwZT0iY2hlY2tib3giPiBOb3JtYWxpemUgZm9yIGRldmljZSBzY2FsZSBmYWN0b3I8L2xhYmVs
Pjxicj4KKyAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IGlkPSJhZGFwdGl2ZS10ZXN0IiB0
eXBlPSJjaGVja2JveCIgY2hlY2tlZCBvbmNoYW5nZT0iYmVuY2htYXJrQ29udHJvbGxlci5vbkNo
YW5nZUFkYXB0aXZlVGVzdENoZWNrYm94KCkiPiBBZGFwdGl2ZSB0ZXN0PC9sYWJlbD4KICAgICAg
ICAgICAgIDwvb3B0aW9ucz4KICAgICAgICAgICAgIDxmb290ZXI+CiAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBjbGFzcz0ibGFyZ2UtYnV0dG9uIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVy
LnN0YXJ0VGVzdCgpIj5TdGFydCBUZXN0PC9idXR0b24+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmNzcyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuY3NzCmlu
ZGV4IGUwOGI0YzQwN2Y3Zjk0ZjJkYTdjOTAwNzgwNmQzMGViNzRkNThmMmQuLjAwNWNjYzFjYWM0
Nzc5MTVhYTExN2MwNjVjNWIyNDhkNjkzNDg3NDEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuY3NzCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuY3NzCkBA
IC0yNzksOCArMjc5LDE3IEBAIHNlY3Rpb24jaG9tZSA+IGhlYWRlciA+IGgyIHsKICAgICB0ZXh0
LWFsaWduOiBjZW50ZXI7CiB9CiAKLXNlY3Rpb24jaG9tZSA+IG9wdGlvbnMgPiBsYWJlbCA+IGlu
cHV0W3R5cGU9Im51bWJlciJdIHsKLSAgIHdpZHRoOiA1MHB4Oworc2VjdGlvbiNob21lIGlucHV0
W3R5cGU9Im51bWJlciJdIHsKKyAgICB3aWR0aDogNzBweDsKK30KKyAKK3NlY3Rpb24jaG9tZSA+
IHN1aXRlcyBpbnB1dFt0eXBlPSJudW1iZXIiXSB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBm
bG9hdDogcmlnaHQ7Cit9CisKK3NlY3Rpb24jaG9tZSA+IHN1aXRlcyBpbnB1dFt0eXBlPSJudW1i
ZXIiXS5zZWxlY3RlZCB7CisgICAgZGlzcGxheTogaW5saW5lOwogfQogCiAvKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5l
ci9yZXNvdXJjZXMvYW5pbW9tZXRlci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9y
dW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanMKaW5kZXggYzE0ZTY1YjI3NTg1Yzk5YzliY2Y2
MzhkYTJjMzhhYzJkYzVmMTg5YS4uZTU2NzY4MWEyZTFjZjQxMDc2YmExYjYyM2YyM2U0ZmVhYjgx
OTViMCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9yZXNv
dXJjZXMvYW5pbW9tZXRlci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVu
bmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzCkBAIC00Nyw2ICs0Nyw3IEBAIHdpbmRvdy5iZW5j
aG1hcmtSdW5uZXJDbGllbnQgPSB7CiAgICAgICAgIHRoaXMuc2NvcmUgPSBqc29uW1N0cmluZ3Nb
IkpTT05fU0NPUkUiXV07CiAgICAgICAgIHRoaXMuX3Jlc3VsdHNUYWJsZS5zaG93SXRlcmF0aW9u
cyhqc29uW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzBdXSk7CiAgICAgICAgIHNlY3Rpb25zTWFu
YWdlci5zaG93SlNPTigianNvbiIsIGpzb25bU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMF1dWzBd
KTsKKyAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVMb2NhbFN0b3JhZ2VGcm9tSlNPTihqc29u
W1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzBdXVswXSk7CiAgICAgICAgIGJlbmNobWFya0NvbnRy
b2xsZXIuc2hvd1Jlc3VsdHMoKTsKICAgICB9CiB9CkBAIC0xNDIsNiArMTQzLDExIEBAIHdpbmRv
dy5vcHRpb25zTWFuYWdlciA9CiAgICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCJzZWN0aW9uI2hvbWUgPiBvcHRpb25zIGlucHV0Iik7OwogICAgIH0sCiAgICAgCisgICAg
X2FkYXB0aXZlVGVzdEVsZW1lbnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzZWN0aW9uI2hvbWUgPiBvcHRpb25zICNhZGFwdGl2ZS10
ZXN0Iik7OworICAgIH0sCisgICAgCiAgICAgdXBkYXRlVUlGcm9tTG9jYWxTdG9yYWdlOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB2YXIgb3B0aW9uc0VsZW1lbnRzID0gdGhpcy5fb3B0aW9u
c0VsZW1lbnRzKCk7CkBAIC0xOTcsOSArMjAzLDE5IEBAIHdpbmRvdy5zdWl0ZXNNYW5hZ2VyID0K
ICAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT0nY2hlY2ti
b3gnXTpub3QoLmV4cGFuZC1idXR0b24pIik7CiAgICAgfSwKIAotICAgIF9sb2NhbFN0b3JhZ2VO
YW1lRm9yVGVzdDogZnVuY3Rpb24oc3VpdGUsIHRlc3QpCisgICAgX2VkaXRFbGVtZW50OiBmdW5j
dGlvbihlbGVtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3Rv
cigiaW5wdXRbdHlwZT0nbnVtYmVyJ10iKTsKKyAgICB9LAorCisgICAgX2VkaXRzRWxlbWVudHM6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBzdWl0ZS5uYW1lICsgIi8iICsgdGVz
dC5uYW1lOworICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2VjdGlv
biNob21lID4gc3VpdGVzIGlucHV0W3R5cGU9J251bWJlciddIik7CisgICAgfSwKKyAgICAgICAg
CisgICAgX2xvY2FsU3RvcmFnZU5hbWVGb3JUZXN0OiBmdW5jdGlvbihzdWl0ZU5hbWUsIHRlc3RO
YW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN1aXRlTmFtZSArICIvIiArIHRlc3ROYW1lOwog
ICAgIH0sCiAKICAgICBfdXBkYXRlU3VpdGVDaGVja2JveFN0YXRlOiBmdW5jdGlvbihzdWl0ZUNo
ZWNrYm94KQpAQCAtMjc2LDYgKzI5Miw3IEBAIHdpbmRvdy5zdWl0ZXNNYW5hZ2VyID0KIAogICAg
ICAgICBzdWl0ZUNoZWNrYm94LnRlc3RzRWxlbWVudHMucHVzaCh0ZXN0RWxlbWVudCk7CiAgICAg
ICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiICsgdGVzdC5u
YW1lKSk7CisgICAgICAgIERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoImlucHV0Iiwg
eyB0eXBlOiAibnVtYmVyIiB9LCB0ZXN0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiB0ZXN0RWxl
bWVudDsKICAgICB9LAogCkBAIC0yOTQsNiArMzExLDIwIEBAIHdpbmRvdy5zdWl0ZXNNYW5hZ2Vy
ID0KICAgICAgICAgfSwgdGhpcyk7CiAgICAgfSwKICAgICAKKyAgICB1cGRhdGVFZGl0c0VsZW1l
bnRzU3RhdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBlZGl0c0VsZW1lbnRzID0g
dGhpcy5fZWRpdHNFbGVtZW50cygpOworICAgICAgICB2YXIgc2hvdyA9ICFvcHRpb25zTWFuYWdl
ci5fYWRhcHRpdmVUZXN0RWxlbWVudCgpLmNoZWNrZWQ7CisKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBlZGl0c0VsZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgZWRp
dEVsZW1lbnQgPSBlZGl0c0VsZW1lbnRzW2ldOworICAgICAgICAgICAgaWYgKHNob3cpCisgICAg
ICAgICAgICAgICAgZWRpdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlZGl0RWxlbWVudC5jbGFzc0xpc3QucmVtb3Zl
KCJzZWxlY3RlZCIpOworICAgICAgICB9CisgICAgfSwKKyAgICAKICAgICB1cGRhdGVVSUZyb21M
b2NhbFN0b3JhZ2U6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBzdWl0ZXNFbGVtZW50
cyA9IHRoaXMuX3N1aXRlc0VsZW1lbnRzKCk7CkBAIC0zMDUsMTQgKzMzNiwxNiBAQCB3aW5kb3cu
c3VpdGVzTWFuYWdlciA9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHN1aXRlQ2hlY2tib3gu
dGVzdHNFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RFbGVtZW50KSB7CiAgICAgICAgICAg
ICAgICAgdmFyIHRlc3RDaGVja2JveCA9IHRoaXMuX2NoZWNrYm94RWxlbWVudCh0ZXN0RWxlbWVu
dCk7CisgICAgICAgICAgICAgICAgdmFyIHRlc3RFZGl0ID0gdGhpcy5fZWRpdEVsZW1lbnQodGVz
dEVsZW1lbnQpOwogICAgICAgICAgICAgICAgIHZhciB0ZXN0ID0gdGVzdENoZWNrYm94LnRlc3Q7
CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIHN0ciA9IGxvY2FsU3RvcmFn
ZS5nZXRJdGVtKHRoaXMuX2xvY2FsU3RvcmFnZU5hbWVGb3JUZXN0KHN1aXRlLCB0ZXN0KSk7Cisg
ICAgICAgICAgICAgICAgdmFyIHN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuX2xvY2Fs
U3RvcmFnZU5hbWVGb3JUZXN0KHN1aXRlLm5hbWUsIHRlc3QubmFtZSkpOwogICAgICAgICAgICAg
ICAgIGlmIChzdHIgPT09IG51bGwpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgICAgIHZhciB2YWx1ZSA9IEpTT04ucGFyc2Uoc3RyKTsKICAgICAgICAgICAgICAg
ICB0ZXN0Q2hlY2tib3guY2hlY2tlZCA9IHZhbHVlLmNoZWNrZWQ7CisgICAgICAgICAgICAgICAg
dGVzdEVkaXQudmFsdWUgPSB2YWx1ZS5jb21wbGV4aXR5OwogICAgICAgICAgICAgfSwgdGhpcyk7
CiAKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN1aXRlQ2hlY2tib3hTdGF0ZShzdWl0ZUNoZWNr
Ym94KTsKQEAgLTMzNCwxMyArMzY3LDE2IEBAIHdpbmRvdy5zdWl0ZXNNYW5hZ2VyID0KICAgICAg
ICAgICAgIHZhciB0ZXN0cyA9IFtdOwogICAgICAgICAgICAgc3VpdGVDaGVja2JveC50ZXN0c0Vs
ZW1lbnRzLmZvckVhY2goZnVuY3Rpb24odGVzdEVsZW1lbnQpIHsKICAgICAgICAgICAgICAgICB2
YXIgdGVzdENoZWNrYm94ID0gdGhpcy5fY2hlY2tib3hFbGVtZW50KHRlc3RFbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICB2YXIgdGVzdEVkaXQgPSB0aGlzLl9lZGl0RWxlbWVudCh0ZXN0RWxlbWVu
dCk7CiAgICAgICAgICAgICAgICAgdmFyIHRlc3QgPSB0ZXN0Q2hlY2tib3gudGVzdDsKICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAodGVzdENoZWNrYm94LmNoZWNrZWQpCisg
ICAgICAgICAgICAgICAgaWYgKHRlc3RDaGVja2JveC5jaGVja2VkKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3QuY29tcGxleGl0eSA9IHRlc3RFZGl0LnZhbHVlOwogICAgICAgICAgICAgICAg
ICAgICB0ZXN0cy5wdXNoKHRlc3QpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ICAgIHZhciB2YWx1ZSA9IHsgY2hlY2tlZDogdGVzdENoZWNrYm94LmNoZWNrZWQgfTsgCi0gICAg
ICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5fbG9jYWxTdG9yYWdlTmFtZUZv
clRlc3Qoc3VpdGUsIHRlc3QpLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpOworICAgICAgICAgICAg
ICAgIHZhciB2YWx1ZSA9IHsgY2hlY2tlZDogdGVzdENoZWNrYm94LmNoZWNrZWQsIGNvbXBsZXhp
dHk6IHRlc3RFZGl0LnZhbHVlIH07IAorICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJ
dGVtKHRoaXMuX2xvY2FsU3RvcmFnZU5hbWVGb3JUZXN0KHN1aXRlLm5hbWUsIHRlc3QubmFtZSks
IEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7CiAgICAgICAgICAgICB9LCB0aGlzKTsKIAogICAgICAg
ICAgICAgaWYgKHRlc3RzLmxlbmd0aCkKQEAgLTM0OCw2ICszODQsMjIgQEAgd2luZG93LnN1aXRl
c01hbmFnZXIgPQogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHN1aXRlczsKKyAgICB9LAor
ICAgIAorICAgIHVwZGF0ZUxvY2FsU3RvcmFnZUZyb21KU09OOiBmdW5jdGlvbihpdGVyYXRpb25S
ZXN1bHRzKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgc3VpdGVOYW1lIGluIGl0ZXJhdGlvblJl
c3VsdHNbU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMV1dKSB7CisgICAgICAgICAgICB2YXIgc3Vp
dGVSZXN1bHRzID0gaXRlcmF0aW9uUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsxXV1b
c3VpdGVOYW1lXTsKKworICAgICAgICAgICAgZm9yICh2YXIgdGVzdE5hbWUgaW4gc3VpdGVSZXN1
bHRzW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzJdXSkgeworICAgICAgICAgICAgICAgIHZhciB0
ZXN0UmVzdWx0cyA9IHN1aXRlUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsyXV1bdGVz
dE5hbWVdOworICAgICAgICAgICAgICAgIHZhciBkYXRhID0gdGVzdFJlc3VsdHNbU3RyaW5nc1si
SlNPTl9FWFBFUklNRU5UUyJdWzBdXQorICAgICAgICAgICAgICAgIHZhciBjb21wbGV4aXR5ID0g
TWF0aC5yb3VuZChkYXRhW1N0cmluZ3NbIkpTT05fTUVBU1VSRU1FTlRTIl1bMF1dKTsKKworICAg
ICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHsgY2hlY2tlZDogdHJ1ZSwgY29tcGxleGl0eTogY29t
cGxleGl0eSB9OworICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuX2xv
Y2FsU3RvcmFnZU5hbWVGb3JUZXN0KHN1aXRlTmFtZSwgdGVzdE5hbWUpLCBKU09OLnN0cmluZ2lm
eSh2YWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zNTks
OCArNDExLDE0IEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0KICAgICAgICAgb3B0aW9u
c01hbmFnZXIudXBkYXRlVUlGcm9tTG9jYWxTdG9yYWdlKCk7CiAgICAgICAgIHN1aXRlc01hbmFn
ZXIuY3JlYXRlRWxlbWVudHMoKTsKICAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVVSUZyb21M
b2NhbFN0b3JhZ2UoKTsKKyAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVFZGl0c0VsZW1lbnRz
U3RhdGUoKTsKICAgICB9LAogCisgICAgb25DaGFuZ2VBZGFwdGl2ZVRlc3RDaGVja2JveDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVFZGl0c0VsZW1lbnRz
U3RhdGUoKTsKKyAgICB9LAorICAgIAogICAgIF9ydW5CZW5jaG1hcms6IGZ1bmN0aW9uKHN1aXRl
cywgb3B0aW9ucykKICAgICB7CiAgICAgICAgIGJlbmNobWFya1J1bm5lckNsaWVudC5pbml0aWFs
aXplKHN1aXRlcywgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKaW5kZXggZDY0NTYxMGI4ZDJhN2UwYzA4ZjA4MThj
MGY0YzcyYzA5NTZkYzY0MC4uYWE5MmU4MWQ3ODVkODg2MDkwZTg1NzUxOTkyODkzNDk0MzYxNjU5
NSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNl
cy9tYWluLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJj
ZXMvbWFpbi5qcwpAQCAtMTc5LDcgKzE3OSwxMSBAQCBCZW5jaG1hcmsucHJvdG90eXBlID0KICAg
ICAgICAgfQogCiAgICAgICAgIHZhciB0dW5lVmFsdWUgPSAwOwotICAgICAgICBpZiAoISh0aGlz
Ll9pc1NhbXBsaW5nICYmIHRoaXMub3B0aW9uc1siZml4LXRlc3QtY29tcGxleGl0eSJdKSkgewor
ICAgICAgICBpZiAodGhpcy5vcHRpb25zWyJjb21wbGV4aXR5Il0gJiYgIXRoaXMub3B0aW9uc1si
YWRhcHRpdmUtdGVzdCJdKSB7CisgICAgICAgICAgICAvLyB0aGlzLnR1bmUoMCkgcmV0dXJucyB0
aGUgY3VycmVudCBjb21wbGV4aXR5IG9mIHRoZSB0ZXN0LgorICAgICAgICAgICAgdHVuZVZhbHVl
ID0gdGhpcy5vcHRpb25zWyJjb21wbGV4aXR5Il0gLSB0aGlzLnR1bmUoMCk7CisgICAgICAgIH0K
KyAgICAgICAgZWxzZSBpZiAoISh0aGlzLl9pc1NhbXBsaW5nICYmIHRoaXMub3B0aW9uc1siZml4
LXRlc3QtY29tcGxleGl0eSJdKSkgewogICAgICAgICAgICAgLy8gVGhlIHJlbGF0aW9uc2hpcCBi
ZXR3ZWVuIGZyYW1lUmF0ZSBhbmQgdGVzdCBjb21wbGV4aXR5IGlzIGludmVyc2UtcHJvcG9ydGlv
bmFsIHNvIHdlCiAgICAgICAgICAgICAvLyBuZWVkIHRvIHVzZSB0aGUgbmVnYXRpdmUgb2YgUElE
Q29udHJvbGxlci50dW5lKCkgdG8gY2hhbmdlIHRoZSBjb21wbGV4aXR5IG9mIHRoZSB0ZXN0Lgog
ICAgICAgICAgICAgdHVuZVZhbHVlID0gLXRoaXMuX2NvbnRyb2xsZXIudHVuZShjdXJyZW50RnJh
bWVSYXRlLCB0aW1lRGVsdGEgLyAxMDAwKTsKQEAgLTIzNyw3ICsyNDEsOSBAQCB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkKIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGZyb20gdGhlIHN1aXRlIGNvbnRyb2xsZXIgcnVuLWNhbGxiYWNrIHdoZW4gcnVubmluZyB0
aGUgYmVuY2htYXJrIHJ1bm5lci4KIHdpbmRvdy5ydW5CZW5jaG1hcmsgPSBmdW5jdGlvbihzdWl0
ZSwgdGVzdCwgb3B0aW9ucywgcmVjb3JkVGFibGUsIHByb2dyZXNzQmFyKQogewotICAgIHZhciBt
ZXJnZWRPcHRpb25zID0gVXRpbGl0aWVzLm1lcmdlT2JqZWN0cyhvcHRpb25zLCBVdGlsaXRpZXMu
cGFyc2VQYXJhbWV0ZXJzKCkpOwotICAgIHdpbmRvdy5iZW5jaG1hcmsgPSB3aW5kb3cuYmVuY2ht
YXJrQ2xpZW50LmNyZWF0ZShzdWl0ZSwgdGVzdCwgbWVyZ2VkT3B0aW9ucywgcmVjb3JkVGFibGUs
IHByb2dyZXNzQmFyKTsKKyAgICB2YXIgYmVuY2htYXJrT3B0aW9ucyA9IHsgY29tcGxleGl0eTog
dGVzdC5jb21wbGV4aXR5IH07CisgICAgYmVuY2htYXJrT3B0aW9ucyA9IFV0aWxpdGllcy5tZXJn
ZU9iamVjdHMoYmVuY2htYXJrT3B0aW9ucywgb3B0aW9ucyk7CisgICAgYmVuY2htYXJrT3B0aW9u
cyA9IFV0aWxpdGllcy5tZXJnZU9iamVjdHMoYmVuY2htYXJrT3B0aW9ucywgVXRpbGl0aWVzLnBh
cnNlUGFyYW1ldGVycygpKTsKKyAgICB3aW5kb3cuYmVuY2htYXJrID0gd2luZG93LmJlbmNobWFy
a0NsaWVudC5jcmVhdGUoc3VpdGUsIHRlc3QsIGJlbmNobWFya09wdGlvbnMsIHJlY29yZFRhYmxl
LCBwcm9ncmVzc0Jhcik7CiAgICAgcmV0dXJuIHdpbmRvdy5iZW5jaG1hcmsucnVuKCk7CiB9CmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGRlYmE1YThmMGViYmVkNmIwMTA0Y2RhYjAyMjMyNDRhNGFhNDIwMzEu
LjliMWI5ZmE3YTYzNGMwMDQ1MWMwYTVhZGFkZTdhMGIxZmFmNzQwMmIgMTAwNjQ0Ci0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsNDYgQEAKIDIwMTUtMTEtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLGNvbT4KIAorICAgICAgICBBZGQgYW4gb3B0aW9uIHRvIG1ha2UgdGhlIGdy
YXBoaWNzIGJlbmNobWFyayBydW5zIGEgc3BlY2lmaWMgdGVzdCB3aXRoIGZpeGVkIGNvbXBsZXhp
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDUy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEJlc2lkZSBl
YWNoIHRlc3QgaW4gdGhlIHN1aXRlcyB0cmVlLCB3ZSBhcmUgZ29pbmcgdG8gc2hvdyB0aGUgY29t
cGxleGl0eQorICAgICAgICBhcml0aG1ldGljIG1lYW4gb2YgdGhlIG9mIHRoZSBsYXN0IHJ1biBp
biBhbiBlZGl0IGNvbnRyb2wuIEJhc2VkIG9uIGEKKyAgICAgICAgbmV3IG9wdGlvbiB0aGVzZSBl
ZGl0IGNvbnRyb2xzIHdpbGwgYWxsIGJlIHZpc2libGUgb3IgaGlkZGVuLiBJZiB0aGV5IGFyZQor
ICAgICAgICB2aXNpYmxlIHRoZWlyIHZhbHVlcyBjYW4gYmUgY2hhbmdlZC4gVGhlIGJlbmNobWFy
ayBydW5uZXIgaWYgaXQgcnVuIGluCisgICAgICAgIHRoZSBub24tYWRhcHRpdmUgbW9kZSB3aWxs
IHNldCB0aGUgY29tcGxleGl0eSBvZiB0aGUgdGVzdCB0byB0aGUgcGFzc2VkCisgICAgICAgIHZh
bHVlIGFuZCB3aWxsIG5vdCBjaGFuZ2UgaXQgZXZlci4gVGhlIGFuaW1hdG9yIHdpbGwgYW5pbWF0
ZSB0aGUgdGVzdCBhbmQKKyAgICAgICAgZnJhbWUgcmF0ZSB3aWxsIGFsc28gYmUgbWVhc3VyZWQu
CisKKyAgICAgICAgKiBBbmltb21ldGVyL3J1bm5lci9hbmltb21ldGVyLmh0bWw6IEFkZCBhIG5l
dyBvcHRpb24gZm9yIHRoZSBub24tYWRhcHRpdmUgbW9kZS4KKyAgICAgICAgCisgICAgICAgICog
QW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuY3NzOgorICAgICAgICAoc2Vj
dGlvbiNob21lIGlucHV0W3R5cGU9Im51bWJlciJdKTogRGVmaW5lIHRoZSB3aWR0aCBvZiBhbGwg
dGhlIGVkaXQgY29udHJvbCBpbiB0aGUgPGhvbWU+IHNlY3Rpb24uCisgICAgICAgIChzZWN0aW9u
I2hvbWUgPiBzdWl0ZXMgaW5wdXRbdHlwZT0ibnVtYmVyIl0pOiBUaGUgZWRpdCBjb250cm9scyBp
biB0aGUgPHN1aXRlcz4gYm94IHdpbGwgYmUgcmlnaHQgYWxpZ25lZCBhbmQgaGlkZGVuIGJ5IGRl
ZmF1bHQuCisgICAgICAgIChzZWN0aW9uI2hvbWUgPiBzdWl0ZXMgaW5wdXRbdHlwZT0ibnVtYmVy
Il0uc2VsZWN0ZWQpOiBXaGVuIHRoZSBjbGFzcyAic2VsZWN0ZWQiIGlzIGFkZGVkLCB0aGUgZWRp
dCBjb250cm9scyB3aWxsIGJlIHZpc2libGUuCisgICAgICAgIChzZWN0aW9uI2hvbWUgPiBvcHRp
b25zID4gbGFiZWwgPiBpbnB1dFt0eXBlPSJudW1iZXIiXSk6IERlbGV0ZWQuCisgICAgICAgIAor
ICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzOgorICAg
ICAgICAod2luZG93LmJlbmNobWFya1J1bm5lckNsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9u
KTogVXBkYXRlIHRoZSBsb2NhbCBzdG9yYWdlIHdpdGggdGhlIHJlc3VsdHMgb2YgZWFjaCB0ZXN0
LgorICAgICAgICAod2luZG93Lm9wdGlvbnNNYW5hZ2VyLl9hZGFwdGl2ZVRlc3RFbGVtZW50KTog
UmV0dXJucyB0aGUgY2hlY2tib3ggZm9yIHNldHRpbmcgdGhlIGFkYXB0aXZlIHRlc3Qgb3B0aW9u
LgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFnZXIuX2VkaXRFbGVtZW50KTogIFJldHVybnMg
dGhlIGVkaXQgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggZWFjaCB0ZXN0IGVsZW1lbnQgaW4gdGhl
IHN1aXRlcyB0cmVlLgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFnZXIuX2VkaXRzRWxlbWVu
dHMpOiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSA8c3VpdGVzPiBi
b3guCisgICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fbG9jYWxTdG9yYWdlTmFtZUZvclRl
c3QpOiBDaGFuZ2UgdGhpcyBmdW5jdGlvbiB0byB0YWtlIHN0cmluZ3MuCisgICAgICAgICh3aW5k
b3cuc3VpdGVzTWFuYWdlci5fY3JlYXRlVGVzdEVsZW1lbnQpOiBBZGRzIGFuIGVkaXQgY29udHJv
bCBiZXNpZGUgZWFjaCB0ZXN0LgorICAgICAgICAod2luZG93LnN1aXRlc01hbmFnZXIudXBkYXRl
RWRpdHNFbGVtZW50c1N0YXRlKTogQWRkcy9SZW1vdmVzIHRoZSAnc2VsZWN0ZWQnIGNsYXNzIHRv
L2Zyb20gYWxsIHRoZSB0ZXN0cyBlZGl0IGVsZW1lbnRzLgorICAgICAgICAod2luZG93LnN1aXRl
c01hbmFnZXIudXBkYXRlVUlGcm9tTG9jYWxTdG9yYWdlKTogUmVhZHMgdGhlIGVkaXQgY29udHJv
bCB2YWx1ZSBmcm9tIHRoZSBsb2NhbCBzdG9yYWdlLgorICAgICAgICAod2luZG93LnN1aXRlc01h
bmFnZXIudXBkYXRlTG9jYWxTdG9yYWdlRnJvbVVJKTogU2F2ZXMgdGhlIGVkaXQgY29udHJvbCB2
YWx1ZSB0byB0aGUgbG9jYWwgc3RvcmFnZS4KKyAgICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5hZ2Vy
LnVwZGF0ZUxvY2FsU3RvcmFnZUZyb21KU09OKTogU2F2ZXMgdGhlIGxhc3QgcnVuIHJlc3VsdHMg
dG8gdGhlIGxvY2FsIHN0b3JhZ2UuCisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxl
ci5pbml0aWFsaXplKTogU2hvd3MvSGlkZXMgdGhlIHRlc3QgZWRpdCBjb250cm9scyBiYXNlZCBv
biB0aGUgYWRhcHRpdmUgdGVzdCBvcHRpb24uCisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29u
dHJvbGxlci5vbkNoYW5nZUFkYXB0aXZlVGVzdENoZWNrYm94KTogQW4gb25jaGFuZ2UgZXZlbnQg
aGFuZGxlciBmb3IgdGhlIGFkYXB0aXZlIHRlc3QgY2hlY2tib3guCisgICAgICAgIAorICAgICAg
ICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6IAorICAgICAgICAoQmVuY2ht
YXJrLnByb3RvdHlwZS51cGRhdGUpOiBGaXggdGhlIGNvbXBsZXhpdHkgb2YgdGhlIHRlc3QgaWYg
dGhlIHJ1bm5pbmcgbW9kZSBpcyBub24tYWRhcHRpdmUgdGVzdCBhbmQgZGVzaXJlZCBjb21wbGV4
aXR5IGlzIG5vdCB6ZXJvLgorICAgICAgICAod2luZG93LnJ1bkJlbmNobWFyayk6IEFkZCB0aGUg
dGVzdCBjb21wbGV4aXR5IGFzIGEgbmV3IGJlbmNobWFyayBvcHRpb24uCisKKzIwMTUtMTEtMDEg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLGNvbT4KKwogICAgICAgICBN
YWtlIHRoZSBzaXplIG9mIHRoZSBiZW5jaG1hcmsgY2FudmFzIGFkYXB0aXZlIHRvIHRoZSBzY3Jl
ZW4gc2l6ZSBhbmQgc2NyZWVuIHJlc29sdXRpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDUzMAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>