<?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>214981</bug_id>
          
          <creation_ts>2020-07-30 12:49:42 -0700</creation_ts>
          <short_desc>[webkitcorepy] Make scripts called with sudo use a userspace autoinstall</short_desc>
          <delta_ts>2020-08-06 12:11:06 -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=214950</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=214378</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>dewei_zhu</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676495</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-30 12:49:42 -0700</bug_when>
    <thetext>This is important because often, the first script a bot runs will be installing something with sudo, which means that the autoinstall directory will be owned by root.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676496</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-30 12:50:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/66342996&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676498</commentid>
    <comment_count>2</comment_count>
      <attachid>405597</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-30 12:51:56 -0700</bug_when>
    <thetext>Created attachment 405597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676516</commentid>
    <comment_count>3</comment_count>
      <attachid>405597</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-07-30 13:27:44 -0700</bug_when>
    <thetext>Comment on attachment 405597
Patch

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

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:278
&gt; +            owner = cls.owner()
&gt; +            if owner:
&gt; +                os.chown(creation_root, *owner)
&gt; +                for root, directories, files in os.walk(creation_root):
&gt; +                    for directory in directories:
&gt; +                        os.chown(os.path.join(root, directory), *owner)
&gt; +                    for file in files:
&gt; +                        os.chown(os.path.join(root, file), *owner)
&gt; +

This seems a repeating twice, maybe create a helper which can also help with nested indentation:
@classmethod
def change_ownership_for_path(cls, path, recursive=False):
    # Windows doesn&apos;t have sudo
    if not hasattr(os, &quot;geteuid&quot;):
        return

    # If we aren&apos;t root, the default behavior is correct
    if os.geteuid() != 0:
        return

    # If running as sudo, we really want the caller of sudo to own the autoinstall directory
    uid = os.environ.get(&apos;SUDO_UID&apos;, -1))
    gid = int(os.environ.get(&apos;SUDO_GID&apos;, -1))

    os.chown(path, uid, gid)

    if not recursive:
        return

    if not os.path.isdir(path):
        return

    for root, directories, files in os.walk(path):
        for directory in directories:
            os.chown(os.path.join(root, directory), uid, gid)
        for file in files:
            os.chown(os.path.join(root, file), uid, gid)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676627</commentid>
    <comment_count>4</comment_count>
      <attachid>405633</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-30 16:32:14 -0700</bug_when>
    <thetext>Created attachment 405633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676629</commentid>
    <comment_count>5</comment_count>
      <attachid>405633</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-07-30 16:35:51 -0700</bug_when>
    <thetext>Comment on attachment 405633
Patch

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

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:238
&gt; +            return None

Even thought it&apos;s equivalent,, may be just `return` to keep the consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676636</commentid>
    <comment_count>6</comment_count>
      <attachid>405636</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-30 16:45:42 -0700</bug_when>
    <thetext>Created attachment 405636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676663</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-30 17:42:46 -0700</bug_when>
    <thetext>Committed r265123: &lt;https://trac.webkit.org/changeset/265123&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405636.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405597</attachid>
            <date>2020-07-30 12:51:56 -0700</date>
            <delta_ts>2020-07-30 16:32:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214981-20200730125155.patch</filename>
            <type>text/plain</type>
            <size>5265</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTA5MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTA3LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNYWtlIHNjcmlwdHMgY2FsbGVkIHdpdGggc3Vk
byB1c2UgYSB1c2Vyc3BhY2UgYXV0b2luc3RhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjYz
NDI5OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3VkbyBjYW4gYnJpbmcgaGF2b2MgdG8gdGhlIGF1dG9pbnN0YWxsZXIsIGJlY2F1c2UgdGhlIGRp
cmVjdG9yaWVzIGl0IGNyZWF0ZXMgd2lsbCBiZWxvbmcKKyAgICAgICAgdG8gdGhlIHJvb3QgdXNl
ci4gV2Ugc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBkaXJlY3RvcmllcyBjcmVhdGVkIGJ5IGEgc3Vk
byBzY3JpcHQgY2FsbAorICAgICAgICBhcmUgb3duZWQgYnkgdGhlIHVzZXIgdGhhdCBjYWxsZWQg
c3Vkbywgd2hlbiBwb3NzaWJsZS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weToKKyAgICAgICAg
KFBhY2thZ2UuaW5zdGFsbCk6IEVuc3VyZSB0aGF0IGluc3RhbGxlZCBwYWNrYWdlcyBhcmUgbm90
IG93bmVkIGJ5IHJvb3QsIGlmIHBvc3NpYmxlLgorICAgICAgICAoQXV0b0luc3RhbGwub3duZXIp
OiBSZXR1cm4gYSB0dXBsZSByZXByZXNlbnRpbmcgdGhlIHVzZXJpZCBhbmQgZ3JvdXBpZCBvZiB0
aGUgY2FsbGVyLCBpZiBhIHNjcmlwdAorICAgICAgICBpcyBiZWluZyBydW4gYnkgc3Vkby4KKyAg
ICAgICAgKEF1dG9JbnN0YWxsLnNldF9kaXJlY3RvcnkpOiBFbnN1cmUgdGhhdCB0aGUgZGlyZWN0
b3JpZXMgY29udGFpbmluZyBhdXRvLWluc3RhbGxlZCBwYWNrYWdlcyBhcmUgbm90CisgICAgICAg
IG93bmVkIGJ5IHJvb3QsIGlmIHBvc3NpYmxlLgorCiAyMDIwLTA3LTMwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBjb250ZW50IGdldHMgc3R1
Y2sgaW4gYW4gaW5hY3RpdmUgc3RhdGUgKG5vIGN1cnNvciB1cGRhdGVzIG9yIHRleHQgaW5zZXJ0
aW9uIGNhcmV0KSB3aGVuIGFjdGl2YXRpbmcgYSB0YWIgd2l0aCBhIHRodW1ibmFpbCB2aXNpYmxl
CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2NTA4NykKKysrIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18u
cHkJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoJ3dlYmtpdGNvcmVweScpCiBmcm9tIHdlYmtpdGNvcmVweS52ZXJzaW9uIGltcG9ydCBWZXJz
aW9uCiBmcm9tIHdlYmtpdGNvcmVweS5zdHJpbmdfdXRpbHMgaW1wb3J0IEJ5dGVzSU8sIFN0cmlu
Z0lPLCBVbmljb2RlSU8sIHVuaWNvZGUKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwgMCwgMykKK3Zl
cnNpb24gPSBWZXJzaW9uKDAsIDAsIDQpCiAKIGZyb20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxs
IGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAw
KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3Jl
cHkvYXV0b2luc3RhbGwucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weQkocmV2aXNpb24gMjY1MDg3
KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9h
dXRvaW5zdGFsbC5weQkod29ya2luZyBjb3B5KQpAQCAtMTgyLDEyICsxODIsMjUgQEAgY2xhc3Mg
UGFja2FnZShvYmplY3QpOgogICAgICAgICAgICAgb3MucmVtb3ZlKGFyY2hpdmUucGF0aCkKICAg
ICAgICAgICAgIHNodXRpbC5ybXRyZWUodGVtcF9sb2NhdGlvbiwgaWdub3JlX2Vycm9ycz1UcnVl
KQogCisgICAgICAgICAgICBvd25lciA9IEF1dG9JbnN0YWxsLm93bmVyKCkKKyAgICAgICAgICAg
IGlmIG93bmVyOgorICAgICAgICAgICAgICAgIG9zLmNob3duKHNlbGYubG9jYXRpb24sICpvd25l
cikKKyAgICAgICAgICAgICAgICBmb3Igcm9vdCwgZGlyZWN0b3JpZXMsIGZpbGVzIGluIG9zLndh
bGsoc2VsZi5sb2NhdGlvbik6CisgICAgICAgICAgICAgICAgICAgIGZvciBkaXJlY3RvcnkgaW4g
ZGlyZWN0b3JpZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBvcy5jaG93bihvcy5wYXRoLmpv
aW4ocm9vdCwgZGlyZWN0b3J5KSwgKm93bmVyKQorICAgICAgICAgICAgICAgICAgICBmb3IgZmls
ZSBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLmNob3duKG9zLnBhdGguam9p
bihyb290LCBmaWxlKSwgKm93bmVyKQorCiAgICAgICAgICAgICBBdXRvSW5zdGFsbC5tYW5pZmVz
dFtzZWxmLm5hbWVdID0gewogICAgICAgICAgICAgICAgICdpbmRleCc6IEF1dG9JbnN0YWxsLmlu
ZGV4LAogICAgICAgICAgICAgICAgICd2ZXJzaW9uJzogc3RyKGFyY2hpdmUudmVyc2lvbiksCiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKEF1dG9JbnN0
YWxsLmRpcmVjdG9yeSwgJ21hbmlmZXN0Lmpzb24nKSwgJ3cnKSBhcyBmaWxlOgorCisgICAgICAg
ICAgICBtYW5pZmVzdCA9IG9zLnBhdGguam9pbihBdXRvSW5zdGFsbC5kaXJlY3RvcnksICdtYW5p
ZmVzdC5qc29uJykKKyAgICAgICAgICAgIHdpdGggb3BlbihtYW5pZmVzdCwgJ3cnKSBhcyBmaWxl
OgogICAgICAgICAgICAgICAgIGpzb24uZHVtcChBdXRvSW5zdGFsbC5tYW5pZmVzdCwgZmlsZSkK
KyAgICAgICAgICAgIGlmIG93bmVyOgorICAgICAgICAgICAgICAgIG9zLmNob3duKG1hbmlmZXN0
LCAqb3duZXIpCiAKICAgICAgICAgICAgIGxvZy53YXJuaW5nKCdJbnN0YWxsZWQge30hJy5mb3Jt
YXQoYXJjaGl2ZSkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CkBAIC0yMjcsMTYgKzI0MCw0
MiBAQCBjbGFzcyBBdXRvSW5zdGFsbChvYmplY3QpOgogICAgICAgICBjbHMuZW5hYmxlZCA9IEZh
bHNlCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgb3duZXIoY2xzKToKKyAgICAgICAgIyBX
aW5kb3dzIGRvZXNuJ3QgaGF2ZSBzdWRvCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKG9zLCAiZ2V0
ZXVpZCIpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAjIElmIHdlIGFyZW4n
dCByb290LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBjb3JyZWN0CisgICAgICAgIGlmIG9zLmdl
dGV1aWQoKSAhPSAwOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAjIElmIHJ1
bm5pbmcgYXMgc3Vkbywgd2UgcmVhbGx5IHdhbnQgdGhlIGNhbGxlciBvZiBzdWRvIHRvIG93biB0
aGUgYXV0b2luc3RhbGwgZGlyZWN0b3J5CisgICAgICAgIHJldHVybiBpbnQob3MuZW52aXJvbi5n
ZXQoJ1NVRE9fVUlEJywgLTEpKSwgaW50KG9zLmVudmlyb24uZ2V0KCdTVURPX0dJRCcsIC0xKSkK
KworICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBzZXRfZGlyZWN0b3J5KGNscywgZGlyZWN0b3J5
KToKICAgICAgICAgaWYgbm90IGRpcmVjdG9yeSBvciBub3QgaXNpbnN0YW5jZShkaXJlY3Rvcnks
IHN0cik6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd7fSBpcyBhbiBpbnZhbGlkIGF1
dG9pbnN0YWxsIGRpcmVjdG9yeScuZm9ybWF0KGRpcmVjdG9yeSkpCiAKICAgICAgICAgZGlyZWN0
b3J5ID0gb3MucGF0aC5hYnNwYXRoKGRpcmVjdG9yeSkKICAgICAgICAgaWYgbm90IG9zLnBhdGgu
aXNkaXIoZGlyZWN0b3J5KToKKyAgICAgICAgICAgIGNyZWF0aW9uX3Jvb3QgPSBkaXJlY3RvcnkK
KyAgICAgICAgICAgIHdoaWxlIG5vdCBvcy5wYXRoLmlzZGlyKG9zLnBhdGguZGlybmFtZShjcmVh
dGlvbl9yb290KSk6CisgICAgICAgICAgICAgICAgY3JlYXRpb25fcm9vdCA9IG9zLnBhdGguZGly
bmFtZShjcmVhdGlvbl9yb290KQorCiAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhkaXJl
Y3RvcnkpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3t9IGlzIG5vdCBhIGRp
cmVjdG9yeSBhbmQgY2Fubm90IGJlIHVzZWQgYXMgdGhlIGF1dG9pbnN0YWxsIGxvY2F0aW9uJykK
ICAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRpcmVjdG9yeSkKIAorICAgICAgICAgICAgb3duZXIg
PSBjbHMub3duZXIoKQorICAgICAgICAgICAgaWYgb3duZXI6CisgICAgICAgICAgICAgICAgb3Mu
Y2hvd24oY3JlYXRpb25fcm9vdCwgKm93bmVyKQorICAgICAgICAgICAgICAgIGZvciByb290LCBk
aXJlY3RvcmllcywgZmlsZXMgaW4gb3Mud2FsayhjcmVhdGlvbl9yb290KToKKyAgICAgICAgICAg
ICAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBkaXJlY3RvcmllczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG9zLmNob3duKG9zLnBhdGguam9pbihyb290LCBkaXJlY3RvcnkpLCAqb3duZXIpCisg
ICAgICAgICAgICAgICAgICAgIGZvciBmaWxlIGluIGZpbGVzOgorICAgICAgICAgICAgICAgICAg
ICAgICAgb3MuY2hvd24ob3MucGF0aC5qb2luKHJvb3QsIGZpbGUpLCAqb3duZXIpCisKICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihkaXJlY3RvcnksICdt
YW5pZmVzdC5qc29uJyksICdyJykgYXMgZmlsZToKICAgICAgICAgICAgICAgICBjbHMubWFuaWZl
c3QgPSBqc29uLmxvYWQoZmlsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405633</attachid>
            <date>2020-07-30 16:32:14 -0700</date>
            <delta_ts>2020-07-30 16:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214981-20200730163213.patch</filename>
            <type>text/plain</type>
            <size>4830</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTExNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTA3LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNYWtlIHNjcmlwdHMgY2FsbGVkIHdpdGggc3Vk
byB1c2UgYSB1c2Vyc3BhY2UgYXV0b2luc3RhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjYz
NDI5OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3VkbyBjYW4gYnJpbmcgaGF2b2MgdG8gdGhlIGF1dG9pbnN0YWxsZXIsIGJlY2F1c2UgdGhlIGRp
cmVjdG9yaWVzIGl0IGNyZWF0ZXMgd2lsbCBiZWxvbmcKKyAgICAgICAgdG8gdGhlIHJvb3QgdXNl
ci4gV2Ugc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBkaXJlY3RvcmllcyBjcmVhdGVkIGJ5IGEgc3Vk
byBzY3JpcHQgY2FsbAorICAgICAgICBhcmUgb3duZWQgYnkgdGhlIHVzZXIgdGhhdCBjYWxsZWQg
c3Vkbywgd2hlbiBwb3NzaWJsZS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weToKKyAgICAgICAg
KFBhY2thZ2UuaW5zdGFsbCk6IEVuc3VyZSB0aGF0IGluc3RhbGxlZCBwYWNrYWdlcyBhcmUgbm90
IG93bmVkIGJ5IHJvb3QsIGlmIHBvc3NpYmxlLgorICAgICAgICAoQXV0b0luc3RhbGwudXNlcnNw
YWNlX3Nob3VsZF9vd24pOiBFbnN1cmUgdGhhdCBhIGRpcmVjdG9yeSBvciBmaWxlIGlzIG5vdCBv
d25lZCBieSByb290LCBpZiBwb3NzaWJsZS4KKyAgICAgICAgKEF1dG9JbnN0YWxsLnNldF9kaXJl
Y3RvcnkpOiBFbnN1cmUgdGhhdCB0aGUgZGlyZWN0b3JpZXMgY29udGFpbmluZyBhdXRvLWluc3Rh
bGxlZCBwYWNrYWdlcyBhcmUgbm90CisgICAgICAgIG93bmVkIGJ5IHJvb3QsIGlmIHBvc3NpYmxl
LgorCiAyMDIwLTA3LTMwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViR0xdIFNhZmFyaSBzbmFwc2hvdHMgb2YgV2ViR0wgY29udGVudCBpbiB0aGUgdGFiIHBp
Y2tlciBkb24ndCB3b3JrCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9u
IDI2NTExNSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRj
b3JlcHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoJ3dlYmtpdGNvcmVweScpCiBmcm9tIHdlYmtpdGNvcmVweS52ZXJz
aW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdGNvcmVweS5zdHJpbmdfdXRpbHMgaW1wb3J0
IEJ5dGVzSU8sIFN0cmluZ0lPLCBVbmljb2RlSU8sIHVuaWNvZGUKIAotdmVyc2lvbiA9IFZlcnNp
b24oMCwgMCwgMykKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDAsIDQpCiAKIGZyb20gd2Via2l0Y29y
ZXB5LmF1dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNp
b25faW5mbyA+ICgzLCAwKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weQko
cmV2aXNpb24gMjY1MTE1KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weQkod29ya2luZyBjb3B5KQpAQCAtMTgyLDEyICsx
ODIsMTcgQEAgY2xhc3MgUGFja2FnZShvYmplY3QpOgogICAgICAgICAgICAgb3MucmVtb3ZlKGFy
Y2hpdmUucGF0aCkKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUodGVtcF9sb2NhdGlvbiwgaWdu
b3JlX2Vycm9ycz1UcnVlKQogCisgICAgICAgICAgICBBdXRvSW5zdGFsbC51c2Vyc3BhY2Vfc2hv
dWxkX293bihzZWxmLmxvY2F0aW9uKQorCiAgICAgICAgICAgICBBdXRvSW5zdGFsbC5tYW5pZmVz
dFtzZWxmLm5hbWVdID0gewogICAgICAgICAgICAgICAgICdpbmRleCc6IEF1dG9JbnN0YWxsLmlu
ZGV4LAogICAgICAgICAgICAgICAgICd2ZXJzaW9uJzogc3RyKGFyY2hpdmUudmVyc2lvbiksCiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKEF1dG9JbnN0
YWxsLmRpcmVjdG9yeSwgJ21hbmlmZXN0Lmpzb24nKSwgJ3cnKSBhcyBmaWxlOgorCisgICAgICAg
ICAgICBtYW5pZmVzdCA9IG9zLnBhdGguam9pbihBdXRvSW5zdGFsbC5kaXJlY3RvcnksICdtYW5p
ZmVzdC5qc29uJykKKyAgICAgICAgICAgIHdpdGggb3BlbihtYW5pZmVzdCwgJ3cnKSBhcyBmaWxl
OgogICAgICAgICAgICAgICAgIGpzb24uZHVtcChBdXRvSW5zdGFsbC5tYW5pZmVzdCwgZmlsZSkK
KyAgICAgICAgICAgIEF1dG9JbnN0YWxsLnVzZXJzcGFjZV9zaG91bGRfb3duKG1hbmlmZXN0KQog
CiAgICAgICAgICAgICBsb2cud2FybmluZygnSW5zdGFsbGVkIHt9IScuZm9ybWF0KGFyY2hpdmUp
KQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgpAQCAtMjI3LDE2ICsyMzIsNDYgQEAgY2xhc3Mg
QXV0b0luc3RhbGwob2JqZWN0KToKICAgICAgICAgY2xzLmVuYWJsZWQgPSBGYWxzZQogCiAgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIHVzZXJzcGFjZV9zaG91bGRfb3duKGNscywgcGF0aCk6Cisg
ICAgICAgICMgV2luZG93cyBkb2Vzbid0IGhhdmUgc3VkbworICAgICAgICBpZiBub3QgaGFzYXR0
cihvcywgImdldGV1aWQiKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgIyBJ
ZiB3ZSBhcmVuJ3Qgcm9vdCwgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgY29ycmVjdAorICAgICAg
ICBpZiBvcy5nZXRldWlkKCkgIT0gMDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAg
ICAgIyBJZiBydW5uaW5nIGFzIHN1ZG8sIHdlIHJlYWxseSB3YW50IHRoZSBjYWxsZXIgb2Ygc3Vk
byB0byBvd24gdGhlIGF1dG9pbnN0YWxsIGRpcmVjdG9yeQorICAgICAgICB1aWQgPSBpbnQob3Mu
ZW52aXJvbi5nZXQoJ1NVRE9fVUlEJywgLTEpKQorICAgICAgICBnaWQgPSBpbnQob3MuZW52aXJv
bi5nZXQoJ1NVRE9fR0lEJywgLTEpKQorCisgICAgICAgIG9zLmNob3duKHBhdGgsIHVpZCwgZ2lk
KQorICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgICAgIHJldHVy
bgorCisgICAgICAgIGZvciByb290LCBkaXJlY3RvcmllcywgZmlsZXMgaW4gb3Mud2FsayhwYXRo
KToKKyAgICAgICAgICAgIGZvciBkaXJlY3RvcnkgaW4gZGlyZWN0b3JpZXM6CisgICAgICAgICAg
ICAgICAgb3MuY2hvd24ob3MucGF0aC5qb2luKHJvb3QsIGRpcmVjdG9yeSksIHVpZCwgZ2lkKQor
ICAgICAgICAgICAgZm9yIGZpbGUgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgb3MuY2hvd24o
b3MucGF0aC5qb2luKHJvb3QsIGZpbGUpLCB1aWQsIGdpZCkKKworICAgIEBjbGFzc21ldGhvZAog
ICAgIGRlZiBzZXRfZGlyZWN0b3J5KGNscywgZGlyZWN0b3J5KToKICAgICAgICAgaWYgbm90IGRp
cmVjdG9yeSBvciBub3QgaXNpbnN0YW5jZShkaXJlY3RvcnksIHN0cik6CiAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCd7fSBpcyBhbiBpbnZhbGlkIGF1dG9pbnN0YWxsIGRpcmVjdG9yeScu
Zm9ybWF0KGRpcmVjdG9yeSkpCiAKICAgICAgICAgZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRo
KGRpcmVjdG9yeSkKICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoZGlyZWN0b3J5KToKKyAg
ICAgICAgICAgIGNyZWF0aW9uX3Jvb3QgPSBkaXJlY3RvcnkKKyAgICAgICAgICAgIHdoaWxlIG5v
dCBvcy5wYXRoLmlzZGlyKG9zLnBhdGguZGlybmFtZShjcmVhdGlvbl9yb290KSk6CisgICAgICAg
ICAgICAgICAgY3JlYXRpb25fcm9vdCA9IG9zLnBhdGguZGlybmFtZShjcmVhdGlvbl9yb290KQor
CiAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhkaXJlY3RvcnkpOgogICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3t9IGlzIG5vdCBhIGRpcmVjdG9yeSBhbmQgY2Fubm90IGJl
IHVzZWQgYXMgdGhlIGF1dG9pbnN0YWxsIGxvY2F0aW9uJykKICAgICAgICAgICAgIG9zLm1ha2Vk
aXJzKGRpcmVjdG9yeSkKIAorICAgICAgICAgICAgY2xzLnVzZXJzcGFjZV9zaG91bGRfb3duKGNy
ZWF0aW9uX3Jvb3QpCisKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBh
dGguam9pbihkaXJlY3RvcnksICdtYW5pZmVzdC5qc29uJyksICdyJykgYXMgZmlsZToKICAgICAg
ICAgICAgICAgICBjbHMubWFuaWZlc3QgPSBqc29uLmxvYWQoZmlsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405636</attachid>
            <date>2020-07-30 16:45:42 -0700</date>
            <delta_ts>2020-07-30 17:42:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214981-20200730164542.patch</filename>
            <type>text/plain</type>
            <size>4815</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTExOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTA3LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNYWtlIHNjcmlwdHMgY2FsbGVkIHdpdGggc3Vk
byB1c2UgYSB1c2Vyc3BhY2UgYXV0b2luc3RhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjYz
NDI5OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV3ZWkgWmh1LgorCisgICAgICAgIFN1ZG8g
Y2FuIGJyaW5nIGhhdm9jIHRvIHRoZSBhdXRvaW5zdGFsbGVyLCBiZWNhdXNlIHRoZSBkaXJlY3Rv
cmllcyBpdCBjcmVhdGVzIHdpbGwgYmVsb25nCisgICAgICAgIHRvIHRoZSByb290IHVzZXIuIFdl
IHNob3VsZCBlbnN1cmUgdGhhdCB0aGUgZGlyZWN0b3JpZXMgY3JlYXRlZCBieSBhIHN1ZG8gc2Ny
aXB0IGNhbGwKKyAgICAgICAgYXJlIG93bmVkIGJ5IHRoZSB1c2VyIHRoYXQgY2FsbGVkIHN1ZG8s
IHdoZW4gcG9zc2libGUuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHk6CisgICAgICAgIChQYWNr
YWdlLmluc3RhbGwpOiBFbnN1cmUgdGhhdCBpbnN0YWxsZWQgcGFja2FnZXMgYXJlIG5vdCBvd25l
ZCBieSByb290LCBpZiBwb3NzaWJsZS4KKyAgICAgICAgKEF1dG9JbnN0YWxsLnVzZXJzcGFjZV9z
aG91bGRfb3duKTogRW5zdXJlIHRoYXQgYSBkaXJlY3Rvcnkgb3IgZmlsZSBpcyBub3Qgb3duZWQg
Ynkgcm9vdCwgaWYgcG9zc2libGUuCisgICAgICAgIChBdXRvSW5zdGFsbC5zZXRfZGlyZWN0b3J5
KTogRW5zdXJlIHRoYXQgdGhlIGRpcmVjdG9yaWVzIGNvbnRhaW5pbmcgYXV0by1pbnN0YWxsZWQg
cGFja2FnZXMgYXJlIG5vdAorICAgICAgICBvd25lZCBieSByb290LCBpZiBwb3NzaWJsZS4KKwog
MjAyMC0wNy0zMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkdMXSBTYWZhcmkgc25hcHNob3RzIG9mIFdlYkdMIGNvbnRlbnQgaW4gdGhlIHRhYiBwaWNrZXIg
ZG9uJ3Qgd29yawpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjUx
MTgpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIGxvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCd3ZWJraXRjb3JlcHknKQogZnJvbSB3ZWJraXRjb3JlcHkudmVyc2lvbiBp
bXBvcnQgVmVyc2lvbgogZnJvbSB3ZWJraXRjb3JlcHkuc3RyaW5nX3V0aWxzIGltcG9ydCBCeXRl
c0lPLCBTdHJpbmdJTywgVW5pY29kZUlPLCB1bmljb2RlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAs
IDAsIDMpCit2ZXJzaW9uID0gVmVyc2lvbigwLCAwLCA0KQogCiBmcm9tIHdlYmtpdGNvcmVweS5h
dXRvaW5zdGFsbCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2lu
Zm8gPiAoMywgMCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L2F1dG9pbnN0YWxsLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkJKHJldmlz
aW9uIDI2NTExOCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvYXV0b2luc3RhbGwucHkJKHdvcmtpbmcgY29weSkKQEAgLTE4MiwxMiArMTgyLDE3
IEBAIGNsYXNzIFBhY2thZ2Uob2JqZWN0KToKICAgICAgICAgICAgIG9zLnJlbW92ZShhcmNoaXZl
LnBhdGgpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHRlbXBfbG9jYXRpb24sIGlnbm9yZV9l
cnJvcnM9VHJ1ZSkKIAorICAgICAgICAgICAgQXV0b0luc3RhbGwudXNlcnNwYWNlX3Nob3VsZF9v
d24oc2VsZi5sb2NhdGlvbikKKwogICAgICAgICAgICAgQXV0b0luc3RhbGwubWFuaWZlc3Rbc2Vs
Zi5uYW1lXSA9IHsKICAgICAgICAgICAgICAgICAnaW5kZXgnOiBBdXRvSW5zdGFsbC5pbmRleCwK
ICAgICAgICAgICAgICAgICAndmVyc2lvbic6IHN0cihhcmNoaXZlLnZlcnNpb24pLAogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihBdXRvSW5zdGFsbC5k
aXJlY3RvcnksICdtYW5pZmVzdC5qc29uJyksICd3JykgYXMgZmlsZToKKworICAgICAgICAgICAg
bWFuaWZlc3QgPSBvcy5wYXRoLmpvaW4oQXV0b0luc3RhbGwuZGlyZWN0b3J5LCAnbWFuaWZlc3Qu
anNvbicpCisgICAgICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3QsICd3JykgYXMgZmlsZToKICAg
ICAgICAgICAgICAgICBqc29uLmR1bXAoQXV0b0luc3RhbGwubWFuaWZlc3QsIGZpbGUpCisgICAg
ICAgICAgICBBdXRvSW5zdGFsbC51c2Vyc3BhY2Vfc2hvdWxkX293bihtYW5pZmVzdCkKIAogICAg
ICAgICAgICAgbG9nLndhcm5pbmcoJ0luc3RhbGxlZCB7fSEnLmZvcm1hdChhcmNoaXZlKSkKICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKQEAgLTIyNywxNiArMjMyLDQ2IEBAIGNsYXNzIEF1dG9J
bnN0YWxsKG9iamVjdCk6CiAgICAgICAgIGNscy5lbmFibGVkID0gRmFsc2UKIAogICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiB1c2Vyc3BhY2Vfc2hvdWxkX293bihjbHMsIHBhdGgpOgorICAgICAg
ICAjIFdpbmRvd3MgZG9lc24ndCBoYXZlIHN1ZG8KKyAgICAgICAgaWYgbm90IGhhc2F0dHIob3Ms
ICJnZXRldWlkIik6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIElmIHdlIGFyZW4n
dCByb290LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBjb3JyZWN0CisgICAgICAgIGlmIG9zLmdl
dGV1aWQoKSAhPSAwOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBJZiBydW5uaW5n
IGFzIHN1ZG8sIHdlIHJlYWxseSB3YW50IHRoZSBjYWxsZXIgb2Ygc3VkbyB0byBvd24gdGhlIGF1
dG9pbnN0YWxsIGRpcmVjdG9yeQorICAgICAgICB1aWQgPSBpbnQob3MuZW52aXJvbi5nZXQoJ1NV
RE9fVUlEJywgLTEpKQorICAgICAgICBnaWQgPSBpbnQob3MuZW52aXJvbi5nZXQoJ1NVRE9fR0lE
JywgLTEpKQorCisgICAgICAgIG9zLmNob3duKHBhdGgsIHVpZCwgZ2lkKQorICAgICAgICBpZiBu
b3Qgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGZv
ciByb290LCBkaXJlY3RvcmllcywgZmlsZXMgaW4gb3Mud2FsayhwYXRoKToKKyAgICAgICAgICAg
IGZvciBkaXJlY3RvcnkgaW4gZGlyZWN0b3JpZXM6CisgICAgICAgICAgICAgICAgb3MuY2hvd24o
b3MucGF0aC5qb2luKHJvb3QsIGRpcmVjdG9yeSksIHVpZCwgZ2lkKQorICAgICAgICAgICAgZm9y
IGZpbGUgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgb3MuY2hvd24ob3MucGF0aC5qb2luKHJv
b3QsIGZpbGUpLCB1aWQsIGdpZCkKKworICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBzZXRfZGly
ZWN0b3J5KGNscywgZGlyZWN0b3J5KToKICAgICAgICAgaWYgbm90IGRpcmVjdG9yeSBvciBub3Qg
aXNpbnN0YW5jZShkaXJlY3RvcnksIHN0cik6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCd7fSBpcyBhbiBpbnZhbGlkIGF1dG9pbnN0YWxsIGRpcmVjdG9yeScuZm9ybWF0KGRpcmVjdG9y
eSkpCiAKICAgICAgICAgZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRoKGRpcmVjdG9yeSkKICAg
ICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoZGlyZWN0b3J5KToKKyAgICAgICAgICAgIGNyZWF0
aW9uX3Jvb3QgPSBkaXJlY3RvcnkKKyAgICAgICAgICAgIHdoaWxlIG5vdCBvcy5wYXRoLmlzZGly
KG9zLnBhdGguZGlybmFtZShjcmVhdGlvbl9yb290KSk6CisgICAgICAgICAgICAgICAgY3JlYXRp
b25fcm9vdCA9IG9zLnBhdGguZGlybmFtZShjcmVhdGlvbl9yb290KQorCiAgICAgICAgICAgICBp
ZiBvcy5wYXRoLmV4aXN0cyhkaXJlY3RvcnkpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ3t9IGlzIG5vdCBhIGRpcmVjdG9yeSBhbmQgY2Fubm90IGJlIHVzZWQgYXMgdGhlIGF1
dG9pbnN0YWxsIGxvY2F0aW9uJykKICAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRpcmVjdG9yeSkK
IAorICAgICAgICAgICAgY2xzLnVzZXJzcGFjZV9zaG91bGRfb3duKGNyZWF0aW9uX3Jvb3QpCisK
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihkaXJlY3Rv
cnksICdtYW5pZmVzdC5qc29uJyksICdyJykgYXMgZmlsZToKICAgICAgICAgICAgICAgICBjbHMu
bWFuaWZlc3QgPSBqc29uLmxvYWQoZmlsZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>