<?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>210336</bug_id>
          
          <creation_ts>2020-04-10 08:45:54 -0700</creation_ts>
          <short_desc>check-webkit-style should warn about &apos;decode&apos; functions with missing WARN_UNUSED_RETURN attribute</short_desc>
          <delta_ts>2020-04-13 15:06:32 -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>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=210459</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1640184</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-10 08:45:54 -0700</bug_when>
    <thetext>check-webkit-style should warn about &apos;decode&apos; functions that are missing the WARN_UNUSED_RETURN attribute.

This will help to find bugs when using CoreIPC decode() methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640189</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-10 08:52:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/61585835&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640190</commentid>
    <comment_count>2</comment_count>
      <attachid>396088</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-10 08:54:52 -0700</bug_when>
    <thetext>Created attachment 396088
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640200</commentid>
    <comment_count>3</comment_count>
      <attachid>396088</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-10 09:00:47 -0700</bug_when>
    <thetext>Comment on attachment 396088
Patch v1

For functions returning bool I think this is a good rule. For ones returning Optional I think this is not helpful, but I suppose no big deal to comply anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640204</commentid>
    <comment_count>4</comment_count>
      <attachid>396088</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-04-10 09:07:21 -0700</bug_when>
    <thetext>Comment on attachment 396088
Patch v1

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

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:1818
&gt; +            if function_state.has_return_type(&apos;(auto|bool|Optional&lt;.+&gt;)&apos;):

I would actually expect this to be an inverse check. If a function does not have a void return type, then we should trigger this logic. Any reason we picked this set of types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640206</commentid>
    <comment_count>5</comment_count>
      <attachid>396088</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-04-10 09:08:03 -0700</bug_when>
    <thetext>Comment on attachment 396088
Patch v1

Darin r+ed it, I accidentally removed the r+ when adding a comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640211</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-10 09:18:36 -0700</bug_when>
    <thetext>If we are going to consider return types, the real issue is about bool return types. I don’t see a real unused return value issue outside of the bool return type case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640295</commentid>
    <comment_count>7</comment_count>
      <attachid>396088</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-10 11:44:41 -0700</bug_when>
    <thetext>Comment on attachment 396088
Patch v1

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

&gt; Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:3039
&gt; +            &apos;    static WARN_UNUSED_RETURN Optional&lt;std::tuple&lt;&gt;&gt; decode(Decoder&amp;)\n&apos;

This shouldn&apos;t be added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640439</commentid>
    <comment_count>8</comment_count>
      <attachid>396088</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-10 17:42:30 -0700</bug_when>
    <thetext>Comment on attachment 396088
Patch v1

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

&gt;&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:1818
&gt;&gt; +            if function_state.has_return_type(&apos;(auto|bool|Optional&lt;.+&gt;)&apos;):
&gt; 
&gt; I would actually expect this to be an inverse check. If a function does not have a void return type, then we should trigger this logic. Any reason we picked this set of types?

This set of types are specific to the decode() methods we care about.

I&apos;m going to remove Optional&lt;.+&gt; from the list per feedback from Alex and Darin.

&gt;&gt; Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:3039
&gt;&gt; +            &apos;    static WARN_UNUSED_RETURN Optional&lt;std::tuple&lt;&gt;&gt; decode(Decoder&amp;)\n&apos;
&gt; 
&gt; This shouldn&apos;t be added.

I will remove &quot;Optional&lt;.+&gt;&quot; from the list of types based on feedback from you and Darin, and remove this test (since it&apos;s a dupe of the one above) before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640513</commentid>
    <comment_count>9</comment_count>
      <attachid>396158</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-11 03:51:28 -0700</bug_when>
    <thetext>Created attachment 396158
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640514</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-11 04:28:44 -0700</bug_when>
    <thetext>Committed r259925: &lt;https://trac.webkit.org/changeset/259925&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396158.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396088</attachid>
            <date>2020-04-10 08:54:52 -0700</date>
            <delta_ts>2020-04-11 03:51:26 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-210336-20200410085523.patch</filename>
            <type>text/plain</type>
            <size>9961</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODQ1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODAyYTJmNjM3NjAxYmYwODg2ZWQzOGY1OGZlOTI0ZDUw
ZmRjY2Y3Mi4uOWY1OGI1YjY4MzEyNGQyMWJmYzRiYzU0NzVkYTJlMWU0MjVlNTc3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDIwLTA0LTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlIHNob3VsZCB3YXJuIGFib3V0ICdkZWNvZGUnIGZ1bmN0
aW9ucyB3aXRoIG1pc3NpbmcgV0FSTl9VTlVTRURfUkVUVVJOIGF0dHJpYnV0ZQorICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEwMzM2PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjE1
ODU4MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKF9GdW5j
dGlvblN0YXRlLnBvc3RfbW9kaWZpZXJzKTogQWRkLiAgUmV0dXJucyBzdHJpbmcgb2YgdGV4dAor
ICAgICAgICB0aGF0IGFwcGVhcnMgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24ncyBsaXN0
IG9mIHBhcmFtZXRlcnMuCisgICAgICAgIFRoaXMgaXMgdXNlZCB0byBmaW5kIHRoZSBXQVJOX1VO
VVNFRF9SRVRVUk4gYXR0cmlidXRlIGluCisgICAgICAgIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBp
biBoZWFkZXIgZmlsZXMuCisgICAgICAgIChfRnVuY3Rpb25TdGF0ZS5oYXNfYXR0cmlidXRlKTog
QWRkLiAgVGFrZXMgYSBzdHJpbmcgKG9yIHJlZ2V4KQorICAgICAgICBhbmQgc2VhcmNocyBiZWZv
cmUgYW5kIGFmdGVyIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGZvciB0aGUKKyAgICAgICAgYXR0
cmlidXRlLgorICAgICAgICAoX0Z1bmN0aW9uU3RhdGUuaGFzX3JldHVybl90eXBlKTogQWRkLiAg
VGFrZXMgYSBzdHJpbmcgKG9yCisgICAgICAgIHJlZ2V4KSBhbmQgY2hlY2tzIHRoZSByZXR1cm4g
dHlwZSBvZiB0aGUgZnVjdGlvbi4KKyAgICAgICAgKF9GdW5jdGlvblN0YXRlLmlzX3N0YXRpYyk6
IEFkZC4gIFJldHVybnMgVHJ1ZSBmb3IgZnVuY3Rpb25zCisgICAgICAgIHdpdGggdGhlICdzdGF0
aWMnIG1vZGlmaWVyLgorICAgICAgICAoY2hlY2tfZnVuY3Rpb25fZGVmaW5pdGlvbik6IEFkZCBj
aGVjayBmb3IgZGVjb2RlKCkgZnVuY3Rpb25zCisgICAgICAgIHdpdGggbWlzc2luZyBXQVJOX1VO
VVNFRF9SRVRVUk4gYXR0cmlidXRlLgorICAgICAgICAoQ3BwQ2hlY2tlcik6IEFkZCAnc2VjdXJp
dHkvbWlzc2luZ193YXJuX3VudXNlZF9yZXR1cm4nIHRvIHRoZQorICAgICAgICBsaXN0IG9mIGVu
YWJsZWQgc3R5bGUgY2hlY2tlcnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NwcF91bml0dGVzdC5weToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2UucGVy
Zm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKTogQWRkLiAgVGhpcworICAgICAgICBydW5z
IHRoZSBjaGVja19mdW5jdGlvbl9kZWZpbml0aW9uKCkgZnVuY3Rpb24gaW4gY3BwLnB5LgorICAg
ICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfZGVjb2RlX2Z1bmN0aW9uc19taXNzaW5nX3dhcm5fdW51
c2VkX3JldHVybik6IEFkZC4KKyAgICAgICAgVGVzdHMgZm9yIHRoZSBuZXcgd2FybmluZy4KKwog
MjAyMC0wNC0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0Nv
Y29hXSBTaW1wbGlmeSBOU0FycmF5LCBOU0RpY3Rpb25hcnksIGFuZCBOU051bWJlciBpZGlvbXMg
dGhyb3VnaG91dCBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvY3BwLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9jcHAucHkKaW5kZXggOTY5M2VkMzZmOGU0MzZjODdkNGJkYmNjOTY5ZWRlNjMyZDRjZjYyNi4u
ZmVkMTY0NmNiZTRkZThiZjBiNmU1OGJiNTZlZmE5OTBhYTFhMjIyMyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKQEAgLTU5MSw2ICs1OTEsMjIgQEAg
Y2xhc3MgX0Z1bmN0aW9uU3RhdGUob2JqZWN0KToKICAgICAgICAgc3RhcnRfbW9kaWZpZXJzID0g
X3JmaW5kX2luX2xpbmVzKHInO3xce3xcfXwoKHByaXZhdGV8cHVibGljfHByb3RlY3RlZCk6KXwo
Iy4qKScsIGVsaWRlZCwgc2VsZi5wYXJhbWV0ZXJfc3RhcnRfcG9zaXRpb24sIFBvc2l0aW9uKDAs
IDApKQogICAgICAgICByZXR1cm4gU2luZ2xlTGluZVZpZXcoZWxpZGVkLCBzdGFydF9tb2RpZmll
cnMsIHNlbGYuZnVuY3Rpb25fbmFtZV9zdGFydF9wb3NpdGlvbikuc2luZ2xlX2xpbmUuc3RyaXAo
KQogCisgICAgZGVmIHBvc3RfbW9kaWZpZXJzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIHRo
ZSBtb2RpZmllcnMgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHN1Y2ggYXMgYXR0cmli
dXRlcy4iIiIKKyAgICAgICAgZWxpZGVkID0gc2VsZi5fY2xlYW5fbGluZXMuZWxpZGVkCisgICAg
ICAgIHJldHVybiBTaW5nbGVMaW5lVmlldyhlbGlkZWQsIHNlbGYucGFyYW1ldGVyX2VuZF9wb3Np
dGlvbiwgc2VsZi5ib2R5X3N0YXJ0X3Bvc2l0aW9uKS5zaW5nbGVfbGluZS5zdHJpcCgpCisKKyAg
ICBkZWYgaGFzX2F0dHJpYnV0ZShzZWxmLCBhdHRyaWJ1dGVfcmVnZXgpOgorICAgICAgICByZWdl
eCA9IHInXGJ7YXR0cmlidXRlX3JlZ2V4fVxiJy5mb3JtYXQoYXR0cmlidXRlX3JlZ2V4PWF0dHJp
YnV0ZV9yZWdleCkKKyAgICAgICAgcmV0dXJuIGJvb2woc2VhcmNoKHJlZ2V4LCBzZWxmLm1vZGlm
aWVyc19hbmRfcmV0dXJuX3R5cGUoKSkpIG9yIGJvb2woc2VhcmNoKHJlZ2V4LCBzZWxmLnBvc3Rf
bW9kaWZpZXJzKCkpKQorCisgICAgZGVmIGhhc19yZXR1cm5fdHlwZShzZWxmLCByZXR1cm5fdHlw
ZV9yZWdleCk6CisgICAgICAgIHJlZ2V4ID0gcidcYntyZXR1cm5fdHlwZV9yZWdleH0kJy5mb3Jt
YXQocmV0dXJuX3R5cGVfcmVnZXg9cmV0dXJuX3R5cGVfcmVnZXgpCisgICAgICAgIHJldHVybiBi
b29sKHNlYXJjaChyZWdleCwgc2VsZi5tb2RpZmllcnNfYW5kX3JldHVybl90eXBlKCkpKQorCisg
ICAgZGVmIGlzX3N0YXRpYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2woc2VhcmNoKHInXGJz
dGF0aWNcYicsIHNlbGYubW9kaWZpZXJzX2FuZF9yZXR1cm5fdHlwZSgpKSkKKwogICAgIGRlZiBp
c192aXJ0dWFsKHNlbGYpOgogICAgICAgICByZXR1cm4gYm9vbChzZWFyY2gocidcYnZpcnR1YWxc
YicsIHNlbGYubW9kaWZpZXJzX2FuZF9yZXR1cm5fdHlwZSgpKSkKIApAQCAtMTc5Niw2ICsxODEy
LDE0IEBAIGRlZiBjaGVja19mdW5jdGlvbl9kZWZpbml0aW9uKGZpbGVuYW1lLCBmaWxlX2V4dGVu
c2lvbiwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyCiAgICAgaWYgbGluZV9udW1iZXIgIT0gZnVu
Y3Rpb25fc3RhdGUuYm9keV9zdGFydF9wb3NpdGlvbi5yb3c6CiAgICAgICAgIHJldHVybgogCisg
ICAgIyBDaGVjayBmb3IgZGVjb2RlKCkgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgaGF2ZSBXQVJOX1VO
VVNFRF9SRVRVUk4gYXR0cmlidXRlLgorICAgIGlmIGZ1bmN0aW9uX3N0YXRlLmN1cnJlbnRfZnVu
Y3Rpb24uc3BsaXQoJy4uJylbLTFdLnN0YXJ0c3dpdGgoJ2RlY29kZScpOgorICAgICAgICBpZiBm
aWxlX2V4dGVuc2lvbiA9PSAnaCcgb3IgKGZ1bmN0aW9uX3N0YXRlLmlzX3N0YXRpYygpIG9yIGZ1
bmN0aW9uX3N0YXRlLmlzX2RlY2xhcmF0aW9uKToKKyAgICAgICAgICAgIGlmIGZ1bmN0aW9uX3N0
YXRlLmhhc19yZXR1cm5fdHlwZSgnKGF1dG98Ym9vbHxPcHRpb25hbDwuKz4pJyk6CisgICAgICAg
ICAgICAgICAgaWYgbm90IGZ1bmN0aW9uX3N0YXRlLmhhc19hdHRyaWJ1dGUoJ1dBUk5fVU5VU0VE
X1JFVFVSTicpOgorICAgICAgICAgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3NlY3Vy
aXR5L21pc3Npbmdfd2Fybl91bnVzZWRfcmV0dXJuJywgNSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2RlY29kZSgpIGZ1bmN0aW9uIHJldHVybmluZyBhIHZhbHVlIGlzIG1pc3NpbmcgV0FS
Tl9VTlVTRURfUkVUVVJOIGF0dHJpYnV0ZScpCisKICAgICBwYXJhbWV0ZXJfbGlzdCA9IGZ1bmN0
aW9uX3N0YXRlLnBhcmFtZXRlcl9saXN0KCkKICAgICBmb3IgcGFyYW1ldGVyIGluIHBhcmFtZXRl
cl9saXN0OgogICAgICAgICAjIERvIGNoZWNrcyBzcGVjaWZpYyB0byBmdW5jdGlvbiBkZWNsYXJh
dGlvbnMgYW5kIHBhcmFtZXRlciBuYW1lcy4KQEAgLTQyNjUsNiArNDI4OSw3IEBAIGNsYXNzIENw
cENoZWNrZXIob2JqZWN0KToKICAgICAgICAgJ3J1bnRpbWUvd3RmX21ha2VfdW5pcXVlJywKICAg
ICAgICAgJ3J1bnRpbWUvd3RmX21vdmUnLAogICAgICAgICAnc2VjdXJpdHkvYXNzZXJ0aW9uJywK
KyAgICAgICAgJ3NlY3VyaXR5L21pc3Npbmdfd2Fybl91bnVzZWRfcmV0dXJuJywKICAgICAgICAg
J3NlY3VyaXR5L3ByaW50ZicsCiAgICAgICAgICdzZWN1cml0eS90ZW1wX2ZpbGUnLAogICAgICAg
ICAnc29mdGxpbmsvZnJhbWV3b3JrJywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKaW5kZXggZWVhMjkzZDdiYzI3OWM2ZTQw
ZTA1NDA1NzIyYWZiNTVkNzIyMjBhNC4uMWVjMDg5OTRiYmZhODE5YjFiYWU4ZjZkYTMxOWRlNmZl
MmNhYzllNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9jcHBfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9jcHBfdW5pdHRlc3QucHkKQEAgLTMxNCw2ICszMTQsMjEgQEAgY2xhc3MgQ3BwU3R5bGVU
ZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGJhc2ljX2Vycm9yX3J1bGVzID0g
KCctJywgJytidWlsZC9oZWFkZXJfZ3VhcmQnKQogICAgICAgICByZXR1cm4gc2VsZi5wZXJmb3Jt
X2xpbnQoY29kZSwgZmlsZW5hbWUsIGJhc2ljX2Vycm9yX3J1bGVzKQogCisgICAgZGVmIHBlcmZv
cm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjayhzZWxmLCBmaWxlX25hbWUsIGxpbmVzLCBleHBl
Y3RlZF93YXJuaW5nKToKKyAgICAgICAgZmlsZV9leHRlbnNpb24gPSBmaWxlX25hbWUuc3BsaXQo
Jy4nKVsxXQorICAgICAgICBjbGVhbl9saW5lcyA9IGNwcF9zdHlsZS5DbGVhbnNlZExpbmVzKFts
aW5lc10pCisgICAgICAgIGZ1bmN0aW9uX3N0YXRlID0gY3BwX3N0eWxlLl9GdW5jdGlvblN0YXRl
KDUpCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0
VHJ1ZSkKKworICAgICAgICBjcHBfc3R5bGUuZGV0ZWN0X2Z1bmN0aW9ucyhjbGVhbl9saW5lcywg
MCwgZnVuY3Rpb25fc3RhdGUsIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmdW5jdGlvbl9zdGF0ZS5pbl9hX2Z1bmN0aW9uLCBUcnVlKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCksICcnKQorCisgICAgICAgIGNsYXNz
X3N0YXRlID0gY3BwX3N0eWxlLl9DbGFzc1N0YXRlKCkKKyAgICAgICAgY3BwX3N0eWxlLmNoZWNr
X2Z1bmN0aW9uX2RlZmluaXRpb24oZmlsZV9uYW1lLCBmaWxlX2V4dGVuc2lvbiwgY2xlYW5fbGlu
ZXMsIDAsIGNsYXNzX3N0YXRlLCBmdW5jdGlvbl9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCksIGV4cGVjdGVkX3dhcm5pbmcpCisK
ICAgICAjIFBlcmZvcm0gbGludCBhbmQgY29tcGFyZSB0aGUgZXJyb3IgbWVzc2FnZSB3aXRoICJl
eHBlY3RlZF9tZXNzYWdlIi4KICAgICBkZWYgYXNzZXJ0X2xpbnQoc2VsZiwgY29kZSwgZXhwZWN0
ZWRfbWVzc2FnZSwgZmlsZV9uYW1lPSdmb28uY3BwJyk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXhwZWN0ZWRfbWVzc2FnZSwgc2VsZi5wZXJmb3JtX3NpbmdsZV9saW5lX2xpbnQoY29kZSwg
ZmlsZV9uYW1lKSkKQEAgLTI5NDMsNiArMjk1OCw4OCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3Bw
U3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2ludCBhID0gMSA/IDAg
OiAzMDsnLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYm9vbCBhIDogMTsnLCAnJykK
IAorICAgIGRlZiB0ZXN0X2RlY29kZV9mdW5jdGlvbnNfbWlzc2luZ193YXJuX3VudXNlZF9yZXR1
cm4oc2VsZik6CisgICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQgPSAnZGVjb2RlKCkgZnVuY3Rpb24g
cmV0dXJuaW5nIGEgdmFsdWUgaXMgbWlzc2luZyBXQVJOX1VOVVNFRF9SRVRVUk4gYXR0cmlidXRl
JyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBbc2VjdXJpdHkvbWlzc2luZ193YXJu
X3VudXNlZF9yZXR1cm5dIFs1XScKKyAgICAgICAgd2FybmluZ19ub25lID0gJycKKworICAgICAg
ICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygKKyAgICAgICAgICAgICdm
b28uY3BwJywKKyAgICAgICAgICAgICdzdGF0aWMgYm9vbCBkZWNvZGUoKSB7IHJldHVybiBmYWxz
ZTsgfScsCisgICAgICAgICAgICB3YXJuaW5nX2V4cGVjdGVkKQorICAgICAgICBzZWxmLnBlcmZv
cm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygKKyAgICAgICAgICAgICdmb28uY3BwJywKKyAg
ICAgICAgICAgICdzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKCkgeyByZXR1
cm4gZmFsc2U7IH0nLAorICAgICAgICAgICAgd2FybmluZ19ub25lKQorCisgICAgICAgIHNlbGYu
cGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ2Zvby5jcHAn
LAorICAgICAgICAgICAgJ3N0YXRpYyBpbmxpbmUgYm9vbCBkZWNvZGVTdHJpbmdUZXh0KERlY29k
ZXImIGRlY29kZXIsIHVpbnQzMl90IGxlbmd0aCwgU3RyaW5nJiByZXN1bHQpXG4nCisgICAgICAg
ICAgICAneycsCisgICAgICAgICAgICB3YXJuaW5nX2V4cGVjdGVkKQorICAgICAgICBzZWxmLnBl
cmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygKKyAgICAgICAgICAgICdmb28uY3BwJywK
KyAgICAgICAgICAgICdzdGF0aWMgaW5saW5lIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZVN0cmluZ1RleHQoRGVjb2RlciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoLCBTdHJpbmcmIHJl
c3VsdClcbicKKyAgICAgICAgICAgICd7JywKKyAgICAgICAgICAgIHdhcm5pbmdfbm9uZSkKKwor
ICAgICAgICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygKKyAgICAgICAg
ICAgICdmb28uaCcsCisgICAgICAgICAgICAnc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcilcbicKKyAgICAgICAgICAgICd7JywKKyAgICAg
ICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQpCisgICAgICAgIHNlbGYucGVyZm9ybV9mdW5jdGlvbl9k
ZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ2Zvby5jcHAnLAorICAgICAgICAgICAgJ3N0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwgc3Rk
OjpwYWlyPFQsIFU+JiBwYWlyKVxuJworICAgICAgICAgICAgJ3snLAorICAgICAgICAgICAgd2Fy
bmluZ19ub25lKQorCisgICAgICAgIHNlbGYucGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2No
ZWNrKAorICAgICAgICAgICAgJ1NvdXJjZS9XVEYvd3RmL2Zvby5oJywKKyAgICAgICAgICAgICdX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBBdG9tU3RyaW5n
Jik7JywKKyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQpCisgICAgICAgIHNlbGYucGVyZm9y
bV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ1NvdXJjZS9XVEYvd3Rm
L2Zvby5oJywKKyAgICAgICAgICAgICdXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImLCBBdG9tU3RyaW5nJikgV0FSTl9VTlVTRURfUkVUVVJOOycsCisgICAgICAg
ICAgICB3YXJuaW5nX25vbmUpCisKKyAgICAgICAgc2VsZi5wZXJmb3JtX2Z1bmN0aW9uX2RlZmlu
aXRpb25fY2hlY2soCisgICAgICAgICAgICAnU291cmNlL1dURi93dGYvZm9vLmgnLAorICAgICAg
ICAgICAgJyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFPlxuJworICAgICAgICAgICAgJyAgICBhdXRv
IGRlY29kZShFJiBlKSAtPiBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxFPjo6dmFsdWUs
IGJvb2w+XG4nCisgICAgICAgICAgICAnICAgIHsnLAorICAgICAgICAgICAgd2FybmluZ19leHBl
Y3RlZCkKKyAgICAgICAgc2VsZi5wZXJmb3JtX2Z1bmN0aW9uX2RlZmluaXRpb25fY2hlY2soCisg
ICAgICAgICAgICAnU291cmNlL1dURi93dGYvZm9vLmgnLAorICAgICAgICAgICAgJyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFPiBXQVJOX1VOVVNFRF9SRVRVUk5cbicKKyAgICAgICAgICAgICcgICAg
YXV0byBkZWNvZGUoRSYgZSkgLT4gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08RT46OnZh
bHVlLCBib29sPlxuJworICAgICAgICAgICAgJyAgICB7JywKKyAgICAgICAgICAgIHdhcm5pbmdf
bm9uZSkKKworICAgICAgICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygK
KyAgICAgICAgICAgICdTb3VyY2UvV1RGL3d0Zi9mb28uaCcsCisgICAgICAgICAgICAnICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEU+XG4nCisgICAgICAgICAgICAnICAgIGJvb2wgZGVjb2RlKEUmIGUp
IC0+IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPEU+Ojp2YWx1ZSwgYm9vbD5cbicKKyAg
ICAgICAgICAgICcgICAgeycsCisgICAgICAgICAgICB3YXJuaW5nX2V4cGVjdGVkKQorICAgICAg
ICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygKKyAgICAgICAgICAgICdT
b3VyY2UvV1RGL3d0Zi9mb28uaCcsCisgICAgICAgICAgICAnICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEU+IFdBUk5fVU5VU0VEX1JFVFVSTlxuJworICAgICAgICAgICAgJyAgICBib29sIGRlY29kZShF
JiBlKSAtPiBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxFPjo6dmFsdWUsIGJvb2w+XG4n
CisgICAgICAgICAgICAnICAgIHsnLAorICAgICAgICAgICAgd2FybmluZ19ub25lKQorCisgICAg
ICAgIHNlbGYucGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAg
J1NvdXJjZS9XVEYvd3RmL2Zvby5oJywKKyAgICAgICAgICAgICcgICAgc3RhdGljIE9wdGlvbmFs
PHN0ZDo6dHVwbGU8Pj4gZGVjb2RlKERlY29kZXImKVxuJworICAgICAgICAgICAgJyAgICB7JywK
KyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQpCisgICAgICAgIHNlbGYucGVyZm9ybV9mdW5j
dGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ1NvdXJjZS9XVEYvd3RmL2Zvby5o
JywKKyAgICAgICAgICAgICcgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBPcHRpb25hbDxz
dGQ6OnR1cGxlPD4+IGRlY29kZShEZWNvZGVyJilcbicKKyAgICAgICAgICAgICcgICAgeycsCisg
ICAgICAgICAgICB3YXJuaW5nX25vbmUpCisKIAogY2xhc3MgQ2xlYW5zZWRMaW5lc1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396158</attachid>
            <date>2020-04-11 03:51:28 -0700</date>
            <delta_ts>2020-04-11 04:28:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210336-20200411035204.patch</filename>
            <type>text/plain</type>
            <size>9734</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5OTI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjE2YWFjZTFlYjdhYjY0OTUyMzM4YWJjNTU4ZTVmZjUy
MzMzYjIwZS4uMDFjMWE3MTdhYzY1M2NhMDY1MGIxZTlmZjZlMzk1YWIwMWFjNWE1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDIwLTA0LTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlIHNob3VsZCB3YXJuIGFib3V0ICdkZWNvZGUnIGZ1bmN0
aW9ucyB3aXRoIG1pc3NpbmcgV0FSTl9VTlVTRURfUkVUVVJOIGF0dHJpYnV0ZQorICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEwMzM2PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjE1
ODU4MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9uYXRoYW4gQmVkYXJkLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHk6CisgICAgICAgIChfRnVu
Y3Rpb25TdGF0ZS5wb3N0X21vZGlmaWVycyk6IEFkZC4gIFJldHVybnMgc3RyaW5nIG9mIHRleHQK
KyAgICAgICAgdGhhdCBhcHBlYXJzIGFmdGVyIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uJ3MgbGlz
dCBvZiBwYXJhbWV0ZXJzLgorICAgICAgICBUaGlzIGlzIHVzZWQgdG8gZmluZCB0aGUgV0FSTl9V
TlVTRURfUkVUVVJOIGF0dHJpYnV0ZSBpbgorICAgICAgICBmdW5jdGlvbiBkZWNsYXJhdGlvbnMg
aW4gaGVhZGVyIGZpbGVzLgorICAgICAgICAoX0Z1bmN0aW9uU3RhdGUuaGFzX2F0dHJpYnV0ZSk6
IEFkZC4gIFRha2VzIGEgc3RyaW5nIChvciByZWdleCkKKyAgICAgICAgYW5kIHNlYXJjaHMgYmVm
b3JlIGFuZCBhZnRlciB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBmb3IgdGhlCisgICAgICAgIGF0
dHJpYnV0ZS4KKyAgICAgICAgKF9GdW5jdGlvblN0YXRlLmhhc19yZXR1cm5fdHlwZSk6IEFkZC4g
IFRha2VzIGEgc3RyaW5nIChvcgorICAgICAgICByZWdleCkgYW5kIGNoZWNrcyB0aGUgcmV0dXJu
IHR5cGUgb2YgdGhlIGZ1Y3Rpb24uCisgICAgICAgIChfRnVuY3Rpb25TdGF0ZS5pc19zdGF0aWMp
OiBBZGQuICBSZXR1cm5zIFRydWUgZm9yIGZ1bmN0aW9ucworICAgICAgICB3aXRoIHRoZSAnc3Rh
dGljJyBtb2RpZmllci4KKyAgICAgICAgKGNoZWNrX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBBZGQg
Y2hlY2sgZm9yIGRlY29kZSgpIGZ1bmN0aW9ucworICAgICAgICB3aXRoIG1pc3NpbmcgV0FSTl9V
TlVTRURfUkVUVVJOIGF0dHJpYnV0ZS4KKyAgICAgICAgKENwcENoZWNrZXIpOiBBZGQgJ3NlY3Vy
aXR5L21pc3Npbmdfd2Fybl91bnVzZWRfcmV0dXJuJyB0byB0aGUKKyAgICAgICAgbGlzdCBvZiBl
bmFibGVkIHN0eWxlIGNoZWNrZXJzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6CisgICAgICAgIChDcHBTdHlsZVRlc3RCYXNlLnBl
cmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjayk6IEFkZC4gIFRoaXMKKyAgICAgICAgcnVu
cyB0aGUgY2hlY2tfZnVuY3Rpb25fZGVmaW5pdGlvbigpIGZ1bmN0aW9uIGluIGNwcC5weS4KKyAg
ICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2RlY29kZV9mdW5jdGlvbnNfbWlzc2luZ193YXJuX3Vu
dXNlZF9yZXR1cm4pOiBBZGQuCisgICAgICAgIFRlc3RzIGZvciB0aGUgbmV3IHdhcm5pbmcuCisK
IDIwMjAtMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgU1BJIHRvIGhhbmRsZSBwcm94eSBhdXRoZW50aWNhdGlvbiBhbmQgcmVx
dWlyZSBzZWN1cmUgcHJveHkgY29ubmVjdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jcHAucHkKaW5kZXggOTY5M2VkMzZmOGU0MzZjODdkNGJkYmNjOTY5ZWRl
NjMyZDRjZjYyNi4uMDJlYzIxMWViYjgzMjcyZjA2YzllMGYxNzI3Nzc4MTEzMzE4ZWM5YyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKQEAgLTU5MSw2
ICs1OTEsMjIgQEAgY2xhc3MgX0Z1bmN0aW9uU3RhdGUob2JqZWN0KToKICAgICAgICAgc3RhcnRf
bW9kaWZpZXJzID0gX3JmaW5kX2luX2xpbmVzKHInO3xce3xcfXwoKHByaXZhdGV8cHVibGljfHBy
b3RlY3RlZCk6KXwoIy4qKScsIGVsaWRlZCwgc2VsZi5wYXJhbWV0ZXJfc3RhcnRfcG9zaXRpb24s
IFBvc2l0aW9uKDAsIDApKQogICAgICAgICByZXR1cm4gU2luZ2xlTGluZVZpZXcoZWxpZGVkLCBz
dGFydF9tb2RpZmllcnMsIHNlbGYuZnVuY3Rpb25fbmFtZV9zdGFydF9wb3NpdGlvbikuc2luZ2xl
X2xpbmUuc3RyaXAoKQogCisgICAgZGVmIHBvc3RfbW9kaWZpZXJzKHNlbGYpOgorICAgICAgICAi
IiJSZXR1cm5zIHRoZSBtb2RpZmllcnMgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHN1
Y2ggYXMgYXR0cmlidXRlcy4iIiIKKyAgICAgICAgZWxpZGVkID0gc2VsZi5fY2xlYW5fbGluZXMu
ZWxpZGVkCisgICAgICAgIHJldHVybiBTaW5nbGVMaW5lVmlldyhlbGlkZWQsIHNlbGYucGFyYW1l
dGVyX2VuZF9wb3NpdGlvbiwgc2VsZi5ib2R5X3N0YXJ0X3Bvc2l0aW9uKS5zaW5nbGVfbGluZS5z
dHJpcCgpCisKKyAgICBkZWYgaGFzX2F0dHJpYnV0ZShzZWxmLCBhdHRyaWJ1dGVfcmVnZXgpOgor
ICAgICAgICByZWdleCA9IHInXGJ7YXR0cmlidXRlX3JlZ2V4fVxiJy5mb3JtYXQoYXR0cmlidXRl
X3JlZ2V4PWF0dHJpYnV0ZV9yZWdleCkKKyAgICAgICAgcmV0dXJuIGJvb2woc2VhcmNoKHJlZ2V4
LCBzZWxmLm1vZGlmaWVyc19hbmRfcmV0dXJuX3R5cGUoKSkpIG9yIGJvb2woc2VhcmNoKHJlZ2V4
LCBzZWxmLnBvc3RfbW9kaWZpZXJzKCkpKQorCisgICAgZGVmIGhhc19yZXR1cm5fdHlwZShzZWxm
LCByZXR1cm5fdHlwZV9yZWdleCk6CisgICAgICAgIHJlZ2V4ID0gcidcYntyZXR1cm5fdHlwZV9y
ZWdleH0kJy5mb3JtYXQocmV0dXJuX3R5cGVfcmVnZXg9cmV0dXJuX3R5cGVfcmVnZXgpCisgICAg
ICAgIHJldHVybiBib29sKHNlYXJjaChyZWdleCwgc2VsZi5tb2RpZmllcnNfYW5kX3JldHVybl90
eXBlKCkpKQorCisgICAgZGVmIGlzX3N0YXRpYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2wo
c2VhcmNoKHInXGJzdGF0aWNcYicsIHNlbGYubW9kaWZpZXJzX2FuZF9yZXR1cm5fdHlwZSgpKSkK
KwogICAgIGRlZiBpc192aXJ0dWFsKHNlbGYpOgogICAgICAgICByZXR1cm4gYm9vbChzZWFyY2go
cidcYnZpcnR1YWxcYicsIHNlbGYubW9kaWZpZXJzX2FuZF9yZXR1cm5fdHlwZSgpKSkKIApAQCAt
MTc5Niw2ICsxODEyLDE0IEBAIGRlZiBjaGVja19mdW5jdGlvbl9kZWZpbml0aW9uKGZpbGVuYW1l
LCBmaWxlX2V4dGVuc2lvbiwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyCiAgICAgaWYgbGluZV9u
dW1iZXIgIT0gZnVuY3Rpb25fc3RhdGUuYm9keV9zdGFydF9wb3NpdGlvbi5yb3c6CiAgICAgICAg
IHJldHVybgogCisgICAgIyBDaGVjayBmb3IgZGVjb2RlKCkgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qg
aGF2ZSBXQVJOX1VOVVNFRF9SRVRVUk4gYXR0cmlidXRlLgorICAgIGlmIGZ1bmN0aW9uX3N0YXRl
LmN1cnJlbnRfZnVuY3Rpb24uc3BsaXQoJy4uJylbLTFdLnN0YXJ0c3dpdGgoJ2RlY29kZScpOgor
ICAgICAgICBpZiBmaWxlX2V4dGVuc2lvbiA9PSAnaCcgb3IgKGZ1bmN0aW9uX3N0YXRlLmlzX3N0
YXRpYygpIG9yIGZ1bmN0aW9uX3N0YXRlLmlzX2RlY2xhcmF0aW9uKToKKyAgICAgICAgICAgIGlm
IGZ1bmN0aW9uX3N0YXRlLmhhc19yZXR1cm5fdHlwZSgnKGF1dG98Ym9vbCknKToKKyAgICAgICAg
ICAgICAgICBpZiBub3QgZnVuY3Rpb25fc3RhdGUuaGFzX2F0dHJpYnV0ZSgnV0FSTl9VTlVTRURf
UkVUVVJOJyk6CisgICAgICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnc2VjdXJp
dHkvbWlzc2luZ193YXJuX3VudXNlZF9yZXR1cm4nLCA1LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAnZGVjb2RlKCkgZnVuY3Rpb24gcmV0dXJuaW5nIGEgdmFsdWUgaXMgbWlzc2luZyBXQVJO
X1VOVVNFRF9SRVRVUk4gYXR0cmlidXRlJykKKwogICAgIHBhcmFtZXRlcl9saXN0ID0gZnVuY3Rp
b25fc3RhdGUucGFyYW1ldGVyX2xpc3QoKQogICAgIGZvciBwYXJhbWV0ZXIgaW4gcGFyYW1ldGVy
X2xpc3Q6CiAgICAgICAgICMgRG8gY2hlY2tzIHNwZWNpZmljIHRvIGZ1bmN0aW9uIGRlY2xhcmF0
aW9ucyBhbmQgcGFyYW1ldGVyIG5hbWVzLgpAQCAtNDI2NSw2ICs0Mjg5LDcgQEAgY2xhc3MgQ3Bw
Q2hlY2tlcihvYmplY3QpOgogICAgICAgICAncnVudGltZS93dGZfbWFrZV91bmlxdWUnLAogICAg
ICAgICAncnVudGltZS93dGZfbW92ZScsCiAgICAgICAgICdzZWN1cml0eS9hc3NlcnRpb24nLAor
ICAgICAgICAnc2VjdXJpdHkvbWlzc2luZ193YXJuX3VudXNlZF9yZXR1cm4nLAogICAgICAgICAn
c2VjdXJpdHkvcHJpbnRmJywKICAgICAgICAgJ3NlY3VyaXR5L3RlbXBfZmlsZScsCiAgICAgICAg
ICdzb2Z0bGluay9mcmFtZXdvcmsnLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQppbmRleCBlZWEyOTNkN2JjMjc5YzZlNDBl
MDU0MDU3MjJhZmI1NWQ3MjIyMGE0Li4yY2VlNDRkYTBlYjQzMDFiYWM4Y2QwODE1NTg0YzdlYWQ0
MzY3YjFmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJz
L2NwcF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL2NwcF91bml0dGVzdC5weQpAQCAtMzE0LDYgKzMxNCwyMSBAQCBjbGFzcyBDcHBTdHlsZVRl
c3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgYmFzaWNfZXJyb3JfcnVsZXMgPSAo
Jy0nLCAnK2J1aWxkL2hlYWRlcl9ndWFyZCcpCiAgICAgICAgIHJldHVybiBzZWxmLnBlcmZvcm1f
bGludChjb2RlLCBmaWxlbmFtZSwgYmFzaWNfZXJyb3JfcnVsZXMpCiAKKyAgICBkZWYgcGVyZm9y
bV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKHNlbGYsIGZpbGVfbmFtZSwgbGluZXMsIGV4cGVj
dGVkX3dhcm5pbmcpOgorICAgICAgICBmaWxlX2V4dGVuc2lvbiA9IGZpbGVfbmFtZS5zcGxpdCgn
LicpWzFdCisgICAgICAgIGNsZWFuX2xpbmVzID0gY3BwX3N0eWxlLkNsZWFuc2VkTGluZXMoW2xp
bmVzXSkKKyAgICAgICAgZnVuY3Rpb25fc3RhdGUgPSBjcHBfc3R5bGUuX0Z1bmN0aW9uU3RhdGUo
NSkKKyAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRU
cnVlKQorCisgICAgICAgIGNwcF9zdHlsZS5kZXRlY3RfZnVuY3Rpb25zKGNsZWFuX2xpbmVzLCAw
LCBmdW5jdGlvbl9zdGF0ZSwgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGZ1bmN0aW9uX3N0YXRlLmluX2FfZnVuY3Rpb24sIFRydWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXJyb3JfY29sbGVjdG9yLnJlc3VsdHMoKSwgJycpCisKKyAgICAgICAgY2xhc3Nf
c3RhdGUgPSBjcHBfc3R5bGUuX0NsYXNzU3RhdGUoKQorICAgICAgICBjcHBfc3R5bGUuY2hlY2tf
ZnVuY3Rpb25fZGVmaW5pdGlvbihmaWxlX25hbWUsIGZpbGVfZXh0ZW5zaW9uLCBjbGVhbl9saW5l
cywgMCwgY2xhc3Nfc3RhdGUsIGZ1bmN0aW9uX3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXJyb3JfY29sbGVjdG9yLnJlc3VsdHMoKSwgZXhwZWN0ZWRfd2FybmluZykKKwog
ICAgICMgUGVyZm9ybSBsaW50IGFuZCBjb21wYXJlIHRoZSBlcnJvciBtZXNzYWdlIHdpdGggImV4
cGVjdGVkX21lc3NhZ2UiLgogICAgIGRlZiBhc3NlcnRfbGludChzZWxmLCBjb2RlLCBleHBlY3Rl
ZF9tZXNzYWdlLCBmaWxlX25hbWU9J2Zvby5jcHAnKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChleHBlY3RlZF9tZXNzYWdlLCBzZWxmLnBlcmZvcm1fc2luZ2xlX2xpbmVfbGludChjb2RlLCBm
aWxlX25hbWUpKQpAQCAtMjk0Myw2ICsyOTU4LDgzIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBT
dHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50IGEgPSAxID8gMCA6
IDMwOycsICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdib29sIGEgOiAxOycsICcnKQog
CisgICAgZGVmIHRlc3RfZGVjb2RlX2Z1bmN0aW9uc19taXNzaW5nX3dhcm5fdW51c2VkX3JldHVy
bihzZWxmKToKKyAgICAgICAgd2FybmluZ19leHBlY3RlZCA9ICdkZWNvZGUoKSBmdW5jdGlvbiBy
ZXR1cm5pbmcgYSB2YWx1ZSBpcyBtaXNzaW5nIFdBUk5fVU5VU0VEX1JFVFVSTiBhdHRyaWJ1dGUn
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIFtzZWN1cml0eS9taXNzaW5nX3dhcm5f
dW51c2VkX3JldHVybl0gWzVdJworICAgICAgICB3YXJuaW5nX25vbmUgPSAnJworCisgICAgICAg
IHNlbGYucGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ2Zv
by5jcHAnLAorICAgICAgICAgICAgJ3N0YXRpYyBib29sIGRlY29kZSgpIHsgcmV0dXJuIGZhbHNl
OyB9JywKKyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQpCisgICAgICAgIHNlbGYucGVyZm9y
bV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ2Zvby5jcHAnLAorICAg
ICAgICAgICAgJ3N0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoKSB7IHJldHVy
biBmYWxzZTsgfScsCisgICAgICAgICAgICB3YXJuaW5nX25vbmUpCisKKyAgICAgICAgc2VsZi5w
ZXJmb3JtX2Z1bmN0aW9uX2RlZmluaXRpb25fY2hlY2soCisgICAgICAgICAgICAnZm9vLmNwcCcs
CisgICAgICAgICAgICAnc3RhdGljIGlubGluZSBib29sIGRlY29kZVN0cmluZ1RleHQoRGVjb2Rl
ciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoLCBTdHJpbmcmIHJlc3VsdClcbicKKyAgICAgICAg
ICAgICd7JywKKyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQpCisgICAgICAgIHNlbGYucGVy
Zm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ2Zvby5jcHAnLAor
ICAgICAgICAgICAgJ3N0YXRpYyBpbmxpbmUgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
U3RyaW5nVGV4dChEZWNvZGVyJiBkZWNvZGVyLCB1aW50MzJfdCBsZW5ndGgsIFN0cmluZyYgcmVz
dWx0KVxuJworICAgICAgICAgICAgJ3snLAorICAgICAgICAgICAgd2FybmluZ19ub25lKQorCisg
ICAgICAgIHNlbGYucGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAg
ICAgJ2Zvby5oJywKKyAgICAgICAgICAgICdzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2Rlciwgc3RkOjpwYWlyPFQsIFU+JiBwYWlyKVxuJworICAgICAgICAgICAgJ3snLAorICAgICAg
ICAgICAgd2FybmluZ19leHBlY3RlZCkKKyAgICAgICAgc2VsZi5wZXJmb3JtX2Z1bmN0aW9uX2Rl
ZmluaXRpb25fY2hlY2soCisgICAgICAgICAgICAnZm9vLmNwcCcsCisgICAgICAgICAgICAnc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6
OnBhaXI8VCwgVT4mIHBhaXIpXG4nCisgICAgICAgICAgICAneycsCisgICAgICAgICAgICB3YXJu
aW5nX25vbmUpCisKKyAgICAgICAgc2VsZi5wZXJmb3JtX2Z1bmN0aW9uX2RlZmluaXRpb25fY2hl
Y2soCisgICAgICAgICAgICAnU291cmNlL1dURi93dGYvZm9vLmgnLAorICAgICAgICAgICAgJ1dU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIEF0b21TdHJpbmcm
KTsnLAorICAgICAgICAgICAgd2FybmluZ19leHBlY3RlZCkKKyAgICAgICAgc2VsZi5wZXJmb3Jt
X2Z1bmN0aW9uX2RlZmluaXRpb25fY2hlY2soCisgICAgICAgICAgICAnU291cmNlL1dURi93dGYv
Zm9vLmgnLAorICAgICAgICAgICAgJ1dURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIEF0b21TdHJpbmcmKSBXQVJOX1VOVVNFRF9SRVRVUk47JywKKyAgICAgICAg
ICAgIHdhcm5pbmdfbm9uZSkKKworICAgICAgICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fZGVmaW5p
dGlvbl9jaGVjaygKKyAgICAgICAgICAgICdTb3VyY2UvV1RGL3d0Zi9mb28uaCcsCisgICAgICAg
ICAgICAnICAgIHRlbXBsYXRlPHR5cGVuYW1lIEU+XG4nCisgICAgICAgICAgICAnICAgIGF1dG8g
ZGVjb2RlKEUmIGUpIC0+IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPEU+Ojp2YWx1ZSwg
Ym9vbD5cbicKKyAgICAgICAgICAgICcgICAgeycsCisgICAgICAgICAgICB3YXJuaW5nX2V4cGVj
dGVkKQorICAgICAgICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fZGVmaW5pdGlvbl9jaGVjaygKKyAg
ICAgICAgICAgICdTb3VyY2UvV1RGL3d0Zi9mb28uaCcsCisgICAgICAgICAgICAnICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEU+IFdBUk5fVU5VU0VEX1JFVFVSTlxuJworICAgICAgICAgICAgJyAgICBh
dXRvIGRlY29kZShFJiBlKSAtPiBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxFPjo6dmFs
dWUsIGJvb2w+XG4nCisgICAgICAgICAgICAnICAgIHsnLAorICAgICAgICAgICAgd2FybmluZ19u
b25lKQorCisgICAgICAgIHNlbGYucGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAor
ICAgICAgICAgICAgJ1NvdXJjZS9XVEYvd3RmL2Zvby5oJywKKyAgICAgICAgICAgICcgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRT5cbicKKyAgICAgICAgICAgICcgICAgYm9vbCBkZWNvZGUoRSYgZSkg
LT4gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08RT46OnZhbHVlLCBib29sPlxuJworICAg
ICAgICAgICAgJyAgICB7JywKKyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0ZWQpCisgICAgICAg
IHNlbGYucGVyZm9ybV9mdW5jdGlvbl9kZWZpbml0aW9uX2NoZWNrKAorICAgICAgICAgICAgJ1Nv
dXJjZS9XVEYvd3RmL2Zvby5oJywKKyAgICAgICAgICAgICcgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RT4gV0FSTl9VTlVTRURfUkVUVVJOXG4nCisgICAgICAgICAgICAnICAgIGJvb2wgZGVjb2RlKEUm
IGUpIC0+IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPEU+Ojp2YWx1ZSwgYm9vbD5cbicK
KyAgICAgICAgICAgICcgICAgeycsCisgICAgICAgICAgICB3YXJuaW5nX25vbmUpCisKKyAgICAg
ICAgc2VsZi5wZXJmb3JtX2Z1bmN0aW9uX2RlZmluaXRpb25fY2hlY2soCisgICAgICAgICAgICAn
U291cmNlL1dURi93dGYvZm9vLmgnLAorICAgICAgICAgICAgJyAgICBzdGF0aWMgT3B0aW9uYWw8
c3RkOjp0dXBsZTw+PiBkZWNvZGUoRGVjb2RlciYpXG4nCisgICAgICAgICAgICAnICAgIHsnLAor
ICAgICAgICAgICAgd2FybmluZ19ub25lKQorCiAKIGNsYXNzIENsZWFuc2VkTGluZXNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>