<?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>204227</bug_id>
          
          <creation_ts>2019-11-15 08:53:36 -0800</creation_ts>
          <short_desc>Python 3: Add support in webkitpy.layout_tests.views</short_desc>
          <delta_ts>2019-11-18 12:55:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=203701</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1590516</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-15 08:53:36 -0800</bug_when>
    <thetext>Add Python 3 support to layout test logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590663</commentid>
    <comment_count>1</comment_count>
      <attachid>383650</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-15 14:26:36 -0800</bug_when>
    <thetext>Created attachment 383650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591145</commentid>
    <comment_count>2</comment_count>
      <attachid>383650</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-11-18 11:42:21 -0800</bug_when>
    <thetext>Comment on attachment 383650
Patch

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

LGTM overall w/ a question. Unofficial r+.

&gt; Tools/Scripts/webkitpy/layout_tests/views/printing_unittest.py:169
&gt; +        printer._meter.number_of_columns = lambda: sys.maxsize

Does this exist in both py2 and py3?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591153</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-18 11:48:51 -0800</bug_when>
    <thetext>(In reply to Dean Johnson from comment #2)
&gt; Comment on attachment 383650 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383650&amp;action=review
&gt; 
&gt; LGTM overall w/ a question. Unofficial r+.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/views/printing_unittest.py:169
&gt; &gt; +        printer._meter.number_of_columns = lambda: sys.maxsize
&gt; 
&gt; Does this exist in both py2 and py3?

Yes. maxint doesn&apos;t exist in Python 3, maxsize is 9223372036854775807 in both Python 2 and Python 3, maxint is also 9223372036854775807 in Python 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591154</commentid>
    <comment_count>4</comment_count>
      <attachid>383650</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-11-18 11:51:14 -0800</bug_when>
    <thetext>Comment on attachment 383650
Patch

Does it passing webkitpy ews indicates that these updated tests were run through EWS (for Python 2)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591156</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-18 11:55:12 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #4)
&gt; Comment on attachment 383650 [details]
&gt; Patch
&gt; 
&gt; Does it passing webkitpy ews indicates that these updated tests were run
&gt; through EWS (for Python 2)?

Yes!

And actually, the new tests are pretty similar to the old ones. The big difference is that we were essentially introspecting buflist on the StringIO object so avoid concatenating unicode and non-unicode strings. In most cases, we could safely join the StringIO buffers (and we can always join them in Python 3) so with a few notable unicode exceptions, that&apos;s what the new unit tests are doing.

Some added comfort here, we passed api and layout tests which are also leveraging Python 2 webkitpy code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591189</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 12:53:56 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 383650:

imported/w3c/web-platform-tests/svg/import/struct-dom-06-b-manual.svg bug 204312 (author: sabouhallawa@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591191</commentid>
    <comment_count>7</comment_count>
      <attachid>383650</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 12:54:48 -0800</bug_when>
    <thetext>Comment on attachment 383650
Patch

Clearing flags on attachment: 383650

Committed r252560: &lt;https://trac.webkit.org/changeset/252560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591192</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 12:54:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591193</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-18 12:55:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/57293904&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383650</attachid>
            <date>2019-11-15 14:26:36 -0800</date>
            <delta_ts>2019-11-18 12:54:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204227-20191115142635.patch</filename>
            <type>text/plain</type>
            <size>19952</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MjUwMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ1IEBACisyMDE5LTExLTE1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLnZpZXdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDQyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zOiBBZGQgd2Via2l0cHkubGF5b3V0X3Rl
c3RzLnZpZXdzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L2J1aWxkYm90X3Jlc3VsdHMucHk6CisgICAgICAgIChCdWlsZEJvdFByaW50ZXIucHJpbnRfdW5l
eHBlY3RlZF9yZXN1bHRzKTogVXNlIGNvbXBhdGlibGUgaXRlcml0ZW1zLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRl
c3QucHk6CisgICAgICAgIChCdWlsZEJvdFByaW50ZXJUZXN0cy5nZXRfcHJpbnRlcik6IFVzZSBj
b21wYXRpYmxlIFN0cmluZ0lPIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbS5weToKKyAgICAgICAgKE1ldGVyZWRTdHJl
YW0uX19pbml0X18pOiBVc2UgbWF4c2l6ZSBpbnN0ZWFkIG9mIG1heGludC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVz
dC5weToKKyAgICAgICAgKFJlZ3VsYXJUZXN0LnNldFVwKTogVXNlIGNvbXBhdGlibGUgU3RyaW5n
SU8sIHJlbW92ZSBidWZsaXN0LgorICAgICAgICAoUmVndWxhclRlc3QudGVzdF9sb2dnaW5nX25v
dF9pbmNsdWRlZCk6IERpdHRvLgorICAgICAgICAoUmVndWxhclRlc3QuX2Jhc2ljKTogUmVtb3Zl
IGJ1Zmxpc3QuCisgICAgICAgIChSZWd1bGFyVGVzdC50ZXN0X2Jhc2ljKTogQ29tcGFyZSBhZ2Fp
bnN0IHN0cmVhbSB2YWx1ZSBpbnN0ZWFkIG9mIGJ1Zmxpc3QuCisgICAgICAgIChSZWd1bGFyVGVz
dC5fbG9nX2FmdGVyX3VwZGF0ZSk6IFJlbW92ZSBidWZsaXN0LgorICAgICAgICAoUmVndWxhclRl
c3QudGVzdF9sb2dfYWZ0ZXJfdXBkYXRlKTogQ29tcGFyZSBhZ2FpbnN0IHN0cmVhbSB2YWx1ZQor
ICAgICAgICBpbnN0ZWFkIG9mIGJ1Zmxpc3QuCisgICAgICAgIChSZWd1bGFyVGVzdC50ZXN0X2xv
Z19hcmdzKTogRGl0dG8uCisgICAgICAgIChSZWd1bGFyVGVzdC50ZXN0X3VuaWNvZGUpOiBXZSBj
YW4ndCBqb2luIHVuaWNvZGUgc3RyaW5ncyBhbmQgc3RhbmRhcmQgc3RyaW5ncworICAgICAgICBp
biBQeXRob24gMi4KKyAgICAgICAgKFJlZ3VsYXJUZXN0LnRlc3Rfc3RyZWFtX3dpdGhfZW5jb2Rp
bmcpOiBVc2UgY29tcGF0aWJsZSBTdHJpbmdJTywgUHl0aG9uIDMgdXNlcworICAgICAgICB1bmlj
b2RlIHN0cmluZ3MuCisgICAgICAgIChUdHlUZXN0LnRlc3RfYmFzaWMpOiBDb21wYXJlIGFnYWlu
c3Qgc3RyZWFtIHZhbHVlIGluc3RlYWQgb2YgYnVmbGlzdC4KKyAgICAgICAgKFR0eVRlc3QudGVz
dF9sb2dfYWZ0ZXJfdXBkYXRlKTogRGl0dG8uCisgICAgICAgIChWZXJib3NlVGVzdC50ZXN0X2Jh
c2ljKTogRGl0dG8uCisgICAgICAgIChWZXJib3NlVGVzdC50ZXN0X2xvZ19hZnRlcl91cGRhdGUp
OiBEaXR0by4KKyAgICAgICAgKFZlcmJvc2VUZXN0LnRlc3RfbG9nX2FyZ3MpOiBEaXR0by4KKyAg
ICAgICAgKFZlcmJvc2VXaXRoT3V0VGltZXN0YW1wLnRlc3RfYmFzaWMpOiBEaXR0by4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVz
dC5weToKKyAgICAgICAgKFRlc3RwcmludGVyLmFzc2VydFdyaXR0ZW4pOiBVc2Ugc3RyZWFtIHZh
bHVlIGluc3RlYWQgb2YgYnVmbGlzdC4KKyAgICAgICAgKFRlc3RwcmludGVyLnJlc2V0KTogVXNl
IFB5dGhvbiAzIGNvbXBhdGlibGUgc3RlYW0gcmVzZXQuCisgICAgICAgIChUZXN0cHJpbnRlci5n
ZXRfcHJpbnRlcik6IFVzZSBjb21wYXRpYmxlIFN0cmluZ0lPLgorICAgICAgICAoVGVzdHByaW50
ZXIudGVzdF9wcmludF9vbmVfbGluZV9zdW1tYXJ5KTogQ29tcGFyZSBhZ2FpbnN0IHN0cmVhbSB2
YWx1ZSBpbnN0ZWFkCisgICAgICAgIG9mIGJ1Zmxpc3QuCisgICAgICAgIChUZXN0cHJpbnRlci50
ZXN0X3Rlc3Rfc3RhdHVzX2xpbmUpOiBEaXR0by4KKyAgICAgICAgKFRlc3RwcmludGVyLnRlc3Rf
cHJpbnRfZm91bmQpOiBEaXR0by4KKwogMjAxOS0xMS0xNSAgSm9uYXRoYW4gQmVkYXJkICA8amJl
ZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgcmVzdWx0cy53ZWJraXQub3JnOiBSZXBvcnQgSlND
IHRlc3RzIHRvIHRoZSByZXN1bHRzIGRhdGFiYXNlCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qt
d2Via2l0cHktcHl0aG9uMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0
cHktcHl0aG9uMwkocmV2aXNpb24gMjUyNDgzKQorKysgVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtp
dHB5LXB5dGhvbjMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgUFlUSE9OM19DT01Q
QVRJQkxFX0RJUkVDVE9SSUVTID0gWwogICAnd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9w
YWNrYWdlJywKICAgJ3dlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMnLAogICAnd2Via2l0cHku
bGF5b3V0X3Rlc3RzLnNlcnZlcnMnLAorICAnd2Via2l0cHkubGF5b3V0X3Rlc3RzLnZpZXdzJywK
ICAgJ3dlYmtpdHB5LnBvcnQnLAogICAnd2Via2l0cHkucmVzdWx0cycsCiAgICd3ZWJraXRweS5z
dHlsZScsCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9i
dWlsZGJvdF9yZXN1bHRzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHMucHkJKHJldmlzaW9uIDI1MjQ4MykK
KysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jl
c3VsdHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDkgQEAKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZXhwZWN0
YXRpb25zCi0KIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0c2pzb25wYXJz
ZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLml0ZXJhdGlvbl9jb21wYXRpYmlsaXR5IGltcG9ydCBp
dGVyaXRlbXMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9l
eHBlY3RhdGlvbnMKIAogCiBUZXN0RXhwZWN0YXRpb25zID0gdGVzdF9leHBlY3RhdGlvbnMuVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTI4LDcgKzEyOCw3IEBAIGNsYXNzIEJ1aWxkQm90UHJpbnRlcihv
YmplY3QpOgogICAgICAgICBpZiBsZW4ocGFzc2VzKSBvciBsZW4oZmxha3kpIG9yIGxlbihyZWdy
ZXNzaW9ucyk6CiAgICAgICAgICAgICBzZWxmLl9wcmludCgiIikKICAgICAgICAgaWYgbGVuKHBh
c3Nlcyk6Ci0gICAgICAgICAgICBmb3Iga2V5LCB0ZXN0cyBpbiBwYXNzZXMuaXRlcml0ZW1zKCk6
CisgICAgICAgICAgICBmb3Iga2V5LCB0ZXN0cyBpbiBpdGVyaXRlbXMocGFzc2VzKToKICAgICAg
ICAgICAgICAgICBzZWxmLl9wcmludCgiJXM6ICglZCkiICUgKGtleSwgbGVuKHRlc3RzKSkpCiAg
ICAgICAgICAgICAgICAgdGVzdHMuc29ydCgpCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4g
dGVzdHM6CkBAIC0xMzgsNyArMTM4LDcgQEAgY2xhc3MgQnVpbGRCb3RQcmludGVyKG9iamVjdCk6
CiAKICAgICAgICAgaWYgbGVuKGZsYWt5KToKICAgICAgICAgICAgIGRlc2NyaXB0aW9ucyA9IFRl
c3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TCi0gICAgICAgICAgICBmb3Ig
a2V5LCB0ZXN0cyBpbiBmbGFreS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGZvciBrZXksIHRl
c3RzIGluIGl0ZXJpdGVtcyhmbGFreSk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVGVzdEV4
cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxvd2VyKCldCiAgICAgICAgICAgICAgICAgc2Vs
Zi5fcHJpbnQoIlVuZXhwZWN0ZWQgZmxha2luZXNzOiAlcyAoJWQpIiAlIChkZXNjcmlwdGlvbnNb
cmVzdWx0XSwgbGVuKHRlc3RzKSkpCiAgICAgICAgICAgICAgICAgdGVzdHMuc29ydCgpCkBAIC0x
NTYsNyArMTU2LDcgQEAgY2xhc3MgQnVpbGRCb3RQcmludGVyKG9iamVjdCk6CiAKICAgICAgICAg
aWYgbGVuKHJlZ3Jlc3Npb25zKToKICAgICAgICAgICAgIGRlc2NyaXB0aW9ucyA9IFRlc3RFeHBl
Y3RhdGlvbnMuRVhQRUNUQVRJT05fREVTQ1JJUFRJT05TCi0gICAgICAgICAgICBmb3Iga2V5LCB0
ZXN0cyBpbiByZWdyZXNzaW9ucy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGZvciBrZXksIHRl
c3RzIGluIGl0ZXJpdGVtcyhyZWdyZXNzaW9ucyk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
VGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlNba2V5Lmxvd2VyKCldCiAgICAgICAgICAgICAg
ICAgc2VsZi5fcHJpbnQoIlJlZ3Jlc3Npb25zOiBVbmV4cGVjdGVkICVzICglZCkiICUgKGRlc2Ny
aXB0aW9uc1tyZXN1bHRdLCBsZW4odGVzdHMpKSkKICAgICAgICAgICAgICAgICB0ZXN0cy5zb3J0
KCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxk
Ym90X3Jlc3VsdHNfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weQkocmV2
aXNpb24gMjUyNDgzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjYsMTAg
KzI2LDEwIEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgU3RyaW5n
SU8KIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1w
b3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi51bmljb2RlX2NvbXBhdGliaWxpdHkg
aW1wb3J0IFN0cmluZ0lPCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tP
cHRpb25zCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9l
eHBlY3RhdGlvbnMKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQnVpbGRCb3RQcmludGVyVGVzdHMo
dW5pdHRlc3QuVGVzdAogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyZWFtLmdldHZhbHVlKCkp
CiAKICAgICBkZWYgZ2V0X3ByaW50ZXIoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFN0cmluZ0lP
LlN0cmluZ0lPKCkKKyAgICAgICAgc3RyZWFtID0gU3RyaW5nSU8oKQogICAgICAgICBwcmludGVy
ID0gYnVpbGRib3RfcmVzdWx0cy5CdWlsZEJvdFByaW50ZXIoc3RyZWFtLCBkZWJ1Z19sb2dnaW5n
PVRydWUpCiAgICAgICAgIHJldHVybiBwcmludGVyLCBzdHJlYW0KIApJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJl
ZF9zdHJlYW0ucHkJKHJldmlzaW9uIDI1MjQ4MykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02
Miw3ICs2Miw3IEBAIGNsYXNzIE1ldGVyZWRTdHJlYW0ob2JqZWN0KToKICAgICAgICAgc2VsZi5f
bGFzdF9wYXJ0aWFsX2xpbmUgPSAnJwogICAgICAgICBzZWxmLl9sYXN0X3dyaXRlX3RpbWUgPSAw
LjAKICAgICAgICAgc2VsZi5fdGhyb3R0bGVfZGVsYXlfaW5fc2VjcyA9IDAuMDY2IGlmIHNlbGYu
X2VyYXNpbmcgZWxzZSAxMC4wCi0gICAgICAgIHNlbGYuX251bWJlcl9vZl9jb2x1bW5zID0gc3lz
Lm1heGludAorICAgICAgICBzZWxmLl9udW1iZXJfb2ZfY29sdW1ucyA9IHN5cy5tYXhzaXplCiAg
ICAgICAgIGlmIHNlbGYuX2lzYXR0eSBhbmQgbnVtYmVyX29mX2NvbHVtbnM6CiAgICAgICAgICAg
ICBzZWxmLl9udW1iZXJfb2ZfY29sdW1ucyA9IG51bWJlcl9vZl9jb2x1bW5zCiAKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtX3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNTI0ODMpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVh
bV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDEyIEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgU3RyaW5nSU8KIGltcG9ydCBsb2dnaW5n
CiBpbXBvcnQgcmUKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5
LmNvbW1vbi51bmljb2RlX2NvbXBhdGliaWxpdHkgaW1wb3J0IFN0cmluZ0lPCiBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy52aWV3cy5tZXRlcmVkX3N0cmVhbSBpbXBvcnQgTWV0ZXJlZFN0cmVh
bQogCiAKQEAgLTQyLDggKzQzLDcgQEAgY2xhc3MgUmVndWxhclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIHByaW50X3RpbWVzdGFtcHMgPSBOb25lCiAKICAgICBkZWYgc2V0VXAoc2VsZik6
Ci0gICAgICAgIHNlbGYuc3RyZWFtID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgICBzZWxm
LmJ1Zmxpc3QgPSBzZWxmLnN0cmVhbS5idWZsaXN0CisgICAgICAgIHNlbGYuc3RyZWFtID0gU3Ry
aW5nSU8oKQogICAgICAgICBzZWxmLnN0cmVhbS5pc2F0dHkgPSBsYW1iZGE6IHNlbGYuaXNhdHR5
CiAKICAgICAgICAgIyBjb25maWd1cmUgYSBsb2dnZXIgdG8gdGVzdCB0aGF0IGxvZyBjYWxscyBk
byBub3JtYWxseSBnZXQgaW5jbHVkZWQuCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFJlZ3VsYXJU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5sb2dnZXIucHJvcGFnYXRlID0g
RmFsc2UKIAogICAgICAgICAjIGFkZCBhIGR1bW15IHRpbWUgY291bnRlciBmb3IgYSBkZWZhdWx0
IGJlaGF2aW9yLgotICAgICAgICBzZWxmLnRpbWVzID0gcmFuZ2UoMTApCisgICAgICAgIHNlbGYu
dGltZXMgPSBsaXN0KHJhbmdlKDEwKSkKIAogICAgICAgICBzZWxmLm1ldGVyID0gTWV0ZXJlZFN0
cmVhbShzZWxmLnN0cmVhbSwgc2VsZi52ZXJib3NlLCBzZWxmLmxvZ2dlciwgc2VsZi50aW1lX2Zu
LCA4Njc1LCBwcmludF90aW1lc3RhbXBzPXNlbGYucHJpbnRfdGltZXN0YW1wcykKIApAQCAtNjcs
NyArNjcsNyBAQCBjbGFzcyBSZWd1bGFyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVm
IHRlc3RfbG9nZ2luZ19ub3RfaW5jbHVkZWQoc2VsZik6CiAgICAgICAgICMgVGhpcyB0ZXN0cyB0
aGF0IGlmIHdlIGRvbid0IGhhbmQgYSBsb2dnZXIgdG8gdGhlIE1ldGVyZWRTdHJlYW0sCiAgICAg
ICAgICMgbm90aGluZyBpcyBsb2dnZWQuCi0gICAgICAgIGxvZ2dpbmdfc3RyZWFtID0gU3RyaW5n
SU8uU3RyaW5nSU8oKQorICAgICAgICBsb2dnaW5nX3N0cmVhbSA9IFN0cmluZ0lPKCkKICAgICAg
ICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihsb2dnaW5nX3N0cmVhbSkKICAgICAg
ICAgcm9vdF9sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCiAgICAgICAgIG9yaWdfbGV2ZWwg
PSByb290X2xvZ2dlci5sZXZlbApAQCAtNzgsNyArNzgsNyBAQCBjbGFzcyBSZWd1bGFyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLm1ldGVyLndyaXRlX3Rocm90dGxl
ZF91cGRhdGUoJ2ZvbycpCiAgICAgICAgICAgICBzZWxmLm1ldGVyLndyaXRlX3VwZGF0ZSgnYmFy
JykKICAgICAgICAgICAgIHNlbGYubWV0ZXIud3JpdGUoJ2JheicpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxvZ2dpbmdfc3RyZWFtLmJ1Zmxpc3QsIFtdKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsb2dnaW5nX3N0cmVhbS5nZXR2YWx1ZSgpLCAnJykKICAgICAgICAgZmlu
YWxseToKICAgICAgICAgICAgIHJvb3RfbG9nZ2VyLnJlbW92ZUhhbmRsZXIoaGFuZGxlcikKICAg
ICAgICAgICAgIHJvb3RfbG9nZ2VyLnNldExldmVsKG9yaWdfbGV2ZWwpCkBAIC05MSwzNiArOTEs
MzcgQEAgY2xhc3MgUmVndWxhclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxm
Lm1ldGVyLndyaXRlX3Rocm90dGxlZF91cGRhdGUoJ2JheiAyJykKICAgICAgICAgc2VsZi5tZXRl
ci53cml0ZWxuKCdkb25lJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRpbWVzLCBb
XSkKLSAgICAgICAgcmV0dXJuIHNlbGYuYnVmbGlzdAorICAgICAgICByZXR1cm4gc2VsZi5zdHJl
YW0uZ2V0dmFsdWUoKQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6Ci0gICAgICAgIGJ1Zmxp
c3QgPSBzZWxmLl9iYXNpYyhbMCwgMSwgMiwgMTMsIDE0XSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChidWZsaXN0LCBbJ2Zvb1xuJywgJ2JhclxuJywgJ2JheiAyXG4nLCAnZG9uZVxuJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fYmFzaWMoWzAsIDEsIDIsIDEzLCAxNF0pLCAn
Zm9vXG5iYXJcbmJheiAyXG5kb25lXG4nKQogCiAgICAgZGVmIF9sb2dfYWZ0ZXJfdXBkYXRlKHNl
bGYpOgogICAgICAgICBzZWxmLm1ldGVyLndyaXRlX3VwZGF0ZSgnZm9vJykKICAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygnYmFyJykKLSAgICAgICAgcmV0dXJuIHNlbGYuYnVmbGlzdAorICAgICAg
ICByZXR1cm4gc2VsZi5zdHJlYW0uZ2V0dmFsdWUoKQogCiAgICAgZGVmIHRlc3RfbG9nX2FmdGVy
X3VwZGF0ZShzZWxmKToKLSAgICAgICAgYnVmbGlzdCA9IHNlbGYuX2xvZ19hZnRlcl91cGRhdGUo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zmxpc3QsIFsnZm9vXG4nLCAnYmFyXG4nXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9sb2dfYWZ0ZXJfdXBkYXRlKCksICdmb29c
bmJhclxuJykKIAogICAgIGRlZiB0ZXN0X2xvZ19hcmdzKHNlbGYpOgogICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCdmb28gJXMgJWQnLCAnYmFyJywgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLmJ1Zmxpc3QsIFsnZm9vIGJhciAyXG4nXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnN0cmVhbS5nZXR2YWx1ZSgpLCAnZm9vIGJhciAyXG4nKQogCiAgICAgZGVmIHRlc3Rf
dW5pY29kZShzZWxmKToKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbyh1J1x1MjcxMycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5idWZsaXN0Wy0xXVstMjpdLCB1J1x1MjcxM1xuJykK
LQogICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCfigJhleGFtcGxl4oCZJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLmJ1Zmxpc3RbLTFdWy0xNDpdLCAn4oCYZXhhbXBsZeKAmVxuJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnN0cmVhbS5nZXR2YWx1ZSgpWy1sZW4oJ+KA
mGV4YW1wbGXigJlcbicpOl0sICfigJhleGFtcGxl4oCZXG4nKQorCisgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8odSdcdTI3MTMnKQorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDAp
OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnN0cmVhbS5nZXR2YWx1ZSgpWy0y
Ol0sIHUnXHUyNzEzXG4nKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnN0cmVhbS5idWZsaXN0Wy0xXVstMjpdLCB1J1x1MjcxM1xuJykKIAogICAgIGRl
ZiB0ZXN0X3N0cmVhbV93aXRoX2VuY29kaW5nKHNlbGYpOgotICAgICAgICBjbGFzcyBBc2NpaVN0
cmVhbShTdHJpbmdJTy5TdHJpbmdJTyk6CisgICAgICAgIGNsYXNzIEFzY2lpU3RyZWFtKFN0cmlu
Z0lPKToKICAgICAgICAgICAgIGRlZiB3cml0ZShzZWxmLCBzKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nSU8uU3RyaW5nSU8ud3JpdGUoc2VsZiwgJ3t9Jy5mb3JtYXQocykpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0lPLndyaXRlKHNlbGYsICd7fScuZm9ybWF0KHMpKQog
CiAgICAgICAgIHN0cmVhbSA9IEFzY2lpU3RyZWFtKCkKIApAQCAtMTMxLDcgKzEzMiwxMCBAQCBj
bGFzcyBSZWd1bGFyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIG1ldGVyID0gTWV0ZXJlZFN0cmVhbShzdHJlYW0sIHNlbGYudmVyYm9zZSwgbG9nZ2Vy
LCBzZWxmLnRpbWVfZm4sIDg2NzUsIHByaW50X3RpbWVzdGFtcHM9c2VsZi5wcmludF90aW1lc3Rh
bXBzKQogICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbyh1J1x1MjcxMycpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5idWZsaXN0Wy0xXVstMjpdLCAnP1xuJykKKyAgICAg
ICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CisgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHJlYW0uZ2V0dmFsdWUoKVstMjpdLCAn4pyTXG4nKQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5nZXR2YWx1
ZSgpWy0yOl0sICc/XG4nKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgbWV0ZXIuY2xl
YW51cCgpCiAKQEAgLTE0MSwxNiArMTQ1LDIxIEBAIGNsYXNzIFR0eVRlc3QoUmVndWxhclRlc3Qp
OgogICAgIGlzYXR0eSA9IFRydWUKIAogICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgotICAgICAg
ICBidWZsaXN0ID0gc2VsZi5fYmFzaWMoWzAsIDEsIDEuMDUsIDEuMSwgMl0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYnVmbGlzdCwgWydmb28nLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1ldGVyZWRTdHJlYW0uX2VyYXN1cmUoJ2ZvbycpLCAnYmFyJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRlcmVkU3RyZWFtLl9lcmFzdXJlKCdi
YXInKSwgJ2JheiAyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRl
cmVkU3RyZWFtLl9lcmFzdXJlKCdiYXogMicpLCAnZG9uZVxuJ10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLl9iYXNpYyhbMCwgMSwgMS4wNSwgMS4xLCAyXSks
CisgICAgICAgICAgICAnJy5qb2luKFsKKyAgICAgICAgICAgICAgICAnZm9vJywKKyAgICAgICAg
ICAgICAgICBNZXRlcmVkU3RyZWFtLl9lcmFzdXJlKCdmb28nKSwgJ2JhcicsCisgICAgICAgICAg
ICAgICAgTWV0ZXJlZFN0cmVhbS5fZXJhc3VyZSgnYmFyJyksICdiYXogMicsCisgICAgICAgICAg
ICAgICAgTWV0ZXJlZFN0cmVhbS5fZXJhc3VyZSgnYmF6IDInKSwgJ2RvbmVcbicsCisgICAgICAg
ICAgICBdKSwKKyAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfbG9nX2FmdGVyX3VwZGF0ZShzZWxm
KToKLSAgICAgICAgYnVmbGlzdCA9IHNlbGYuX2xvZ19hZnRlcl91cGRhdGUoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1Zmxpc3QsIFsnZm9vJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNZXRlcmVkU3RyZWFtLl9lcmFzdXJlKCdmb28nKSwgJ2JhclxuJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLl9sb2dfYWZ0ZXJfdXBk
YXRlKCksCisgICAgICAgICAgICAnZm9vJyArIE1ldGVyZWRTdHJlYW0uX2VyYXN1cmUoJ2Zvbycp
ICsgJ2JhclxuJywKKyAgICAgICAgKQogCiAKIGNsYXNzIFZlcmJvc2VUZXN0KFJlZ3VsYXJUZXN0
KToKQEAgLTE1OCwyOCArMTY3LDI4IEBAIGNsYXNzIFZlcmJvc2VUZXN0KFJlZ3VsYXJUZXN0KToK
ICAgICB2ZXJib3NlID0gVHJ1ZQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6Ci0gICAgICAg
IGJ1Zmxpc3QgPSBzZWxmLl9iYXNpYyhbMCwgMSwgMi4xLCAxMywgMTQuMTIzNF0pCisgICAgICAg
IGxpbmVzID0gc2VsZi5fYmFzaWMoWzAsIDEsIDIuMSwgMTMsIDE0LjEyMzRdKS5zcGxpdGxpbmVz
KCkKICAgICAgICAgIyBXZSBkb24ndCBib3RoZXIgdG8gbWF0Y2ggdGhlIGhvdXJzIGFuZCBtaW51
dGVzIG9mIHRoZSB0aW1lc3RhbXAgc2luY2UKICAgICAgICAgIyB0aGUgbG9jYWwgdGltZXpvbmUg
Y2FuIHZhcnkgYW5kIHdlIGNhbid0IHNldCB0aGF0IHBvcnRhYmx5IGFuZCBlYXNpbHkuCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnXGRcZDpcZFxkOjAwLjAwMCA4Njc1IGZvb1xu
JywgYnVmbGlzdFswXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnXGRcZDpc
ZFxkOjAxLjAwMCA4Njc1IGJhclxuJywgYnVmbGlzdFsxXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyZS5tYXRjaCgnXGRcZDpcZFxkOjEzLjAwMCA4Njc1IGJheiAyXG4nLCBidWZsaXN0WzJd
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdcZFxkOlxkXGQ6MTQuMTIzIDg2
NzUgZG9uZVxuJywgYnVmbGlzdFszXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1
Zmxpc3QpLCA0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2gocidcZFxkOlxkXGQ6
MDAuMDAwIDg2NzUgZm9vJywgbGluZXNbMF0pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUu
bWF0Y2gocidcZFxkOlxkXGQ6MDEuMDAwIDg2NzUgYmFyJywgbGluZXNbMV0pKQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUocmUubWF0Y2gocidcZFxkOlxkXGQ6MTMuMDAwIDg2NzUgYmF6IDInLCBs
aW5lc1syXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaChyJ1xkXGQ6XGRcZDox
NC4xMjMgODY3NSBkb25lJywgbGluZXNbM10pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihsaW5lcyksIDQpCiAKICAgICBkZWYgdGVzdF9sb2dfYWZ0ZXJfdXBkYXRlKHNlbGYpOgotICAg
ICAgICBidWZsaXN0ID0gc2VsZi5fbG9nX2FmdGVyX3VwZGF0ZSgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZS5tYXRjaCgnXGRcZDpcZFxkOjAwLjAwMCA4Njc1IGZvb1xuJywgYnVmbGlzdFsw
XSkpCisgICAgICAgIGxpbmVzID0gc2VsZi5fbG9nX2FmdGVyX3VwZGF0ZSgpLnNwbGl0bGluZXMo
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2gocidcZFxkOlxkXGQ6MDAuMDAwIDg2
NzUgZm9vJywgbGluZXNbMF0pKQogCiAgICAgICAgICMgVGhlIHNlY29uZCBhcmd1bWVudCBzaG91
bGQgaGF2ZSBhIHJlYWwgdGltZXN0YW1wIGFuZCBwaWQsIHNvIHdlIGp1c3QgY2hlY2sgdGhlIGZv
cm1hdC4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdcZFxkOlxkXGQ6XGRcZC5c
ZFxkXGQgXGQrIGJhclxuJywgYnVmbGlzdFsxXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy
ZS5tYXRjaChyJ1xkXGQ6XGRcZDpcZFxkLlxkXGRcZCBcZCsgYmFyJywgbGluZXNbMV0pKQogCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Zmxpc3QpLCAyKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxlbihsaW5lcyksIDIpCiAKICAgICBkZWYgdGVzdF9sb2dfYXJncyhzZWxmKToK
ICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnZm9vICVzICVkJywgJ2JhcicsIDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuYnVmbGlzdCksIDEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShzZWxmLmJ1Zmxpc3RbMF0uZW5kc3dpdGgoJ2ZvbyBiYXIgMlxuJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuc3RyZWFtLmdldHZhbHVlKCkuc3BsaXRsaW5lcygp
KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuc3RyZWFtLmdldHZhbHVlKCkuZW5k
c3dpdGgoJ2ZvbyBiYXIgMlxuJykpCiAKIAogY2xhc3MgVmVyYm9zZVdpdGhPdXRUaW1lc3RhbXAo
UmVndWxhclRlc3QpOgpAQCAtMTg4LDkgKzE5Nyw5IEBAIGNsYXNzIFZlcmJvc2VXaXRoT3V0VGlt
ZXN0YW1wKFJlZ3VsYXJUZXMKICAgICBwcmludF90aW1lc3RhbXBzID0gRmFsc2UKIAogICAgIGRl
ZiB0ZXN0X2Jhc2ljKHNlbGYpOgotICAgICAgICBidWZsaXN0ID0gc2VsZi5fYmFzaWMoWzAsIDEs
IDIuMSwgMTMsIDE0LjEyMzRdKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2goJ2Zv
b1xuJywgYnVmbGlzdFswXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnYmFy
XG4nLCBidWZsaXN0WzFdKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdiYXog
MlxuJywgYnVmbGlzdFsyXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnZG9u
ZVxuJywgYnVmbGlzdFszXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Zmxpc3Qp
LCA0KQorICAgICAgICBsaW5lcyA9IHNlbGYuX2Jhc2ljKFswLCAxLCAyLjEsIDEzLCAxNC4xMjM0
XSkuc3BsaXRsaW5lcygpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnZm9vJywg
bGluZXNbMF0pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2goJ2JhcicsIGxpbmVz
WzFdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdiYXogMicsIGxpbmVzWzJd
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdkb25lJywgbGluZXNbM10pKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsaW5lcyksIDQpCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmlu
dGluZ191bml0dGVzdC5weQkocmV2aXNpb24gMjUyNDgzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDcgKzI4LDYgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgcHJpbnRpbmcucHkuIiIi
CiAKLWltcG9ydCBTdHJpbmdJTwogaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgc3lzCiBpbXBvcnQg
dGltZQpAQCAtMzcsNiArMzYsNyBAQCBpbXBvcnQgdW5pdHRlc3QKIGZyb20gd2Via2l0cHkuY29t
bW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtIGltcG9ydCBsb2d0ZXN0aW5nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi51bmljb2RlX2NvbXBh
dGliaWxpdHkgaW1wb3J0IFN0cmluZ0lPCiBmcm9tIHdlYmtpdHB5IGltcG9ydCBwb3J0CiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycyBpbXBvcnQgbWFuYWdlcgogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwpAQCAt
NjUsMTEgKzY1LDExIEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzdHJlYW0uZ2V0dmFsdWUoKSkKIAogICAgIGRlZiBhc3Nl
cnRXcml0dGVuKHNlbGYsIHN0cmVhbSwgY29udGVudHMpOgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHN0cmVhbS5idWZsaXN0LCBjb250ZW50cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dHJlYW0uZ2V0dmFsdWUoKSwgY29udGVudHMpCiAKICAgICBkZWYgcmVzZXQoc2VsZiwgc3RyZWFt
KToKLSAgICAgICAgc3RyZWFtLmJ1Zmxpc3QgPSBbXQotICAgICAgICBzdHJlYW0uYnVmID0gJycK
KyAgICAgICAgc3RyZWFtLnRydW5jYXRlKDApCisgICAgICAgIHN0cmVhbS5zZWVrKDApCiAKICAg
ICBkZWYgZ2V0X3ByaW50ZXIoc2VsZiwgYXJncz1Ob25lKToKICAgICAgICAgYXJncyA9IGFyZ3Mg
b3IgW10KQEAgLTgwLDcgKzgwLDcgQEAgY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgc2VsZi5fcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgndGVzdCcs
IG9wdGlvbnMpCiAgICAgICAgIG5wcm9jID0gMgogCi0gICAgICAgIHJlZ3VsYXJfb3V0cHV0ID0g
U3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgICByZWd1bGFyX291dHB1dCA9IFN0cmluZ0lPKCkK
ICAgICAgICAgcHJpbnRlciA9IHByaW50aW5nLlByaW50ZXIoc2VsZi5fcG9ydCwgb3B0aW9ucywg
cmVndWxhcl9vdXRwdXQpCiAgICAgICAgIHJldHVybiBwcmludGVyLCByZWd1bGFyX291dHB1dAog
CkBAIC0xMzEsMjMgKzEzMSwyMyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIGRlZiB0ZXN0X3ByaW50X29uZV9saW5lX3N1bW1hcnkoc2VsZik6CiAgICAgICAg
IHByaW50ZXIsIGVyciA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9wcmlu
dF9vbmVfbGluZV9zdW1tYXJ5KDEsIDEsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihl
cnIsIFsiVGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVkLlxuIiwgIlxuIl0pCisgICAgICAgIHNlbGYu
YXNzZXJ0V3JpdHRlbihlcnIsICJUaGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQuXG5cbiIpCiAKICAg
ICAgICAgcHJpbnRlciwgZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHByaW50ZXIu
X3ByaW50X29uZV9saW5lX3N1bW1hcnkoMSwgMSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRXcml0
dGVuKGVyciwgWyJUaGUgdGVzdCByYW4gYXMgZXhwZWN0ZWQuXG4iLCAiXG4iXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRXcml0dGVuKGVyciwgIlRoZSB0ZXN0IHJhbiBhcyBleHBlY3RlZC5cblxuIikK
IAogICAgICAgICBwcmludGVyLCBlcnIgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAgcHJp
bnRlci5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeSgyLCAxLCAxKQotICAgICAgICBzZWxmLmFzc2Vy
dFdyaXR0ZW4oZXJyLCBbIlxuIiwgIjEgdGVzdCByYW4gYXMgZXhwZWN0ZWQsIDEgZGlkbid0Olxu
IiwgIlxuIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsICJcbjEgdGVzdCByYW4g
YXMgZXhwZWN0ZWQsIDEgZGlkbid0OlxuXG4iKQogCiAgICAgICAgIHByaW50ZXIsIGVyciA9IHNl
bGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBwcmludGVyLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5
KDMsIDIsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsIFsiXG4iLCAiMiB0ZXN0
cyByYW4gYXMgZXhwZWN0ZWQsIDEgZGlkbid0OlxuIiwgIlxuIl0pCisgICAgICAgIHNlbGYuYXNz
ZXJ0V3JpdHRlbihlcnIsICJcbjIgdGVzdHMgcmFuIGFzIGV4cGVjdGVkLCAxIGRpZG4ndDpcblxu
IikKIAogICAgICAgICBwcmludGVyLCBlcnIgPSBzZWxmLmdldF9wcmludGVyKCkKICAgICAgICAg
cHJpbnRlci5fcHJpbnRfb25lX2xpbmVfc3VtbWFyeSgzLCAyLCAwKQotICAgICAgICBzZWxmLmFz
c2VydFdyaXR0ZW4oZXJyLCBbJ1xuJywgIjIgdGVzdHMgcmFuIGFzIGV4cGVjdGVkICgxIGRpZG4n
dCBydW4pLlxuIiwgJ1xuJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRlbihlcnIsICJcbjIg
dGVzdHMgcmFuIGFzIGV4cGVjdGVkICgxIGRpZG4ndCBydW4pLlxuXG4iKQogCiAgICAgZGVmIHRl
c3RfdGVzdF9zdGF0dXNfbGluZShzZWxmKToKICAgICAgICAgcHJpbnRlciwgXyA9IHNlbGYuZ2V0
X3ByaW50ZXIoKQpAQCAtMTY2LDcgKzE2Niw3IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoODksIGxlbihhY3R1YWwpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgJ1swLzBdIGZhc3QvZG9tL0hUTUxGb3Jt
RWxlbWVudC9hc3NvY2lhdGVkLS4uLmVudHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0
bWwgcGFzc2VkJykKIAotICAgICAgICBwcmludGVyLl9tZXRlci5udW1iZXJfb2ZfY29sdW1ucyA9
IGxhbWJkYTogc3lzLm1heGludAorICAgICAgICBwcmludGVyLl9tZXRlci5udW1iZXJfb2ZfY29s
dW1ucyA9IGxhbWJkYTogc3lzLm1heHNpemUKICAgICAgICAgYWN0dWFsID0gcHJpbnRlci5fdGVz
dF9zdGF0dXNfbGluZSgnZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVu
dHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwnLCAnIHBhc3NlZCcpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoOTAsIGxlbihhY3R1YWwpKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGFjdHVhbCwgJ1swLzBdIGZhc3QvZG9tL0hUTUxGb3JtRWxlbWVudC9hc3NvY2lhdGVkLWVs
ZW1lbnRzLWFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3NlZCcpCkBAIC0xOTEs
OCArMTkxLDggQEAgY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgcHJpbnRlciwgZXJyID0gc2VsZi5nZXRfcHJpbnRlcigpCiAKICAgICAgICAgcHJpbnRlci5w
cmludF9mb3VuZCgxMDAsIDEwLCAxLCAxKQotICAgICAgICBzZWxmLmFzc2VydFdyaXR0ZW4oZXJy
LCBbIkZvdW5kIDEwMCB0ZXN0czsgcnVubmluZyAxMCwgc2tpcHBpbmcgOTAuXG4iXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRXcml0dGVuKGVyciwgIkZvdW5kIDEwMCB0ZXN0czsgcnVubmluZyAxMCwg
c2tpcHBpbmcgOTAuXG4iKQogCiAgICAgICAgIHNlbGYucmVzZXQoZXJyKQogICAgICAgICBwcmlu
dGVyLnByaW50X2ZvdW5kKDEwMCwgMTAsIDIsIDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0V3JpdHRl
bihlcnIsIFsiRm91bmQgMTAwIHRlc3RzOyBydW5uaW5nIDEwICg2IHRpbWVzIGVhY2g6IC0tcmVw
ZWF0LWVhY2g9MiAtLWl0ZXJhdGlvbnM9MyksIHNraXBwaW5nIDkwLlxuIl0pCisgICAgICAgIHNl
bGYuYXNzZXJ0V3JpdHRlbihlcnIsICJGb3VuZCAxMDAgdGVzdHM7IHJ1bm5pbmcgMTAgKDYgdGlt
ZXMgZWFjaDogLS1yZXBlYXQtZWFjaD0yIC0taXRlcmF0aW9ucz0zKSwgc2tpcHBpbmcgOTAuXG4i
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>