<?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>64031</bug_id>
          
          <creation_ts>2011-07-06 14:13:28 -0700</creation_ts>
          <short_desc>Split Driver, DriverOutput and DriverInput out into a new driver.py file</short_desc>
          <delta_ts>2011-07-06 15:35:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433017</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 14:13:28 -0700</bug_when>
    <thetext>Split Driver, DriverOutput and DriverInput out into a new driver.py file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433021</commentid>
    <comment_count>1</comment_count>
      <attachid>99878</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 14:17:58 -0700</bug_when>
    <thetext>Created attachment 99878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433024</commentid>
    <comment_count>2</comment_count>
      <attachid>99878</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-06 14:22:34 -0700</bug_when>
    <thetext>Comment on attachment 99878
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/__init__.py:37
&gt; -from test import unit_test_filesystem
&gt; +import builders  # Why is this in port?
&gt;  
&gt; -import builders
&gt; +from base import Port  # It&apos;s possible we don&apos;t need to export this virtual baseclass outside the module.
&gt; +from driver import Driver, DriverInput, DriverOutput

We&apos;ve had pain importing things in __init__ files before.  Maybe this will be ok though...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433030</commentid>
    <comment_count>3</comment_count>
      <attachid>99878</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 14:27:40 -0700</bug_when>
    <thetext>Comment on attachment 99878
Patch

Rejecting attachment 99878 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-03&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
ls/Scripts/webkitpy/layout_tests/port/test.py
patching file Tools/Scripts/webkitpy/layout_tests/port/webkit.py
patching file Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py
patching file Tools/Scripts/webkitpy/to_be_moved/rebaseline_chromium_webkit_tests_unittest.py
patching file Tools/Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8986884</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433077</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 15:35:09 -0700</bug_when>
    <thetext>Committed r90506: &lt;http://trac.webkit.org/changeset/90506&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99878</attachid>
            <date>2011-07-06 14:17:58 -0700</date>
            <delta_ts>2011-07-06 14:27:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64031-20110706141757.patch</filename>
            <type>text/plain</type>
            <size>51332</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA0ODMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYmMwNTkxNjAxOTNmNTUxM2FmYjQ4NDUzNmU4NTBkOWZl
OTdmM2MyLi5jYmI2NTkzMzE0YTcwYzM0MTIyNGI2ZTY2YTY5OWJiOGQ0OWE0OWUyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDQg
QEAKIDIwMTEtMDctMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAg
IFNwbGl0IERyaXZlciwgRHJpdmVyT3V0cHV0IGFuZCBEcml2ZXJJbnB1dCBvdXQgaW50byBhIG5l
dyBkcml2ZXIucHkgZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjQwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGVuZGVkIHVwIGtpbmRhIGxhcmdlIGFuZCBJJ20gaGFwcHkgdG8gYnJlYWsg
aXQgdXAgaWYgZGVzaXJlZC4KKworICAgICAgICBBcyBwYXJ0IG9mIGNsZWFuaW5nIHVwIHRoZSBQ
b3J0IG1vZHVsZSwgSSBzcGxpdCBEcml2ZXIsIERyaXZlcklucHV0IGFuZCBEcml2ZXJPdXRwdXQK
KyAgICAgICAgb3V0IGludG8gaXRzIG93biBkcml2ZXIucHkgZmlsZS4KKworICAgICAgICBJIGFs
c28gY2xlYW5lZCB1cCBob3cgd2UgaW1wb3J0IFBvcnQgb2JqZWN0cywgYnkgbWFraW5nIHBvcnQv
X19pbml0X18ucHkKKyAgICAgICAgZXhwb3NlIFBvcnQsIERyaXZlciwgRHJpdmVySW5wdXQsIGFu
ZCBEcml2ZXJPdXRwdXQuICBJIHJlbW92ZWQgZXhwb3N1cmUgb2YKKyAgICAgICAgc29tZSB2YXJp
b3VzIHRlc3Qgb2JqZWN0cyBhcyB0aGV5IHdlcmUgY2F1c2luZyBjaXJjdWxhciBkZXBlbmRlbmNp
ZXMuCisgICAgICAgIGJhc2UucHkgaXMgbm93IGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBw
b3J0LiAgTm8gbG9uZ2VyIGlzICJiYXNlIiByZWZlcmVuY2VkCisgICAgICAgIGFueXdoZXJlIGlu
IHRoZSBjb2RlLgorCisgICAgICAgIEkgYWxzbyBtYWRlIERyaXZlci5fX2luaXRfXyBub24tdmly
dHVhbCBzbyB0aGF0IHN1Yi1jbGFzc2VycyBjb3VsZCBhbGwgc2hhcmUKKyAgICAgICAgdGhlIGRh
dGEgc3RvcmFnZSBvbiBEcml2ZXIuICBUaGlzIG1vcmUgY2xvc2VseSBtYXRjaGVzIGhvdyBvdGhl
ciBzdWJjbGFzc2VzCisgICAgICAgIHdvcmsgdGhyb3VnaG91dCBvdXIgcHl0aG9uIGNvZGUuCisK
KyAgICAgICAgU3RhbmRhcmQgbGluZS11bndyYXBwaW5nIGFuZCBkb2Mtc3RyaW5nIHJlbW92YWwg
YXMgSSB3ZW50IHRocm91Z2ggdGhlIGNvZGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVu
bmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvX19p
bml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9i
YXNlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFz
ZV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZHJpdmVyLnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2RyeXJ1bi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rl
c3RzX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJz
L3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHk6CisKKzIwMTEtMDctMDYgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFVucmV2aWV3ZWQuICBGaXggYSB1bml0dGVz
dCBmcm9tIGhpdHRpbmcgdGhlIG5ldHdvcmsuIDopCiAKICAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHk6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVp
bGRib3RfdW5pdHRlc3QucHkKaW5kZXggNjJjZmNlNWExYzg2MzM3OTljMjkxOWNhOWYwNTVmYjM3
MjUxOTg2OC4uYWNkZDQ2N2Q1Yjk2YmU5MjJkOWQ5ZjYyNjNkZDViMDRhNjcyMDI3MiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWls
ZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQpAQCAtMTM4LDcgKzEzOCw3IEBAIGNsYXNzIEJ1aWxk
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGJ1aWxkYm90ID0gQnVpbGRCb3QoKQog
ICAgICAgICBidWlsZGVyID0gQnVpbGRlcih1IkZvbyBCdWlsZGVyICh0ZXN0KSIsIGJ1aWxkYm90
KQogICAgICAgICBidWlsZCA9IEJ1aWxkKGJ1aWxkZXIsIE5vbmUsIE5vbmUsIE5vbmUpCi0gICAg
ICAgIGJ1aWxkLl9mZXRjaF9maWxlX2Zyb21fcmVzdWx0cyA9IGxhbWJkYTogTm9uZQorICAgICAg
ICBidWlsZC5fZmV0Y2hfZmlsZV9mcm9tX3Jlc3VsdHMgPSBsYW1iZGEgZmlsZV9uYW1lOiBOb25l
CiAgICAgICAgICMgVGVzdCB0aGF0IGxheW91dF90ZXN0X3Jlc3VsdHMoKSByZXR1cm5zIE5vbmUg
aWYgdGhlIGZldGNoIGZhaWxzLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkLmxheW91
dF90ZXN0X3Jlc3VsdHMoKSwgTm9uZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xl
X3Rlc3RfcnVubmVyLnB5CmluZGV4IGM5MTU2ZTA0ZGUxZjhmZjNhYjAxOTY4MTk2ZTY0NTBjMDIz
NTczNjIuLjRiNjJkYTBkM2I2N2NhNmIwODAxODcxNWI4MWM3MGMxMjFkN2RmNWYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Np
bmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkKQEAgLTMwLDcgKzMwLDcg
QEAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdGltZQogCi1mcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5wb3J0IGltcG9ydCBiYXNlCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmRy
aXZlciBpbXBvcnQgRHJpdmVySW5wdXQsIERyaXZlck91dHB1dAogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgdGVzdF9mYWlsdXJlcwog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfcmVz
dWx0X3dyaXRlcgpAQCAtOTAsNyArOTAsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgUGxlYXNlIHJlbW92ZSB0aGF0IGZpbGUuJywg
c2VsZi5fdGVzdG5hbWUsIGV4cGVjdGVkX2ZpbGVuYW1lKQogCiAgICAgZGVmIF9leHBlY3RlZF9k
cml2ZXJfb3V0cHV0KHNlbGYpOgotICAgICAgICByZXR1cm4gYmFzZS5Ecml2ZXJPdXRwdXQoc2Vs
Zi5fcG9ydC5leHBlY3RlZF90ZXh0KHNlbGYuX2ZpbGVuYW1lKSwKKyAgICAgICAgcmV0dXJuIERy
aXZlck91dHB1dChzZWxmLl9wb3J0LmV4cGVjdGVkX3RleHQoc2VsZi5fZmlsZW5hbWUpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5leHBlY3RlZF9pbWFnZShz
ZWxmLl9maWxlbmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9w
b3J0LmV4cGVjdGVkX2NoZWNrc3VtKHNlbGYuX2ZpbGVuYW1lKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuZXhwZWN0ZWRfYXVkaW8oc2VsZi5fZmlsZW5hbWUp
KQpAQCAtMTA3LDcgKzEwNyw3IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAgIGlt
YWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9j
aGVja3N1bSgpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRf
Y2hlY2tzdW0oc2VsZi5fZmlsZW5hbWUpCi0gICAgICAgIHJldHVybiBiYXNlLkRyaXZlcklucHV0
KHNlbGYuX2ZpbGVuYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNoKQorICAgICAgICByZXR1
cm4gRHJpdmVySW5wdXQoc2VsZi5fZmlsZW5hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gp
CiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5ld19iYXNl
bGluZSBvciBzZWxmLl9vcHRpb25zLnJlc2V0X3Jlc3VsdHM6CkBAIC0yODUsMTIgKzI4NSwxMCBA
QCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogCiAgICAgZGVmIF9ydW5fcmVmdGVzdChzZWxmKToK
ICAgICAgICAgZHJpdmVyX291dHB1dDEgPSBzZWxmLl9kcml2ZXIucnVuX3Rlc3Qoc2VsZi5fZHJp
dmVyX2lucHV0KCkpCi0gICAgICAgIGRyaXZlcl9vdXRwdXQyID0gc2VsZi5fZHJpdmVyLnJ1bl90
ZXN0KAotICAgICAgICAgICAgYmFzZS5Ecml2ZXJJbnB1dChzZWxmLl9yZWZlcmVuY2VfZmlsZW5h
bWUsIHNlbGYuX3RpbWVvdXQsIGRyaXZlcl9vdXRwdXQxLmltYWdlX2hhc2gpKQorICAgICAgICBk
cml2ZXJfb3V0cHV0MiA9IHNlbGYuX2RyaXZlci5ydW5fdGVzdChEcml2ZXJJbnB1dChzZWxmLl9y
ZWZlcmVuY2VfZmlsZW5hbWUsIHNlbGYuX3RpbWVvdXQsIGRyaXZlcl9vdXRwdXQxLmltYWdlX2hh
c2gpKQogICAgICAgICB0ZXN0X3Jlc3VsdCA9IHNlbGYuX2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVm
ZXJlbmNlKGRyaXZlcl9vdXRwdXQxLCBkcml2ZXJfb3V0cHV0MikKIAotICAgICAgICB0ZXN0X3Jl
c3VsdF93cml0ZXIud3JpdGVfdGVzdF9yZXN1bHQoc2VsZi5fcG9ydCwgc2VsZi5fZmlsZW5hbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcml2ZXJfb3V0
cHV0MSwgZHJpdmVyX291dHB1dDIsIHRlc3RfcmVzdWx0LmZhaWx1cmVzKQorICAgICAgICB0ZXN0
X3Jlc3VsdF93cml0ZXIud3JpdGVfdGVzdF9yZXN1bHQoc2VsZi5fcG9ydCwgc2VsZi5fZmlsZW5h
bWUsIGRyaXZlcl9vdXRwdXQxLCBkcml2ZXJfb3V0cHV0MiwgdGVzdF9yZXN1bHQuZmFpbHVyZXMp
CiAgICAgICAgIHJldHVybiB0ZXN0X3Jlc3VsdAogCiAgICAgZGVmIF9jb21wYXJlX291dHB1dF93
aXRoX3JlZmVyZW5jZShzZWxmLCBkcml2ZXJfb3V0cHV0MSwgZHJpdmVyX291dHB1dDIpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9fX2luaXRf
Xy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvX19pbml0X18u
cHkKaW5kZXggYmMyZTEwNTllNjdmNTI4MDc0YThiMGM3ZmNlYWJlOGNjZmQzOTNjOS4uYmM3MGM3
MjhmOTlhMmY4ZmI2ZDk2ZmMyODM5OWZmMDk3YjIyODY4MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9fX2luaXRfXy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L19faW5pdF9fLnB5CkBAIC0zMSw2ICsz
MSw3IEBACiAKIGZyb20gZmFjdG9yeSBpbXBvcnQgZ2V0CiAKLWZyb20gdGVzdCBpbXBvcnQgdW5p
dF90ZXN0X2ZpbGVzeXN0ZW0KK2ltcG9ydCBidWlsZGVycyAgIyBXaHkgaXMgdGhpcyBpbiBwb3J0
PwogCi1pbXBvcnQgYnVpbGRlcnMKK2Zyb20gYmFzZSBpbXBvcnQgUG9ydCAgIyBJdCdzIHBvc3Np
YmxlIHdlIGRvbid0IG5lZWQgdG8gZXhwb3J0IHRoaXMgdmlydHVhbCBiYXNlY2xhc3Mgb3V0c2lk
ZSB0aGUgbW9kdWxlLgorZnJvbSBkcml2ZXIgaW1wb3J0IERyaXZlciwgRHJpdmVySW5wdXQsIERy
aXZlck91dHB1dApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlLnB5CmluZGV4IDczMmIwZDNiYWUwMzQ0ZGU0OGJlMzRjN2YyZGNjNWQ4MGFhMzk5OTEu
LjcwMmQ1M2NlNmY4ZDA1ODA1ZGZlNjdmZGRmNWVhMmQ3ZWQyMmJhMjcgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTM2LDcgKzM2
LDYgQEAgaW1wb3J0IGNnaQogaW1wb3J0IGRpZmZsaWIKIGltcG9ydCBlcnJubwogaW1wb3J0IG9z
Ci1pbXBvcnQgc2hsZXgKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKQEAgLTYzMSw3ICs2MzAs
NyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl91c2VyLm9wZW5f
dXJsKHJlc3VsdHNfZmlsZW5hbWUpCiAKICAgICBkZWYgY3JlYXRlX2RyaXZlcihzZWxmLCB3b3Jr
ZXJfbnVtYmVyKToKLSAgICAgICAgIiIiUmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBiYXNlLkRyaXZl
ciBzdWJjbGFzcyBmb3Igc3RhcnRpbmcvc3RvcHBpbmcgdGhlIHRlc3QgZHJpdmVyLiIiIgorICAg
ICAgICAiIiJSZXR1cm4gYSBuZXdseSBjcmVhdGVkIERyaXZlciBzdWJjbGFzcyBmb3Igc3RhcnRp
bmcvc3RvcHBpbmcgdGhlIHRlc3QgZHJpdmVyLiIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yKCdQb3J0LmNyZWF0ZV9kcml2ZXInKQogCiAgICAgZGVmIHN0YXJ0X2hlbHBlcihz
ZWxmKToKQEAgLTkwNSwxMTAgKzkwNCw2IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAg
cmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLmxheW91dF90ZXN0c19kaXIoKSwgJ3Bs
YXRmb3JtJywgcGxhdGZvcm0pCiAKIAotY2xhc3MgRHJpdmVySW5wdXQob2JqZWN0KToKLSAgICAi
IiJIb2xkcyB0aGUgaW5wdXQgcGFyYW1ldGVycyBmb3IgYSBkcml2ZXIuIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZmlsZW5hbWUsIHRpbWVvdXQsIGltYWdlX2hhc2gpOgotICAgICAgICAi
IiJJbml0aWFsaXplcyBhIERyaXZlcklucHV0IG9iamVjdC4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgIGZpbGVuYW1lOiBGdWxsIHBhdGggdG8gdGhlIHRlc3QuCi0gICAgICAgICAgdGltZW91
dDogVGltZW91dCBpbiBtc2VjcyB0aGUgZHJpdmVyIHNob3VsZCB1c2Ugd2hpbGUgcnVubmluZyB0
aGUgdGVzdAotICAgICAgICAgIGltYWdlX2hhc2g6IEEgaW1hZ2UgY2hlY2tzdW0gd2hpY2ggaXMg
dXNlZCB0byBhdm9pZCBkb2luZyBhbiBpbWFnZSBkdW1wIGlmCi0gICAgICAgICAgICAgICAgICAg
ICB0aGUgY2hlY2tzdW1zIG1hdGNoLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5maWxlbmFt
ZSA9IGZpbGVuYW1lCi0gICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2Vs
Zi5pbWFnZV9oYXNoID0gaW1hZ2VfaGFzaAotCi0KLWNsYXNzIERyaXZlck91dHB1dChvYmplY3Qp
OgotICAgICIiIkdyb3VwcyBpbmZvcm1hdGlvbiBhYm91dCBhIG91dHB1dCBmcm9tIGRyaXZlciBm
b3IgZWFzeSBwYXNzaW5nIG9mIGRhdGEuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGV4
dCwgaW1hZ2UsIGltYWdlX2hhc2gsIGF1ZGlvLAotICAgICAgICAgICAgICAgICBjcmFzaD1GYWxz
ZSwgdGVzdF90aW1lPTAsIHRpbWVvdXQ9RmFsc2UsIGVycm9yPScnKToKLSAgICAgICAgIiIiSW5p
dGlhbGl6ZXMgYSBUZXN0T3V0cHV0IG9iamVjdC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
IHRleHQ6IGEgdGV4dCBvdXRwdXQKLSAgICAgICAgICBpbWFnZTogYW4gaW1hZ2Ugb3V0cHV0Ci0g
ICAgICAgICAgaW1hZ2VfaGFzaDogYSBzdHJpbmcgY29udGFpbmluZyB0aGUgY2hlY2tzdW0gb2Yg
dGhlIGltYWdlCi0gICAgICAgICAgYXVkaW86IGNvbnRlbnRzIG9mIGFuIGF1ZGlvIHN0cmVhbSwg
aWYgYW55IChpbiBXQVYgZm9ybWF0KQotICAgICAgICAgIGNyYXNoOiBhIGJvb2xlYW4gaW5kaWNh
dGluZyB3aGV0aGVyIHRoZSBkcml2ZXIgY3Jhc2hlZCBvbiB0aGUgdGVzdAotICAgICAgICAgIHRl
c3RfdGltZTogdGhlIHRpbWUgdGhlIHRlc3QgdG9vayB0byBleGVjdXRlCi0gICAgICAgICAgdGlt
ZW91dDogYSBib29sZWFuIGluZGljYXRpbmcgd2hlaHRlciB0aGUgdGVzdCB0aW1lZCBvdXQKLSAg
ICAgICAgICBlcnJvcjogYW55IHVuZXhwZWN0ZWQgb3IgYWRkaXRpb25hbCAob3IgZXJyb3IpIHRl
eHQgb3V0cHV0Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLnRleHQgPSB0ZXh0Ci0gICAgICAg
IHNlbGYuaW1hZ2UgPSBpbWFnZQotICAgICAgICBzZWxmLmltYWdlX2hhc2ggPSBpbWFnZV9oYXNo
Ci0gICAgICAgIHNlbGYuaW1hZ2VfZGlmZiA9IE5vbmUgICMgaW1hZ2VfZGlmZiBnZXRzIGZpbGxl
ZCBpbiBhZnRlciBjb25zdHJ1Y3Rpb24uCi0gICAgICAgIHNlbGYuYXVkaW8gPSBhdWRpbwotICAg
ICAgICBzZWxmLmNyYXNoID0gY3Jhc2gKLSAgICAgICAgc2VsZi50ZXN0X3RpbWUgPSB0ZXN0X3Rp
bWUKLSAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAotICAgICAgICBzZWxmLmVycm9yID0g
ZXJyb3IKLQotICAgIGRlZiBoYXNfc3RkZXJyKHNlbGYpOgotICAgICAgICByZXR1cm4gYm9vbChz
ZWxmLmVycm9yKQotCi0KLWNsYXNzIERyaXZlcjoKLSAgICAiIiJBYnN0cmFjdCBpbnRlcmZhY2Ug
Zm9yIHRoZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcG9ydCwgd29ya2VyX251bWJlcik6Ci0gICAgICAgICIiIkluaXRpYWxpemUgYSBEcml2
ZXIgdG8gc3Vic2VxdWVudGx5IHJ1biB0ZXN0cy4KLQotICAgICAgICBUeXBpY2FsbHkgdGhpcyBy
b3V0aW5lIHdpbGwgc3Bhd24gRHVtcFJlbmRlclRyZWUgaW4gYSBjb25maWcKLSAgICAgICAgcmVh
ZHkgZm9yIHN1YnNlcXVlbnQgaW5wdXQuCi0KLSAgICAgICAgcG9ydCAtIHJlZmVyZW5jZSBiYWNr
IHRvIHRoZSBwb3J0IG9iamVjdC4KLSAgICAgICAgd29ya2VyX251bWJlciAtIGlkZW50aWZpZXIg
Zm9yIGEgcGFydGljdWxhciB3b3JrZXIvZHJpdmVyIGluc3RhbmNlCi0gICAgICAgICIiIgotICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdEcml2ZXIuX19pbml0X18nKQotCi0gICAg
ZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6Ci0gICAgICAgICIiIlJ1biBhIHNpbmds
ZSB0ZXN0IGFuZCByZXR1cm4gdGhlIHJlc3VsdHMuCi0KLSAgICAgICAgTm90ZSB0aGF0IGl0IGlz
IG9rYXkgaWYgYSB0ZXN0IHRpbWVzIG91dCBvciBjcmFzaGVzIGFuZCBsZWF2ZXMKLSAgICAgICAg
dGhlIGRyaXZlciBpbiBhbiBpbmRldGVybWluYXRlIHN0YXRlLiBUaGUgdXBwZXIgbGF5ZXJzIG9m
IHRoZSBwcm9ncmFtCi0gICAgICAgIGFyZSByZXNwb25zaWJsZSBmb3IgY2xlYW5pbmcgdXAgYW5k
IGVuc3VyaW5nIHRoaW5ncyBhcmUgb2theS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIGRy
aXZlcl9pbnB1dDogYSBEcml2ZXJJbnB1dCBvYmplY3QKLQotICAgICAgICBSZXR1cm5zIGEgRHJp
dmVyT3V0cHV0IG9iamVjdC4KLSAgICAgICAgICBOb3RlIHRoYXQgRHJpdmVyT3V0cHV0LmltYWdl
IHdpbGwgYmUgJycgKGVtcHR5IHN0cmluZykgaWYgYSB0ZXN0IGNyYXNoZXMuCi0gICAgICAgICIi
IgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdEcml2ZXIucnVuX3Rlc3QnKQot
Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBzdGF0aWMgc28gd2UgY2FuIHRlc3QgaXQgdy9vIGNyZWF0
aW5nIGEgQmFzZSBpbnN0YW5jZS4KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX2NvbW1hbmRf
d3JhcHBlcihjbHMsIHdyYXBwZXJfb3B0aW9uKToKLSAgICAgICAgIyBIb29rIGZvciBpbmplY3Rp
bmcgdmFsZ3JpbmQgb3Igb3RoZXIgcnVudGltZSBpbnN0cnVtZW50YXRpb24sCi0gICAgICAgICMg
dXNlZCBieSBlLmcuIHRvb2xzL3ZhbGdyaW5kL3ZhbGdyaW5kX3Rlc3RzLnB5LgotICAgICAgICB3
cmFwcGVyID0gW10KLSAgICAgICAgYnJvd3Nlcl93cmFwcGVyID0gb3MuZW52aXJvbi5nZXQoIkJS
T1dTRVJfV1JBUFBFUiIsIE5vbmUpCi0gICAgICAgIGlmIGJyb3dzZXJfd3JhcHBlcjoKLSAgICAg
ICAgICAgICMgRklYTUU6IFRoZXJlIHNlZW1zIHRvIGJlIG5vIHJlYXNvbiB0byB1c2UgQlJPV1NF
Ul9XUkFQUEVSIG92ZXIgLS13cmFwcGVyLgotICAgICAgICAgICAgIyBSZW1vdmUgdGhpcyBjb2Rl
IGFueSB0aW1lIGFmdGVyIHRoZSBkYXRlIGxpc3RlZCBiZWxvdy4KLSAgICAgICAgICAgIF9sb2cu
ZXJyb3IoIkJST1dTRVJfV1JBUFBFUiBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIC0td3JhcHBl
ciBpbnN0ZWFkLiIpCi0gICAgICAgICAgICBfbG9nLmVycm9yKCJCUk9XU0VSX1dSQVBQRVIgd2ls
bCBiZSByZW1vdmVkIGFueSB0aW1lIGFmdGVyIEp1bmUgMXN0IDIwMTAgYW5kIHlvdXIgc2NyaXB0
cyB3aWxsIGJyZWFrLiIpCi0gICAgICAgICAgICB3cmFwcGVyICs9IFticm93c2VyX3dyYXBwZXJd
Ci0KLSAgICAgICAgaWYgd3JhcHBlcl9vcHRpb246Ci0gICAgICAgICAgICB3cmFwcGVyICs9IHNo
bGV4LnNwbGl0KHdyYXBwZXJfb3B0aW9uKQotICAgICAgICByZXR1cm4gd3JhcHBlcgotCi0gICAg
ZGVmIHBvbGwoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgTm9uZSBpZiB0aGUgRHJpdmVyIGlz
IHN0aWxsIHJ1bm5pbmcuIFJldHVybnMgdGhlIHJldHVybmNvZGUKLSAgICAgICAgaWYgaXQgaGFz
IGV4aXRlZC4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignRHJpdmVyLnBv
bGwnKQotCi0gICAgZGVmIHN0b3Aoc2VsZik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IoJ0RyaXZlci5zdG9wJykKLQotCiBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbihvYmplY3Qp
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0PU5vbmUsIHZlcnNpb249Tm9uZSwgYXJjaGl0
ZWN0dXJlPU5vbmUsIGJ1aWxkX3R5cGU9Tm9uZSwgZ3JhcGhpY3NfdHlwZT1Ob25lKToKICAgICAg
ICAgc2VsZi52ZXJzaW9uID0gdmVyc2lvbiBvciBwb3J0LnZlcnNpb24oKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0
LnB5CmluZGV4IGE0YjIyZDZlMzk0OWFjYzAzZDk5MWNlNWI4YjRlNTA3MWU2M2UwYWEuLmEyZDAx
ZmQxYWE2OWNjZGQ1MGVkYjAwYjFhMjhjZjRhMDNkMjgzMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkK
QEAgLTM5LDIwICszOSwyMSBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ucGF0aCBpbXBv
cnQgYWJzcGF0aF90b191cmkKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBN
b2NrCiBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IG1vY2t0b29sCiAKLWltcG9ydCBiYXNlCitm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBQb3J0LCBEcml2ZXIsIERyaXZl
ck91dHB1dAorCiBpbXBvcnQgY29uZmlnCiBpbXBvcnQgY29uZmlnX21vY2sKIAogCiBjbGFzcyBQ
b3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfZm9ybWF0X3dkaWZmX291
dHB1dF9hc19odG1sKHNlbGYpOgotICAgICAgICBvdXRwdXQgPSAiT1VUUFVUICVzICVzICVzIiAl
IChiYXNlLlBvcnQuX1dESUZGX0RFTCwgYmFzZS5Qb3J0Ll9XRElGRl9BREQsIGJhc2UuUG9ydC5f
V0RJRkZfRU5EKQotICAgICAgICBodG1sID0gYmFzZS5Qb3J0KCkuX2Zvcm1hdF93ZGlmZl9vdXRw
dXRfYXNfaHRtbChvdXRwdXQpCisgICAgICAgIG91dHB1dCA9ICJPVVRQVVQgJXMgJXMgJXMiICUg
KFBvcnQuX1dESUZGX0RFTCwgUG9ydC5fV0RJRkZfQURELCBQb3J0Ll9XRElGRl9FTkQpCisgICAg
ICAgIGh0bWwgPSBQb3J0KCkuX2Zvcm1hdF93ZGlmZl9vdXRwdXRfYXNfaHRtbChvdXRwdXQpCiAg
ICAgICAgIGV4cGVjdGVkX2h0bWwgPSAiPGhlYWQ+PHN0eWxlPi5kZWwgeyBiYWNrZ3JvdW5kOiAj
ZmFhOyB9IC5hZGQgeyBiYWNrZ3JvdW5kOiAjYWZhOyB9PC9zdHlsZT48L2hlYWQ+PHByZT5PVVRQ
VVQgPHNwYW4gY2xhc3M9ZGVsPiA8c3BhbiBjbGFzcz1hZGQ+IDwvc3Bhbj48L3ByZT4iCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoaHRtbCwgZXhwZWN0ZWRfaHRtbCkKIAogICAgIGRlZiB0ZXN0
X3dkaWZmX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHBvcnQgPSBiYXNlLlBvcnQoKQorICAgICAg
ICBwb3J0ID0gUG9ydCgpCiAgICAgICAgIHBvcnQuX3BhdGhfdG9fd2RpZmYgPSBsYW1iZGE6ICIv
cGF0aC90by93ZGlmZiIKICAgICAgICAgY29tbWFuZCA9IHBvcnQuX3dkaWZmX2NvbW1hbmQoIi9h
Y3R1YWwvcGF0aCIsICIvZXhwZWN0ZWQvcGF0aCIpCiAgICAgICAgIGV4cGVjdGVkX2NvbW1hbmQg
PSBbCkBAIC03Myw3ICs3NCw3IEBAIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgcmV0dXJuIG5ld19maWxlCiAKICAgICBkZWYgdGVzdF9wcmV0dHlfcGF0Y2hfb3Nf
ZXJyb3Ioc2VsZik6Ci0gICAgICAgIHBvcnQgPSBiYXNlLlBvcnQoZXhlY3V0aXZlPWV4ZWN1dGl2
ZV9tb2NrLk1vY2tFeGVjdXRpdmUyKGV4Y2VwdGlvbj1PU0Vycm9yKSkKKyAgICAgICAgcG9ydCA9
IFBvcnQoZXhlY3V0aXZlPWV4ZWN1dGl2ZV9tb2NrLk1vY2tFeGVjdXRpdmUyKGV4Y2VwdGlvbj1P
U0Vycm9yKSkKICAgICAgICAgb2MgPSBvdXRwdXRjYXB0dXJlLk91dHB1dENhcHR1cmUoKQogICAg
ICAgICBvYy5jYXB0dXJlX291dHB1dCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5w
cmV0dHlfcGF0Y2hfdGV4dCgicGF0Y2gudHh0IiksCkBAIC04Niw3ICs4Nyw3IEBAIGNsYXNzIFBv
cnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3ByZXR0eV9wYXRjaF9z
Y3JpcHRfZXJyb3Ioc2VsZik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgc29tZSB1Z2x5IHdo
aXRlLWJveCB0ZXN0IGhhY2tpbmcgLi4uCi0gICAgICAgIHBvcnQgPSBiYXNlLlBvcnQoZXhlY3V0
aXZlPWV4ZWN1dGl2ZV9tb2NrLk1vY2tFeGVjdXRpdmUyKGV4Y2VwdGlvbj1TY3JpcHRFcnJvcikp
CisgICAgICAgIHBvcnQgPSBQb3J0KGV4ZWN1dGl2ZT1leGVjdXRpdmVfbW9jay5Nb2NrRXhlY3V0
aXZlMihleGNlcHRpb249U2NyaXB0RXJyb3IpKQogICAgICAgICBwb3J0Ll9wcmV0dHlfcGF0Y2hf
YXZhaWxhYmxlID0gVHJ1ZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucHJldHR5X3Bh
dGNoX3RleHQoInBhdGNoLnR4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQuX3By
ZXR0eV9wYXRjaF9lcnJvcl9odG1sKQpAQCAtMTA1LDcgKzEwNiw3IEBAIGNsYXNzIFBvcnRUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKICAgICAg
ICAgICAgIHdkaWZmX3BhdGggPSBOb25lCiAKLSAgICAgICAgcG9ydCA9IGJhc2UuUG9ydCgpCisg
ICAgICAgIHBvcnQgPSBQb3J0KCkKICAgICAgICAgcG9ydC5fcGF0aF90b193ZGlmZiA9IGxhbWJk
YTogd2RpZmZfcGF0aAogCiAgICAgICAgIGlmIHdkaWZmX3BhdGg6CkBAIC0xMjksNyArMTMwLDYg
QEAgY2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IsIHBvcnQud2RpZmZfdGV4dCwgIi9kb2VzL25vdC9leGlz
dCIsICIvZG9lcy9ub3QvZXhpc3QyIikKICAgICAgICAgICAgICMgd2RpZmYgd2lsbCBzdGlsbCBi
ZSBhdmFpbGFibGUgYWZ0ZXIgcnVubmluZyB3ZGlmZl90ZXh0IHdpdGggaW52YWxpZCBwYXRocy4K
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll93ZGlmZl9hdmFpbGFibGUpCi0gICAg
ICAgICAgICBiYXNlLl93ZGlmZl9hdmFpbGFibGUgPSBUcnVlCiAKICAgICAgICAgIyBJZiB3ZGlm
ZiBkb2VzIG5vdCBleGlzdCBfcnVuX3dkaWZmIHNob3VsZCB0aHJvdyBhbiBPU0Vycm9yLgogICAg
ICAgICBwb3J0Ll9wYXRoX3RvX3dkaWZmID0gbGFtYmRhOiAiL2ludmFsaWQvcGF0aC90by93ZGlm
ZiIKQEAgLTE0MSw3ICsxNDEsNyBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5fd2RpZmZfYXZhaWxhYmxlKQogCiAgICAg
ZGVmIHRlc3RfZGlmZl90ZXh0KHNlbGYpOgotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KCkKKyAg
ICAgICAgcG9ydCA9IFBvcnQoKQogICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IHJ1
biBpbnRvIGRlY29kaW5nIGV4Y2VwdGlvbnMgd2hlbiB0aGUKICAgICAgICAgIyBmaWxlbmFtZXMg
YXJlIHVuaWNvZGUsIHdpdGggcmVndWxhciBvciBtYWxmb3JtZWQgaW5wdXQgKGV4cGVjdGVkIG9y
CiAgICAgICAgICMgYWN0dWFsIGlucHV0IGlzIGFsd2F5cyByYXcgYnl0ZXMsIG5vdCB1bmljb2Rl
KS4KQEAgLTE2OSwyOSArMTY5LDI5IEBAIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKIAogICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29uZmlndXJhdGlvbl9ub3Rmb3VuZChzZWxmKToK
ICAgICAgICAgIyBUZXN0IHRoYXQgd2UgZGVsZWdhdGUgdG8gdGhlIGNvbmZpZyBvYmplY3QgcHJv
cGVybHkuCi0gICAgICAgIHBvcnQgPSBiYXNlLlBvcnQoY29uZmlnPWNvbmZpZ19tb2NrLk1vY2tD
b25maWcoZGVmYXVsdF9jb25maWd1cmF0aW9uPSdkZWZhdWx0JykpCisgICAgICAgIHBvcnQgPSBQ
b3J0KGNvbmZpZz1jb25maWdfbW9jay5Nb2NrQ29uZmlnKGRlZmF1bHRfY29uZmlndXJhdGlvbj0n
ZGVmYXVsdCcpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGVmYXVsdF9jb25maWd1
cmF0aW9uKCksICdkZWZhdWx0JykKIAogICAgIGRlZiB0ZXN0X2xheW91dF90ZXN0c19za2lwcGlu
ZyhzZWxmKToKLSAgICAgICAgcG9ydCA9IGJhc2UuUG9ydCgpCisgICAgICAgIHBvcnQgPSBQb3J0
KCkKICAgICAgICAgcG9ydC5za2lwcGVkX2xheW91dF90ZXN0cyA9IGxhbWJkYTogWydmb28vYmFy
Lmh0bWwnLCAnbWVkaWEnXQogICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5za2lwc19sYXlv
dXRfdGVzdCgnZm9vL2Jhci5odG1sJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LnNr
aXBzX2xheW91dF90ZXN0KCdtZWRpYS92aWRlby16b29tLmh0bWwnKSkKICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShwb3J0LnNraXBzX2xheW91dF90ZXN0KCdmb28vZm9vLmh0bWwnKSkKIAogICAg
IGRlZiB0ZXN0X3NldHVwX3Rlc3RfcnVuKHNlbGYpOgotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0
KCkKKyAgICAgICAgcG9ydCA9IFBvcnQoKQogICAgICAgICAjIFRoaXMgcm91dGluZSBpcyBhIG5v
LW9wLiBXZSBqdXN0IHRlc3QgaXQgZm9yIGNvdmVyYWdlLgogICAgICAgICBwb3J0LnNldHVwX3Rl
c3RfcnVuKCkKIAogICAgIGRlZiB0ZXN0X3Rlc3RfZGlycyhzZWxmKToKLSAgICAgICAgcG9ydCA9
IGJhc2UuUG9ydCgpCisgICAgICAgIHBvcnQgPSBQb3J0KCkKICAgICAgICAgZGlycyA9IHBvcnQu
dGVzdF9kaXJzKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdjYW52YXMnIGluIGRpcnMpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnY3NzMi4xJyBpbiBkaXJzKQogCiAgICAgZGVmIHRlc3Rf
ZmlsZW5hbWVfdG9fdXJpKHNlbGYpOgotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KCkKKyAgICAg
ICAgcG9ydCA9IFBvcnQoKQogICAgICAgICBsYXlvdXRfdGVzdF9kaXIgPSBwb3J0LmxheW91dF90
ZXN0c19kaXIoKQogICAgICAgICB0ZXN0X2ZpbGUgPSBwb3J0Ll9maWxlc3lzdGVtLmpvaW4obGF5
b3V0X3Rlc3RfZGlyLCAiZm9vIiwgImJhci5odG1sIikKIApAQCAtMjEyLDI4ICsyMTIsMjggQEAg
Y2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2dldF9vcHRp
b25fX3NldChzZWxmKToKICAgICAgICAgb3B0aW9ucywgYXJncyA9IG9wdHBhcnNlLk9wdGlvblBh
cnNlcigpLnBhcnNlX2FyZ3MoW10pCiAgICAgICAgIG9wdGlvbnMuZm9vID0gJ2JhcicKLSAgICAg
ICAgcG9ydCA9IGJhc2UuUG9ydChvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIHBvcnQgPSBQb3J0
KG9wdGlvbnM9b3B0aW9ucykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmdldF9vcHRp
b24oJ2ZvbycpLCAnYmFyJykKIAogICAgIGRlZiB0ZXN0X2dldF9vcHRpb25fX3Vuc2V0KHNlbGYp
OgotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KCkKKyAgICAgICAgcG9ydCA9IFBvcnQoKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZ2V0X29wdGlvbignZm9vJyksIE5vbmUpCiAKICAg
ICBkZWYgdGVzdF9nZXRfb3B0aW9uX19kZWZhdWx0KHNlbGYpOgotICAgICAgICBwb3J0ID0gYmFz
ZS5Qb3J0KCkKKyAgICAgICAgcG9ydCA9IFBvcnQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBvcnQuZ2V0X29wdGlvbignZm9vJywgJ2JhcicpLCAnYmFyJykKIAogICAgIGRlZiB0ZXN0X25h
bWVfX3Vuc2V0KHNlbGYpOgotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KCkKKyAgICAgICAgcG9y
dCA9IFBvcnQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQubmFtZSgpLCBOb25lKQog
CiAgICAgZGVmIHRlc3RfbmFtZV9fc2V0KHNlbGYpOgotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0
KHBvcnRfbmFtZT0nZm9vJykKKyAgICAgICAgcG9ydCA9IFBvcnQocG9ydF9uYW1lPSdmb28nKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQubmFtZSgpLCAnZm9vJykKIAogICAgIGRlZiB0
ZXN0X2FkZGl0aW9uYWxfcGxhdGZvcm1fZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICBmaWxlc3lz
dGVtID0gTW9ja0ZpbGVTeXN0ZW0oKQotICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KHBvcnRfbmFt
ZT0nZm9vJywgZmlsZXN5c3RlbT1maWxlc3lzdGVtKQorICAgICAgICBwb3J0ID0gUG9ydChwb3J0
X25hbWU9J2ZvbycsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSkKICAgICAgICAgcG9ydC5iYXNlbGlu
ZV9zZWFyY2hfcGF0aCA9IGxhbWJkYTogWydMYXlvdXRUZXN0cy9wbGF0Zm9ybS9mb28nXQogICAg
ICAgICBsYXlvdXRfdGVzdF9kaXIgPSBwb3J0LmxheW91dF90ZXN0c19kaXIoKQogICAgICAgICB0
ZXN0X2ZpbGUgPSBmaWxlc3lzdGVtLmpvaW4obGF5b3V0X3Rlc3RfZGlyLCAnZmFzdCcsICd0ZXN0
Lmh0bWwnKQpAQCAtMjYzLDcgKzI2Myw3IEBAIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKIAogICAgIGRlZiB0ZXN0X3VzZXNfdGVzdF9leHBlY3RhdGlvbnNfZmlsZShzZWxmKToK
ICAgICAgICAgZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKCkKLSAgICAgICAgcG9ydCA9IGJh
c2UuUG9ydChwb3J0X25hbWU9J2ZvbycsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSkKKyAgICAgICAg
cG9ydCA9IFBvcnQocG9ydF9uYW1lPSdmb28nLCBmaWxlc3lzdGVtPWZpbGVzeXN0ZW0pCiAgICAg
ICAgIHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlID0gbGFtYmRhOiAnL21vY2sv
dGVzdF9leHBlY3RhdGlvbnMudHh0JwogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBvcnQudXNl
c190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkpCiAgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0gPSBN
b2NrRmlsZVN5c3RlbSh7Jy9tb2NrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCc6ICcnfSkKQEAgLTI3
Niw3ICsyNzYsNyBAQCBjbGFzcyBWaXJ0dWFsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG1ldGhvZCwgKmFyZ3Ms
ICoqa3dhcmdzKQogCiAgICAgZGVmIHRlc3RfdmlydHVhbF9tZXRob2RzKHNlbGYpOgotICAgICAg
ICBwb3J0ID0gYmFzZS5Qb3J0KCkKKyAgICAgICAgcG9ydCA9IFBvcnQoKQogICAgICAgICBzZWxm
LmFzc2VydFZpcnR1YWwocG9ydC5iYXNlbGluZV9wYXRoKQogICAgICAgICBzZWxmLmFzc2VydFZp
cnR1YWwocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0
dWFsKHBvcnQuY2hlY2tfYnVpbGQsIE5vbmUpCkBAIC0yOTYsMjUgKzI5NiwxOCBAQCBjbGFzcyBW
aXJ0dWFsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVh
bChwb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkX3BocCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFs
KHBvcnQuX3BhdGhfdG9fd2RpZmYpCiAKLSAgICBkZWYgdGVzdF92aXJ0dWFsX2RyaXZlcl9tZXRo
b2Qoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3Is
IGJhc2UuRHJpdmVyLCBiYXNlLlBvcnQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMCkK
LQogICAgIGRlZiB0ZXN0X3ZpcnR1YWxfZHJpdmVyX21ldGhvZHMoc2VsZik6Ci0gICAgICAgIGNs
YXNzIFZpcnR1YWxEcml2ZXIoYmFzZS5Ecml2ZXIpOgotICAgICAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBkcml2ZXIgPSBWaXJ0dWFs
RHJpdmVyKCkKKyAgICAgICAgZHJpdmVyID0gRHJpdmVyKE5vbmUsIE5vbmUpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VmlydHVhbChkcml2ZXIucnVuX3Rlc3QsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VmlydHVhbChkcml2ZXIucG9sbCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKGRyaXZl
ci5zdG9wKQogCiAKKyMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIGRyaXZlcl91bml0
dGVzdC5weSBvciBqdXN0IGRlbGV0ZWQuCiBjbGFzcyBEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKIAogICAgIGRlZiBfYXNzZXJ0X3dyYXBwZXIoc2VsZiwgd3JhcHBlcl9zdHJpbmcsIGV4
cGVjdGVkX3dyYXBwZXIpOgotICAgICAgICB3cmFwcGVyID0gYmFzZS5Ecml2ZXIuX2NvbW1hbmRf
d3JhcHBlcih3cmFwcGVyX3N0cmluZykKKyAgICAgICAgd3JhcHBlciA9IERyaXZlcihOb25lLCBO
b25lKS5fY29tbWFuZF93cmFwcGVyKHdyYXBwZXJfc3RyaW5nKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHdyYXBwZXIsIGV4cGVjdGVkX3dyYXBwZXIpCiAKICAgICBkZWYgdGVzdF9jb21tYW5k
X3dyYXBwZXIoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCBkNTQ2ZmIxMjg2NWM4YWU0MzI4OGNlNDFhMDdh
M2ZhZWNlNzM2NzljLi41ZTA3MGU0YmNlZThjZjQ2MWM0ZmZiNmU3ZWY0ZGQwNTY1ZWIwMTFiIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW0ucHkKQEAgLTQ1LDcgKzQ1LDggQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGlt
cG9ydCBleGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5wYXRoIGltcG9ydCBj
eWdwYXRoCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uemlwZmlsZXNldCBpbXBvcnQgWmlw
RmlsZVNldAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0
IHRlc3RfZXhwZWN0YXRpb25zCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9y
dCBiYXNlCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmJhc2UgaW1wb3J0IFBvcnQK
K2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZHJpdmVyIGltcG9ydCBEcml2ZXIsIERy
aXZlck91dHB1dAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgYnVpbGRl
cnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGh0dHBfc2VydmVy
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCB3ZWJzb2NrZXRfc2Vy
dmVyCkBAIC01Myw3ICs1NCw3IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMg
aW1wb3J0IHdlYnNvY2tldF9zZXJ2ZXIKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0
cHkubGF5b3V0X3Rlc3RzLnBvcnQuY2hyb21pdW0iKQogCiAKLWNsYXNzIENocm9taXVtUG9ydChi
YXNlLlBvcnQpOgorY2xhc3MgQ2hyb21pdW1Qb3J0KFBvcnQpOgogICAgICIiIkFic3RyYWN0IGJh
c2UgY2xhc3MgZm9yIENocm9taXVtIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgUG9ydCBjbGFzcy4i
IiIKIAogICAgIHBvcnRfbmFtZSA9ICJjaHJvbWl1bSIKQEAgLTY2LDcgKzY3LDcgQEAgY2xhc3Mg
Q2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
ICoqa3dhcmdzKToKLSAgICAgICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQor
ICAgICAgICBQb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQogICAgICAgICBzZWxmLl9jaHJv
bWl1bV9iYXNlX2RpciA9IE5vbmUKIAogICAgIGRlZiBfY2hlY2tfZmlsZV9leGlzdHMoc2VsZiwg
cGF0aF90b19maWxlLCBmaWxlX2Rlc2NyaXB0aW9uLApAQCAtMzQ1LDI1ICszNDYsMjQgQEAgY2xh
c3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9w
YXRoKHNlbGYuZ2V0X29wdGlvbignY29uZmlndXJhdGlvbicpLCBiaW5hcnlfbmFtZSkKIAogCi1j
bGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CitjbGFzcyBDaHJvbWl1bURyaXZlcihE
cml2ZXIpOgorICAgIEtJTExfVElNRU9VVCA9IDMuMAorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIHdvcmtlcl9udW1iZXIpOgotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAg
ICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgorICAgICAgICBEcml2ZXIuX19p
bml0X18oc2VsZiwgcG9ydCwgd29ya2VyX251bWJlcikKICAgICAgICAgc2VsZi5faW1hZ2VfcGF0
aCA9IE5vbmUKLSAgICAgICAgc2VsZi5LSUxMX1RJTUVPVVQgPSAzLjAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgotICAgICAgICAgICAgc2VsZi5faW1h
Z2VfcGF0aCA9IHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9wb3J0LnJlc3VsdHNf
ZGlyZWN0b3J5KCksCi0gICAgICAgICAgICAgICAgJ3BuZ19yZXN1bHQlcy5wbmcnICUgc2VsZi5f
d29ya2VyX251bWJlcikKLQotICAgIGRlZiBjbWRfbGluZShzZWxmKToKLSAgICAgICAgY21kID0g
c2VsZi5fY29tbWFuZF93cmFwcGVyKHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd3JhcHBlcicpKQot
ICAgICAgICBjbWQuYXBwZW5kKHNlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCkpCisgICAgICAg
ICAgICBzZWxmLl9pbWFnZV9wYXRoID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
X3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgJ3BuZ19yZXN1bHQlcy5wbmcnICUgc2VsZi5fd29y
a2VyX251bWJlcikKKworICAgIGRlZiBfd3JhcHBlcl9vcHRpb25zKHNlbGYpOgorICAgICAgICBj
bWQgPSBbXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBidWlsZCB0aGlz
IGxpc3QgdXNpbmcgb25seSBhbiBhcnJheSBvZgorICAgICAgICAjIG9wdGlvbiBuYW1lcywgdGhl
IG9wdGlvbnMgKG9wdHBhcnNlLlZhbHVlcykgb2JqZWN0LCBhbmQgdGhlIG9yaWduYWwKKyAgICAg
ICAgIyBsaXN0IG9mIG9wdGlvbnMgZnJvbSB0aGUgbWFpbiBtZXRob2QgYnkgbG9va2luZyB1cCB0
aGUgb3B0aW9uCisgICAgICAgICMgdGV4dCBmcm9tIHRoZSBvcHRpb25zIGxpc3QgaWYgdGhlIHZh
bHVlIGlzIG5vbi1Ob25lLgogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVs
X3Rlc3RzJyk6CiAgICAgICAgICAgICAjIFNlZSBub3RlIGFib3ZlIGluIGRpZmZfaW1hZ2UoKSBm
b3Igd2h5IHdlIG5lZWQgX2NvbnZlcnRfcGF0aCgpLgotICAgICAgICAgICAgY21kLmFwcGVuZCgi
LS1waXhlbC10ZXN0cz0iICsKLSAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5fY29u
dmVydF9wYXRoKHNlbGYuX2ltYWdlX3BhdGgpKQotCi0gICAgICAgIGNtZC5hcHBlbmQoJy0tdGVz
dC1zaGVsbCcpCisgICAgICAgICAgICBjbWQuYXBwZW5kKCItLXBpeGVsLXRlc3RzPSIgKyBzZWxm
Ll9wb3J0Ll9jb252ZXJ0X3BhdGgoc2VsZi5faW1hZ2VfcGF0aCkpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdzdGFydHVwX2RpYWxvZycpOgogICAgICAgICAgICAgY21kLmFw
cGVuZCgnLS10ZXN0c2hlbGwtc3RhcnR1cC1kaWFsb2cnKQpAQCAtMzkyLDYgKzM5MiwxMyBAQCBj
bGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgIGNtZC5leHRlbmQoc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdhZGRpdGlvbmFsX2RydF9mbGFnJywgW10pKQogICAgICAgICBy
ZXR1cm4gY21kCiAKKyAgICBkZWYgY21kX2xpbmUoc2VsZik6CisgICAgICAgIGNtZCA9IHNlbGYu
X2NvbW1hbmRfd3JhcHBlcihzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dyYXBwZXInKSkKKyAgICAg
ICAgY21kLmFwcGVuZChzZWxmLl9wb3J0Ll9wYXRoX3RvX2RyaXZlcigpKQorICAgICAgICBjbWQu
YXBwZW5kKCctLXRlc3Qtc2hlbGwnKSAgIyBGSVhNRTogV2h5IGRvZXMgdGhpcyBleGlzdD8gIFRl
c3RTaGVsbCBpcyBkZWFkLCBzaG91bGRuJ3QgdGhpcyBiZSByZW1vdmVkPworICAgICAgICBjbWQu
ZXh0ZW5kKHNlbGYuX3dyYXBwZXJfb3B0aW9ucygpKQorICAgICAgICByZXR1cm4gY21kCisKICAg
ICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFNob3VsZCBiZSBhbiBlcnJvciB0
byBjYWxsIHRoaXMgbWV0aG9kIHR3aWNlLgogICAgICAgICBjbWQgPSBzZWxmLmNtZF9saW5lKCkK
QEAgLTQ0Miw4ICs0NDksNyBAQCBjbGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CiAg
ICAgICAgIHBuZ19wYXRoID0gc2VsZi5faW1hZ2VfcGF0aAogICAgICAgICBpZiBwbmdfcGF0aCBh
bmQgc2VsZi5fcG9ydC5fZmlsZXN5c3RlbS5leGlzdHMocG5nX3BhdGgpOgogICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3BvcnQuX2ZpbGVzeXN0ZW0ucmVhZF9iaW5hcnlfZmlsZShwbmdfcGF0aCkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBO
b25lCiAKICAgICBkZWYgX291dHB1dF9pbWFnZV93aXRoX3JldHJ5KHNlbGYpOgogICAgICAgICAj
IFJldHJ5IGEgZmV3IG1vcmUgdGltZXMgYmVjYXVzZSBvcGVuKCkgc29tZXRpbWVzIGZhaWxzIG9u
IFdpbmRvd3MsCkBAIC01MzksNyArNTQ1LDcgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5E
cml2ZXIpOgogICAgICAgICAgICAgaWYgbm90IHRleHQ6CiAgICAgICAgICAgICAgICAgdGV4dCA9
IE5vbmUKIAotICAgICAgICByZXR1cm4gYmFzZS5Ecml2ZXJPdXRwdXQodGV4dCwgb3V0cHV0X2lt
YWdlLCBhY3R1YWxfY2hlY2tzdW0sIGF1ZGlvPWF1ZGlvX2J5dGVzLAorICAgICAgICByZXR1cm4g
RHJpdmVyT3V0cHV0KHRleHQsIG91dHB1dF9pbWFnZSwgYWN0dWFsX2NoZWNrc3VtLCBhdWRpbz1h
dWRpb19ieXRlcywKICAgICAgICAgICAgIGNyYXNoPWNyYXNoLCB0ZXN0X3RpbWU9cnVuX3RpbWUs
IHRpbWVvdXQ9dGltZW91dCwgZXJyb3I9Jycuam9pbihlcnJvcikpCiAKICAgICBkZWYgc3RvcChz
ZWxmKToKQEAgLTU1NywxMCArNTYzLDkgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoYmFzZS5Ecml2
ZXIpOgogICAgICAgICAgICAgd2hpbGUgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9uZSBhbmQgdGlt
ZS50aW1lKCkgPCB0aW1lb3V0OgogICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQogICAg
ICAgICAgICAgaWYgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBf
bG9nLndhcm5pbmcoJ3N0b3BwaW5nIHRlc3QgZHJpdmVyIHRpbWVkIG91dCwgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAna2lsbGluZyBpdCcpCisgICAgICAgICAgICAgICAgX2xv
Zy53YXJuaW5nKCdzdG9wcGluZyB0ZXN0IGRyaXZlciB0aW1lZCBvdXQsIGtpbGxpbmcgaXQnKQog
ICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuX2V4ZWN1dGl2ZS5raWxsX3Byb2Nlc3Moc2VsZi5f
cHJvYy5waWQpCi0gICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHNvbWV0aW1lIG5vbmUuIFdo
YXQgaXMgd3Jvbmc/IGFzc2VydCBzZWxmLl9wcm9jLnBvbGwoKSBpcyBub3QgTm9uZQorICAgICAg
ICAgICAgIyBGSVhNRTogVGhpcyBpcyBzb21ldGltZSBOb25lLiBXaGF0IGlzIHdyb25nPyBhc3Nl
cnQgc2VsZi5fcHJvYy5wb2xsKCkgaXMgbm90IE5vbmUKICAgICAgICAgICAgIGlmIHNlbGYuX3By
b2MucG9sbCgpIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Mud2FpdCgp
CiAgICAgICAgICAgICBzZWxmLl9wcm9jID0gTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWM3ZTcxZTJj
ZWVjZjhiNjkwNTI1NzBjNzMwMWVhZWRjOWQ2N2JjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTAsMCArMSw5
NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1
dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xlIG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc2hsZXgKKworCitjbGFzcyBEcml2ZXJJbnB1dChvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgdGltZW91dCwgaW1hZ2VfaGFz
aCk6CisgICAgICAgICMgRklYTUU6IFRoZSBhcmdzIHNob3VsZCBqdXN0IGJlIHJlbmFtZWQgdG8g
cmVmbGVjdCB0aGVpciB1c2UuCisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZSAgIyBG
dWxsIHBhdGggdG8gdGhlIHRlc3QuCisgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQgICMg
aW4gbXMKKyAgICAgICAgc2VsZi5pbWFnZV9oYXNoID0gaW1hZ2VfaGFzaAorCisKK2NsYXNzIERy
aXZlck91dHB1dChvYmplY3QpOgorICAgICIiIkdyb3VwcyBpbmZvcm1hdGlvbiBhYm91dCBhIG91
dHB1dCBmcm9tIGRyaXZlciBmb3IgZWFzeSBwYXNzaW5nIG9mIGRhdGEuIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgdGV4dCwgaW1hZ2UsIGltYWdlX2hhc2gsIGF1ZGlvLCBjcmFzaD1GYWxz
ZSwgdGVzdF90aW1lPTAsIHRpbWVvdXQ9RmFsc2UsIGVycm9yPScnKToKKyAgICAgICAgIyBGSVhN
RTogQXJncyBjb3VsZCBiZSByZW5hbWVkIHRvIGJldHRlciBjbGFyaWZ5IHdoYXQgdGhleSBkby4K
KyAgICAgICAgc2VsZi50ZXh0ID0gdGV4dAorICAgICAgICBzZWxmLmltYWdlID0gaW1hZ2UgICMg
TWF5IGJlIGVtcHR5LXN0cmluZyBpZiB0aGUgdGVzdCBjcmFzaGVzLgorICAgICAgICBzZWxmLmlt
YWdlX2hhc2ggPSBpbWFnZV9oYXNoCisgICAgICAgIHNlbGYuaW1hZ2VfZGlmZiA9IE5vbmUgICMg
aW1hZ2VfZGlmZiBnZXRzIGZpbGxlZCBpbiBhZnRlciBjb25zdHJ1Y3Rpb24uCisgICAgICAgIHNl
bGYuYXVkaW8gPSBhdWRpbyAgIyBCaW5hcnkgZm9ybWF0IGlzIHBvcnQtZGVwZW5kZW50LgorICAg
ICAgICBzZWxmLmNyYXNoID0gY3Jhc2gKKyAgICAgICAgc2VsZi50ZXN0X3RpbWUgPSB0ZXN0X3Rp
bWUKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAorICAgICAgICBzZWxmLmVycm9yID0g
ZXJyb3IgICMgc3RkZXJyIG91dHB1dAorCisgICAgZGVmIGhhc19zdGRlcnIoc2VsZik6CisgICAg
ICAgIHJldHVybiBib29sKHNlbGYuZXJyb3IpCisKKworY2xhc3MgRHJpdmVyOgorICAgICIiIkFi
c3RyYWN0IGludGVyZmFjZSBmb3IgdGhlIER1bXBSZW5kZXJUcmVlIGludGVyZmFjZS4iIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAgIiIi
SW5pdGlhbGl6ZSBhIERyaXZlciB0byBzdWJzZXF1ZW50bHkgcnVuIHRlc3RzLgorCisgICAgICAg
IFR5cGljYWxseSB0aGlzIHJvdXRpbmUgd2lsbCBzcGF3biBEdW1wUmVuZGVyVHJlZSBpbiBhIGNv
bmZpZworICAgICAgICByZWFkeSBmb3Igc3Vic2VxdWVudCBpbnB1dC4KKworICAgICAgICBwb3J0
IC0gcmVmZXJlbmNlIGJhY2sgdG8gdGhlIHBvcnQgb2JqZWN0LgorICAgICAgICB3b3JrZXJfbnVt
YmVyIC0gaWRlbnRpZmllciBmb3IgYSBwYXJ0aWN1bGFyIHdvcmtlci9kcml2ZXIgaW5zdGFuY2UK
KyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CisgICAgICAgIHNlbGYuX3dv
cmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCisKKyAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJp
dmVyX2lucHV0KToKKyAgICAgICAgIiIiUnVuIGEgc2luZ2xlIHRlc3QgYW5kIHJldHVybiB0aGUg
cmVzdWx0cy4KKworICAgICAgICBOb3RlIHRoYXQgaXQgaXMgb2theSBpZiBhIHRlc3QgdGltZXMg
b3V0IG9yIGNyYXNoZXMgYW5kIGxlYXZlcworICAgICAgICB0aGUgZHJpdmVyIGluIGFuIGluZGV0
ZXJtaW5hdGUgc3RhdGUuIFRoZSB1cHBlciBsYXllcnMgb2YgdGhlIHByb2dyYW0KKyAgICAgICAg
YXJlIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCBhbmQgZW5zdXJpbmcgdGhpbmdzIGFyZSBv
a2F5LgorCisgICAgICAgIFJldHVybnMgYSBEcml2ZXJPdXB1dCBvYmplY3QuCisgICAgICAgICIi
IgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdEcml2ZXIucnVuX3Rlc3QnKQor
CisgICAgIyBGSVhNRTogU2VlbXMgdGhpcyBjb3VsZCBqdXN0IGJlIGlubGluZWQgaW50byBjYWxs
ZXJzLgorICAgIGRlZiBfY29tbWFuZF93cmFwcGVyKGNscywgd3JhcHBlcl9vcHRpb24pOgorICAg
ICAgICAjIEhvb2sgZm9yIGluamVjdGluZyB2YWxncmluZCBvciBvdGhlciBydW50aW1lIGluc3Ry
dW1lbnRhdGlvbiwKKyAgICAgICAgIyB1c2VkIGJ5IGUuZy4gdG9vbHMvdmFsZ3JpbmQvdmFsZ3Jp
bmRfdGVzdHMucHkuCisgICAgICAgIHJldHVybiBzaGxleC5zcGxpdCh3cmFwcGVyX29wdGlvbikg
aWYgd3JhcHBlcl9vcHRpb24gZWxzZSBbXQorCisgICAgZGVmIHBvbGwoc2VsZik6CisgICAgICAg
ICIiIlJldHVybnMgTm9uZSBpZiB0aGUgRHJpdmVyIGlzIHN0aWxsIHJ1bm5pbmcuIFJldHVybnMg
dGhlIHJldHVybmNvZGUgaWYgaXQgaGFzIGV4aXRlZC4iIiIKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcignRHJpdmVyLnBvbGwnKQorCisgICAgZGVmIHN0b3Aoc2VsZik6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ0RyaXZlci5zdG9wJykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKaW5kZXggYmE5
OTYzNmRkYTdlYjllYmZjZTQ2N2FmZDg5MTg3ZTU1MGQ2ZTkzYi4uZDE1YzFmYzQxY2ZlMTE3ZTk2
NTNhNTVmODZmM2U2NzcwNzYzYzVlZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkKQEAgLTUwLDEwICs1MCwxMCBAQCBpbXBvcnQg
b3MKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKLWltcG9ydCBiYXNlCi1pbXBvcnQgZmFjdG9y
eQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgRHJpdmVyLCBEcml2ZXJP
dXRwdXQsIGZhY3RvcnkKIAogCisjIEZJWE1FOiBXaHkgbm90IGluaGVyaXQgZnJvbSBQb3J0Pwog
Y2xhc3MgRHJ5UnVuUG9ydChvYmplY3QpOgogICAgICIiIkRyeVJ1biBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCiAKQEAgLTEwMywxMyArMTAzLDkgQEAgY2xhc3MgRHJ5
UnVuUG9ydChvYmplY3QpOgogICAgICAgICByZXR1cm4gRHJ5cnVuRHJpdmVyKHNlbGYsIHdvcmtl
cl9udW1iZXIpCiAKIAotY2xhc3MgRHJ5cnVuRHJpdmVyKGJhc2UuRHJpdmVyKToKK2NsYXNzIERy
eXJ1bkRyaXZlcihEcml2ZXIpOgogICAgICIiIkRyeXJ1biBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
RHVtcFJlbmRlclRyZWUgLyBEcml2ZXIgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAot
ICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgotCiAgICAgZGVmIGNt
ZF9saW5lKHNlbGYpOgogICAgICAgICByZXR1cm4gWydOb25lJ10KIApAQCAtMTM2LDggKzEzMiw3
IEBAIGNsYXNzIERyeXJ1bkRyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgICAgICBpbWFnZSA9
IHNlbGYuX3BvcnQuZXhwZWN0ZWRfaW1hZ2UoZHJpdmVyX2lucHV0LmZpbGVuYW1lKQogICAgICAg
ICAgICAgY2hlY2tzdW0gPSBzZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKGRyaXZlcl9pbnB1
dC5maWxlbmFtZSkKICAgICAgICAgICAgIGF1ZGlvID0gc2VsZi5fcG9ydC5leHBlY3RlZF9hdWRp
byhkcml2ZXJfaW5wdXQuZmlsZW5hbWUpCi0gICAgICAgIHJldHVybiBiYXNlLkRyaXZlck91dHB1
dCh0ZXh0LCBpbWFnZSwgY2hlY2tzdW0sIGF1ZGlvLCBjcmFzaD1GYWxzZSwKLSAgICAgICAgICAg
IHRlc3RfdGltZT10aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWUsIHRpbWVvdXQ9RmFsc2UsIGVycm9y
PScnKQorICAgICAgICByZXR1cm4gRHJpdmVyT3V0cHV0KHRleHQsIGltYWdlLCBjaGVja3N1bSwg
YXVkaW8sIGNyYXNoPUZhbHNlLCB0ZXN0X3RpbWU9dGltZS50aW1lKCkgLSBzdGFydF90aW1lLCB0
aW1lb3V0PUZhbHNlLCBlcnJvcj0nJykKIAogICAgIGRlZiBzdGFydChzZWxmKToKICAgICAgICAg
cGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9tb2NrX2RydC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
bW9ja19kcnQucHkKaW5kZXggZjkzOTY0YzdiMzI4ZTc0NDBiZGZiZWE1NTQ4NDJmMGNiNmQ4MmYy
MC4uODEzZjhmNjIyN2ZmYzI2ODI1ZTBhYmM2Y2E1MDM5NTlmODgwODAyYyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CkBA
IC00Miw2ICs0Miw4IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZmlsZXN5
c3RlbQogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBiYXNlCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBmYWN0b3J5Citmcm9tIHdlYmtpdHB5
LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCisKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQogCkBAIC0xNTMsMTUgKzE1NSwxMiBAQCBkZWYgcGFyc2Vfb3B0aW9u
cyhhcmd2KToKICAgICAgICAgICAgICAgICBwaXhlbF9wYXRoID0gYXJnW2xlbignLS1waXhlbC10
ZXN0cz0nKTpdCiAgICAgZWxzZToKICAgICAgICAgcGl4ZWxfdGVzdHMgPSAnLS1waXhlbC10ZXN0
cycgaW4gYXJndgotICAgIG9wdGlvbnMgPSBiYXNlLkR1bW15T3B0aW9ucyhjaHJvbWl1bT1jaHJv
bWl1bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm09cGxhdGZvcm0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsX3Rlc3RzPXBpeGVsX3Rlc3Rz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbF9wYXRoPXBpeGVsX3BhdGgp
CisgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKGNocm9taXVtPWNocm9taXVtLCBwbGF0Zm9ybT1w
bGF0Zm9ybSwgcGl4ZWxfdGVzdHM9cGl4ZWxfdGVzdHMsIHBpeGVsX3BhdGg9cGl4ZWxfcGF0aCkK
ICAgICByZXR1cm4gKG9wdGlvbnMsIFtdKQogCiAKICMgRklYTUU6IFNob3VsZCBwcm9iYWJseSBj
aGFuZ2UgdGhpcyB0byB1c2UgRHJpdmVySW5wdXQgYWZ0ZXIKLSMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDA0IGxhbmRzLgorIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMwMDQgbGFuZHMgKGl0J3MgbGFuZGVkIGFzIG9mIDIvMy8x
MSkuCiBjbGFzcyBfRFJUSW5wdXQob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbGlu
ZSk6CiAgICAgICAgIHZhbHMgPSBsaW5lLnN0cmlwKCkuc3BsaXQoIiciKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDZmYjIzZDRi
NzcwMDE2MGU3OTQ0OGZkZTE0YWFiZjc1MjJiYjM2YzYuLmRhMDA5MGQ3Zjk0Y2Q3MGNkZDA2NjRk
Njg1MzE4ODQ2NjdhZWJjYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTM0LDE0ICszNCwxMyBAQCBpbXBvcnQgYmFzZTY0CiBp
bXBvcnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGZpbGVzeXN0
ZW1fbW9jaworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgUG9ydCwgRHJp
dmVyLCBEcml2ZXJPdXRwdXQKIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKIAot
aW1wb3J0IGJhc2UKLQogCiAjIFRoaXMgc2V0cyBiYXNpYyBleHBlY3RhdGlvbnMgZm9yIGEgdGVz
dC4gRWFjaCBpbmRpdmlkdWFsIGV4cGVjdGF0aW9uCiAjIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGEg
a2V5d29yZCBhcmd1bWVudCBpbiBUZXN0TGlzdC5hZGQoKS4KLWNsYXNzIFRlc3RJbnN0YW5jZToK
K2NsYXNzIFRlc3RJbnN0YW5jZShvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
KToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgICBzZWxmLmJhc2UgPSBuYW1lWyhu
YW1lLnJmaW5kKCIvIikgKyAxKTpuYW1lLnJmaW5kKCIuaHRtbCIpXQpAQCAtNzAsOSArNjksMTAg
QEAgY2xhc3MgVGVzdEluc3RhbmNlOgogICAgICAgICBzZWxmLmFjdHVhbF9hdWRpbyA9IE5vbmUK
ICAgICAgICAgc2VsZi5leHBlY3RlZF9hdWRpbyA9IE5vbmUKIAorCiAjIFRoaXMgaXMgYW4gaW4t
bWVtb3J5IGxpc3Qgb2YgdGVzdHMsIHdoYXQgd2Ugd2FudCB0aGVtIHRvIHByb2R1Y2UsIGFuZAog
IyB3aGF0IHdlIHdhbnQgdG8gY2xhaW0gYXJlIHRoZSBleHBlY3RlZCByZXN1bHRzLgotY2xhc3Mg
VGVzdExpc3Q6CitjbGFzcyBUZXN0TGlzdChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKICAgICAgICAgc2VsZi50ZXN0cyA9IHt9CiAKQEAgLTI0Niw3ICsyNDYsNyBAQCBXT05URklY
IFNLSVAgOiBmYWlsdXJlcy9leHBlY3RlZC9leGNlcHRpb24uaHRtbCA9IENSQVNICiAgICAgcmV0
dXJuIGZzCiAKIAotY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKK2NsYXNzIFRlc3RQb3J0KFBv
cnQpOgogICAgICIiIlRlc3QgaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIi
IgogICAgIEFMTF9CQVNFTElORV9WQVJJQU5UUyA9ICgKICAgICAgICAgJ3Rlc3QtbWFjLXNub3ds
ZW9wYXJkJywgJ3Rlc3QtbWFjLWxlb3BhcmQnLApAQCAtMjU5LDggKzI1OSw3IEBAIGNsYXNzIFRl
c3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMtbGVv
cGFyZCcKICAgICAgICAgdXNlciA9IHVzZXIgb3IgbW9ja3Rvb2wuTW9ja1VzZXIoKQogICAgICAg
ICBmaWxlc3lzdGVtID0gZmlsZXN5c3RlbSBvciB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCi0gICAg
ICAgIGJhc2UuUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCBmaWxlc3lz
dGVtPWZpbGVzeXN0ZW0sIHVzZXI9dXNlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQorICAgICAgICBQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUs
IGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSwgdXNlcj11c2VyLCAqKmt3YXJncykKICAgICAgICAgc2Vs
Zi5fcmVzdWx0c19kaXJlY3RvcnkgPSBOb25lCiAKICAgICAgICAgYXNzZXJ0IGZpbGVzeXN0ZW0u
X3Rlc3RzCkBAIC00MjIsMTIgKzQyMSw5IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vua25vd24gdXJsIHR5cGU6ICVzJyAl
IHVyaSkKIAogCi1jbGFzcyBUZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKK2NsYXNzIFRlc3REcml2
ZXIoRHJpdmVyKToKICAgICAiIiJUZXN0L0R1bW15IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEdW1w
UmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwg
d29ya2VyX251bWJlcik6Ci0gICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0KICAgICBkZWYgY21k
X2xpbmUoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2VsZi5fcG9ydC5fcGF0aF90b19kcml2ZXIo
KV0gKyBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FkZGl0aW9uYWxfZHJ0X2ZsYWcnLCBbXSkKIApA
QCAtNDQ4LDcgKzQ0NCw3IEBAIGNsYXNzIFRlc3REcml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAg
ICBhdWRpbyA9IE5vbmUKICAgICAgICAgaWYgdGVzdC5hY3R1YWxfYXVkaW86CiAgICAgICAgICAg
ICBhdWRpbyA9IGJhc2U2NC5iNjRkZWNvZGUodGVzdC5hY3R1YWxfYXVkaW8pCi0gICAgICAgIHJl
dHVybiBiYXNlLkRyaXZlck91dHB1dCh0ZXN0LmFjdHVhbF90ZXh0LCB0ZXN0LmFjdHVhbF9pbWFn
ZSwKKyAgICAgICAgcmV0dXJuIERyaXZlck91dHB1dCh0ZXN0LmFjdHVhbF90ZXh0LCB0ZXN0LmFj
dHVhbF9pbWFnZSwKICAgICAgICAgICAgIHRlc3QuYWN0dWFsX2NoZWNrc3VtLCBhdWRpbywgY3Jh
c2g9dGVzdC5jcmFzaCwKICAgICAgICAgICAgIHRlc3RfdGltZT10aW1lLnRpbWUoKSAtIHN0YXJ0
X3RpbWUsIHRpbWVvdXQ9dGVzdC50aW1lb3V0LCBlcnJvcj10ZXN0LmVycm9yKQogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4
IDVkMTFhOGUxZGU2NDZlMmQ3ODc3OWQ0MjA2M2E2NDM2MWRjYmY2ZjEuLmU3ZTc3NjFiNjg4MmVm
OGFhNTFlNTA3OGI0ODA5NmE5ZjJjZWU4NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC00MCwxNSArNDAsMTUgQEAgaW1w
b3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1aWxkYm90IGltcG9ydCBCdWls
ZEJvdAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0
RXJyb3IKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGJhc2UsIGJ1aWxk
ZXJzLCBzZXJ2ZXJfcHJvY2VzcworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBv
cnQgYnVpbGRlcnMsIHNlcnZlcl9wcm9jZXNzLCBQb3J0LCBEcml2ZXIsIERyaXZlck91dHB1dAog
CiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX2ZpbGVfXykKIAogCi1jbGFzcyBXZWJLaXRQ
b3J0KGJhc2UuUG9ydCk6CitjbGFzcyBXZWJLaXRQb3J0KFBvcnQpOgogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIGJhc2UuUG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3
YXJncykKKyAgICAgICAgUG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKICAgICAgICAgc2Vs
Zi5fY2FjaGVkX2FwYWNoZV9wYXRoID0gTm9uZSAgIyBGSVhNRTogVGhpcyBjbGFzcyBzaG91bGQg
dXNlIEBtZW1vaXplZCBpbnN0ZWFkLgogCiAgICAgICAgICMgRklYTUU6IERpc2FibGUgcGl4ZWwg
dGVzdHMgdW50aWwgdGhleSBhcmUgcnVuIGJ5IGRlZmF1bHQgb24gYnVpbGQud2Via2l0Lm9yZy4K
QEAgLTM2OSwxNCArMzY5LDE1IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0KToKICAgICAg
ICAgcmV0dXJuIHNlbGYuX2NhY2hlZF9hcGFjaGVfcGF0aAogCiAKLWNsYXNzIFdlYktpdERyaXZl
cihiYXNlLkRyaXZlcik6CitjbGFzcyBXZWJLaXREcml2ZXIoRHJpdmVyKToKICAgICAiIiJXZWJL
aXQgaW1wbGVtZW50YXRpb24gb2YgdGhlIER1bXBSZW5kZXJUcmVlL1dlYktpdFRlc3RSdW5uZXIg
aW50ZXJmYWNlLiIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1i
ZXIpOgotICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgotICAgICAg
ICBzZWxmLl9wb3J0ID0gcG9ydAorICAgICAgICBEcml2ZXIuX19pbml0X18oc2VsZiwgcG9ydCwg
d29ya2VyX251bWJlcikKICAgICAgICAgc2VsZi5fZHJpdmVyX3RlbXBkaXIgPSBwb3J0Ll9maWxl
c3lzdGVtLm1rZHRlbXAocHJlZml4PSclcy0nICUgc2VsZi5fcG9ydC5kcml2ZXJfbmFtZSgpKQog
CisgICAgIyBGSVhNRTogVGhpcyBtYXkgYmUgdW5zYWZlLCBhcyBweXRob24gZG9lcyBub3QgZ3Vh
cmVudGVlIGFueSBvcmRlcmluZyBvZiBfX2RlbF9fIGNhbGxzCisgICAgIyBJIGJlbGlldmUgaXQn
cyBwb3NzaWJsZSB0aGF0IHNlbGYuX3BvcnQgb3Igc2VsZi5fcG9ydC5fZmlsZXN5c3RlbSBtYXkg
YWxyZWFkeSBiZSBkZXN0cm95ZWQuCiAgICAgZGVmIF9fZGVsX18oc2VsZik6CiAgICAgICAgIHNl
bGYuX3BvcnQuX2ZpbGVzeXN0ZW0ucm10cmVlKHN0cihzZWxmLl9kcml2ZXJfdGVtcGRpcikpCiAK
QEAgLTQ2Niw3ICs0NjcsNyBAQCBjbGFzcyBXZWJLaXREcml2ZXIoYmFzZS5Ecml2ZXIpOgogCiAg
ICAgICAgICMgRklYTUU6IFRoaXMgc2VlbXMgbGlrZSB0aGUgd3Jvbmcgc2VjdGlvbiBvZiBjb2Rl
IHRvIGJlIHJlc2V0dGluZyBfc2VydmVyX3Byb2Nlc3MuZXJyb3IuCiAgICAgICAgIHNlbGYuX3Nl
cnZlcl9wcm9jZXNzLmVycm9yID0gIiIKLSAgICAgICAgcmV0dXJuIGJhc2UuRHJpdmVyT3V0cHV0
KHRleHQsIGltYWdlLCBhY3R1YWxfaW1hZ2VfaGFzaCwgYXVkaW8sCisgICAgICAgIHJldHVybiBE
cml2ZXJPdXRwdXQodGV4dCwgaW1hZ2UsIGFjdHVhbF9pbWFnZV9oYXNoLCBhdWRpbywKICAgICAg
ICAgICAgIGNyYXNoPXNlbGYuZGV0ZWN0ZWRfY3Jhc2goKSwgdGVzdF90aW1lPXRpbWUudGltZSgp
IC0gc3RhcnRfdGltZSwKICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5fc2VydmVyX3Byb2Nlc3Mu
dGltZWRfb3V0LCBlcnJvcj1lcnJvcikKIApAQCAtNDgwLDggKzQ4MSw3IEBAIGNsYXNzIFdlYktp
dERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgIGNvbnRlbnRfaGFzaCA9IE5vbmUKICAgICAg
ICAgY29udGVudF9sZW5ndGggPSBOb25lCiAKLSAgICAgICAgIyBDb250ZW50IGlzIHRyZWF0ZWQg
YXMgYmluYXJ5IGRhdGEgZXZlbiB0aG91Z2ggdGhlIHRleHQgb3V0cHV0Ci0gICAgICAgICMgaXMg
dXN1YWxseSBVVEYtOC4KKyAgICAgICAgIyBDb250ZW50IGlzIHRyZWF0ZWQgYXMgYmluYXJ5IGRh
dGEgZXZlbiB0aG91Z2ggdGhlIHRleHQgb3V0cHV0IGlzIHVzdWFsbHkgVVRGLTguCiAgICAgICAg
IGNvbnRlbnQgPSAnJwogICAgICAgICB0aW1lb3V0ID0gZGVhZGxpbmUgLSB0aW1lLnRpbWUoKQog
ICAgICAgICBsaW5lID0gc2VsZi5fc2VydmVyX3Byb2Nlc3MucmVhZF9saW5lKHRpbWVvdXQpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IGNjNjAxYTY3
MGQ0NDQ0NzMyYjk0MDc1YmUzMmVlZGNiZDM1Mzg4MzUuLjRlZjEzYTdhNDljNmY4OGYwM2Q1NmVk
NmU3OWJmNzRmY2M4ODBhZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRp
b250ZXN0LnB5CkBAIC01OSw3ICs1OSw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBp
bXBvcnQgZmlsZXN5c3RlbV9tb2NrCiBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IG1vY2t0b29s
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQgcG9ydAogZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMgaW1wb3J0IHJ1bl93ZWJraXRfdGVzdHMKLWZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQsIFRlc3REcml2ZXIKK2Zyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQsIFRlc3REcml2ZXIsIHVu
aXRfdGVzdF9maWxlc3lzdGVtCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3Rf
ZmlsZXMgaW1wb3J0IGlzX3JlZmVyZW5jZV9odG1sX2ZpbGUKIGZyb20gd2Via2l0cHkucHl0aG9u
MjQudmVyc2lvbmluZyBpbXBvcnQgY29tcGFyZV92ZXJzaW9uCiBmcm9tIHdlYmtpdHB5LnRlc3Qu
c2tpcCBpbXBvcnQgc2tpcF9pZgpAQCAtMjcwLDcgKzI3MCw3IEBAIGNsYXNzIE1haW5UZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUpCiAKICAg
ICBkZWYgdGVzdF9sYXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIGZzID0gcG9ydC51bml0X3Rl
c3RfZmlsZXN5c3RlbSgpCisgICAgICAgIGZzID0gdW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQogICAg
ICAgICAjIFdlIGRvIGEgbG9nZ2luZyBydW4gaGVyZSBpbnN0ZWFkIG9mIGEgcGFzc2luZyBydW4g
aW4gb3JkZXIgdG8KICAgICAgICAgIyBzdXBwcmVzcyB0aGUgb3V0cHV0IGZyb20gdGhlIGpzb24g
Z2VuZXJhdG9yLgogICAgICAgICByZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRwdXQs
IHVzZXIgPSBsb2dnaW5nX3J1bihbJy0tY2xvYmJlci1vbGQtcmVzdWx0cyddLCByZWNvcmRfcmVz
dWx0cz1UcnVlLCBmaWxlc3lzdGVtPWZzKQpAQCAtMzY4LDcgKzM2OCw3IEBAIGNsYXNzIE1haW5U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9zaW5nbGVfZmlsZShzZWxmKToK
ICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIHJlcGxhY2luZyBtb3JlIG9mIHRo
ZSBnZXRfdGVzdHNfcnVuKCktc3R5bGUgdGVzdHMKICAgICAgICAgIyB3aXRoIHRlc3RzIHRoYXQg
cmVhZCB0aGUgdGVzdHNfcnVuKiBmaWxlcywgbGlrZSB0aGlzIG9uZS4KLSAgICAgICAgZnMgPSBw
b3J0LnVuaXRfdGVzdF9maWxlc3lzdGVtKCkKKyAgICAgICAgZnMgPSB1bml0X3Rlc3RfZmlsZXN5
c3RlbSgpCiAgICAgICAgIHRlc3RzX3J1biA9IHBhc3NpbmdfcnVuKFsncGFzc2VzL3RleHQuaHRt
bCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmaWxlc3lzdGVtPWZzKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhmcy5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rl
c3RzX3J1bjAudHh0JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzZXMvdGV4dC5o
dG1sXG4nKQpAQCAtMzgyLDEzICszODIsMTMgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgdGVzdHNfcnVuKQogCiAgICAg
ZGVmIHRlc3Rfc3RkZXJyX2lzX3NhdmVkKHNlbGYpOgotICAgICAgICBmcyA9IHBvcnQudW5pdF90
ZXN0X2ZpbGVzeXN0ZW0oKQorICAgICAgICBmcyA9IHVuaXRfdGVzdF9maWxlc3lzdGVtKCkKICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKGZpbGVzeXN0ZW09ZnMpKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhmcy5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL3Bhc3Nlcy9lcnJvci1zdGRlcnIudHh0JyksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdzdHVmZiBnb2luZyB0byBzdGRlcnInKQogCiAgICAgZGVmIHRlc3RfdGVzdF9saXN0KHNl
bGYpOgotICAgICAgICBmcyA9IHBvcnQudW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQorICAgICAgICBm
cyA9IHVuaXRfdGVzdF9maWxlc3lzdGVtKCkKICAgICAgICAgZmlsZW5hbWUgPSAnL3RtcC9mb28u
dHh0JwogICAgICAgICBmcy53cml0ZV90ZXh0X2ZpbGUoZmlsZW5hbWUsICdwYXNzZXMvdGV4dC5o
dG1sJykKICAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVz
JyAlIGZpbGVuYW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUs
IGZpbGVzeXN0ZW09ZnMpCkBAIC00MDAsNyArNDAwLDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQogCiAg
ICAgZGVmIHRlc3RfdGVzdF9saXN0X3dpdGhfcHJlZml4KHNlbGYpOgotICAgICAgICBmcyA9IHBv
cnQudW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQorICAgICAgICBmcyA9IHVuaXRfdGVzdF9maWxlc3lz
dGVtKCkKICAgICAgICAgZmlsZW5hbWUgPSAnL3RtcC9mb28udHh0JwogICAgICAgICBmcy53cml0
ZV90ZXh0X2ZpbGUoZmlsZW5hbWUsICdMYXlvdXRUZXN0cy9wYXNzZXMvdGV4dC5odG1sJykKICAg
ICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVzJyAlIGZpbGVu
YW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUsIGZpbGVzeXN0
ZW09ZnMpCkBAIC00MjEsNyArNDIxLDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVzZXIub3BlbmVkX3VybHMsIFsnL3RtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3Jlc3VsdHMuaHRtbCddKQogCiAgICAgZGVmIHRlc3RfY3Jhc2hf
d2l0aF9zdGRlcnIoc2VsZik6Ci0gICAgICAgIGZzID0gcG9ydC51bml0X3Rlc3RfZmlsZXN5c3Rl
bSgpCisgICAgICAgIGZzID0gdW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQogICAgICAgICByZXMsIGJ1
aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRwdXQsIHVzZXIgPSBsb2dnaW5nX3J1bihbCiAgICAg
ICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvY3Jhc2gtd2l0aC1zdGRlcnIuaHRtbCcs
CiAgICAgICAgICAgICBdLApAQCAtNDMxLDcgKzQzMSw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZzLnJlYWRfdGV4dF9maWxl
KCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdW5leHBlY3RlZF9yZXN1bHRzLmpzb24nKS5maW5k
KCd7ImNyYXNoLXdpdGgtc3RkZXJyLmh0bWwiOnsiZXhwZWN0ZWQiOiJQQVNTIiwiYWN0dWFsIjoi
Q1JBU0giLCJoYXNfc3RkZXJyIjp0cnVlfX0nKSAhPSAtMSkKIAogICAgIGRlZiB0ZXN0X25vX2lt
YWdlX2ZhaWx1cmVfd2l0aF9pbWFnZV9kaWZmKHNlbGYpOgotICAgICAgICBmcyA9IHBvcnQudW5p
dF90ZXN0X2ZpbGVzeXN0ZW0oKQorICAgICAgICBmcyA9IHVuaXRfdGVzdF9maWxlc3lzdGVtKCkK
ICAgICAgICAgcmVzLCBidWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9n
Z2luZ19ydW4oWwogICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL2NoZWNrc3Vt
LXdpdGgtbWF0Y2hpbmctaW1hZ2UuaHRtbCcsCiAgICAgICAgICAgICBdLApAQCAtNDQyLDcgKzQ0
Miw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0
X2NyYXNoX2xvZyhzZWxmKToKICAgICAgICAgbW9ja19jcmFzaF9yZXBvcnQgPSAnbW9jay1jcmFz
aC1yZXBvcnQnCi0gICAgICAgIGZzID0gcG9ydC51bml0X3Rlc3RfZmlsZXN5c3RlbSgpCisgICAg
ICAgIGZzID0gdW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQogICAgICAgICBmcy53cml0ZV90ZXh0X2Zp
bGUoJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVy
VHJlZV8yMDExLTA2LTEzLTE1MDcxOV9xdWFkemVuLmNyYXNoJywgbW9ja19jcmFzaF9yZXBvcnQp
CiAgICAgICAgIHJlcywgYnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxv
Z2dpbmdfcnVuKFsKICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvdW5leHBlY3RlZC9jcmFzaC13
aXRoLXN0ZGVyci5odG1sJywKQEAgLTQ1Nyw3ICs0NTcsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZzLnJlYWRfdGV4dF9m
aWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvdW5leHBlY3RlZC9jcmFzaC13
aXRoLXN0ZGVyci1jcmFzaC1sb2cudHh0JyksIGV4cGVjdGVkX2NyYXNoX2xvZykKIAogICAgIGRl
ZiB0ZXN0X2V4aXRfYWZ0ZXJfbl9mYWlsdXJlc191cGxvYWQoc2VsZik6Ci0gICAgICAgIGZzID0g
cG9ydC51bml0X3Rlc3RfZmlsZXN5c3RlbSgpCisgICAgICAgIGZzID0gdW5pdF90ZXN0X2ZpbGVz
eXN0ZW0oKQogICAgICAgICByZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRwdXQsIHVz
ZXIgPSBsb2dnaW5nX3J1bihbCiAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
dGV4dC1pbWFnZS1jaGVja3N1bS5odG1sJywKICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQu
aHRtbCcsCkBAIC01MzUsNyArNTM1LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAjIFdlIHJ1biBhIGNvbmZpZ3VyYXRpb24gdGhhdCBzaG91bGQgZmFpbCwg
dG8gZ2VuZXJhdGUgb3V0cHV0LCB0aGVuCiAgICAgICAgICMgbG9vayBmb3Igd2hhdCB0aGUgb3V0
cHV0IHJlc3VsdHMgdXJsIHdhcy4KIAotICAgICAgICBmcyA9IHBvcnQudW5pdF90ZXN0X2ZpbGVz
eXN0ZW0oKQorICAgICAgICBmcyA9IHVuaXRfdGVzdF9maWxlc3lzdGVtKCkKICAgICAgICAgd2l0
aCBmcy5ta2R0ZW1wKCkgYXMgdG1wZGlyOgogICAgICAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNl
ciA9IGxvZ2dpbmdfcnVuKFsnLS1yZXN1bHRzLWRpcmVjdG9yeT0nICsgc3RyKHRtcGRpcildLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1
ZGVkPVRydWUsIGZpbGVzeXN0ZW09ZnMpCkBAIC01NTIsNyArNTUyLDcgQEAgY2xhc3MgTWFpblRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5X3Jl
bGF0aXZlKHNlbGYpOgogICAgICAgICAjIFdlIHJ1biBhIGNvbmZpZ3VyYXRpb24gdGhhdCBzaG91
bGQgZmFpbCwgdG8gZ2VuZXJhdGUgb3V0cHV0LCB0aGVuCiAgICAgICAgICMgbG9vayBmb3Igd2hh
dCB0aGUgb3V0cHV0IHJlc3VsdHMgdXJsIHdhcy4KLSAgICAgICAgZnMgPSBwb3J0LnVuaXRfdGVz
dF9maWxlc3lzdGVtKCkKKyAgICAgICAgZnMgPSB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCiAgICAg
ICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KCcvdG1wL2N3ZCcpCiAgICAgICAgIGZzLmNoZGly
KCcvdG1wL2N3ZCcpCiAgICAgICAgIHJlcywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihb
Jy0tcmVzdWx0cy1kaXJlY3Rvcnk9Zm9vJ10sCkBAIC02MjAsOCArNjIwLDcgQEAgY2xhc3MgTWFp
blRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBh
c3NpbmdfcnVuKFsnLS13b3JrZXItbW9kZWwnLCAncHJvY2Vzc2VzJywgJy0tZHJ5LXJ1biddKSkK
IAogICAgIGRlZiB0ZXN0X3dvcmtlcl9tb2RlbF9fdW5rbm93bihzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbG9nZ2luZ19ydW4sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIFsnLS13b3JrZXItbW9kZWwnLCAndW5rbm93biddKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsb2dnaW5nX3J1biwgWyctLXdvcmtlci1tb2RlbCcsICd1
bmtub3duJ10pCiAKICAgICBkZWYgdGVzdF9yZWZ0ZXN0X3J1bihzZWxmKToKICAgICAgICAgdGVz
dHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJ3Bhc3Nlcy9yZWZ0ZXN0Lmh0bWwnXSwgdGVzdHNfaW5j
bHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpCkBAIC02MzYsMjUgKzYzNSwyMCBAQCBj
bGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKFtdLCB0ZXN0c19ydW4pCiAKICAgICBkZWYgdGVzdF9yZWZ0ZXN0X2RyaXZlcl9zaG91bGRf
cnVuX2V4cGVjdGVkX2h0bWwoc2VsZik6Ci0gICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19y
dW4oWydwYXNzZXMvcmVmdGVzdC5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5f
YmF0Y2hlcz1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVf
cmVmZXJlbmNlX2h0bWw9VHJ1ZSkKKyAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihb
J3Bhc3Nlcy9yZWZ0ZXN0Lmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRj
aGVzPVRydWUsIGluY2x1ZGVfcmVmZXJlbmNlX2h0bWw9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoWydwYXNzZXMvcmVmdGVzdC5odG1sJywgJ3Bhc3Nlcy9yZWZ0ZXN0LWV4cGVjdGVk
Lmh0bWwnXSwgdGVzdHNfcnVuKQogCiAgICAgZGVmIHRlc3RfcmVmdGVzdF9kcml2ZXJfc2hvdWxk
X3J1bl9leHBlY3RlZF9taXNtYXRjaF9odG1sKHNlbGYpOgotICAgICAgICB0ZXN0c19ydW4gPSBn
ZXRfdGVzdHNfcnVuKFsncGFzc2VzL21pc21hdGNoLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1
ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5jbHVkZV9yZWZlcmVuY2VfaHRtbD1UcnVlKQorICAgICAgICB0ZXN0c19ydW4gPSBnZXRf
dGVzdHNfcnVuKFsncGFzc2VzL21pc21hdGNoLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwg
ZmxhdHRlbl9iYXRjaGVzPVRydWUsIGluY2x1ZGVfcmVmZXJlbmNlX2h0bWw9VHJ1ZSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvbWlzbWF0Y2guaHRtbCcsICdwYXNzZXMvbWlz
bWF0Y2gtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCddLCB0ZXN0c19ydW4pCiAKICAgICBkZWYgdGVz
dF9hZGRpdGlvbmFsX3BsYXRmb3JtX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1hZGRpdGlvbmFsLXBsYXRmb3JtLWRpcmVjdG9yeScsICcv
dG1wL2ZvbyddKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1hZGRp
dGlvbmFsLXBsYXRmb3JtLWRpcmVjdG9yeScsICcvdG1wLy4uL2ZvbyddKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1hZGRpdGlvbmFsLXBsYXRmb3JtLWRpcmVjdG9y
eScsICcvdG1wL2ZvbycsCi0gICAgICAgICAgICAnLS1hZGRpdGlvbmFsLXBsYXRmb3JtLWRpcmVj
dG9yeScsICcvdG1wL2JhciddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVu
KFsnLS1hZGRpdGlvbmFsLXBsYXRmb3JtLWRpcmVjdG9yeScsICcvdG1wL2ZvbycsICctLWFkZGl0
aW9uYWwtcGxhdGZvcm0tZGlyZWN0b3J5JywgJy90bXAvYmFyJ10pKQogCi0gICAgICAgIHJlcywg
YnVpbGRib3Rfb3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVuKAotICAg
ICAgICAgICAgIFsnLS1hZGRpdGlvbmFsLXBsYXRmb3JtLWRpcmVjdG9yeScsICdmb28nXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWFkZGl0aW9uYWwtcGxhdGZvcm0tZGlyZWN0b3J5PWZv
byBpcyBpZ25vcmVkIHNpbmNlIGl0IGlzIG5vdCBhYnNvbHV0ZVxuJwotICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gcmVndWxhcl9vdXRwdXQuZ2V0KCkpCisgICAgICAgIHJlcywgYnVpbGRib3Rf
b3V0cHV0LCByZWd1bGFyX291dHB1dCwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS1hZGRpdGlvbmFs
LXBsYXRmb3JtLWRpcmVjdG9yeScsICdmb28nXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCct
LWFkZGl0aW9uYWwtcGxhdGZvcm0tZGlyZWN0b3J5PWZvbyBpcyBpZ25vcmVkIHNpbmNlIGl0IGlz
IG5vdCBhYnNvbHV0ZVxuJyBpbiByZWd1bGFyX291dHB1dC5nZXQoKSkKIAogCiBNYWluVGVzdCA9
IHNraXBfaWYoTWFpblRlc3QsIHN5cy5wbGF0Zm9ybSA9PSAnY3lnd2luJyBhbmQgY29tcGFyZV92
ZXJzaW9uKHN5cywgJzIuNicpWzBdIDwgMCwgJ25ldy1ydW4td2Via2l0LXRlc3RzIHRlc3RzIGhh
bmcgb24gQ3lnd2luIFB5dGhvbiAyLjUuMicpCkBAIC02NzUsNyArNjY5LDcgQEAgY2xhc3MgUmVi
YXNlbGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jlc2V0X3Jlc3Vs
dHMoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVwZGF0ZSBleHBlY3RhdGlvbnMgaW4g
cGxhY2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1pc3NpbmcsIHVwZGF0ZSB0
aGUgZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KLSAgICAgICAgZnMgPSBwb3J0LnVuaXRfdGVz
dF9maWxlc3lzdGVtKCkKKyAgICAgICAgZnMgPSB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCiAgICAg
ICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tcGl4ZWwtdGVzdHMnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgJy0tcmVzZXQtcmVzdWx0cycsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAncGFzc2VzL2ltYWdlLmh0bWwnLApAQCAtNjkyLDcgKzY4Niw3IEBAIGNsYXNzIFJl
YmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9taXNzaW5nX3Jl
c3VsdHMoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHVwZGF0ZSBleHBlY3RhdGlvbnMg
aW4gcGxhY2UuIElmIHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1pc3NpbmcsIHVwZGF0
ZSB0aGUgZXhwZWN0ZWQgZ2VuZXJpYyBsb2NhdGlvbi4KLSAgICAgICAgZnMgPSBwb3J0LnVuaXRf
dGVzdF9maWxlc3lzdGVtKCkKKyAgICAgICAgZnMgPSB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCiAg
ICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tbm8tc2hvdy1yZXN1bHRz
JywKICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4
dC5odG1sJywKICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3Np
bmdfaW1hZ2UuaHRtbCcsCkBAIC03MDksNyArNzAzLDcgQEAgY2xhc3MgUmViYXNlbGluZVRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X25ld19iYXNlbGluZShzZWxmKToKICAg
ICAgICAgIyBUZXN0IHRoYXQgd2UgdXBkYXRlIHRoZSBwbGF0Zm9ybSBleHBlY3RhdGlvbnMuIElm
IHRoZSBleHBlY3RhdGlvbgogICAgICAgICAjIGlzIG1zc2luZywgdGhlbiBjcmVhdGUgYSBuZXcg
ZXhwZWN0YXRpb24gaW4gdGhlIHBsYXRmb3JtIGRpci4KLSAgICAgICAgZnMgPSBwb3J0LnVuaXRf
dGVzdF9maWxlc3lzdGVtKCkKKyAgICAgICAgZnMgPSB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCiAg
ICAgICAgIHJlcywgb3V0LCBlcnIsIF8gPSBsb2dnaW5nX3J1bihbJy0tcGl4ZWwtdGVzdHMnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgJy0tbmV3LWJhc2VsaW5lJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICdwYXNzZXMvaW1hZ2UuaHRtbCcsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3RvX2JlX21vdmVkL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9tb3ZlZC9yZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCBkMzIzMGM2ZTE4OWJjNTQ2
MDYxNDg2NjU3N2RiMGIxY2U5OWQ4ZWM0Li4xZmFlZGY3ODdlYzA5NzIxNGUwZDIzNzQ2N2M2N2M3
MGIwZmY4MjhkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVk
L3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9fYmVfbW92ZWQvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRf
dGVzdHNfdW5pdHRlc3QucHkKQEAgLTM5LDYgKzM5LDcgQEAgZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtIGltcG9ydCBvdXRwdXRjYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUsIFNjcmlwdEVycm9yCiAKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0
LnRlc3QgaW1wb3J0IHVuaXRfdGVzdF9maWxlc3lzdGVtCiBmcm9tIHdlYmtpdHB5LnRvX2JlX21v
dmVkIGltcG9ydCByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cwogCiAKQEAgLTcxLDkg
KzcyLDggQEAgZGVmIHRlc3Rfb3B0aW9ucygpOgogCiAKIGRlZiB0ZXN0X2hvc3RfcG9ydF9hbmRf
ZmlsZXN5c3RlbShvcHRpb25zLCBleHBlY3RhdGlvbnMpOgotICAgIGZpbGVzeXN0ZW0gPSBwb3J0
LnVuaXRfdGVzdF9maWxlc3lzdGVtKCkKLSAgICBob3N0X3BvcnRfb2JqID0gcG9ydC5nZXQoJ3Rl
c3QnLCBvcHRpb25zLCBmaWxlc3lzdGVtPWZpbGVzeXN0ZW0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVzZXI9bW9ja3Rvb2wuTW9ja1VzZXIoKSkKKyAgICBmaWxlc3lzdGVtID0gdW5p
dF90ZXN0X2ZpbGVzeXN0ZW0oKQorICAgIGhvc3RfcG9ydF9vYmogPSBwb3J0LmdldCgndGVzdCcs
IG9wdGlvbnMsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSwgdXNlcj1tb2NrdG9vbC5Nb2NrVXNlcigp
KQogCiAgICAgZXhwZWN0YXRpb25zX3BhdGggPSBob3N0X3BvcnRfb2JqLnBhdGhfdG9fdGVzdF9l
eHBlY3RhdGlvbnNfZmlsZSgpCiAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoZXhwZWN0
YXRpb25zX3BhdGgsIGV4cGVjdGF0aW9ucykKQEAgLTM2OCw3ICszNjgsNyBAQCBjbGFzcyBUZXN0
UmVhbE1haW4odW5pdHRlc3QuVGVzdENhc2UpOgogY2xhc3MgVGVzdEh0bWxHZW5lcmF0b3IodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBtYWtlX2dlbmVyYXRvcihzZWxmLCBmaWxlcywgdGVz
dHMpOgogICAgICAgICBvcHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMoY29uZmlndXJhdGlv
bj1Ob25lLCBodG1sX2RpcmVjdG9yeT0nL3RtcCcpCi0gICAgICAgIGhvc3RfcG9ydCA9IHBvcnQu
Z2V0KCd0ZXN0Jywgb3B0aW9ucywgZmlsZXN5c3RlbT1wb3J0LnVuaXRfdGVzdF9maWxlc3lzdGVt
KGZpbGVzKSkKKyAgICAgICAgaG9zdF9wb3J0ID0gcG9ydC5nZXQoJ3Rlc3QnLCBvcHRpb25zLCBm
aWxlc3lzdGVtPXVuaXRfdGVzdF9maWxlc3lzdGVtKGZpbGVzKSkKICAgICAgICAgZ2VuZXJhdG9y
ID0gcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuSHRtbEdlbmVyYXRvcihob3N0X3Bv
cnQsCiAgICAgICAgICAgICB0YXJnZXRfcG9ydD1Ob25lLCBvcHRpb25zPW9wdGlvbnMsIHBsYXRm
b3Jtcz1bJ3Rlc3QtbWFjLWxlb3BhcmQnXSwgcmViYXNlbGluaW5nX3Rlc3RzPXRlc3RzKQogICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLCBob3N0X3BvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0
ZXN0LnB5CmluZGV4IDU3YmFhYTY5NTVjNjUzZGYyZmJjZGExMjAxNWY2NGMzODU5YTBiODIuLmE2
MzA1N2RlNGU3YTM0OGY5OGQxZGMyZGE1ZGI0MWQ5NWUxZTM5NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvcmViYXNlbGluZXNl
cnZlcl91bml0dGVzdC5weQpAQCAtMjksNyArMjksNiBAQAogaW1wb3J0IHVuaXR0ZXN0CiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZmlsZXN5c3RlbV9tb2NrCi1mcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBiYXNlCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0UG9ydAogZnJvbSB3ZWJraXRweS50b29s
LmNvbW1hbmRzLnJlYmFzZWxpbmVzZXJ2ZXIgaW1wb3J0IFRlc3RDb25maWcKIGZyb20gd2Via2l0
cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1NDTQo=
</data>
<flag name="review"
          id="94464"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="94465"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>