<?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>59244</bug_id>
          
          <creation_ts>2011-04-22 15:09:54 -0700</creation_ts>
          <short_desc>Factor LayoutTestResultsReader out of CommitQueue</short_desc>
          <delta_ts>2011-04-22 16:04:15 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>391121</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 15:09:54 -0700</bug_when>
    <thetext>Factor LayoutTestResultsReader out of CommitQueue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391122</commentid>
    <comment_count>1</comment_count>
      <attachid>90774</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 15:10:49 -0700</bug_when>
    <thetext>Created attachment 90774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391127</commentid>
    <comment_count>2</comment_count>
      <attachid>90774</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-22 15:13:18 -0700</bug_when>
    <thetext>Comment on attachment 90774
Patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader.py:39
&gt; +        self._log_directory = log_directory

I would name this archive_directory or something.

&gt; Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader.py:55
&gt; +        return LayoutTestResults.results_from_string(results_html)

Heads up: Ojan is about to break this call into two calls.  One for ORWT and one for NRWT.

&gt; Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader.py:64
&gt; +            results.set_failure_limit_count(RunTests.NON_INTERACTIVE_FAILURE_LIMIT_COUNT)

Heads up: this is going to be wrong for NWRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391132</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 15:17:34 -0700</bug_when>
    <thetext>Committed r84689: &lt;http://trac.webkit.org/changeset/84689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391179</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-22 16:04:15 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84689 might have broken SnowLeopard Intel Release (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90774</attachid>
            <date>2011-04-22 15:10:49 -0700</date>
            <delta_ts>2011-04-22 15:13:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59244-20110422151047.patch</filename>
            <type>text/plain</type>
            <size>21233</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg0Njg3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTEtMDQtMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGYWN0b3IgTGF5
b3V0VGVzdFJlc3VsdHNSZWFkZXIgb3V0IG9mIENvbW1pdFF1ZXVlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTI0NAorCisgICAgICAgIFRoaXMgY29k
ZSB3aWxsIGJlIHNoYXJlZCB3aXRoIHRoZSBFV1Mgd2hlbiB0aGV5IHN0YXJ0IHJ1bm5pbmcgdGVz
dHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1
bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6CisKIDIwMTEtMDQt
MjIgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
bGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weQkocmV2aXNpb24gMCkK
KysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFk
ZXIucHkJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitp
bXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGlt
cG9ydCBMYXlvdXRUZXN0UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJl
Y2F0ZWRfbG9nZ2luZyBpbXBvcnQgZXJyb3IsIGxvZworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBz
LnJ1bnRlc3RzIGltcG9ydCBSdW5UZXN0cworCisKK2NsYXNzIExheW91dFRlc3RSZXN1bHRzUmVh
ZGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2wsIGxvZ19kaXJlY3Rvcnkp
OgorICAgICAgICBzZWxmLl90b29sID0gdG9vbAorICAgICAgICBzZWxmLl9sb2dfZGlyZWN0b3J5
ID0gbG9nX2RpcmVjdG9yeQorCisgICAgIyBGSVhNRTogVGhpcyBleGlzdHMgZm9yIG1vY2tpbmcs
IGJ1dCBzaG91bGQgaW5zdGVhZCBiZSBtb2NrZWQgdmlhCisgICAgIyB0b29sLmZpbGVzeXN0ZW0u
cmVhZF90ZXh0X2ZpbGUuICBUaGV5IGhhdmUgZGlmZmVyZW50IGVycm9yIGhhbmRsaW5nIGF0IHRo
ZSBtb21lbnQuCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2VsZiwgcGF0aCk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmZpbGVzeXN0ZW0ucmVhZF90
ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6ICAjIEZpbGUgZG9lcyBu
b3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICAjIEZJWE1FOiBUaGlzIGxvZ2ljIHNob3VsZCBtb3ZlIHRvIHRoZSBwb3J0IG9iamVjdC4KKyAg
ICBkZWYgX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXN1bHRz
X3BhdGggPSBzZWxmLl90b29sLnBvcnQoKS5sYXlvdXRfdGVzdHNfcmVzdWx0c19wYXRoKCkKKyAg
ICAgICAgcmVzdWx0c19odG1sID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0
aCkKKyAgICAgICAgaWYgbm90IHJlc3VsdHNfaHRtbDoKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisgICAgICAgIHJldHVybiBMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKHJl
c3VsdHNfaHRtbCkKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXN1bHRzID0g
c2VsZi5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMoKQorICAgICAgICAjIEZJWE1FOiBXZSBz
aG91bGQgbm90IGhhdmUgdG8gc2V0IGZhaWx1cmVfbGltaXRfY291bnQsIGJ1dCB3ZQorICAgICAg
ICAjIGRvIHVudGlsIHJ1bi13ZWJraXQtdGVzdHMgY2FuIGJlIHVwZGF0ZWQgc2F2ZSBvZmYgdGhl
IHZhbHVlCisgICAgICAgICMgb2YgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgaW4gcmVzdWx0cy5o
dG1sL3Jlc3VsdHMuanNvbi4KKyAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTg0ODEKKyAgICAgICAgaWYgcmVzdWx0czoKKyAgICAgICAgICAgIHJlc3Vs
dHMuc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxV
UkVfTElNSVRfQ09VTlQpCisgICAgICAgIHJldHVybiByZXN1bHRzCisKKyAgICBkZWYgX3Jlc3Vs
dHNfZGlyZWN0b3J5KHNlbGYpOgorICAgICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl90b29sLnBv
cnQoKS5sYXlvdXRfdGVzdHNfcmVzdWx0c19wYXRoKCkKKyAgICAgICAgIyBGSVhNRTogVGhpcyBp
cyB3cm9uZyBpbiB0d28gd2F5czoKKyAgICAgICAgIyAxLiBJdCBhc3N1bWVzIHRoYXQgcmVzdWx0
cy5odG1sIGlzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgdGhlIHJlc3VsdHMgdHJlZS4KKyAgICAgICAg
IyAyLiBUaGlzIHVzZXMgdGhlICJvbGQiIHBvcnRzLnB5IGluZnJhc3RydWN0dXJlIGluc3RlYWQg
b2YgdGhlIG5ldyBsYXlvdXRfdGVzdHMvcG9ydAorICAgICAgICAjIHdoaWNoIHdpbGwgbm90IHN1
cHBvcnQgQ2hyb21pdW0uICBIb3dldmVyIHRoZSBuZXcgYXJjaCBkb2Vzbid0IHdvcmsgd2l0aCBv
bGQtcnVuLXdlYmtpdC10ZXN0cworICAgICAgICAjIHNvIHdlIGhhdmUgdG8gdXNlIHRoaXMgZm9y
IG5vdy4KKyAgICAgICAgcmV0dXJuIG9zLnBhdGguZGlybmFtZShyZXN1bHRzX3BhdGgpCisKKyAg
ICBkZWYgYXJjaGl2ZShzZWxmLCBwYXRjaCk6CisgICAgICAgIHJlc3VsdHNfZGlyZWN0b3J5ID0g
c2VsZi5fcmVzdWx0c19kaXJlY3RvcnkoKQorICAgICAgICByZXN1bHRzX25hbWUsIF8gPSBvcy5w
YXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUocmVzdWx0c19kaXJlY3RvcnkpKQorICAgICAg
ICAjIE5vdGU6IFdlIG5hbWUgdGhlIHppcCB3aXRoIHRoZSBidWdfaWQgaW5zdGVhZCBvZiBwYXRj
aF9pZCB0byBtYXRjaCB3b3JrX2l0ZW1fbG9nX3BhdGgoKS4KKyAgICAgICAgemlwX3BhdGggPSBz
ZWxmLl90b29sLndvcmtzcGFjZS5maW5kX3VudXNlZF9maWxlbmFtZShzZWxmLl9sb2dfZGlyZWN0
b3J5LCAiJXMtJXMiICUgKHBhdGNoLmJ1Z19pZCgpLCByZXN1bHRzX25hbWUpLCAiemlwIikKKyAg
ICAgICAgaWYgbm90IHppcF9wYXRoOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAg
aWYgbm90IHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS5pc2RpcihyZXN1bHRzX2RpcmVjdG9yeSk6Cisg
ICAgICAgICAgICBsb2coIiVzIGRvZXMgbm90IGV4aXN0LCBub3QgYXJjaGl2aW5nLiIgJSByZXN1
bHRzX2RpcmVjdG9yeSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGFyY2hpdmUg
PSBzZWxmLl90b29sLndvcmtzcGFjZS5jcmVhdGVfemlwKHppcF9wYXRoLCByZXN1bHRzX2RpcmVj
dG9yeSkKKyAgICAgICAgIyBSZW1vdmUgdGhlIHJlc3VsdHMgZGlyZWN0b3J5IHRvIHByZXZlbnQg
aHR0cCBsb2dzLCBldGMuIGZyb20gZ2V0dGluZyBodWdlIGJldHdlZW4gcnVucy4KKyAgICAgICAg
IyBXZSBjb3VsZCBoYXZlIGNyZWF0ZV96aXAgcmVtb3ZlIHRoZSBvcmlnaW5hbCwgYnV0IHRoaXMg
aXMgbW9yZSBleHBsaWNpdC4KKyAgICAgICAgc2VsZi5fdG9vbC5maWxlc3lzdGVtLnJtdHJlZShy
ZXN1bHRzX2RpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIGFyY2hpdmUKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3Qu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0
ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weQkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzYgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
dW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBp
bXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRj
YXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5
b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LnRv
b2wuYm90LmxheW91dHRlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LnRv
b2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUb29sCisKKworY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9taXNzaW5nX2xheW91
dF90ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCisgICAgICAg
IHJlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHRvb2wsICIvdmFyL2xvZ3MiKQorICAg
ICAgICByZXN1bHRzX3BhdGggPSAnL21vY2svcmVzdWx0cy5odG1sJworICAgICAgICB0b29sLmZp
bGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSh7cmVzdWx0c19wYXRoOiBOb25lfSkKKyAgICAgICAg
IyBNYWtlIHN1cmUgdGhhdCBvdXIgZmlsZXN5c3RlbSBtb2NrIGZ1bmN0aW9ucyBhcyB3ZSBleHBl
Y3QuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIHRvb2wuZmlsZXN5c3RlbS5y
ZWFkX3RleHRfZmlsZSwgcmVzdWx0c19wYXRoKQorICAgICAgICAjIGxheW91dF90ZXN0X3Jlc3Vs
dHMgc2hvdWxkbid0IHJhaXNlIGV2ZW4gaWYgdGhlIHJlc3VsdHMuaHRtbCBmaWxlIGlzIG1pc3Np
bmcuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCisK
KyAgICBkZWYgdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZWFkZXIg
PSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihNb2NrVG9vbCgpLCAiL3Zhci9sb2dzIikKKyAgICAg
ICAgcmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMgPSBsYW1iZGEgcGF0aDogTm9uZQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhyZWFkZXIucmVzdWx0cygpLCBOb25lKQorICAgICAgICByZWFk
ZXIuX3JlYWRfZmlsZV9jb250ZW50cyA9IGxhbWJkYSBwYXRoOiAiIgorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhyZWFkZXIucmVzdWx0cygpLCBOb25lKQorICAgICAgICByZWFkZXIuX2NyZWF0
ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAg
ICAgICAgcmVzdWx0cyA9IHJlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RF
cXVhbHMocmVzdWx0cywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0cy5m
YWlsdXJlX2xpbWl0X2NvdW50KCksIDEwKSAgIyBUaGlzIHZhbHVlIG1hdGNoZXMgUnVuVGVzdHMu
Tk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQKKworICAgIGRlZiB0ZXN0X2FyY2hp
dmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICB0b29sID0gTW9ja1Rv
b2woKQorICAgICAgICByZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcih0b29sLCAiL3Zh
ci9sb2dzIikKKyAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMjgp
CisgICAgICAgICMgU2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgcmVzdWx0c19kaXJlY3RvcnkgZG9l
cyBub3QgZXhpc3QuCisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIvbW9jayBkb2VzIG5vdCBl
eGlzdCwgbm90IGFyY2hpdmluZy5cbiIKKyAgICAgICAgYXJjaGl2ZSA9IE91dHB1dENhcHR1cmUo
KS5hc3NlcnRfb3V0cHV0cyhzZWxmLCByZWFkZXIuYXJjaGl2ZSwgW3BhdGNoXSwgZXhwZWN0ZWRf
c3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmNoaXZl
LCBOb25lKQorCisgICAgICAgIHJlc3VsdHNfZGlyZWN0b3J5ID0gIi9tb2NrIgorICAgICAgICAj
IFNhbml0eSBjaGVjayB3aGF0IHdlIGFzc3VtZSBvdXIgbW9jayByZXN1bHRzIGRpcmVjdG9yeSBp
cy4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkZXIuX3Jlc3VsdHNfZGlyZWN0b3J5KCks
IHJlc3VsdHNfZGlyZWN0b3J5KQorICAgICAgICB0b29sLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9k
aXJlY3RvcnkocmVzdWx0c19kaXJlY3RvcnkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0b29s
LmZpbGVzeXN0ZW0uZXhpc3RzKHJlc3VsdHNfZGlyZWN0b3J5KSkKKworICAgICAgICBzZWxmLmFz
c2VydE5vdEVxdWFsKHJlYWRlci5hcmNoaXZlKHBhdGNoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZSh0b29sLmZpbGVzeXN0ZW0uZXhpc3RzKHJlc3VsdHNfZGlyZWN0b3J5KSkKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQko
cmV2aXNpb24gODQ2NTUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNyArNDAsMTYgQEAgZnJvbSBTdHJpbmdJ
TyBpbXBvcnQgU3RyaW5nSU8KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRl
cnZhbGlkYXRvciBpbXBvcnQgQ29tbWl0dGVyVmFsaWRhdG9yCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQuYnVnemlsbGEgaW1wb3J0IEF0dGFjaG1lbnQKLWZyb20gd2Via2l0cHkuY29tbW9uLm5l
dC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5zdGF0dXNzZXJ2ZXIgaW1wb3J0IFN0YXR1c1NlcnZlcgogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgZXJyb3IsIGxvZwog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IK
IGZyb20gd2Via2l0cHkudG9vbC5ib3QuYm90aW5mbyBpbXBvcnQgQm90SW5mbwogZnJvbSB3ZWJr
aXRweS50b29sLmJvdC5jb21taXRxdWV1ZXRhc2sgaW1wb3J0IENvbW1pdFF1ZXVlVGFzaywgQ29t
bWl0UXVldWVUYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZmVlZGVycyBpbXBv
cnQgQ29tbWl0UXVldWVGZWVkZXIsIEVXU0ZlZWRlcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5s
YXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZy
b20gd2Via2l0cHkudG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5naW5lLCBRdWV1
ZUVuZ2luZURlbGVnYXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmZsYWt5dGVzdHJlcG9ydGVy
IGltcG9ydCBGbGFreVRlc3RSZXBvcnRlcgogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnN0
ZXBzZXF1ZW5jZSBpbXBvcnQgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyCi1mcm9tIHdlYmtpdHB5
LnRvb2wuc3RlcHMucnVudGVzdHMgaW1wb3J0IFJ1blRlc3RzCiBmcm9tIHdlYmtpdHB5LnRvb2wu
bXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQ29tbWFuZCwgVHJ5QWdhaW4KIAogCkBAIC0xNjksNyAr
MTY4LDcgQEAgY2xhc3MgRmVlZGVyUXVldWUoQWJzdHJhY3RRdWV1ZSk6CiAKICAgICBfc2xlZXBf
ZHVyYXRpb24gPSAzMCAgIyBzZWNvbmRzCiAKLSAgICAjIEFic3RyYWN0UGF0Y2hRdWV1ZSBtZXRo
b2RzCisgICAgIyBBYnN0cmFjdFF1ZXVlIG1ldGhvZHMKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1
ZXVlKHNlbGYpOgogICAgICAgICBBYnN0cmFjdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikK
QEAgLTI1MSw2ICsyNTAsNyBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUs
IFN0CiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UGF0
Y2hRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYpCiAgICAgICAgIHNlbGYuY29tbWl0dGVyX3Zh
bGlkYXRvciA9IENvbW1pdHRlclZhbGlkYXRvcihzZWxmLl90b29sLmJ1Z3MpCisgICAgICAgIHNl
bGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIo
c2VsZi5fdG9vbCwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQogCiAgICAgZGVmIG5leHRfd29ya19p
dGVtKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbmV4dF9wYXRjaCgpCkBAIC0zMTEsNTYg
KzMxMSwxMSBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUsIFN0CiAgICAg
ICAgIGZhaWx1cmVfbG9nID0gc2VsZi5fbG9nX2Zyb21fc2NyaXB0X2Vycm9yX2Zvcl91cGxvYWQo
c2NyaXB0X2Vycm9yKQogICAgICAgICByZXR1cm4gc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdl
LCBwYXRjaD1wYXRjaCwgcmVzdWx0c19maWxlPWZhaWx1cmVfbG9nKQogCi0gICAgIyBGSVhNRTog
VGhpcyBleGlzdHMgZm9yIG1vY2tpbmcsIGJ1dCBzaG91bGQgaW5zdGVhZCBiZSBtb2NrZWQgdmlh
Ci0gICAgIyB0b29sLmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUuICBUaGV5IGhhdmUgZGlmZmVy
ZW50IGVycm9yIGhhbmRsaW5nIGF0IHRoZSBtb21lbnQuCi0gICAgZGVmIF9yZWFkX2ZpbGVfY29u
dGVudHMoc2VsZiwgcGF0aCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
Ll90b29sLmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKLSAgICAgICAgZXhjZXB0IElP
RXJyb3IsIGU6ICAjIEZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KLSAgICAg
ICAgICAgIHJldHVybiBOb25lCi0KLSAgICAjIEZJWE1FOiBUaGlzIGxvZ2ljIHNob3VsZCBtb3Zl
IHRvIHRoZSBwb3J0IG9iamVjdC4KLSAgICBkZWYgX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRz
KHNlbGYpOgotICAgICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl90b29sLnBvcnQoKS5sYXlvdXRf
dGVzdHNfcmVzdWx0c19wYXRoKCkKLSAgICAgICAgcmVzdWx0c19odG1sID0gc2VsZi5fcmVhZF9m
aWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKLSAgICAgICAgaWYgbm90IHJlc3VsdHNfaHRtbDoK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBMYXlvdXRUZXN0UmVzdWx0
cy5yZXN1bHRzX2Zyb21fc3RyaW5nKHJlc3VsdHNfaHRtbCkKLQogICAgIGRlZiBsYXlvdXRfdGVz
dF9yZXN1bHRzKHNlbGYpOgotICAgICAgICByZXN1bHRzID0gc2VsZi5fY3JlYXRlX2xheW91dF90
ZXN0X3Jlc3VsdHMoKQotICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgbm90IGhhdmUgdG8gc2V0
IGZhaWx1cmVfbGltaXRfY291bnQsIGJ1dCB3ZQotICAgICAgICAjIGRvIHVudGlsIHJ1bi13ZWJr
aXQtdGVzdHMgY2FuIGJlIHVwZGF0ZWQgc2F2ZSBvZmYgdGhlIHZhbHVlCi0gICAgICAgICMgb2Yg
LS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgaW4gcmVzdWx0cy5odG1sL3Jlc3VsdHMuanNvbi4KLSAg
ICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg0ODEKLSAg
ICAgICAgaWYgcmVzdWx0czoKLSAgICAgICAgICAgIHJlc3VsdHMuc2V0X2ZhaWx1cmVfbGltaXRf
Y291bnQoUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQpCi0gICAg
ICAgIHJldHVybiByZXN1bHRzCi0KLSAgICBkZWYgX3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgot
ICAgICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl90b29sLnBvcnQoKS5sYXlvdXRfdGVzdHNfcmVz
dWx0c19wYXRoKCkKLSAgICAgICAgIyBGSVhNRTogVGhpcyBpcyB3cm9uZyBpbiB0d28gd2F5czoK
LSAgICAgICAgIyAxLiBJdCBhc3N1bWVzIHRoYXQgcmVzdWx0cy5odG1sIGlzIGF0IHRoZSB0b3Ag
bGV2ZWwgb2YgdGhlIHJlc3VsdHMgdHJlZS4KLSAgICAgICAgIyAyLiBUaGlzIHVzZXMgdGhlICJv
bGQiIHBvcnRzLnB5IGluZnJhc3RydWN0dXJlIGluc3RlYWQgb2YgdGhlIG5ldyBsYXlvdXRfdGVz
dHMvcG9ydAotICAgICAgICAjIHdoaWNoIHdpbGwgbm90IHN1cHBvcnQgQ2hyb21pdW0uICBIb3dl
dmVyIHRoZSBuZXcgYXJjaCBkb2Vzbid0IHdvcmsgd2l0aCBvbGQtcnVuLXdlYmtpdC10ZXN0cwot
ICAgICAgICAjIHNvIHdlIGhhdmUgdG8gdXNlIHRoaXMgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJu
IG9zLnBhdGguZGlybmFtZShyZXN1bHRzX3BhdGgpCisgICAgICAgIHJldHVybiBzZWxmLl9sYXlv
dXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKIAogICAgIGRlZiBhcmNoaXZlX2xhc3Rf
bGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJlc3VsdHNfZGlyZWN0
b3J5ID0gc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkoKQotICAgICAgICByZXN1bHRzX25hbWUsIF8g
PSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUocmVzdWx0c19kaXJlY3RvcnkpKQot
ICAgICAgICAjIE5vdGU6IFdlIG5hbWUgdGhlIHppcCB3aXRoIHRoZSBidWdfaWQgaW5zdGVhZCBv
ZiBwYXRjaF9pZCB0byBtYXRjaCB3b3JrX2l0ZW1fbG9nX3BhdGgoKS4KLSAgICAgICAgemlwX3Bh
dGggPSBzZWxmLl90b29sLndvcmtzcGFjZS5maW5kX3VudXNlZF9maWxlbmFtZShzZWxmLl9sb2df
ZGlyZWN0b3J5KCksICIlcy0lcyIgJSAocGF0Y2guYnVnX2lkKCksIHJlc3VsdHNfbmFtZSksICJ6
aXAiKQotICAgICAgICBpZiBub3QgemlwX3BhdGg6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQot
ICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC5maWxlc3lzdGVtLmlzZGlyKHJlc3VsdHNfZGlyZWN0
b3J5KToKLSAgICAgICAgICAgIGxvZygiJXMgZG9lcyBub3QgZXhpc3QsIG5vdCBhcmNoaXZpbmcu
IiAlIHJlc3VsdHNfZGlyZWN0b3J5KQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
YXJjaGl2ZSA9IHNlbGYuX3Rvb2wud29ya3NwYWNlLmNyZWF0ZV96aXAoemlwX3BhdGgsIHJlc3Vs
dHNfZGlyZWN0b3J5KQotICAgICAgICAjIFJlbW92ZSB0aGUgcmVzdWx0cyBkaXJlY3RvcnkgdG8g
cHJldmVudCBodHRwIGxvZ3MsIGV0Yy4gZnJvbSBnZXR0aW5nIGh1Z2UgYmV0d2VlbiBydW5zLgot
ICAgICAgICAjIFdlIGNvdWxkIGhhdmUgY3JlYXRlX3ppcCByZW1vdmUgdGhlIG9yaWdpbmFsLCBi
dXQgdGhpcyBpcyBtb3JlIGV4cGxpY2l0LgotICAgICAgICBzZWxmLl90b29sLmZpbGVzeXN0ZW0u
cm10cmVlKHJlc3VsdHNfZGlyZWN0b3J5KQotICAgICAgICByZXR1cm4gYXJjaGl2ZQorICAgICAg
ICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkK
IAogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIHNl
bGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkpCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRl
c3QucHkJKHJldmlzaW9uIDg0NjU1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBA
QCBpbXBvcnQgU3RyaW5nSU8KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGlt
cG9ydCBDaGVja291dE5lZWRzVXBkYXRlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemls
bGEgaW1wb3J0IEF0dGFjaG1lbnQKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lz
dGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0
ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZmFpbHVyZXMKQEAgLTQw
LDcgKzM5LDIxIEBAIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5jb21tYW5kdGVzdCAKIGZy
b20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0ICoKIGZyb20gd2Via2l0cHku
dG9vbC5jb21tYW5kcy5xdWV1ZXN0ZXN0IGltcG9ydCBRdWV1ZXNUZXN0CiBmcm9tIHdlYmtpdHB5
LnRvb2wuY29tbWFuZHMuc3RlcHNlcXVlbmNlIGltcG9ydCBTdGVwU2VxdWVuY2UKLWZyb20gd2Vi
a2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wsIE1vY2tTQ00sIE1vY2tTdGF0dXNT
ZXJ2ZXIKK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wsIE1vY2tP
cHRpb25zLCBNb2NrU0NNLCBNb2NrU3RhdHVzU2VydmVyCisKKworY2xhc3MgVGVzdENvbW1pdFF1
ZXVlKENvbW1pdFF1ZXVlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9vbD1Ob25lKToKKyAg
ICAgICAgQ29tbWl0UXVldWUuX19pbml0X18oc2VsZikKKyAgICAgICAgaWYgdG9vbDoKKyAgICAg
ICAgICAgIHNlbGYuYmluZF90b190b29sKHRvb2wpCisgICAgICAgIHNlbGYuX29wdGlvbnMgPSBN
b2NrT3B0aW9ucyhjb25maXJtPUZhbHNlLCBwYXJlbnRfY29tbWFuZD0iY29tbWl0LXF1ZXVlIikK
KworICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgorICAgICAgICBvdXRwdXRfY2FwdHVy
ZSA9IE91dHB1dENhcHR1cmUoKQorICAgICAgICBvdXRwdXRfY2FwdHVyZS5jYXB0dXJlX291dHB1
dCgpCisgICAgICAgIENvbW1pdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAg
b3V0cHV0X2NhcHR1cmUucmVzdG9yZV9vdXRwdXQoKQogCiAKIGNsYXNzIFRlc3RRdWV1ZShBYnN0
cmFjdFBhdGNoUXVldWUpOgpAQCAtMTcxLDEwICsxODQsMTAgQEAgY2xhc3MgQWx3YXlzQ29tbWl0
UXVldWVUb29sKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBDb21taXRRdWV1ZQogCiAKLWNsYXNz
IFNlY29uZFRob3VnaHRzQ29tbWl0UXVldWUoQ29tbWl0UXVldWUpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKK2NsYXNzIFNlY29uZFRob3VnaHRzQ29tbWl0UXVldWUoVGVzdENvbW1pdFF1ZXVl
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9vbD1Ob25lKToKICAgICAgICAgc2VsZi5fcmVq
ZWN0X3BhdGNoID0gRmFsc2UKLSAgICAgICAgQ29tbWl0UXVldWUuX19pbml0X18oc2VsZikKKyAg
ICAgICAgVGVzdENvbW1pdFF1ZXVlLl9faW5pdF9fKHNlbGYsIHRvb2wpCiAKICAgICBkZWYgcnVu
X2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6CiAgICAgICAgICMgV2Ugd2FudCB0byByZWplY3QgdGhl
IHBhdGNoIGFmdGVyIHRoZSBmaXJzdCB2YWxpZGF0aW9uLApAQCAtMzIwLDggKzMzMyw4IEBAIE1P
Q0s6IHJlbGVhc2Vfd29ya19pdGVtOiBjb21taXQtcXVldWUgMTAKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMob3B0aW9ucy50ZXN0LCBGYWxzZSkKIAogICAgIGRlZiB0ZXN0X21hbnVhbF9yZWpl
Y3RfZHVyaW5nX3Byb2Nlc3Npbmcoc2VsZik6Ci0gICAgICAgIHF1ZXVlID0gU2Vjb25kVGhvdWdo
dHNDb21taXRRdWV1ZSgpCi0gICAgICAgIHF1ZXVlLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQor
ICAgICAgICBxdWV1ZSA9IFNlY29uZFRob3VnaHRzQ29tbWl0UXVldWUoTW9ja1Rvb2woKSkKKyAg
ICAgICAgcXVldWUuYmVnaW5fd29ya19xdWV1ZSgpCiAgICAgICAgIHF1ZXVlLl90b29sLmZpbGVz
eXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcvbW9jay9yZXN1bHRzLmh0bWwnLCAnJykgICMgT3RoZXJ3
aXNlIHRoZSBjb21taXQtcXVldWUgd2lsbCBoaXQgYSBLZXlFcnJvciB0cnlpbmcgdG8gcmVhZCB0
aGUgcmVzdWx0cyBmcm9tIHRoZSBNb2NrRmlsZVN5c3RlbS4KICAgICAgICAgcXVldWUuX29wdGlv
bnMgPSBNb2NrKCkKICAgICAgICAgcXVldWUuX29wdGlvbnMucG9ydCA9IE5vbmUKQEAgLTMzNiw4
ICszNDksNyBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0LXF1ZXVlIDE5CiAgICAg
ICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBxdWV1ZS5wcm9jZXNzX3dv
cmtfaXRlbSwgW1F1ZXVlc1Rlc3QubW9ja193b3JrX2l0ZW1dLCBleHBlY3RlZF9zdGRlcnI9ZXhw
ZWN0ZWRfc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfcmVwb3J0X2ZsYWt5X3Rlc3RzKHNlbGYpOgot
ICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKCkKLSAgICAgICAgcXVldWUuYmluZF90b190b29s
KE1vY2tUb29sKCkpCisgICAgICAgIHF1ZXVlID0gVGVzdENvbW1pdFF1ZXVlKE1vY2tUb29sKCkp
CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiIk1PQ0sgYnVnIGNvbW1lbnQ6IGJ1Z19pZD03
NiwgY2M9Tm9uZQogLS0tIEJlZ2luIGNvbW1lbnQgLS0tCiBUaGUgY29tbWl0LXF1ZXVlIGp1c3Qg
c2F3IGZvby9iYXIuaHRtbCBmbGFrZSAoVGV4dCBkaWZmIG1pc21hdGNoKSB3aGlsZSBwcm9jZXNz
aW5nIGF0dGFjaG1lbnQgMTk3IG9uIGJ1ZyA0Mi4KQEAgLTM3OCw1MSArMzkwLDkgQEAgVGhlIGNv
bW1pdC1xdWV1ZSBpcyBjb250aW51aW5nIHRvIHByb2NlcwogCiAgICAgICAgIE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBxdWV1ZS5yZXBvcnRfZmxha3lfdGVzdHMsIFtRdWV1
ZXNUZXN0Lm1vY2tfd29ya19pdGVtLCB0ZXN0X3Jlc3VsdHMsIE1vY2taaXBGaWxlKCldLCBleHBl
Y3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCi0gICAgZGVmIHRlc3RfbWlzc2luZ19sYXlv
dXRfdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKCkKLSAg
ICAgICAgdG9vbCA9IE1vY2tUb29sKCkKLSAgICAgICAgcmVzdWx0c19wYXRoID0gJy9tb2NrL3Jl
c3VsdHMuaHRtbCcKLSAgICAgICAgdG9vbC5maWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0ZW0oe3Jl
c3VsdHNfcGF0aDogTm9uZX0pCi0gICAgICAgIHF1ZXVlLmJpbmRfdG9fdG9vbCh0b29sKQotICAg
ICAgICAjIE1ha2Ugc3VyZSB0aGF0IG91ciBmaWxlc3lzdGVtIG1vY2sgZnVuY3Rpb25zIGFzIHdl
IGV4cGVjdC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgdG9vbC5maWxlc3lz
dGVtLnJlYWRfdGV4dF9maWxlLCByZXN1bHRzX3BhdGgpCi0gICAgICAgICMgbGF5b3V0X3Rlc3Rf
cmVzdWx0cyBzaG91bGRuJ3QgcmFpc2UgZXZlbiBpZiB0aGUgcmVzdWx0cy5odG1sIGZpbGUgaXMg
bWlzc2luZy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocXVldWUubGF5b3V0X3Rlc3RfcmVz
dWx0cygpLCBOb25lKQotCi0gICAgZGVmIHRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmKToK
LSAgICAgICAgcXVldWUgPSBDb21taXRRdWV1ZSgpCi0gICAgICAgIHF1ZXVlLmJpbmRfdG9fdG9v
bChNb2NrVG9vbCgpKQotICAgICAgICBxdWV1ZS5fcmVhZF9maWxlX2NvbnRlbnRzID0gbGFtYmRh
IHBhdGg6IE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocXVldWUubGF5b3V0X3Rlc3Rf
cmVzdWx0cygpLCBOb25lKQotICAgICAgICBxdWV1ZS5fcmVhZF9maWxlX2NvbnRlbnRzID0gbGFt
YmRhIHBhdGg6ICIiCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHF1ZXVlLmxheW91dF90ZXN0
X3Jlc3VsdHMoKSwgTm9uZSkKLSAgICAgICAgcXVldWUuX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1
bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKLSAgICAgICAgcmVzdWx0cyA9IHF1
ZXVlLmxheW91dF90ZXN0X3Jlc3VsdHMoKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFscyhy
ZXN1bHRzLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHRzLmZhaWx1cmVf
bGltaXRfY291bnQoKSwgMTApICAjIFRoaXMgdmFsdWUgbWF0Y2hlcyBSdW5UZXN0cy5OT05fSU5U
RVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9DT1VOVAotCi0gICAgZGVmIHRlc3RfYXJjaGl2ZV9sYXN0
X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHF1ZXVlID0gQ29tbWl0UXVldWUo
KQotICAgICAgICB0b29sID0gTW9ja1Rvb2woKQotICAgICAgICBxdWV1ZS5iaW5kX3RvX3Rvb2wo
dG9vbCkKLSAgICAgICAgcGF0Y2ggPSBxdWV1ZS5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQo
MTI4KQotICAgICAgICAjIFNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHJlc3VsdHNfZGlyZWN0b3J5
IGRvZXMgbm90IGV4aXN0LgotICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiL21vY2sgZG9lcyBu
b3QgZXhpc3QsIG5vdCBhcmNoaXZpbmcuXG4iCi0gICAgICAgIGFyY2hpdmUgPSBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcXVldWUuYXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0
X3Jlc3VsdHMsIFtwYXRjaF0sIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJjaGl2ZSwgTm9uZSkKLQotICAgICAgICByZXN1bHRzX2Rp
cmVjdG9yeSA9ICIvbW9jayIKLSAgICAgICAgIyBTYW5pdHkgY2hlY2sgd2hhdCB3ZSBhc3N1bWUg
b3VyIG1vY2sgcmVzdWx0cyBkaXJlY3RvcnkgaXMuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cXVldWUuX3Jlc3VsdHNfZGlyZWN0b3J5KCksIHJlc3VsdHNfZGlyZWN0b3J5KQotICAgICAgICB0
b29sLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3RvcnkocmVzdWx0c19kaXJlY3RvcnkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0b29sLmZpbGVzeXN0ZW0uZXhpc3RzKHJlc3VsdHNfZGly
ZWN0b3J5KSkKLQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHF1ZXVlLmFyY2hpdmVfbGFz
dF9sYXlvdXRfdGVzdF9yZXN1bHRzKHBhdGNoKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZSh0b29sLmZpbGVzeXN0ZW0uZXhpc3RzKHJlc3VsdHNfZGlyZWN0b3J5KSkKLQogICAgIGRl
ZiB0ZXN0X3VwbG9hZF9yZXN1bHRzX2FyY2hpdmVfZm9yX3BhdGNoKHNlbGYpOgotICAgICAgICBx
dWV1ZSA9IENvbW1pdFF1ZXVlKCkKLSAgICAgICAgcXVldWUuYmluZF90b190b29sKE1vY2tUb29s
KCkpCisgICAgICAgIHF1ZXVlID0gVGVzdENvbW1pdFF1ZXVlKE1vY2tUb29sKCkpCisgICAgICAg
IHF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoKQogICAgICAgICBwYXRjaCA9IHF1ZXVlLl90b29sLmJ1
Z3MuZmV0Y2hfYXR0YWNobWVudCgxMjgpCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiIk1P
Q0sgYWRkX2F0dGFjaG1lbnRfdG9fYnVnOiBidWdfaWQ9NDIsIGRlc2NyaXB0aW9uPUFyY2hpdmUg
b2YgbGF5b3V0LXRlc3QtcmVzdWx0cyBmcm9tIGJvdCBmaWxlbmFtZT1sYXlvdXQtdGVzdC1yZXN1
bHRzLnppcAogLS0gQmVnaW4gY29tbWVudCAtLQo=
</data>
<flag name="review"
          id="83544"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>