<?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>72680</bug_id>
          
          <creation_ts>2011-11-17 17:07:44 -0800</creation_ts>
          <short_desc>create a &quot;SystemHost&quot; object for webkitpy to slim down the Host object</short_desc>
          <delta_ts>2011-12-08 16:20:49 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>505362</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-17 17:07:44 -0800</bug_when>
    <thetext>There has been a bunch of work lately to consolidate factories into a Host object in webkitpy for easier testing. This is a good goal, but the Host object imports a bunch of network/service-level objects and introduces a number of dependencies; it makes the dependencies of objects that use Host harder to understand.

I think it would make sense to have a thinner object (call it a SystemHost) that only contains the objects from webkitpy.common.system in Host, and modify some of the factories and constructors like Port and PortFactory to take SystemHosts instead, so it can be clear(er?) that they may depend on FileSystem, User, etc. but don&apos;t depend on Buildbot, Bugzilla, etc.

The Host object can then subclass the SystemHost object.

Sound good?

-- Dirk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505364</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-17 17:10:38 -0800</bug_when>
    <thetext>Sounds fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505365</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 17:11:23 -0800</bug_when>
    <thetext>I support the general idea of more clearly separating webkitpy into layers, including the Host object.  Maybe we should make a top-level package for classes that SystemHost is allowed to depend on and then forbid files in that directory from importing high-level packages?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505377</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-17 17:26:05 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I support the general idea of more clearly separating webkitpy into layers, including the Host object.  Maybe we should make a top-level package for classes that SystemHost is allowed to depend on and then forbid files in that directory from importing high-level packages?

I&apos;m thinking that webkit.common.system is the package that includes SystemHost and SystemHost is only allowed to include files from the same package. I would be fine if we wanted to move that to webkitpy.system just to flatten the hierarchy a bit, but it actually feels a bit cleaner to leave it under common to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505383</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 17:30:08 -0800</bug_when>
    <thetext>Ok.  That sounds good.  webkitpy.common.system is already not supposed to depend on things outside of itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505398</commentid>
    <comment_count>5</comment_count>
      <attachid>115718</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-17 17:59:22 -0800</bug_when>
    <thetext>Created attachment 115718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505399</commentid>
    <comment_count>6</comment_count>
      <attachid>115718</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-17 18:00:56 -0800</bug_when>
    <thetext>Comment on attachment 115718
Patch

Seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505400</commentid>
    <comment_count>7</comment_count>
      <attachid>115718</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-17 18:01:17 -0800</bug_when>
    <thetext>Comment on attachment 115718
Patch

I&apos;d like to let Adam take a quick peek, but LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505401</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-17 18:07:46 -0800</bug_when>
    <thetext>I&apos;m in no hurry to land this ... Adam?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505408</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 18:24:04 -0800</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505420</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-17 18:42:06 -0800</bug_when>
    <thetext>Hmm, I&apos;m working on converting the Port objects over and it looks like the SystemHost object might need to be the one that holds the port_factory (thanks to the dryrun and mockdrt implementations). 

I don&apos;t quite understand the circularity that has crept in here, so I need to look a bit further to see if this can be broken up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505427</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-17 19:12:44 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Hmm, I&apos;m working on converting the Port objects over and it looks like the SystemHost object might need to be the one that holds the port_factory (thanks to the dryrun and mockdrt implementations). 
&gt; 
&gt; I don&apos;t quite understand the circularity that has crept in here, so I need to look a bit further to see if this can be broken up.

Looks like it can be broken up. I will include that as part of the follow-on patch, so I think this is fine as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516445</commentid>
    <comment_count>12</comment_count>
      <attachid>118162</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-12-06 19:28:34 -0800</bug_when>
    <thetext>Created attachment 118162
merge to r102207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516767</commentid>
    <comment_count>13</comment_count>
      <attachid>118162</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-07 11:14:01 -0800</bug_when>
    <thetext>Comment on attachment 118162
merge to r102207

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

OK.  What about the SCM and Evnironment hacks in Host?  Should those move down too?  Seems they&apos;re related to the classes moved.  Thoughts?

&gt; Tools/Scripts/webkitpy/common/host_mock.py:51
&gt; -        self.filesystem = MockFileSystem(dirs=set([self._scm.checkout_root]))
&gt; +        self.filesystem.maybe_make_directory(self._scm.checkout_root)

This is much nicer.  I do like this pattern of amending to the filesystem instead of replacing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516935</commentid>
    <comment_count>14</comment_count>
      <attachid>118162</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-07 14:45:52 -0800</bug_when>
    <thetext>Comment on attachment 118162
merge to r102207

Consider moving the Envinroment/SCM hacks too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516945</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-12-07 15:14:31 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 118162 [details])
&gt; Consider moving the Envinroment/SCM hacks too.

copy_current_environment() probably makes sense to move to SystemHost. SCM is less clear to me since it&apos;s not obvious that that&apos;s really a &quot;system&quot;-level thing, and it&apos;s still pretty intertwined w/ Checkout.

I&apos;d like to land this (w/ the environment change), get the layout_tests infrastructure&apos;s usage of Hosts and SystemHosts cleaned up, and then hopefully have more insight into where the SCM feels like it should belong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517875</commentid>
    <comment_count>16</comment_count>
      <attachid>118483</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-12-08 16:09:37 -0800</bug_when>
    <thetext>Created attachment 118483
move copy_current_environment to SystemHost, clean up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517887</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-12-08 16:20:49 -0800</bug_when>
    <thetext>Committed r102393: &lt;http://trac.webkit.org/changeset/102393&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115718</attachid>
            <date>2011-11-17 17:59:22 -0800</date>
            <delta_ts>2011-12-06 19:28:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72680-20111117175921.patch</filename>
            <type>text/plain</type>
            <size>9902</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNzA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGVmYzM0NGNhNDkzNTc3NjdmY2Q0NDA1MjM5ODJmYzUz
Y2Q4OTg2MS4uMTg4NjllYmJlZjg2ODc2MDE3MmU5MGMyZDdjYmYyY2MxNjY2OTc4ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDExLTExLTE3ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIGNyZWF0ZSBhICJTeXN0ZW1Ib3N0IiBvYmplY3QgZm9yIHdlYmtpdHB5IHRvIHNsaW0g
ZG93biB0aGUgSG9zdCBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyNjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBjcmVhdGVzIGEgU3lzdGVtSG9zdCBvYmplY3QgdGhhdCBvdGhlciBv
YmplY3RzIHRoYXQgc2hvdWxkCisgICAgICAgIG9ubHkgaGF2ZSBkZXBlbmRlbmNpZXMgb24gZnVu
Y3Rpb25hbGl0eSBpbiB3ZWJraXRweS5jb21tb24uc3lzdGVtCisgICAgICAgIGNhbiB1c2U7IHRo
aXMgd2lsbCBhbGxvdyB0aGVtIHRvIG5vdCByZXF1aXJlIGEgZnVsbCBIb3N0LgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0X21vY2sucHk6IEFkZGVkLgorCiAyMDExLTEx
LTE3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGZ1enp5X21h
dGNoIGRvZXNuJ3QgcmVjb2duaXplICJEYW4gQiIgb3IgImh5YXR0IgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2hvc3QucHkKaW5kZXggNGRlOTViMzExZDdkOWVjNmQxY2VkZjE0ZGM2ZWI3NzA5
MWVmN2M4OC4uZjBjMzI0NjE5YWQyMjEyYzVhYTlhOGJkMzBhMmQzMTgyMjZiNDU1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9ob3N0LnB5CkBAIC0zNSw3ICszNSw3IEBAIGZyb20gd2Vi
a2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIGZyb20gd2Via2l0
cHkuY29tbW9uLm5ldCBpbXBvcnQgYnVnemlsbGEsIGJ1aWxkYm90LCB3ZWIKIGZyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5idWlsZGJvdC5jaHJvbWl1bWJ1aWxkYm90IGltcG9ydCBDaHJvbWl1bUJ1
aWxkQm90Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGV4ZWN1dGl2ZSwgZmls
ZXN5c3RlbSwgcGxhdGZvcm1pbmZvLCB1c2VyLCB3b3Jrc3BhY2UKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5zeXN0ZW1ob3N0IGltcG9ydCBTeXN0ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi53YXRjaGxpc3Qud2F0Y2hsaXN0bG9hZGVyIGltcG9ydCBXYXRjaExpc3RMb2FkZXIKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZmFjdG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkK
IApAQCAtNDMsMTUgKzQzLDkgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5mYWN0
b3J5IGltcG9ydCBQb3J0RmFjdG9yeQogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiAKLWNsYXNzIEhvc3Qob2JqZWN0KToKK2NsYXNzIEhvc3QoU3lzdGVtSG9zdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAjIFRoZXNlIGJhc2ljIGVudmlyb25tZW50IGFi
c3RyYWN0aW9ucyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBsb3dlci1sZXZlbCBvYmplY3QuCi0gICAg
ICAgICMgQWx0ZXJuYXRpdmVseSB0aGUgcmVzdCBvZiB0aGUgb2JqZWN0cyBpbiBIb3N0IHNob3Vs
ZCBqdXN0IG1vdmUgdXAgdG8gYSBoaWdoZXIgYWJzdHJhY3Rpb24uCi0gICAgICAgIHNlbGYuZXhl
Y3V0aXZlID0gZXhlY3V0aXZlLkV4ZWN1dGl2ZSgpCi0gICAgICAgIHNlbGYuZmlsZXN5c3RlbSA9
IGZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCi0gICAgICAgIHNlbGYudXNlciA9IHVzZXIuVXNlcigp
Ci0gICAgICAgIHNlbGYucGxhdGZvcm0gPSBwbGF0Zm9ybWluZm8uUGxhdGZvcm1JbmZvKCkKLSAg
ICAgICAgc2VsZi53b3Jrc3BhY2UgPSB3b3Jrc3BhY2UuV29ya3NwYWNlKHNlbGYuZmlsZXN5c3Rl
bSwgc2VsZi5leGVjdXRpdmUpCisgICAgICAgIFN5c3RlbUhvc3QuX19pbml0X18oc2VsZikKICAg
ICAgICAgc2VsZi53ZWIgPSB3ZWIuV2ViKCkKIAogICAgICAgICAjIEZJWE1FOiBDaGVja291dCBz
aG91bGQgb3duIHRoZSBzY20gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vaG9zdF9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
aG9zdF9tb2NrLnB5CmluZGV4IGMyMjk5OWYyMzM5ZTgxNGYxNGZkYzY3YzdjYWM4NmFjZjhjMTE0
YWMuLmU2ZDYzMjViYTYwMzJkYWFlZGRkNmFkNWJkNDM0NTViMmE5OGIxMzYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3RfbW9jay5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHkKQEAgLTMxLDMwICszMSwyMyBAQCBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtX21vY2sgaW1wb3J0IE1vY2tTQ00K
IGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYS5idWd6aWxsYV9tb2NrIGltcG9ydCBN
b2NrQnVnemlsbGEKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWlsZGJvdC5idWlsZGJvdF9t
b2NrIGltcG9ydCBNb2NrQnVpbGRCb3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC53ZWJfbW9j
ayBpbXBvcnQgTW9ja1dlYgotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9t
b2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmls
ZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQotZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLnBsYXRmb3JtaW5mb19tb2NrIGltcG9ydCBNb2NrUGxhdGZvcm1JbmZvCi1mcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNlcl9tb2NrIGltcG9ydCBNb2NrVXNlcgotZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLndvcmtzcGFjZV9tb2NrIGltcG9ydCBNb2NrV29ya3NwYWNlCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lz
dGVtSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24ud2F0Y2hsaXN0LndhdGNobGlzdF9tb2NrIGlt
cG9ydCBNb2NrV2F0Y2hMaXN0CiAKICMgTmV3LXN0eWxlIHBvcnRzIG5lZWQgdG8gbW92ZSBkb3du
IGludG8gd2Via2l0cHkuY29tbW9uLgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5m
YWN0b3J5IGltcG9ydCBQb3J0RmFjdG9yeQogCiAKLWNsYXNzIE1vY2tIb3N0KG9iamVjdCk6Citj
bGFzcyBNb2NrSG9zdChNb2NrU3lzdGVtSG9zdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z19leGVjdXRpdmU9RmFsc2UsIGV4ZWN1dGl2ZV90aHJvd3Nfd2hlbl9ydW49Tm9uZSk6Ci0gICAg
ICAgIHNlbGYuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZShzaG91bGRfbG9nPWxvZ19leGVjdXRp
dmUsIHNob3VsZF90aHJvd193aGVuX3J1bj1leGVjdXRpdmVfdGhyb3dzX3doZW5fcnVuKQotICAg
ICAgICBzZWxmLnVzZXIgPSBNb2NrVXNlcigpCi0gICAgICAgIHNlbGYucGxhdGZvcm0gPSBNb2Nr
UGxhdGZvcm1JbmZvKCkKLSAgICAgICAgc2VsZi53b3Jrc3BhY2UgPSBNb2NrV29ya3NwYWNlKCkK
KyAgICAgICAgTW9ja1N5c3RlbUhvc3QuX19pbml0X18oc2VsZiwgbG9nX2V4ZWN1dGl2ZSwgZXhl
Y3V0aXZlX3Rocm93c193aGVuX3J1bikKICAgICAgICAgc2VsZi53ZWIgPSBNb2NrV2ViKCkKIAog
ICAgICAgICBzZWxmLl9jaGVja291dCA9IE1vY2tDaGVja291dCgpCiAgICAgICAgIHNlbGYuX3Nj
bSA9IE1vY2tTQ00oKQogICAgICAgICAjIFZhcmlvdXMgcGllY2VzIG9mIGNvZGUgKHdyb25nbHkp
IGNhbGwgZmlsZXN5c3RlbS5jaGRpcihjaGVja291dF9yb290KS4KICAgICAgICAgIyBNYWtpbmcg
dGhlIGNoZWNrb3V0X3Jvb3QgZXhpc3QgaW4gdGhlIG1vY2sgZmlsZXN5c3RlbSBtYWtlcyB0aGF0
IGNoZGlyIG5vdCByYWlzZS4KLSAgICAgICAgc2VsZi5maWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0
ZW0oZGlycz1zZXQoW3NlbGYuX3NjbS5jaGVja291dF9yb290XSkpCisgICAgICAgIHNlbGYuZmls
ZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShzZWxmLl9zY20uY2hlY2tvdXRfcm9vdCkKIAog
ICAgICAgICBzZWxmLmJ1Z3MgPSBNb2NrQnVnemlsbGEoKQogICAgICAgICBzZWxmLmJ1aWxkYm90
ID0gTW9ja0J1aWxkQm90KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3N5c3RlbWhvc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk4ZjFlNmU2MWViY2RjNTcwYzZlYzgz
ZDkxNzdjZDIzMDYxOWFhOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5CkBAIC0wLDAgKzEsNDQgQEAKKyMgQ29weXJp
Z2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cworCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0gaW1wb3J0IGV4ZWN1dGl2ZSwgZmlsZXN5c3RlbSwgcGxhdGZvcm1pbmZvLCB1c2Vy
LCB3b3Jrc3BhY2UKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2Ns
YXNzIFN5c3RlbUhvc3Qob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg
IHNlbGYuZXhlY3V0aXZlID0gZXhlY3V0aXZlLkV4ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuZmls
ZXN5c3RlbSA9IGZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCisgICAgICAgIHNlbGYudXNlciA9IHVz
ZXIuVXNlcigpCisgICAgICAgIHNlbGYucGxhdGZvcm0gPSBwbGF0Zm9ybWluZm8uUGxhdGZvcm1J
bmZvKCkKKyAgICAgICAgc2VsZi53b3Jrc3BhY2UgPSB3b3Jrc3BhY2UuV29ya3NwYWNlKHNlbGYu
ZmlsZXN5c3RlbSwgc2VsZi5leGVjdXRpdmUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdF9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3RfbW9jay5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM3
MGI2NWYxNDBmYzlmNTk5Y2M5ODEwYjY2Mzk5MzUwNTVhOTQzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3RfbW9jay5weQpA
QCAtMCwwICsxLDUwIEBACisjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBz
eXMKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBN
b2NrRXhlY3V0aXZlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2Nr
IGltcG9ydCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnBsYXRm
b3JtaW5mb19tb2NrIGltcG9ydCBNb2NrUGxhdGZvcm1JbmZvCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0udXNlcl9tb2NrIGltcG9ydCBNb2NrVXNlcgorZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLndvcmtzcGFjZV9tb2NrIGltcG9ydCBNb2NrV29ya3NwYWNlCisKK19sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBNb2NrU3lzdGVtSG9zdChvYmplY3Qp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dfZXhlY3V0aXZlPUZhbHNlLCBleGVjdXRpdmVf
dGhyb3dzX3doZW5fcnVuPU5vbmUpOgorICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IE1vY2tFeGVj
dXRpdmUoc2hvdWxkX2xvZz1sb2dfZXhlY3V0aXZlLCBzaG91bGRfdGhyb3dfd2hlbl9ydW49ZXhl
Y3V0aXZlX3Rocm93c193aGVuX3J1bikKKyAgICAgICAgc2VsZi5maWxlc3lzdGVtID0gTW9ja0Zp
bGVTeXN0ZW0oKQorICAgICAgICBzZWxmLnVzZXIgPSBNb2NrVXNlcigpCisgICAgICAgIHNlbGYu
cGxhdGZvcm0gPSBNb2NrUGxhdGZvcm1JbmZvKCkKKworICAgICAgICAjIEZJWE1FOiBTaG91bGQg
dGhpcyB0YWtlIHBvaW50ZXJzIHRvIHRoZSBmaWxlc3lzdGVtIGFuZCB0aGUgZXhlY3V0aXZlPwor
ICAgICAgICBzZWxmLndvcmtzcGFjZSA9IE1vY2tXb3Jrc3BhY2UoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118162</attachid>
            <date>2011-12-06 19:28:34 -0800</date>
            <delta_ts>2011-12-08 16:09:33 -0800</delta_ts>
            <desc>merge to r102207</desc>
            <filename>bug-72680-20111206192833.patch</filename>
            <type>text/plain</type>
            <size>10106</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MGEyN2JkZmQ5YmIyOTEwZWMzNTgxZGQ5M2JkZDRm
MDllMmEyYy4uM2ZlNTFlYjhmMTAxMzhjOTE1YmEzMjFiMzcwODc3MmUyZGZhNGY4YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIx
IEBACiAyMDExLTEyLTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIGNyZWF0ZSBhICJTeXN0ZW1Ib3N0IiBvYmplY3QgZm9yIHdlYmtpdHB5IHRvIHNsaW0g
ZG93biB0aGUgSG9zdCBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyNjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBjcmVhdGVzIGEgU3lzdGVtSG9zdCBvYmplY3QgdGhhdCBvdGhlciBv
YmplY3RzIHRoYXQgc2hvdWxkCisgICAgICAgIG9ubHkgaGF2ZSBkZXBlbmRlbmNpZXMgb24gZnVu
Y3Rpb25hbGl0eSBpbiB3ZWJraXRweS5jb21tb24uc3lzdGVtCisgICAgICAgIGNhbiB1c2U7IHRo
aXMgd2lsbCBhbGxvdyB0aGVtIHRvIG5vdCByZXF1aXJlIGEgZnVsbCBIb3N0LgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0X21vY2sucHk6IEFkZGVkLgorCisyMDExLTEy
LTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIGJpbmFy
aWVzIGluIHdlYmtpdC5neXAgc2hvdWxkIGJlIHNwbGl0IGludG8gYSBuZXcgZmlsZSB0byBicmVh
ayBjaXJjdWxhciBkZXBlbmRlbmNpZXMgb24gd2Via2l0X3N1cHBvcnQKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgyCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9ob3N0LnB5CmluZGV4IDZjY2RlNzNlYWM2YmQyYzk3Zjk4ZDRmMjExMDFmMjQy
ZmY3ZDhhNjQuLjZiMmU4OTMyZGRiMTk2ODlmZTE3ZDUwNzkwYjM0ZDcwNWRhNjU0MDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weQpAQCAtMzYsOCArMzYsOCBAQCBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3Rvcgog
ZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQgaW1wb3J0IGJ1Z3ppbGxhLCBidWlsZGJvdCwgd2ViCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuYnVpbGRib3QuY2hyb21pdW1idWlsZGJvdCBpbXBvcnQgQ2hyb21pdW1C
dWlsZEJvdAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBleGVjdXRpdmUsIGZp
bGVzeXN0ZW0sIHBsYXRmb3JtaW5mbywgdXNlciwgd29ya3NwYWNlCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZW52aXJvbm1lbnQgaW1wb3J0IEVudmlyb25tZW50Citmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAogZnJvbSB3ZWJraXRw
eS5jb21tb24ud2F0Y2hsaXN0LndhdGNobGlzdGxvYWRlciBpbXBvcnQgV2F0Y2hMaXN0TG9hZGVy
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0IFBvcnRGYWN0
b3J5CiAKQEAgLTQ1LDE1ICs0NSw5IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQu
ZmFjdG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKIAogCi1jbGFzcyBIb3N0KG9iamVjdCk6CitjbGFzcyBIb3N0KFN5c3RlbUhvc3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIyBUaGVzZSBiYXNpYyBlbnZpcm9ubWVu
dCBhYnN0cmFjdGlvbnMgc2hvdWxkIGJlIGEgc2VwYXJhdGUgbG93ZXItbGV2ZWwgb2JqZWN0Lgot
ICAgICAgICAjIEFsdGVybmF0aXZlbHkgdGhlIHJlc3Qgb2YgdGhlIG9iamVjdHMgaW4gSG9zdCBz
aG91bGQganVzdCBtb3ZlIHVwIHRvIGEgaGlnaGVyIGFic3RyYWN0aW9uLgotICAgICAgICBzZWxm
LmV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZS5FeGVjdXRpdmUoKQotICAgICAgICBzZWxmLmZpbGVzeXN0
ZW0gPSBmaWxlc3lzdGVtLkZpbGVTeXN0ZW0oKQotICAgICAgICBzZWxmLnVzZXIgPSB1c2VyLlVz
ZXIoKQotICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxhdGZvcm1pbmZvLlBsYXRmb3JtSW5mbyhz
ZWxmLmV4ZWN1dGl2ZSkKLSAgICAgICAgc2VsZi53b3Jrc3BhY2UgPSB3b3Jrc3BhY2UuV29ya3Nw
YWNlKHNlbGYuZmlsZXN5c3RlbSwgc2VsZi5leGVjdXRpdmUpCisgICAgICAgIFN5c3RlbUhvc3Qu
X19pbml0X18oc2VsZikKICAgICAgICAgc2VsZi53ZWIgPSB3ZWIuV2ViKCkKIAogICAgICAgICAj
IEZJWE1FOiBDaGVja291dCBzaG91bGQgb3duIHRoZSBzY20gb2JqZWN0LgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdF9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vaG9zdF9tb2NrLnB5CmluZGV4IGRmMmRhNGYzYThhMzc5YWQ3YTdm
YmYzZTZiYmE1NWM4MWMzOTVkODEuLjdkZWRiOGI3NTE0ODQ4YmJlMTgzNzE0MjI1MWUzNDI2OTk1
ZTY1NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3RfbW9j
ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHkKQEAg
LTMyLDMwICszMiwyMyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEuYnVnemls
bGFfbW9jayBpbXBvcnQgTW9ja0J1Z3ppbGxhCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVp
bGRib3QuYnVpbGRib3RfbW9jayBpbXBvcnQgTW9ja0J1aWxkQm90CiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5uZXQud2ViX21vY2sgaW1wb3J0IE1vY2tXZWIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5lbnZpcm9ubWVudCBpbXBvcnQgRW52aXJvbm1lbnQKLWZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZQotZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KLWZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5wbGF0Zm9ybWluZm9fbW9jayBpbXBvcnQgTW9ja1Bs
YXRmb3JtSW5mbwotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXJfbW9jayBpbXBvcnQg
TW9ja1VzZXIKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS53b3Jrc3BhY2VfbW9jayBpbXBv
cnQgTW9ja1dvcmtzcGFjZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3Rf
bW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLndhdGNobGlz
dC53YXRjaGxpc3RfbW9jayBpbXBvcnQgTW9ja1dhdGNoTGlzdAogCiAjIE5ldy1zdHlsZSBwb3J0
cyBuZWVkIHRvIG1vdmUgZG93biBpbnRvIHdlYmtpdHB5LmNvbW1vbi4KIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLnBvcnQuZmFjdG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkKIAogCi1jbGFzcyBN
b2NrSG9zdChvYmplY3QpOgorY2xhc3MgTW9ja0hvc3QoTW9ja1N5c3RlbUhvc3QpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dfZXhlY3V0aXZlPUZhbHNlLCBleGVjdXRpdmVfdGhyb3dzX3do
ZW5fcnVuPU5vbmUpOgotICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUoc2hv
dWxkX2xvZz1sb2dfZXhlY3V0aXZlLCBzaG91bGRfdGhyb3dfd2hlbl9ydW49ZXhlY3V0aXZlX3Ro
cm93c193aGVuX3J1bikKLSAgICAgICAgc2VsZi51c2VyID0gTW9ja1VzZXIoKQotICAgICAgICBz
ZWxmLnBsYXRmb3JtID0gTW9ja1BsYXRmb3JtSW5mbygpCi0gICAgICAgIHNlbGYud29ya3NwYWNl
ID0gTW9ja1dvcmtzcGFjZSgpCisgICAgICAgIE1vY2tTeXN0ZW1Ib3N0Ll9faW5pdF9fKHNlbGYs
IGxvZ19leGVjdXRpdmUsIGV4ZWN1dGl2ZV90aHJvd3Nfd2hlbl9ydW4pCiAgICAgICAgIHNlbGYu
d2ViID0gTW9ja1dlYigpCiAKICAgICAgICAgc2VsZi5fY2hlY2tvdXQgPSBNb2NrQ2hlY2tvdXQo
KQogICAgICAgICBzZWxmLl9zY20gPSBNb2NrU0NNKCkKICAgICAgICAgIyBWYXJpb3VzIHBpZWNl
cyBvZiBjb2RlICh3cm9uZ2x5KSBjYWxsIGZpbGVzeXN0ZW0uY2hkaXIoY2hlY2tvdXRfcm9vdCku
CiAgICAgICAgICMgTWFraW5nIHRoZSBjaGVja291dF9yb290IGV4aXN0IGluIHRoZSBtb2NrIGZp
bGVzeXN0ZW0gbWFrZXMgdGhhdCBjaGRpciBub3QgcmFpc2UuCi0gICAgICAgIHNlbGYuZmlsZXN5
c3RlbSA9IE1vY2tGaWxlU3lzdGVtKGRpcnM9c2V0KFtzZWxmLl9zY20uY2hlY2tvdXRfcm9vdF0p
KQorICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2VsZi5fc2Nt
LmNoZWNrb3V0X3Jvb3QpCiAKICAgICAgICAgc2VsZi5idWdzID0gTW9ja0J1Z3ppbGxhKCkKICAg
ICAgICAgc2VsZi5idWlsZGJvdCA9IE1vY2tCdWlsZEJvdCgpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NDk5
YzVhY2RjN2RkNzNhOWIxM2EzMjNjNzllN2EwNTdkOWIwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5weQpAQCAtMCww
ICsxLDQ0IEBACisjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJp
YnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzeXMKKwor
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBleGVjdXRpdmUsIGZpbGVzeXN0ZW0s
IHBsYXRmb3JtaW5mbywgdXNlciwgd29ya3NwYWNlCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKKworCitjbGFzcyBTeXN0ZW1Ib3N0KG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgorICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZS5FeGVjdXRpdmUo
KQorICAgICAgICBzZWxmLmZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVtLkZpbGVTeXN0ZW0oKQorICAg
ICAgICBzZWxmLnVzZXIgPSB1c2VyLlVzZXIoKQorICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxh
dGZvcm1pbmZvLlBsYXRmb3JtSW5mbyhzZWxmLmV4ZWN1dGl2ZSkKKyAgICAgICAgc2VsZi53b3Jr
c3BhY2UgPSB3b3Jrc3BhY2UuV29ya3NwYWNlKHNlbGYuZmlsZXN5c3RlbSwgc2VsZi5leGVjdXRp
dmUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lz
dGVtaG9zdF9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5
c3RlbWhvc3RfbW9jay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM3MGI2NWYxNDBmYzlmNTk5Y2M5ODEwYjY2
Mzk5MzUwNTVhOTQzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3N5c3RlbWhvc3RfbW9jay5weQpAQCAtMCwwICsxLDUwIEBACisjIENvcHly
aWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzeXMKKworZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQor
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnBsYXRmb3JtaW5mb19tb2NrIGltcG9ydCBNb2Nr
UGxhdGZvcm1JbmZvCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNlcl9tb2NrIGltcG9y
dCBNb2NrVXNlcgorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLndvcmtzcGFjZV9tb2NrIGlt
cG9ydCBNb2NrV29ya3NwYWNlCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykK
KworCitjbGFzcyBNb2NrU3lzdGVtSG9zdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dfZXhlY3V0aXZlPUZhbHNlLCBleGVjdXRpdmVfdGhyb3dzX3doZW5fcnVuPU5vbmUpOgor
ICAgICAgICBzZWxmLmV4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1sb2dfZXhl
Y3V0aXZlLCBzaG91bGRfdGhyb3dfd2hlbl9ydW49ZXhlY3V0aXZlX3Rocm93c193aGVuX3J1bikK
KyAgICAgICAgc2VsZi5maWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0ZW0oKQorICAgICAgICBzZWxm
LnVzZXIgPSBNb2NrVXNlcigpCisgICAgICAgIHNlbGYucGxhdGZvcm0gPSBNb2NrUGxhdGZvcm1J
bmZvKCkKKworICAgICAgICAjIEZJWE1FOiBTaG91bGQgdGhpcyB0YWtlIHBvaW50ZXJzIHRvIHRo
ZSBmaWxlc3lzdGVtIGFuZCB0aGUgZXhlY3V0aXZlPworICAgICAgICBzZWxmLndvcmtzcGFjZSA9
IE1vY2tXb3Jrc3BhY2UoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118483</attachid>
            <date>2011-12-08 16:09:37 -0800</date>
            <delta_ts>2011-12-08 16:09:37 -0800</delta_ts>
            <desc>move copy_current_environment to SystemHost, clean up</desc>
            <filename>bug-72680-20111208160936.patch</filename>
            <type>text/plain</type>
            <size>10954</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MGEyN2JkZmQ5YmIyOTEwZWMzNTgxZGQ5M2JkZDRm
MDllMmEyYy4uM2ZlNTFlYjhmMTAxMzhjOTE1YmEzMjFiMzcwODc3MmUyZGZhNGY4YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIx
IEBACiAyMDExLTEyLTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIGNyZWF0ZSBhICJTeXN0ZW1Ib3N0IiBvYmplY3QgZm9yIHdlYmtpdHB5IHRvIHNsaW0g
ZG93biB0aGUgSG9zdCBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyNjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBjcmVhdGVzIGEgU3lzdGVtSG9zdCBvYmplY3QgdGhhdCBvdGhlciBv
YmplY3RzIHRoYXQgc2hvdWxkCisgICAgICAgIG9ubHkgaGF2ZSBkZXBlbmRlbmNpZXMgb24gZnVu
Y3Rpb25hbGl0eSBpbiB3ZWJraXRweS5jb21tb24uc3lzdGVtCisgICAgICAgIGNhbiB1c2U7IHRo
aXMgd2lsbCBhbGxvdyB0aGVtIHRvIG5vdCByZXF1aXJlIGEgZnVsbCBIb3N0LgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0X21vY2sucHk6IEFkZGVkLgorCisyMDExLTEy
LTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIGJpbmFy
aWVzIGluIHdlYmtpdC5neXAgc2hvdWxkIGJlIHNwbGl0IGludG8gYSBuZXcgZmlsZSB0byBicmVh
ayBjaXJjdWxhciBkZXBlbmRlbmNpZXMgb24gd2Via2l0X3N1cHBvcnQKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgyCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9ob3N0LnB5CmluZGV4IDZjY2RlNzNlYWM2YmQyYzk3Zjk4ZDRmMjExMDFmMjQy
ZmY3ZDhhNjQuLmZmYzEzYmY5ODY4MzkxZDRiOWQ3NDUxOWNjYzUxNTQ2ZjBlZTgwZGEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weQpAQCAtMzYsOCArMzYsNyBAQCBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3Rvcgog
ZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQgaW1wb3J0IGJ1Z3ppbGxhLCBidWlsZGJvdCwgd2ViCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuYnVpbGRib3QuY2hyb21pdW1idWlsZGJvdCBpbXBvcnQgQ2hyb21pdW1C
dWlsZEJvdAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBleGVjdXRpdmUsIGZp
bGVzeXN0ZW0sIHBsYXRmb3JtaW5mbywgdXNlciwgd29ya3NwYWNlCi1mcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZW52aXJvbm1lbnQgaW1wb3J0IEVudmlyb25tZW50Citmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAogZnJvbSB3ZWJraXRw
eS5jb21tb24ud2F0Y2hsaXN0LndhdGNobGlzdGxvYWRlciBpbXBvcnQgV2F0Y2hMaXN0TG9hZGVy
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0IFBvcnRGYWN0
b3J5CiAKQEAgLTQ1LDE1ICs0NCw5IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQu
ZmFjdG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKIAogCi1jbGFzcyBIb3N0KG9iamVjdCk6CitjbGFzcyBIb3N0KFN5c3RlbUhvc3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIyBUaGVzZSBiYXNpYyBlbnZpcm9ubWVu
dCBhYnN0cmFjdGlvbnMgc2hvdWxkIGJlIGEgc2VwYXJhdGUgbG93ZXItbGV2ZWwgb2JqZWN0Lgot
ICAgICAgICAjIEFsdGVybmF0aXZlbHkgdGhlIHJlc3Qgb2YgdGhlIG9iamVjdHMgaW4gSG9zdCBz
aG91bGQganVzdCBtb3ZlIHVwIHRvIGEgaGlnaGVyIGFic3RyYWN0aW9uLgotICAgICAgICBzZWxm
LmV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZS5FeGVjdXRpdmUoKQotICAgICAgICBzZWxmLmZpbGVzeXN0
ZW0gPSBmaWxlc3lzdGVtLkZpbGVTeXN0ZW0oKQotICAgICAgICBzZWxmLnVzZXIgPSB1c2VyLlVz
ZXIoKQotICAgICAgICBzZWxmLnBsYXRmb3JtID0gcGxhdGZvcm1pbmZvLlBsYXRmb3JtSW5mbyhz
ZWxmLmV4ZWN1dGl2ZSkKLSAgICAgICAgc2VsZi53b3Jrc3BhY2UgPSB3b3Jrc3BhY2UuV29ya3Nw
YWNlKHNlbGYuZmlsZXN5c3RlbSwgc2VsZi5leGVjdXRpdmUpCisgICAgICAgIFN5c3RlbUhvc3Qu
X19pbml0X18oc2VsZikKICAgICAgICAgc2VsZi53ZWIgPSB3ZWIuV2ViKCkKIAogICAgICAgICAj
IEZJWE1FOiBDaGVja291dCBzaG91bGQgb3duIHRoZSBzY20gb2JqZWN0LgpAQCAtMTEyLDkgKzEw
NSw2IEBAIGNsYXNzIEhvc3Qob2JqZWN0KToKICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yLCBl
OgogICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ0ZhaWxlZCB0byBlbmdhZ2Ugc3ZuLmJhdCBX
aW5kb3dzIGhhY2suJykKIAotICAgIGRlZiBjb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBFbnZpcm9ubWVudChvcy5lbnZpcm9uLmNvcHkoKSkKLQogICAgIGRl
ZiBfaW5pdGlhbGl6ZV9zY20oc2VsZiwgcGF0Y2hfZGlyZWN0b3JpZXM9Tm9uZSk6CiAgICAgICAg
IGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgogICAgICAgICAgICAgc2VsZi5fZW5nYWdlX2F3
ZXNvbWVfd2luZG93c19oYWNrcygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9ob3N0X21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9ob3N0
X21vY2sucHkKaW5kZXggZGYyZGE0ZjNhOGEzNzlhZDdhN2ZiZjNlNmJiYTU1YzgxYzM5NWQ4MS4u
ZTZkNjMyNWJhNjAzMmRhYWVkZGQ2YWQ1YmQ0MzQ1NWIyYTk4YjEzNiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdF9tb2NrLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2hvc3RfbW9jay5weQpAQCAtMzEsMzEgKzMxLDIzIEBAIGZyb20g
d2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zY21fbW9jayBpbXBvcnQgTW9ja1NDTQogZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhLmJ1Z3ppbGxhX21vY2sgaW1wb3J0IE1vY2tC
dWd6aWxsYQogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1aWxkYm90LmJ1aWxkYm90X21vY2sg
aW1wb3J0IE1vY2tCdWlsZEJvdAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LndlYl9tb2NrIGlt
cG9ydCBNb2NrV2ViCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZW52aXJvbm1lbnQgaW1w
b3J0IEVudmlyb25tZW50Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21v
Y2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ucGxhdGZvcm1pbmZvX21vY2sgaW1wb3J0IE1vY2tQbGF0Zm9ybUluZm8KLWZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS51c2VyX21vY2sgaW1wb3J0IE1vY2tVc2VyCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0ud29ya3NwYWNlX21vY2sgaW1wb3J0IE1vY2tXb3Jrc3BhY2UKK2Zy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0
ZW1Ib3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi53YXRjaGxpc3Qud2F0Y2hsaXN0X21vY2sgaW1w
b3J0IE1vY2tXYXRjaExpc3QKIAogIyBOZXctc3R5bGUgcG9ydHMgbmVlZCB0byBtb3ZlIGRvd24g
aW50byB3ZWJraXRweS5jb21tb24uCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZh
Y3RvcnkgaW1wb3J0IFBvcnRGYWN0b3J5CiAKIAotY2xhc3MgTW9ja0hvc3Qob2JqZWN0KToKK2Ns
YXNzIE1vY2tIb3N0KE1vY2tTeXN0ZW1Ib3N0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
X2V4ZWN1dGl2ZT1GYWxzZSwgZXhlY3V0aXZlX3Rocm93c193aGVuX3J1bj1Ob25lKToKLSAgICAg
ICAgc2VsZi5leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlKHNob3VsZF9sb2c9bG9nX2V4ZWN1dGl2
ZSwgc2hvdWxkX3Rocm93X3doZW5fcnVuPWV4ZWN1dGl2ZV90aHJvd3Nfd2hlbl9ydW4pCi0gICAg
ICAgIHNlbGYudXNlciA9IE1vY2tVc2VyKCkKLSAgICAgICAgc2VsZi5wbGF0Zm9ybSA9IE1vY2tQ
bGF0Zm9ybUluZm8oKQotICAgICAgICBzZWxmLndvcmtzcGFjZSA9IE1vY2tXb3Jrc3BhY2UoKQor
ICAgICAgICBNb2NrU3lzdGVtSG9zdC5fX2luaXRfXyhzZWxmLCBsb2dfZXhlY3V0aXZlLCBleGVj
dXRpdmVfdGhyb3dzX3doZW5fcnVuKQogICAgICAgICBzZWxmLndlYiA9IE1vY2tXZWIoKQogCiAg
ICAgICAgIHNlbGYuX2NoZWNrb3V0ID0gTW9ja0NoZWNrb3V0KCkKICAgICAgICAgc2VsZi5fc2Nt
ID0gTW9ja1NDTSgpCiAgICAgICAgICMgVmFyaW91cyBwaWVjZXMgb2YgY29kZSAod3JvbmdseSkg
Y2FsbCBmaWxlc3lzdGVtLmNoZGlyKGNoZWNrb3V0X3Jvb3QpLgogICAgICAgICAjIE1ha2luZyB0
aGUgY2hlY2tvdXRfcm9vdCBleGlzdCBpbiB0aGUgbW9jayBmaWxlc3lzdGVtIG1ha2VzIHRoYXQg
Y2hkaXIgbm90IHJhaXNlLgotICAgICAgICBzZWxmLmZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3Rl
bShkaXJzPXNldChbc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3RdKSkKKyAgICAgICAgc2VsZi5maWxl
c3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX3NjbS5jaGVja291dF9yb290KQogCiAg
ICAgICAgIHNlbGYuYnVncyA9IE1vY2tCdWd6aWxsYSgpCiAgICAgICAgIHNlbGYuYnVpbGRib3Qg
PSBNb2NrQnVpbGRCb3QoKQpAQCAtNjcsOSArNTksNiBAQCBjbGFzcyBNb2NrSG9zdChvYmplY3Qp
OgogCiAgICAgICAgIHNlbGYuX3dhdGNoX2xpc3QgPSBNb2NrV2F0Y2hMaXN0KCkKIAotICAgIGRl
ZiBjb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoc2VsZik6Ci0gICAgICAgIHJldHVybiBFbnZpcm9u
bWVudCh7Ik1PQ0tfRU5WSVJPTl9DT1BZIjogJzEnfSkKLQogICAgIGRlZiBfaW5pdGlhbGl6ZV9z
Y20oc2VsZiwgcGF0Y2hfZGlyZWN0b3JpZXM9Tm9uZSk6CiAgICAgICAgIHBhc3MKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3lzdGVtaG9zdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Yjg0YmJkNDNiZmEyNjQ5NzQ0MjVjNTIyNmMwZmE5NjU1ZGIwZmQwCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N5c3RlbWhv
c3QucHkKQEAgLTAsMCArMSw0MyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGVudmlyb25tZW50LCBleGVjdXRpdmUs
IGZpbGVzeXN0ZW0sIHBsYXRmb3JtaW5mbywgdXNlciwgd29ya3NwYWNlCisKKworY2xhc3MgU3lz
dGVtSG9zdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5l
eGVjdXRpdmUgPSBleGVjdXRpdmUuRXhlY3V0aXZlKCkKKyAgICAgICAgc2VsZi5maWxlc3lzdGVt
ID0gZmlsZXN5c3RlbS5GaWxlU3lzdGVtKCkKKyAgICAgICAgc2VsZi51c2VyID0gdXNlci5Vc2Vy
KCkKKyAgICAgICAgc2VsZi5wbGF0Zm9ybSA9IHBsYXRmb3JtaW5mby5QbGF0Zm9ybUluZm8oc2Vs
Zi5leGVjdXRpdmUpCisgICAgICAgIHNlbGYud29ya3NwYWNlID0gd29ya3NwYWNlLldvcmtzcGFj
ZShzZWxmLmZpbGVzeXN0ZW0sIHNlbGYuZXhlY3V0aXZlKQorCisgICAgZGVmIGNvcHlfY3VycmVu
dF9lbnZpcm9ubWVudChzZWxmKToKKyAgICAgICAgcmV0dXJuIGVudmlyb25tZW50LkVudmlyb25t
ZW50KG9zLmVudmlyb24uY29weSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL3N5c3RlbWhvc3RfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0X21vY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmODk3MmJm
MmMxNjNlOTFmZGI1MDdjNmE2NTVjYTk4MDEzYTVhOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zeXN0ZW1ob3N0X21vY2sucHkKQEAgLTAs
MCArMSw0OCBAQAorICAgICMgQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgICAgIworICAgICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgICAgIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgICAgIyBtZXQ6CisgICAgIworICAgICMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAgICAj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAgICAjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAgICAjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAgICAjIGRpc3RyaWJ1dGlv
bi4KKyAgICAjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAgICAjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgICAgIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICAgICMKKyAgICAjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAgICAjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgICAgIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAgICAjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgICAgIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAgICAjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAgICAjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICAgICMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgICAgIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgICAgIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAgICAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5lbnZp
cm9ubWVudCBpbXBvcnQgRW52aXJvbm1lbnQKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5l
eGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZQorZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5wbGF0Zm9ybWluZm9fbW9jayBpbXBvcnQgTW9ja1BsYXRmb3JtSW5m
bworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXJfbW9jayBpbXBvcnQgTW9ja1VzZXIK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS53b3Jrc3BhY2VfbW9jayBpbXBvcnQgTW9ja1dv
cmtzcGFjZQorCisKK2NsYXNzIE1vY2tTeXN0ZW1Ib3N0KG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ19leGVjdXRpdmU9RmFsc2UsIGV4ZWN1dGl2ZV90aHJvd3Nfd2hlbl9ydW49
Tm9uZSk6CisgICAgICAgIHNlbGYuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZShzaG91bGRfbG9n
PWxvZ19leGVjdXRpdmUsIHNob3VsZF90aHJvd193aGVuX3J1bj1leGVjdXRpdmVfdGhyb3dzX3do
ZW5fcnVuKQorICAgICAgICBzZWxmLmZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSgpCisgICAg
ICAgIHNlbGYudXNlciA9IE1vY2tVc2VyKCkKKyAgICAgICAgc2VsZi5wbGF0Zm9ybSA9IE1vY2tQ
bGF0Zm9ybUluZm8oKQorCisgICAgICAgICMgRklYTUU6IFNob3VsZCB0aGlzIHRha2UgcG9pbnRl
cnMgdG8gdGhlIGZpbGVzeXN0ZW0gYW5kIHRoZSBleGVjdXRpdmU/CisgICAgICAgIHNlbGYud29y
a3NwYWNlID0gTW9ja1dvcmtzcGFjZSgpCisKKyAgICBkZWYgY29weV9jdXJyZW50X2Vudmlyb25t
ZW50KHNlbGYpOgorICAgICAgICByZXR1cm4gRW52aXJvbm1lbnQoeyJNT0NLX0VOVklST05fQ09Q
WSI6ICcxJ30pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>