<?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>32635</bug_id>
          
          <creation_ts>2009-12-16 15:09:08 -0800</creation_ts>
          <short_desc>bugzilla-tool should not require users to install mechanize</short_desc>
          <delta_ts>2010-01-04 13:27:43 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32728</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>172547</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-16 15:09:08 -0800</bug_when>
    <thetext>bugzilla-tool should not require users to install mechanize

First step is to centralize our handling of mechanize imports.
Second step is to make a magical way to have it auto-downloaded.

(Another alternative would be to check in a copy of mechanize, but it&apos;s *huge* and we don&apos;t have a ThirdParty directory to check it in to.)  This lazy-download approach is slightly more error-prone than checking in a copy, but should still work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172549</commentid>
    <comment_count>1</comment_count>
      <attachid>45020</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-16 15:10:19 -0800</bug_when>
    <thetext>Created attachment 45020
Step one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172550</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-16 15:13:07 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45020 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172566</commentid>
    <comment_count>3</comment_count>
      <attachid>45020</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-16 16:28:21 -0800</bug_when>
    <thetext>Comment on attachment 45020
Step one

I&apos;ll re-open the bug after the cq closes it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172574</commentid>
    <comment_count>4</comment_count>
      <attachid>45020</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-16 16:40:17 -0800</bug_when>
    <thetext>Comment on attachment 45020
Step one

Clearing flags on attachment: 45020

Committed r52228: &lt;http://trac.webkit.org/changeset/52228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172575</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-16 16:40:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172578</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-16 16:41:44 -0800</bug_when>
    <thetext>I&apos;m going to be a hypocrite and re-use this bug for the second step if I can ever get it working...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173284</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-18 13:03:38 -0800</bug_when>
    <thetext>So looks like step two could be done via easy_install with a --prefix directory.

Something like this:

PYTHONPATH=./webkit_module_cache/lib/python2.5/site-packages easy_install --prefix ./webkit_module_cache mechanize

and then we would edit sys.path to include ./webkit_module_cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173323</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-18 13:57:50 -0800</bug_when>
    <thetext>I think we can use http://pypi.python.org/pypi/autoinstall/0.1a2 to solve this problem.  I&apos;ve emailed the author about licensing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173437</commentid>
    <comment_count>9</comment_count>
      <attachid>45215</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-18 17:50:05 -0800</bug_when>
    <thetext>Created attachment 45215
work in progress patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173438</commentid>
    <comment_count>10</comment_count>
      <attachid>45215</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-18 17:50:56 -0800</bug_when>
    <thetext>Comment on attachment 45215
work in progress patch

Sorry, forgot --no-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173439</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-18 17:52:05 -0800</bug_when>
    <thetext>I&apos;ve spoken with the autoinstall.py author.  His intent was to make it clear that it is available under a BSD license, however he&apos;s agreed to release a new version which makes that explicit.  I also have a local patch to send him as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175708</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-29 14:30:50 -0800</bug_when>
    <thetext>A new autoinstall module has been released:
 http://pypi.python.org/pypi/autoinstall/0.2
which clarifies that it&apos;s BSD licensed code.  This should be easy to finish, I just need to take a few moments and do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176582</commentid>
    <comment_count>13</comment_count>
      <attachid>45777</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 01:14:13 -0800</bug_when>
    <thetext>Created attachment 45777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176584</commentid>
    <comment_count>14</comment_count>
      <attachid>45779</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 01:17:42 -0800</bug_when>
    <thetext>Created attachment 45779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176590</commentid>
    <comment_count>15</comment_count>
      <attachid>45779</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 01:25:23 -0800</bug_when>
    <thetext>Comment on attachment 45779
Patch

This sauce is awesome</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176602</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 01:42:21 -0800</bug_when>
    <thetext>Committed r52718: &lt;http://trac.webkit.org/changeset/52718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176618</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 02:24:47 -0800</bug_when>
    <thetext>Committed r52723: &lt;http://trac.webkit.org/changeset/52723&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45020</attachid>
            <date>2009-12-16 15:10:19 -0800</date>
            <delta_ts>2009-12-18 17:49:59 -0800</delta_ts>
            <desc>Step one</desc>
            <filename>bug-32635-20091216151017.patch</filename>
            <type>text/plain</type>
            <size>4461</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBhZGIxYjk2Li41MmNkN2I3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMDktMTIt
MTYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGJ1Z3ppbGxhLXRvb2wgc2hvdWxkIG5vdCByZXF1
aXJlIHVzZXJzIHRvIGluc3RhbGwgbWVjaGFuaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjYzNQorCisgICAgICAgIENlbnRyYWxpemUgb3VyIGlt
cG9ydCBsb2dpYy4KKworICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weTogdXNl
IHdlYmtpdF9tZWNoYW5pemUKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvc3RhdHVzYm90LnB5
OiB1c2Ugd2Via2l0X21lY2hhbml6ZQorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy93ZWJraXRf
bWVjaGFuaXplLnB5OiBBZGRlZC4KKworMjAwOS0xMi0xNiAgRXJpYyBTZWlkZWwgIDxlcmljQHdl
YmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KIAogICAgICAgICBH
ZW5lcmFsaXplIGNvbW1pdC1xdWV1ZSByZWNlbnQgc3RhdHVzIHBhZ2UgZm9yIGFsbCBxdWV1ZXMK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQppbmRleCBhNTY3M2FhLi5iMzA2
NDgzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CkBAIC00NCwxOSAr
NDQsNyBAQCBmcm9tIG1vZHVsZXMuY3JlZGVudGlhbHMgaW1wb3J0IENyZWRlbnRpYWxzCiAjIHNv
IHRoaXMgaW1wb3J0IHNob3VsZCBhbHdheXMgc3VjY2VlZC4KIGZyb20gLkJlYXV0aWZ1bFNvdXAg
aW1wb3J0IEJlYXV0aWZ1bFNvdXAsIFNvdXBTdHJhaW5lcgogCi10cnk6Ci0gICAgZnJvbSBtZWNo
YW5pemUgaW1wb3J0IEJyb3dzZXIKLWV4Y2VwdCBJbXBvcnRFcnJvciwgZToKLSAgICBwcmludCAi
IiIKLW1lY2hhbml6ZSBpcyByZXF1aXJlZC4KLQotVG8gaW5zdGFsbDoKLXN1ZG8gZWFzeV9pbnN0
YWxsIG1lY2hhbml6ZQotCi1PciBmcm9tIHRoZSB3ZWI6Ci1odHRwOi8vd3d3c2VhcmNoLnNvdXJj
ZWZvcmdlLm5ldC9tZWNoYW5pemUvCi0iIiIKLSAgICBleGl0KDEpCitmcm9tIG1vZHVsZXMud2Vi
a2l0X21lY2hhbml6ZSBpbXBvcnQgQnJvd3NlcgogCiBkZWYgcGFyc2VfYnVnX2lkKG1lc3NhZ2Up
OgogICAgIG1hdGNoID0gcmUuc2VhcmNoKCJodHRwXDovL3dlYmtpdFwub3JnL2IvKD9QPGJ1Z19p
ZD5cZCspIiwgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxl
cy9zdGF0dXNib3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc3RhdHVzYm90LnB5
CmluZGV4IDM4OTlkNTMuLjVmMmRkZTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
bW9kdWxlcy9zdGF0dXNib3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3N0
YXR1c2JvdC5weQpAQCAtMjksMjUgKzI5LDEyIEBACiAjIFdlYktpdCdzIFB5dGhvbiBtb2R1bGUg
Zm9yIGludGVyYWN0aW5nIHdpdGggdGhlIENvbW1pdCBRdWV1ZSBzdGF0dXMgcGFnZS4KIAogZnJv
bSBtb2R1bGVzLmxvZ2dpbmcgaW1wb3J0IGxvZworZnJvbSBtb2R1bGVzLndlYmtpdF9tZWNoYW5p
emUgaW1wb3J0IEJyb3dzZXIKIAogIyBXZWJLaXQgaW5jbHVkZXMgYSBidWlsdCBjb3B5IG9mIEJl
YXV0aWZ1bFNvdXAgaW4gU2NyaXB0cy9tb2R1bGVzCiAjIHNvIHRoaXMgaW1wb3J0IHNob3VsZCBh
bHdheXMgc3VjY2VlZC4KIGZyb20gLkJlYXV0aWZ1bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAK
IAotdHJ5OgotICAgIGZyb20gbWVjaGFuaXplIGltcG9ydCBCcm93c2VyCi1leGNlcHQgSW1wb3J0
RXJyb3IsIGU6Ci0gICAgcHJpbnQgIiIiCi1tZWNoYW5pemUgaXMgcmVxdWlyZWQuCi0KLVRvIGlu
c3RhbGw6Ci1zdWRvIGVhc3lfaW5zdGFsbCBtZWNoYW5pemUKLQotT3IgZnJvbSB0aGUgd2ViOgot
aHR0cDovL3d3d3NlYXJjaC5zb3VyY2Vmb3JnZS5uZXQvbWVjaGFuaXplLwotIiIiCi0gICAgZXhp
dCgxKQotCiBpbXBvcnQgdXJsbGliMgogCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvbW9kdWxlcy93ZWJraXRfbWVjaGFuaXplLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1
bGVzL3dlYmtpdF9tZWNoYW5pemUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWQyZDIzOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxl
cy93ZWJraXRfbWVjaGFuaXplLnB5CkBAIC0wLDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIAorIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisj
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorIworIyBBIHB5dGhvbiBzaGltIGZvciBpbXBvcnRpbmcgbWVjaGFuaXplLgorCisjIEZJWE1F
OiBXZSBzaG91bGQgdHJ5IHRvIGRvd25sb2FkIGEgY29weSBpbnN0ZWFkIG9mIHJlcXVpcmluZyBy
b290IGFjY2Vzcy4KK3RyeToKKyAgICBmcm9tIG1lY2hhbml6ZSBpbXBvcnQgQnJvd3NlcgorZXhj
ZXB0IEltcG9ydEVycm9yLCBlOgorICAgIHByaW50ICIiIgorbWVjaGFuaXplIGlzIHJlcXVpcmVk
LgorCitUbyBpbnN0YWxsOgorc3VkbyBlYXN5X2luc3RhbGwgbWVjaGFuaXplCisKK09yIGZyb20g
dGhlIHdlYjoKK2h0dHA6Ly93d3dzZWFyY2guc291cmNlZm9yZ2UubmV0L21lY2hhbml6ZS8KKyIi
IgorICAgIGV4aXQoMSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45215</attachid>
            <date>2009-12-18 17:50:05 -0800</date>
            <delta_ts>2010-01-04 01:14:08 -0800</delta_ts>
            <desc>work in progress patch</desc>
            <filename>bug-32635-20091218195003.patch</filename>
            <type>text/plain</type>
            <size>9925</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy90aGlyZF9wYXJ0eS9fX2lu
aXRfXy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy90aGlyZF9wYXJ0eS9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjY1YmVlCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3RoaXJkX3BhcnR5L19faW5p
dF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgUmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhp
cyBkaXJlY3RvcnkgZm9yIG1vZHVsZSBmaWxlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9tb2R1bGVzL3RoaXJkX3BhcnR5L2F1dG9pbnN0YWxsLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9tb2R1bGVzL3RoaXJkX3BhcnR5L2F1dG9pbnN0YWxsLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmI5Y2M0ODgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL21vZHVsZXMvdGhpcmRfcGFydHkvYXV0b2luc3RhbGwucHkKQEAgLTAsMCArMSwy
ODQgQEAKKyIiIlwKK3BhY2thZ2UgbG9hZGVyIGZvciBhdXRvIGluc3RhbGxpbmcgUHl0aG9uIHBh
Y2thZ2VzLgorCitBIHBhY2thZ2UgbG9hZGVyIGluIHRoZSBzcGlyaXQgb2YgWmVybyBJbnN0YWxs
IHRoYXQgY2FuIGJlIHVzZWQgdG8KK2luamVjdCBkZXBlbmRlbmNpZXMgaW50byB0aGUgaW1wb3J0
IHByb2Nlc3MuIAorCisKK1RvIGluc3RhbGw6OgorCisgICAgZWFzeV9pbnN0YWxsIC1VIGF1dG9p
bnN0YWxsCisKKyAgICAgIG9yIAorCisgICAgZG93bmxvYWQsIHVucGFjaywgcHl0aG9uIHNldHVw
LnB5IGluc3RhbGwKKworICAgICAgb3IgCisKKyAgICB0cnkgdGhlIGJvb3RzdHJhcCBsb2FkZXIu
IFNlZSBiZWxvdy4KKworCitUbyB1c2U6OgorCisgICAgIyBZb3UgY2FuIGJpbmQgYW55IHBhY2th
Z2UgbmFtZSB0byBhIFVSTCBwb2ludGluZyB0byBzb21ldGhpbmcKKyAgICAjIHRoYXQgY2FuIGJl
IGltcG9ydGVkIHVzaW5nIHRoZSB6aXBpbXBvcnRlci4KKworICAgIGF1dG9pbnN0YWxsLmJpbmQo
InB5bWFyYyIsICJodHRwOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzIuNS9wL3B5bWFyYy9w
eW1hcmMtMi4xLXB5Mi41LmVnZyIpCisKKyAgICBpbXBvcnQgcHltYXJjCisKKyAgICBwcmludCBw
eW1hcmMuX192ZXJzaW9uX18sIHB5bWFyYy5fX2ZpbGVfXworCisgICAgCitDaGFuZ2Vsb2c6Ogor
CistIGFkZGVkIHN1cHBvcnQgZm9yIG5vbiB0b3AgbGV2ZWwgcGFja2FnZXMuCistIGNhY2hlIGZp
bGVzIG5vdyB1c2UgZmlsZW5hbWUgcGFydCBmcm9tIFVSTC4KKworVE9ETzo6CisKKy0gYSBtb3Jl
IGZpdHRpbmcgbmFtZQorLSBhIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnRlbmRlZCB1c2UgY2FzZQor
LSBhZGRyZXNzIG90aGVyIGlzc3VlcyBwb2ludGVkIG91dCBpbjoKKworICAgIGh0dHA6Ly9tYWls
LnB5dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGhvbi1kZXYvMjAwOC1NYXJjaC8wNzc5MjYuaHRtbAor
CitTY3JpYmJsZXM6OgorCitwdWxsIHZzLiBwdXNoCit1c2VyIHZzLiBzeXN0ZW0KK3dlYiB2cy4g
ZmlsZXN5c3RlbQorYXV0byB2cy4gbWFudWFsCisKK21hbmFnZSBkZXZlbG9wbWVudCBzYW5kYm94
ZXMKKworb3B0aW9uYWwgaW50ZXJmYWNlcy4uLgorCisgICAgZGVmIGdldF9kYXRhKHBhdGhuYW1l
KSAtPiBzdHJpbmcgd2l0aCBmaWxlIGRhdGEuCisKKyAgICBSZXR1cm4gdGhlIGRhdGEgYXNzb2Np
YXRlZCB3aXRoICdwYXRobmFtZScuIFJhaXNlIElPRXJyb3IgaWYKKyAgICB0aGUgZmlsZSB3YXNu
J3QgZm91bmQuIik7CisKKyAgICBkZWYgaXNfcGFja2FnZSwKKyAgICAiaXNfcGFja2FnZShmdWxs
bmFtZSkgLT4gYm9vbC4KKworICAgIFJldHVybiBUcnVlIGlmIHRoZSBtb2R1bGUgc3BlY2lmaWVk
IGJ5IGZ1bGxuYW1lIGlzIGEgcGFja2FnZS4KKyAgICBSYWlzZSBaaXBJbXBvcnRFcnJvciBpcyB0
aGUgbW9kdWxlIGNvdWxkbid0IGJlIGZvdW5kLiIpOworCisgICAgZGVmIGdldF9jb2RlLAorICAg
ICJnZXRfY29kZShmdWxsbmFtZSkgLT4gY29kZSBvYmplY3QuCisKKyAgICBSZXR1cm4gdGhlIGNv
ZGUgb2JqZWN0IGZvciB0aGUgc3BlY2lmaWVkIG1vZHVsZS4gUmFpc2UgWmlwSW1wb3J0RXJyb3IK
KyAgICBpcyB0aGUgbW9kdWxlIGNvdWxkbid0IGJlIGZvdW5kLiIpOworCisgICAgZGVmIGdldF9z
b3VyY2UsCisgICAgImdldF9zb3VyY2UoZnVsbG5hbWUpIC0+IHNvdXJjZSBzdHJpbmcuCisKKyAg
ICBSZXR1cm4gdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIG1vZHVsZS4gUmFpc2Ug
WmlwSW1wb3J0RXJyb3IKKyAgICBpcyB0aGUgbW9kdWxlIGNvdWxkbid0IGJlIGZvdW5kLCByZXR1
cm4gTm9uZSBpZiB0aGUgYXJjaGl2ZSBkb2VzCisgICAgY29udGFpbiB0aGUgbW9kdWxlLCBidXQg
aGFzIG5vIHNvdXJjZSBmb3IgaXQuIik7CisKKworQXV0b2luc3RhbGwgY2FuIGFsc28gYmUgYm9v
dHN0cmFwZWQgd2l0aCB0aGUgbmFzY2VudCBwYWNrYWdlIGxvYWRlcgorYm9vdHN0cmFwIG1vZHVs
ZS4gRm9yIGV4YW1wbGU6OgorCisgICAgIyAgb3IgdmlhIHRoZSBib290c3RyYXAKKyAgICAjIGxv
YWRlci4KKworICAgIHRyeToKKyAgICAgICAgX3ZlcnNpb24gPSAiMC4xYTIiCisgICAgICAgIGlt
cG9ydCBhdXRvaW5zdGFsbAorICAgICAgICBpZiBhdXRvaW5zdGFsbC5fX3ZlcnNpb25fXyAhPSBf
dmVyc2lvbjoKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJBIGRpZmZlcmVudCB2ZXJz
aW9uIHRoYW4gZXhwZWN0ZWQgZm91bmQuIikKKyAgICBleGNlcHQgSW1wb3J0RXJyb3IsIGU6Cisg
ICAgICAgICMgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL3NhbmRib3gvdHJ1bmsvYm9v
dHN0cmFwL2Jvb3RzdHJhcC5weQorICAgICAgICBpbXBvcnQgYm9vdHN0cmFwIAorICAgICAgICBw
eXBpID0gImh0dHA6Ly9weXBpLnB5dGhvbi5vcmciCisgICAgICAgIGRpciA9ICJwYWNrYWdlcy9z
b3VyY2UvYS9hdXRvaW5zdGFsbCIKKyAgICAgICAgdXJsID0gIiVzLyVzL2F1dG9pbnN0YWxsLSVz
LnRhci5neiIgJSAocHlwaSwgZGlyLCBfdmVyc2lvbikKKyAgICAgICAgYm9vdHN0cmFwLm1haW4o
KHVybCwpKQorICAgICAgICBpbXBvcnQgYXV0b2luc3RhbGwKKworUmVmZXJlbmNlczo6CisKKyAg
aHR0cDovLzBpbnN0YWxsLm5ldC8KKyAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3Bl
cC0wMzAyLworICBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvc2FuZGJveC90cnVuay9p
bXBvcnRfaW5fcHkKKyAgaHR0cDovLzBpbnN0YWxsLm5ldC9pbmplY3Rvci1maW5kLmh0bWwKKyAg
aHR0cDovL3Jvc2NpZHVzLmNvbS9kZXNrdG9wL25vZGUvOTAzCisKKyIiIgorCitfX3ZlcnNpb25f
XyA9ICIwLjFhMiIKK19fZG9jZm9ybWF0X18gPSAicmVzdHJ1Y3R1cmVkdGV4dCBlbiIKKworaW1w
b3J0IG9zCitpbXBvcnQgbmV3CitpbXBvcnQgc3lzCitpbXBvcnQgdXJsbGliCitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgemlwaW1wb3J0CisKK2NvbnNvbGUgPSBsb2dn
aW5nLlN0cmVhbUhhbmRsZXIoKQorY29uc29sZS5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQorIyBz
ZXQgYSBmb3JtYXQgd2hpY2ggaXMgc2ltcGxlciBmb3IgY29uc29sZSB1c2UKK2Zvcm1hdHRlciA9
IGxvZ2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpLTEyczogJShsZXZlbG5hbWUpLThzICUobWVzc2Fn
ZSlzJykKKyMgdGVsbCB0aGUgaGFuZGxlciB0byB1c2UgdGhpcyBmb3JtYXQKK2NvbnNvbGUuc2V0
Rm9ybWF0dGVyKGZvcm1hdHRlcikKKyMgYWRkIHRoZSBoYW5kbGVyIHRvIHRoZSByb290IGxvZ2dl
cgorCitfbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCitfbG9nZ2VyLmFkZEhh
bmRsZXIoY29uc29sZSkKKworCitfaW1wb3J0ZXIgPSBOb25lCisKK2RlZiBfZ2V0SW1wb3J0ZXIo
KToKKyAgICBnbG9iYWwgX2ltcG9ydGVyCisgICAgaWYgX2ltcG9ydGVyIGlzIE5vbmU6CisgICAg
ICAgIF9pbXBvcnRlciA9IEltcG9ydGVyKCkKKyAgICAgICAgc3lzLm1ldGFfcGF0aC5hcHBlbmQo
X2ltcG9ydGVyKQorICAgIHJldHVybiBfaW1wb3J0ZXIKKworZGVmIGJpbmQocGFja2FnZV9uYW1l
LCB1cmwsIHppcF9zdWJwYXRoPU5vbmUpOgorICAgICIiImJpbmQgYSB0b3AgbGV2ZWwgcGFja2Fn
ZSBuYW1lIHRvIGEgVVJMLgorCisgICAgVGhlIHBhY2thZ2UgbmFtZSBzaG91bGQgYmUgYSBwYWNr
YWdlIG5hbWUgYW5kIHRoZSB1cmwgc2hvdWxkIGJlIGEKKyAgICB1cmwgdG8gc29tZXRoaW5nIHRo
YXQgY2FuIGJlIGltcG9ydGVkIHVzaW5nIHRoZSB6aXBpbXBvcnRlci4KKworICAgIE9wdGlvbmFs
IHppcF9zdWJwYXRoIHBhcmFtZXRlciBhbGxvd3Mgc2VhcmNoaW5nIGZvciBtb2R1bGVzCisgICAg
YmVsb3cgdGhlIHJvb3QgbGV2ZWwgb2YgdGhlIHppcCBmaWxlLgorICAgICIiIgorICAgIF9nZXRJ
bXBvcnRlcigpLmJpbmQocGFja2FnZV9uYW1lLCB1cmwsIHppcF9zdWJwYXRoKQorCisKK2NsYXNz
IENhY2hlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGlyZWN0b3J5PU5vbmUp
OgorICAgICAgICBzZWxmLmRpcmVjdG9yeSA9IGRpcmVjdG9yeSBvciAiLi9hdXRvaW5zdGFsbC5j
YWNoZS5kLyIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3Rz
KHNlbGYuZGlyZWN0b3J5KToKKyAgICAgICAgICAgICAgICBfbG9nZ2VyLmRlYnVnKCJDcmVhdGlu
ZyBjYWNoZSBkaXJlY3RvcnkgJyVzJy4iICUgc2VsZi5kaXJlY3RvcnkpCisgICAgICAgICAgICAg
ICAgb3MubWtkaXIoc2VsZi5kaXJlY3RvcnkpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGVy
cjoKKyAgICAgICAgICAgIF9sb2dnZXIuZXhjZXB0aW9uKGVycikKKyAgICAgICAgICAgIHNlbGYu
Y2FjaGVfZGlyZWN0cnkgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgX2xvZ2dlci5pbmZv
KCJVc2luZyBjYWNoZSBkaXJlY3RvcnkgJyVzJy4iICUgc2VsZi5kaXJlY3RvcnkpCisgICAgCisg
ICAgZGVmIGdldChzZWxmLCB1cmwpOgorICAgICAgICBfbG9nZ2VyLmluZm8oIkdldHRpbmcgJyVz
JyBmcm9tIGNhY2hlLiIgJSB1cmwpCisgICAgICAgIGZpbGVuYW1lID0gdXJsLnJzcGxpdCgiLyIp
Wy0xXQorCisgICAgICAgICMgc28gdGhhdCBzb3VyY2UgdXJsIGlzIHNpZ25pZmljYW50IGluIGRl
dGVybWluaW5nIGNhY2hlIGhpdHMKKyAgICAgICAgZCA9IG9zLnBhdGguam9pbihzZWxmLmRpcmVj
dG9yeSwgIiVzIiAlIGhhc2godXJsKSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGQp
OgorICAgICAgICAgICAgb3MubWtkaXIoZCkKKworICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGgu
am9pbihkLCBmaWxlbmFtZSkgCisKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZmlsZW5hbWUp
OgorICAgICAgICAgICAgX2xvZ2dlci5kZWJ1ZygiLi4uIGFscmVhZHkgY2FjaGVkIGluIGZpbGUg
JyVzJy4iICUgZmlsZW5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBfbG9nZ2VyLmRl
YnVnKCIuLi4gbm90IGluIGNhY2hlLiBDYWNoaW5nIGluICclcycuIiAlIGZpbGVuYW1lKQorICAg
ICAgICAgICAgc3RyZWFtID0gZmlsZShmaWxlbmFtZSwgIndiIikKKyAgICAgICAgICAgIHNlbGYu
ZG93bmxvYWQodXJsLCBzdHJlYW0pCisgICAgICAgICAgICBzdHJlYW0uY2xvc2UoKQorICAgICAg
ICByZXR1cm4gZmlsZW5hbWUKKworICAgIGRlZiBkb3dubG9hZChzZWxmLCB1cmwsIHN0cmVhbSk6
CisgICAgICAgIF9sb2dnZXIuaW5mbygiRG93bmxvYWRpbmc6ICVzIiAlIHVybCkKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgbmV0c3RyZWFtID0gdXJsbGliLnVybG9wZW4odXJsKQorICAgICAg
ICAgICAgY29kZSA9IDIwMAorICAgICAgICAgICAgaWYgaGFzYXR0cihuZXRzdHJlYW0sICJnZXRj
b2RlIik6CisgICAgICAgICAgICAgICAgY29kZSA9IG5ldHN0cmVhbS5nZXRjb2RlKCkKKyAgICAg
ICAgICAgIGlmIG5vdCAyMDAgPD0gY29kZSA8IDMwMDoKKyAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJIVFRQIEVycm9yIGNvZGUgJXMiICUgY29kZSkKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZXJyOgorICAgICAgICAgICAgX2xvZ2dlci5leGNlcHRpb24oZXJyKQorCisgICAg
ICAgIEJVRlNJWkUgPSAyKioxMyAgIyA4S0IKKyAgICAgICAgc2l6ZSA9IDAKKyAgICAgICAgd2hp
bGUgVHJ1ZToKKyAgICAgICAgICAgIGRhdGEgPSBuZXRzdHJlYW0ucmVhZChCVUZTSVpFKQorICAg
ICAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg
IHN0cmVhbS53cml0ZShkYXRhKQorICAgICAgICAgICAgc2l6ZSArPSBsZW4oZGF0YSkKKyAgICAg
ICAgbmV0c3RyZWFtLmNsb3NlKCkKKyAgICAgICAgX2xvZ2dlci5pbmZvKCJEb3dubG9hZGVkICVk
IGJ5dGVzLiIgJSBzaXplKQorCisKK2NsYXNzIEltcG9ydGVyKG9iamVjdCk6CisKKyAgICBkZWYg
X19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYucGFja2FnZXMgPSB7fQorICAgICAgICBzZWxm
Ll9fY2FjaGUgPSBOb25lCisKKyAgICBkZWYgX19nZXRfc3RvcmUoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9fc3RvcmUKKyAgICBzdG9yZSA9IHByb3BlcnR5KF9fZ2V0X3N0b3JlKQorCisg
ICAgZGVmIF9nZXRfY2FjaGUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX19jYWNoZSBpcyBOb25l
OgorICAgICAgICAgICAgc2VsZi5fX2NhY2hlID0gQ2FjaGUoKQorICAgICAgICByZXR1cm4gc2Vs
Zi5fX2NhY2hlCisgICAgZGVmIF9zZXRfY2FjaGUoc2VsZiwgY2FjaGUpOgorICAgICAgICBzZWxm
Ll9fY2FjaGUgPSBjYWNoZQorICAgIGNhY2hlID0gcHJvcGVydHkoX2dldF9jYWNoZSwgX3NldF9j
YWNoZSkKKworICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBmdWxsbmFtZSwgcGF0aD1Ob25lKToK
KyAgICAgICAgIiIiLT4gc2VsZiBvciBOb25lLgorCisgICAgICAgIFNlYXJjaCBmb3IgYSBtb2R1
bGUgc3BlY2lmaWVkIGJ5ICdmdWxsbmFtZScuICdmdWxsbmFtZScgbXVzdCBiZQorICAgICAgICB0
aGUgZnVsbHkgcXVhbGlmaWVkIChkb3R0ZWQpIG1vZHVsZSBuYW1lLiBJdCByZXR1cm5zIHRoZQor
ICAgICAgICB6aXBpbXBvcnRlciBpbnN0YW5jZSBpdHNlbGYgaWYgdGhlIG1vZHVsZSB3YXMgZm91
bmQsIG9yIE5vbmUgaWYKKyAgICAgICAgaXQgd2Fzbid0LiBUaGUgb3B0aW9uYWwgJ3BhdGgnIGFy
Z3VtZW50IGlzIGlnbm9yZWQgLS0gaXQncworICAgICAgICB0aGVyZSBmb3IgY29tcGF0aWJpbGl0
eSB3aXRoIHRoZSBpbXBvcnRlciBwcm90b2NvbC4iKTsKKyAgICAgICAgIiIiCisgICAgICAgIF9s
b2dnZXIuZGVidWcoImZpbmRfbW9kdWxlKCVzLCBwYXRoPSVzKSIgJSAoZnVsbG5hbWUsIHBhdGgp
KQorCisgICAgICAgIGlmIGZ1bGxuYW1lIGluIHNlbGYucGFja2FnZXM6CisgICAgICAgICAgICAo
dXJsLCB6aXBfc3VicGF0aCkgPSBzZWxmLnBhY2thZ2VzW2Z1bGxuYW1lXQorICAgICAgICAgICAg
ZmlsZW5hbWUgPSBzZWxmLmNhY2hlLmdldCh1cmwpCisgICAgICAgICAgICB6aXBfcGF0aCA9ICIl
cy8lcyIgJSAoZmlsZW5hbWUsIHppcF9zdWJwYXRoKSBpZiB6aXBfc3VicGF0aCBlbHNlIGZpbGVu
YW1lCisgICAgICAgICAgICBfbG9nZ2VyLmRlYnVnKCJmdWxsbmFtZTogJXMgdXJsOiAlcyBwYXRo
OiAlcyB6aXBfcGF0aDogJXMiICUgKGZ1bGxuYW1lLCB1cmwsIHBhdGgsIHppcF9wYXRoKSkKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBsb2FkZXIgPSB6aXBpbXBvcnQuemlwaW1w
b3J0ZXIoemlwX3BhdGgpCisgICAgICAgICAgICAgICAgX2xvZ2dlci5kZWJ1ZygicmV0dXJuaW5n
OiAlcyIgJSBsb2FkZXIpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAg
ICAgICAgICAgIF9sb2dnZXIuZXhjZXB0aW9uKGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5v
bmUKKyAgICAgICAgICAgIHJldHVybiBsb2FkZXIKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IGRlZiBiaW5kKHNlbGYsIHBhY2thZ2VfbmFtZSwgdXJsLCB6aXBfc3VicGF0aCk6CisgICAgICAg
IF9sb2dnZXIuaW5mbygiYmluZGluZzogJXMgLT4gJXMgc3VicGF0aDogJXMiICUgKHBhY2thZ2Vf
bmFtZSwgdXJsLCB6aXBfc3VicGF0aCkpCisgICAgICAgIHNlbGYucGFja2FnZXNbcGFja2FnZV9u
YW1lXSA9ICh1cmwsIHppcF9zdWJwYXRoKQorCisKK2lmIF9fbmFtZV9fPT0iX19tYWluX18iOgor
ICAgIGltcG9ydCBsb2dnaW5nCisgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygpCisgICAgbG9nZ2Vy
ID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisgICAgYmluZCgicHltYXJjIiwgImh0dHA6Ly9weXBp
LnB5dGhvbi5vcmcvcGFja2FnZXMvMi41L3AvcHltYXJjL3B5bWFyYy0yLjEtcHkyLjUuZWdnIikK
KworICAgIHByaW50IHB5bWFyYy5fX3ZlcnNpb25fXywgcHltYXJjLl9fZmlsZV9fCisKKyAgICBh
c3NlcnQgcHltYXJjLl9fdmVyc2lvbl9fPT0iMi4xIgorCisgICAgZCA9IF9nZXRJbXBvcnRlcigp
LmNhY2hlLmRpcmVjdG9yeQorICAgIGFzc2VydCBkIGluIHB5bWFyYy5fX2ZpbGVfXywgIiclcycg
bm90IGZvdW5kIGluIHB5bWFyYy5fX2ZpbGVfXyAoJXMpIiAlIChkLCBweW1hcmMuX19maWxlX18p
CisKKyAgICAjIENhbiBub3cgYWxzbyBiaW5kIHRvIG5vbiB0b3AgbGV2ZWwgcGFja2FnZXMuIFRo
ZSBwYWNrYWdlcworICAgICMgbGVhZGluZyB1cCB0byB0aGUgcGFja2FnZSBiZWluZyBib3VuZCB3
aWxsIG5lZWQgdG8gYmUgZGVmaW5lZAorICAgICMgaG93ZXZlci4KKyAgICAjCisgICAgIyBiaW5k
KCJyZGYucGx1Z2lucy5zdG9yZXMubWVtb3J5IiwgCisgICAgIyAgICAgICJodHRwOi8vcHlwaS5w
eXRob24ub3JnL3BhY2thZ2VzLzIuNS9yL3JkZi5wbHVnaW5zLnN0b3Jlcy5tZW1lb3J5L3JkZi5w
bHVnaW5zLnN0b3Jlcy5tZW1vcnktMC45YS1weTIuNS5lZ2ciKQorICAgICMKKyAgICAjIGZyb20g
cmRmLnBsdWdpbnMuc3RvcmVzLm1lbW9yeSBpbXBvcnQgTWVtb3J5CisKKwpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3dlYmtpdF9tZWNoYW5pemUucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL21vZHVsZXMvd2Via2l0X21lY2hhbml6ZS5weQppbmRleCA1ZDJkMjM5Li44
MDJlODA5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvd2Via2l0X21l
Y2hhbml6ZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvd2Via2l0X21lY2hh
bml6ZS5weQpAQCAtMjgsMTcgKzI4LDYgQEAKICMKICMgQSBweXRob24gc2hpbSBmb3IgaW1wb3J0
aW5nIG1lY2hhbml6ZS4KIAotIyBGSVhNRTogV2Ugc2hvdWxkIHRyeSB0byBkb3dubG9hZCBhIGNv
cHkgaW5zdGVhZCBvZiByZXF1aXJpbmcgcm9vdCBhY2Nlc3MuCi10cnk6Ci0gICAgZnJvbSBtZWNo
YW5pemUgaW1wb3J0IEJyb3dzZXIKLWV4Y2VwdCBJbXBvcnRFcnJvciwgZToKLSAgICBwcmludCAi
IiIKLW1lY2hhbml6ZSBpcyByZXF1aXJlZC4KLQotVG8gaW5zdGFsbDoKLXN1ZG8gZWFzeV9pbnN0
YWxsIG1lY2hhbml6ZQotCi1PciBmcm9tIHRoZSB3ZWI6Ci1odHRwOi8vd3d3c2VhcmNoLnNvdXJj
ZWZvcmdlLm5ldC9tZWNoYW5pemUvCi0iIiIKLSAgICBleGl0KDEpCitmcm9tIG1vZHVsZXMudGhp
cmRfcGFydHkuYXV0b2luc3RhbGwgaW1wb3J0IGJpbmQKK2JpbmQoIm1lY2hhbml6ZSIsICJodHRw
Oi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9tL21lY2hhbml6ZS9tZWNoYW5pemUt
MC4xLjExLnppcCIsICJtZWNoYW5pemUtMC4xLjExIikKK2Zyb20gbWVjaGFuaXplIGltcG9ydCBC
cm93c2VyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45777</attachid>
            <date>2010-01-04 01:14:13 -0800</date>
            <delta_ts>2010-01-04 01:17:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32635-20100104011412.patch</filename>
            <type>text/plain</type>
            <size>15671</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjYWM4ODMxLi5mOTBkMjk4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDEt
MDQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGJ1Z3ppbGxhLXRvb2wgc2hvdWxkIG5vdCByZXF1
aXJlIHVzZXJzIHRvIGluc3RhbGwgbWVjaGFuaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjYzNQorCisgICAgICAgIFVzZSB0aGUgbmlmdHkgImF1
dG9pbnN0YWxsIiBtb2R1bGUgZnJvbSBEYW5pZWwgS3JlY2g6CisgICAgICAgIGh0dHA6Ly9weXBp
LnB5dGhvbi5vcmcvcHlwaS9hdXRvaW5zdGFsbC8wLjIKKyAgICAgICAgaHR0cDovL2NvZGUuZ29v
Z2xlLmNvbS9wL3B5YXV0b2luc3RhbGwvCisgICAgICAgIEl0J3MgYXZhaWxhYmxlIHVuZGVyIGEg
V2ViS2l0LWNvbXBhdGlibGUgQlNEIGxpY2Vuc2UuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L19faW5pdF9fLnB5OgorICAgICAgICAgLSBiaW5kICJtZWNoYW5pemUiIHRvIGFuIGF1dG9p
bnN0YWxsIGltcG9ydGVyIHdoaWNoIHdpbGwKKyAgICAgICAgICAgYXV0by1kb3dubG9hZCBtZWNo
YW5pemUgaWYgbmVjZXNzYXJ5LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYXV0b2luc3Rh
bGwucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYnVnemlsbGEucHk6IHVz
ZSAibWVjaGFuaXplIiBpbnN0ZWFkIG9mIHdlYmtpdF9tZWNoYW5pemUKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3N0YXR1c2JvdC5weTogZGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS93ZWJraXRfbWVjaGFuaXplLnB5OiBSZW1vdmVkLgorCiAyMDEwLTAxLTA0ICBEYW5pZWwg
QmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18u
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5CmluZGV4IGVmNjVi
ZWUuLjJmNzEyNmEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19p
bml0X18ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2luaXRfXy5weQpA
QCAtMSArMSw2IEBACiAjIFJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0
b3J5IGZvciBtb2R1bGUgZmlsZXMKKworaW1wb3J0IGF1dG9pbnN0YWxsCisKKyMgTGlzdCBvdXIg
dGhpcmQtcGFydHkgbGlicmFyeSBkZXBlbmRlbmNpZXMgaGVyZSBhbmQgd2hlcmUgdGhleSBjYW4g
YmUgZG93bmxvYWRlZC4KK2F1dG9pbnN0YWxsLmJpbmQoIm1lY2hhbml6ZSIsICJodHRwOi8vcHlw
aS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9tL21lY2hhbml6ZS9tZWNoYW5pemUtMC4xLjEx
LnppcCIsICJtZWNoYW5pemUtMC4xLjExIikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYXV0b2luc3RhbGwucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2F1dG9pbnN0YWxsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MWVm
N2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2F1dG9p
bnN0YWxsLnB5CkBAIC0wLDAgKzEsMzE5IEBACisjIENvcHlyaWdodCAoYykgMjAwOSwgRGFuaWVs
IEtyZWNoIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIAorIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjIAorIyAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIAorIyAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIAorIyAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBEYW5pZWwgS3JlY2ggbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMgCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIi
IlwKK3BhY2thZ2UgbG9hZGVyIGZvciBhdXRvIGluc3RhbGxpbmcgUHl0aG9uIHBhY2thZ2VzLgor
CitBIHBhY2thZ2UgbG9hZGVyIGluIHRoZSBzcGlyaXQgb2YgWmVybyBJbnN0YWxsIHRoYXQgY2Fu
IGJlIHVzZWQgdG8KK2luamVjdCBkZXBlbmRlbmNpZXMgaW50byB0aGUgaW1wb3J0IHByb2Nlc3Mu
IAorCisKK1RvIGluc3RhbGw6OgorCisgICAgZWFzeV9pbnN0YWxsIC1VIGF1dG9pbnN0YWxsCisK
KyAgICAgIG9yIAorCisgICAgZG93bmxvYWQsIHVucGFjaywgcHl0aG9uIHNldHVwLnB5IGluc3Rh
bGwKKworICAgICAgb3IgCisKKyAgICB0cnkgdGhlIGJvb3RzdHJhcCBsb2FkZXIuIFNlZSBiZWxv
dy4KKworCitUbyB1c2U6OgorCisgICAgIyBZb3UgY2FuIGJpbmQgYW55IHBhY2thZ2UgbmFtZSB0
byBhIFVSTCBwb2ludGluZyB0byBzb21ldGhpbmcKKyAgICAjIHRoYXQgY2FuIGJlIGltcG9ydGVk
IHVzaW5nIHRoZSB6aXBpbXBvcnRlci4KKworICAgIGF1dG9pbnN0YWxsLmJpbmQoInB5bWFyYyIs
ICJodHRwOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzIuNS9wL3B5bWFyYy9weW1hcmMtMi4x
LXB5Mi41LmVnZyIpCisKKyAgICBpbXBvcnQgcHltYXJjCisKKyAgICBwcmludCBweW1hcmMuX192
ZXJzaW9uX18sIHB5bWFyYy5fX2ZpbGVfXworCisgICAgCitDaGFuZ2Vsb2c6OgorCistIGFkZGVk
IHN1cHBvcnQgZm9yIG5vbiB0b3AgbGV2ZWwgcGFja2FnZXMuCistIGNhY2hlIGZpbGVzIG5vdyB1
c2UgZmlsZW5hbWUgcGFydCBmcm9tIFVSTC4KKy0gYXBwbGllZCBwYXRjaCBmcm9tIEVyaWMgU2Vp
ZGVsIDxlc2VpZGVsQGdvb2dsZS5jb20+IHRvIGFkZCBzdXBwb3J0Citmb3IgbG9hZGluZyBtb2R1
bGVzIHdoZXJlIHRoZSBtb2R1bGUgaXMgbm90IGF0IHRoZSByb290IG9mIHRoZSAuemlwCitmaWxl
LgorCisKK1RPRE86OgorCistIGEgZGVzY3JpcHRpb24gb2YgdGhlIGludGVuZGVkIHVzZSBjYXNl
CistIGFkZHJlc3Mgb3RoZXIgaXNzdWVzIHBvaW50ZWQgb3V0IGluOgorCisgICAgaHR0cDovL21h
aWwucHl0aG9uLm9yZy9waXBlcm1haWwvcHl0aG9uLWRldi8yMDA4LU1hcmNoLzA3NzkyNi5odG1s
CisKK1NjcmliYmxlczo6CisKK3B1bGwgdnMuIHB1c2gKK3VzZXIgdnMuIHN5c3RlbQord2ViIHZz
LiBmaWxlc3lzdGVtCithdXRvIHZzLiBtYW51YWwKKworbWFuYWdlIGRldmVsb3BtZW50IHNhbmRi
b3hlcworCitvcHRpb25hbCBpbnRlcmZhY2VzLi4uCisKKyAgICBkZWYgZ2V0X2RhdGEocGF0aG5h
bWUpIC0+IHN0cmluZyB3aXRoIGZpbGUgZGF0YS4KKworICAgIFJldHVybiB0aGUgZGF0YSBhc3Nv
Y2lhdGVkIHdpdGggJ3BhdGhuYW1lJy4gUmFpc2UgSU9FcnJvciBpZgorICAgIHRoZSBmaWxlIHdh
c24ndCBmb3VuZC4iKTsKKworICAgIGRlZiBpc19wYWNrYWdlLAorICAgICJpc19wYWNrYWdlKGZ1
bGxuYW1lKSAtPiBib29sLgorCisgICAgUmV0dXJuIFRydWUgaWYgdGhlIG1vZHVsZSBzcGVjaWZp
ZWQgYnkgZnVsbG5hbWUgaXMgYSBwYWNrYWdlLgorICAgIFJhaXNlIFppcEltcG9ydEVycm9yIGlz
IHRoZSBtb2R1bGUgY291bGRuJ3QgYmUgZm91bmQuIik7CisKKyAgICBkZWYgZ2V0X2NvZGUsCisg
ICAgImdldF9jb2RlKGZ1bGxuYW1lKSAtPiBjb2RlIG9iamVjdC4KKworICAgIFJldHVybiB0aGUg
Y29kZSBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLiBSYWlzZSBaaXBJbXBvcnRFcnJv
cgorICAgIGlzIHRoZSBtb2R1bGUgY291bGRuJ3QgYmUgZm91bmQuIik7CisKKyAgICBkZWYgZ2V0
X3NvdXJjZSwKKyAgICAiZ2V0X3NvdXJjZShmdWxsbmFtZSkgLT4gc291cmNlIHN0cmluZy4KKwor
ICAgIFJldHVybiB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLiBSYWlz
ZSBaaXBJbXBvcnRFcnJvcgorICAgIGlzIHRoZSBtb2R1bGUgY291bGRuJ3QgYmUgZm91bmQsIHJl
dHVybiBOb25lIGlmIHRoZSBhcmNoaXZlIGRvZXMKKyAgICBjb250YWluIHRoZSBtb2R1bGUsIGJ1
dCBoYXMgbm8gc291cmNlIGZvciBpdC4iKTsKKworCitBdXRvaW5zdGFsbCBjYW4gYWxzbyBiZSBi
b290c3RyYXBlZCB3aXRoIHRoZSBuYXNjZW50IHBhY2thZ2UgbG9hZGVyCitib290c3RyYXAgbW9k
dWxlLiBGb3IgZXhhbXBsZTo6CisKKyAgICAjICBvciB2aWEgdGhlIGJvb3RzdHJhcAorICAgICMg
bG9hZGVyLgorCisgICAgdHJ5OgorICAgICAgICBfdmVyc2lvbiA9ICIwLjIiCisgICAgICAgIGlt
cG9ydCBhdXRvaW5zdGFsbAorICAgICAgICBpZiBhdXRvaW5zdGFsbC5fX3ZlcnNpb25fXyAhPSBf
dmVyc2lvbjoKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJBIGRpZmZlcmVudCB2ZXJz
aW9uIHRoYW4gZXhwZWN0ZWQgZm91bmQuIikKKyAgICBleGNlcHQgSW1wb3J0RXJyb3IsIGU6Cisg
ICAgICAgICMgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL3NhbmRib3gvdHJ1bmsvYm9v
dHN0cmFwL2Jvb3RzdHJhcC5weQorICAgICAgICBpbXBvcnQgYm9vdHN0cmFwIAorICAgICAgICBw
eXBpID0gImh0dHA6Ly9weXBpLnB5dGhvbi5vcmciCisgICAgICAgIGRpciA9ICJwYWNrYWdlcy9z
b3VyY2UvYS9hdXRvaW5zdGFsbCIKKyAgICAgICAgdXJsID0gIiVzLyVzL2F1dG9pbnN0YWxsLSVz
LnRhci5neiIgJSAocHlwaSwgZGlyLCBfdmVyc2lvbikKKyAgICAgICAgYm9vdHN0cmFwLm1haW4o
KHVybCwpKQorICAgICAgICBpbXBvcnQgYXV0b2luc3RhbGwKKworUmVmZXJlbmNlczo6CisKKyAg
aHR0cDovLzBpbnN0YWxsLm5ldC8KKyAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3Bl
cC0wMzAyLworICBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvc2FuZGJveC90cnVuay9p
bXBvcnRfaW5fcHkKKyAgaHR0cDovLzBpbnN0YWxsLm5ldC9pbmplY3Rvci1maW5kLmh0bWwKKyAg
aHR0cDovL3Jvc2NpZHVzLmNvbS9kZXNrdG9wL25vZGUvOTAzCisKKyIiIgorCitfX3ZlcnNpb25f
XyA9ICIwLjIiCitfX2RvY2Zvcm1hdF9fID0gInJlc3RydWN0dXJlZHRleHQgZW4iCisKK2ltcG9y
dCBvcworaW1wb3J0IG5ldworaW1wb3J0IHN5cworaW1wb3J0IHVybGxpYgoraW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHppcGltcG9ydAorCitfbG9nZ2VyID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworX2ltcG9ydGVyID0gTm9uZQorCitkZWYgX2dldElt
cG9ydGVyKCk6CisgICAgZ2xvYmFsIF9pbXBvcnRlcgorICAgIGlmIF9pbXBvcnRlciBpcyBOb25l
OgorICAgICAgICBfaW1wb3J0ZXIgPSBJbXBvcnRlcigpCisgICAgICAgIHN5cy5tZXRhX3BhdGgu
YXBwZW5kKF9pbXBvcnRlcikKKyAgICByZXR1cm4gX2ltcG9ydGVyCisKK2RlZiBiaW5kKHBhY2th
Z2VfbmFtZSwgdXJsLCB6aXBfc3VicGF0aD1Ob25lKToKKyAgICAiIiJiaW5kIGEgdG9wIGxldmVs
IHBhY2thZ2UgbmFtZSB0byBhIFVSTC4KKworICAgIFRoZSBwYWNrYWdlIG5hbWUgc2hvdWxkIGJl
IGEgcGFja2FnZSBuYW1lIGFuZCB0aGUgdXJsIHNob3VsZCBiZSBhCisgICAgdXJsIHRvIHNvbWV0
aGluZyB0aGF0IGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgemlwaW1wb3J0ZXIuCisKKyAgICBP
cHRpb25hbCB6aXBfc3VicGF0aCBwYXJhbWV0ZXIgYWxsb3dzIHNlYXJjaGluZyBmb3IgbW9kdWxl
cworICAgIGJlbG93IHRoZSByb290IGxldmVsIG9mIHRoZSB6aXAgZmlsZS4KKyAgICAiIiIKKyAg
ICBfZ2V0SW1wb3J0ZXIoKS5iaW5kKHBhY2thZ2VfbmFtZSwgdXJsLCB6aXBfc3VicGF0aCkKKwor
CitjbGFzcyBDYWNoZShvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpcmVjdG9y
eT1Ob25lKToKKyAgICAgICAgc2VsZi5kaXJlY3RvcnkgPSBkaXJlY3Rvcnkgb3IgIi4vYXV0b2lu
c3RhbGwuY2FjaGUuZC8iCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhzZWxmLmRpcmVjdG9yeSk6CisgICAgICAgICAgICAgICAgX2xvZ2dlci5kZWJ1Zygi
Q3JlYXRpbmcgY2FjaGUgZGlyZWN0b3J5ICclcycuIiAlIHNlbGYuZGlyZWN0b3J5KQorICAgICAg
ICAgICAgICAgIG9zLm1rZGlyKHNlbGYuZGlyZWN0b3J5KQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uLCBlcnI6CisgICAgICAgICAgICBfbG9nZ2VyLmV4Y2VwdGlvbihlcnIpCisgICAgICAgICAg
ICBzZWxmLmNhY2hlX2RpcmVjdHJ5ID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICAgIF9sb2dn
ZXIuaW5mbygiVXNpbmcgY2FjaGUgZGlyZWN0b3J5ICclcycuIiAlIHNlbGYuZGlyZWN0b3J5KQor
ICAgIAorICAgIGRlZiBnZXQoc2VsZiwgdXJsKToKKyAgICAgICAgX2xvZ2dlci5pbmZvKCJHZXR0
aW5nICclcycgZnJvbSBjYWNoZS4iICUgdXJsKQorICAgICAgICBmaWxlbmFtZSA9IHVybC5yc3Bs
aXQoIi8iKVstMV0KKworICAgICAgICAjIHNvIHRoYXQgc291cmNlIHVybCBpcyBzaWduaWZpY2Fu
dCBpbiBkZXRlcm1pbmluZyBjYWNoZSBoaXRzCisgICAgICAgIGQgPSBvcy5wYXRoLmpvaW4oc2Vs
Zi5kaXJlY3RvcnksICIlcyIgJSBoYXNoKHVybCkpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4
aXN0cyhkKToKKyAgICAgICAgICAgIG9zLm1rZGlyKGQpCisKKyAgICAgICAgZmlsZW5hbWUgPSBv
cy5wYXRoLmpvaW4oZCwgZmlsZW5hbWUpIAorCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGZp
bGVuYW1lKToKKyAgICAgICAgICAgIF9sb2dnZXIuZGVidWcoIi4uLiBhbHJlYWR5IGNhY2hlZCBp
biBmaWxlICclcycuIiAlIGZpbGVuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgX2xv
Z2dlci5kZWJ1ZygiLi4uIG5vdCBpbiBjYWNoZS4gQ2FjaGluZyBpbiAnJXMnLiIgJSBmaWxlbmFt
ZSkKKyAgICAgICAgICAgIHN0cmVhbSA9IGZpbGUoZmlsZW5hbWUsICJ3YiIpCisgICAgICAgICAg
ICBzZWxmLmRvd25sb2FkKHVybCwgc3RyZWFtKQorICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCkK
KyAgICAgICAgcmV0dXJuIGZpbGVuYW1lCisKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgdXJsLCBz
dHJlYW0pOgorICAgICAgICBfbG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nOiAlcyIgJSB1cmwpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIG5ldHN0cmVhbSA9IHVybGxpYi51cmxvcGVuKHVybCkK
KyAgICAgICAgICAgIGNvZGUgPSAyMDAKKyAgICAgICAgICAgIGlmIGhhc2F0dHIobmV0c3RyZWFt
LCAiZ2V0Y29kZSIpOgorICAgICAgICAgICAgICAgIGNvZGUgPSBuZXRzdHJlYW0uZ2V0Y29kZSgp
CisgICAgICAgICAgICBpZiBub3QgMjAwIDw9IGNvZGUgPCAzMDA6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiSFRUUCBFcnJvciBjb2RlICVzIiAlIGNvZGUpCisgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGVycjoKKyAgICAgICAgICAgIF9sb2dnZXIuZXhjZXB0aW9uKGVycikK
KworICAgICAgICBCVUZTSVpFID0gMioqMTMgICMgOEtCCisgICAgICAgIHNpemUgPSAwCisgICAg
ICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBkYXRhID0gbmV0c3RyZWFtLnJlYWQoQlVGU0la
RSkKKyAgICAgICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSkKKyAgICAgICAgICAgIHNpemUgKz0gbGVuKGRhdGEp
CisgICAgICAgIG5ldHN0cmVhbS5jbG9zZSgpCisgICAgICAgIF9sb2dnZXIuaW5mbygiRG93bmxv
YWRlZCAlZCBieXRlcy4iICUgc2l6ZSkKKworCitjbGFzcyBJbXBvcnRlcihvYmplY3QpOgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnBhY2thZ2VzID0ge30KKyAgICAg
ICAgc2VsZi5fX2NhY2hlID0gTm9uZQorCisgICAgZGVmIF9fZ2V0X3N0b3JlKHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fX3N0b3JlCisgICAgc3RvcmUgPSBwcm9wZXJ0eShfX2dldF9zdG9y
ZSkKKworICAgIGRlZiBfZ2V0X2NhY2hlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9fY2FjaGUg
aXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX19jYWNoZSA9IENhY2hlKCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX19jYWNoZQorICAgIGRlZiBfc2V0X2NhY2hlKHNlbGYsIGNhY2hlKToKKyAgICAg
ICAgc2VsZi5fX2NhY2hlID0gY2FjaGUKKyAgICBjYWNoZSA9IHByb3BlcnR5KF9nZXRfY2FjaGUs
IF9zZXRfY2FjaGUpCisKKyAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgZnVsbG5hbWUsIHBhdGg9
Tm9uZSk6CisgICAgICAgICIiIi0+IHNlbGYgb3IgTm9uZS4KKworICAgICAgICBTZWFyY2ggZm9y
IGEgbW9kdWxlIHNwZWNpZmllZCBieSAnZnVsbG5hbWUnLiAnZnVsbG5hbWUnIG11c3QgYmUKKyAg
ICAgICAgdGhlIGZ1bGx5IHF1YWxpZmllZCAoZG90dGVkKSBtb2R1bGUgbmFtZS4gSXQgcmV0dXJu
cyB0aGUKKyAgICAgICAgemlwaW1wb3J0ZXIgaW5zdGFuY2UgaXRzZWxmIGlmIHRoZSBtb2R1bGUg
d2FzIGZvdW5kLCBvciBOb25lIGlmCisgICAgICAgIGl0IHdhc24ndC4gVGhlIG9wdGlvbmFsICdw
YXRoJyBhcmd1bWVudCBpcyBpZ25vcmVkIC0tIGl0J3MKKyAgICAgICAgdGhlcmUgZm9yIGNvbXBh
dGliaWxpdHkgd2l0aCB0aGUgaW1wb3J0ZXIgcHJvdG9jb2wuIik7CisgICAgICAgICIiIgorICAg
ICAgICBfbG9nZ2VyLmRlYnVnKCJmaW5kX21vZHVsZSglcywgcGF0aD0lcykiICUgKGZ1bGxuYW1l
LCBwYXRoKSkKKworICAgICAgICBpZiBmdWxsbmFtZSBpbiBzZWxmLnBhY2thZ2VzOgorICAgICAg
ICAgICAgKHVybCwgemlwX3N1YnBhdGgpID0gc2VsZi5wYWNrYWdlc1tmdWxsbmFtZV0KKyAgICAg
ICAgICAgIGZpbGVuYW1lID0gc2VsZi5jYWNoZS5nZXQodXJsKQorICAgICAgICAgICAgemlwX3Bh
dGggPSAiJXMvJXMiICUgKGZpbGVuYW1lLCB6aXBfc3VicGF0aCkgaWYgemlwX3N1YnBhdGggZWxz
ZSBmaWxlbmFtZQorICAgICAgICAgICAgX2xvZ2dlci5kZWJ1ZygiZnVsbG5hbWU6ICVzIHVybDog
JXMgcGF0aDogJXMgemlwX3BhdGg6ICVzIiAlIChmdWxsbmFtZSwgdXJsLCBwYXRoLCB6aXBfcGF0
aCkpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbG9hZGVyID0gemlwaW1wb3J0
LnppcGltcG9ydGVyKHppcF9wYXRoKQorICAgICAgICAgICAgICAgIF9sb2dnZXIuZGVidWcoInJl
dHVybmluZzogJXMiICUgbG9hZGVyKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToK
KyAgICAgICAgICAgICAgICBfbG9nZ2VyLmV4Y2VwdGlvbihlKQorICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCisgICAgICAgICAgICByZXR1cm4gbG9hZGVyCisgICAgICAgIHJldHVybiBOb25l
CisKKyAgICBkZWYgYmluZChzZWxmLCBwYWNrYWdlX25hbWUsIHVybCwgemlwX3N1YnBhdGgpOgor
ICAgICAgICBfbG9nZ2VyLmluZm8oImJpbmRpbmc6ICVzIC0+ICVzIHN1YnBhdGg6ICVzIiAlIChw
YWNrYWdlX25hbWUsIHVybCwgemlwX3N1YnBhdGgpKQorICAgICAgICBzZWxmLnBhY2thZ2VzW3Bh
Y2thZ2VfbmFtZV0gPSAodXJsLCB6aXBfc3VicGF0aCkKKworCitpZiBfX25hbWVfXz09Il9fbWFp
bl9fIjoKKyAgICBpbXBvcnQgbG9nZ2luZworICAgICNsb2dnaW5nLmJhc2ljQ29uZmlnKCkKKyAg
ICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKKyAgICBjb25zb2xlID0gbG9nZ2luZy5T
dHJlYW1IYW5kbGVyKCkKKyAgICBjb25zb2xlLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCisgICAg
IyBzZXQgYSBmb3JtYXQgd2hpY2ggaXMgc2ltcGxlciBmb3IgY29uc29sZSB1c2UKKyAgICBmb3Jt
YXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcignJShuYW1lKS0xMnM6ICUobGV2ZWxuYW1lKS04cyAl
KG1lc3NhZ2UpcycpCisgICAgIyB0ZWxsIHRoZSBoYW5kbGVyIHRvIHVzZSB0aGlzIGZvcm1hdAor
ICAgIGNvbnNvbGUuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKKyAgICAjIGFkZCB0aGUgaGFuZGxl
ciB0byB0aGUgcm9vdCBsb2dnZXIKKyAgICBsb2dnZXIuYWRkSGFuZGxlcihjb25zb2xlKQorICAg
IGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLklORk8pCisKKyAgICBiaW5kKCJweW1hcmMiLCAiaHR0
cDovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy8yLjUvcC9weW1hcmMvcHltYXJjLTIuMS1weTIu
NS5lZ2ciKQorCisgICAgaW1wb3J0IHB5bWFyYworCisgICAgcHJpbnQgcHltYXJjLl9fdmVyc2lv
bl9fLCBweW1hcmMuX19maWxlX18KKworICAgIGFzc2VydCBweW1hcmMuX192ZXJzaW9uX189PSIy
LjEiCisKKyAgICBkID0gX2dldEltcG9ydGVyKCkuY2FjaGUuZGlyZWN0b3J5CisgICAgYXNzZXJ0
IGQgaW4gcHltYXJjLl9fZmlsZV9fLCAiJyVzJyBub3QgZm91bmQgaW4gcHltYXJjLl9fZmlsZV9f
ICglcykiICUgKGQsIHB5bWFyYy5fX2ZpbGVfXykKKworICAgICMgQ2FuIG5vdyBhbHNvIGJpbmQg
dG8gbm9uIHRvcCBsZXZlbCBwYWNrYWdlcy4gVGhlIHBhY2thZ2VzCisgICAgIyBsZWFkaW5nIHVw
IHRvIHRoZSBwYWNrYWdlIGJlaW5nIGJvdW5kIHdpbGwgbmVlZCB0byBiZSBkZWZpbmVkCisgICAg
IyBob3dldmVyLgorICAgICMKKyAgICAjIGJpbmQoInJkZi5wbHVnaW5zLnN0b3Jlcy5tZW1vcnki
LCAKKyAgICAjICAgICAgImh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvMi41L3IvcmRm
LnBsdWdpbnMuc3RvcmVzLm1lbWVvcnkvcmRmLnBsdWdpbnMuc3RvcmVzLm1lbW9yeS0wLjlhLXB5
Mi41LmVnZyIpCisgICAgIworICAgICMgZnJvbSByZGYucGx1Z2lucy5zdG9yZXMubWVtb3J5IGlt
cG9ydCBNZW1vcnkKKworCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYS5weQpp
bmRleCBhYmY1ZmMxLi40OGE2Njk4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2J1Z3ppbGxhLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVn
emlsbGEucHkKQEAgLTM5LDExICszOSwxMSBAQCBmcm9tIHdlYmtpdHB5LndlYmtpdF9sb2dnaW5n
IGltcG9ydCBlcnJvciwgbG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1pdHRlcnMgaW1wb3J0IENvbW1p
dHRlckxpc3QKIGZyb20gd2Via2l0cHkuY3JlZGVudGlhbHMgaW1wb3J0IENyZWRlbnRpYWxzCiAK
LSMgV2ViS2l0IGluY2x1ZGVzIGEgYnVpbHQgY29weSBvZiBCZWF1dGlmdWxTb3VwIGluIFNjcmlw
dHMvbW9kdWxlcworIyBXZWJLaXQgaW5jbHVkZXMgYSBidWlsdCBjb3B5IG9mIEJlYXV0aWZ1bFNv
dXAgaW4gU2NyaXB0cy93ZWJraXRweQogIyBzbyB0aGlzIGltcG9ydCBzaG91bGQgYWx3YXlzIHN1
Y2NlZWQuCiBmcm9tIC5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTb3VwLCBTb3VwU3Ry
YWluZXIKIAotZnJvbSB3ZWJraXRweS53ZWJraXRfbWVjaGFuaXplIGltcG9ydCBCcm93c2VyCitm
cm9tIG1lY2hhbml6ZSBpbXBvcnQgQnJvd3NlcgogCiBkZWYgcGFyc2VfYnVnX2lkKG1lc3NhZ2Up
OgogICAgIG1hdGNoID0gcmUuc2VhcmNoKCJodHRwXDovL3dlYmtpdFwub3JnL2IvKD9QPGJ1Z19p
ZD5cZCspIiwgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3RhdHVzYm90LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdGF0dXNib3Qu
cHkKaW5kZXggMDAxNzdhNS4uZmUzMTgwMiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdGF0dXNib3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdGF0dXNib3QucHkKQEAgLTI5LDcgKzI5LDcgQEAKICMgV2ViS2l0J3MgUHl0aG9uIG1vZHVs
ZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgQ29tbWl0IFF1ZXVlIHN0YXR1cyBwYWdlLgogCiBm
cm9tIHdlYmtpdHB5LndlYmtpdF9sb2dnaW5nIGltcG9ydCBsb2cKLWZyb20gd2Via2l0cHkud2Vi
a2l0X21lY2hhbml6ZSBpbXBvcnQgQnJvd3NlcgorZnJvbSBtZWNoYW5pemUgaW1wb3J0IEJyb3dz
ZXIKIAogIyBXZWJLaXQgaW5jbHVkZXMgYSBidWlsdCBjb3B5IG9mIEJlYXV0aWZ1bFNvdXAgaW4g
U2NyaXB0cy93ZWJraXRweQogIyBzbyB0aGlzIGltcG9ydCBzaG91bGQgYWx3YXlzIHN1Y2NlZWQu
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmtpdF9tZWNoYW5p
emUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmtpdF9tZWNoYW5pemUucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMmQyMzkuLjAwMDAwMDAKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJraXRfbWVjaGFuaXplLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsNDQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMgCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMgCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jIAotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jIEEgcHl0aG9uIHNo
aW0gZm9yIGltcG9ydGluZyBtZWNoYW5pemUuCi0KLSMgRklYTUU6IFdlIHNob3VsZCB0cnkgdG8g
ZG93bmxvYWQgYSBjb3B5IGluc3RlYWQgb2YgcmVxdWlyaW5nIHJvb3QgYWNjZXNzLgotdHJ5Ogot
ICAgIGZyb20gbWVjaGFuaXplIGltcG9ydCBCcm93c2VyCi1leGNlcHQgSW1wb3J0RXJyb3IsIGU6
Ci0gICAgcHJpbnQgIiIiCi1tZWNoYW5pemUgaXMgcmVxdWlyZWQuCi0KLVRvIGluc3RhbGw6Ci1z
dWRvIGVhc3lfaW5zdGFsbCBtZWNoYW5pemUKLQotT3IgZnJvbSB0aGUgd2ViOgotaHR0cDovL3d3
d3NlYXJjaC5zb3VyY2Vmb3JnZS5uZXQvbWVjaGFuaXplLwotIiIiCi0gICAgZXhpdCgxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45779</attachid>
            <date>2010-01-04 01:17:42 -0800</date>
            <delta_ts>2010-01-04 01:25:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32635-20100104011741.patch</filename>
            <type>text/plain</type>
            <size>16480</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGQwZmU5YWMuLjYwN2Ey
MmUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtNCw2ICs0LDcg
QEAKICoucHljCiBidWlsZC8KIC9XZWJLaXRCdWlsZC8KK2F1dG9pbnN0YWxsLmNhY2hlLmQKIAog
IyBJZ25vcmUgQ2hyb21pdW0gcHJvamVjdHMgYXV0by1nZW5lcmF0ZWQgZnJvbSAuZ3lwIGZpbGVz
OgogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvagpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDhjMTBmMDMuLjQ2
MGYwZDcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxMC0wMS0wNCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnemlsbGEtdG9vbCBz
aG91bGQgbm90IHJlcXVpcmUgdXNlcnMgdG8gaW5zdGFsbCBtZWNoYW5pemUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNjM1CisKKyAgICAgICAgKiAu
Z2l0aWdub3JlOiBJZ25vcmUgYXV0b2luc3RhbGwuY2FjaGUuZCBkaXJlY3RvcnkgY3JlYXRlZCBi
eSBhdXRvaW5zdGFsbC5weQorCiAyMDA5LTEyLTI4ICBFc3TDqnbDo28gU2FtdWVsIFByb2PDs3Bp
byAgPHRldmF1bUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGNhYzg4MzEuLmY5MGQyOTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxMC0wMS0wNCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVnemlsbGEtdG9vbCBzaG91
bGQgbm90IHJlcXVpcmUgdXNlcnMgdG8gaW5zdGFsbCBtZWNoYW5pemUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNjM1CisKKyAgICAgICAgVXNlIHRo
ZSBuaWZ0eSAiYXV0b2luc3RhbGwiIG1vZHVsZSBmcm9tIERhbmllbCBLcmVjaDoKKyAgICAgICAg
aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2F1dG9pbnN0YWxsLzAuMgorICAgICAgICBodHRw
Oi8vY29kZS5nb29nbGUuY29tL3AvcHlhdXRvaW5zdGFsbC8KKyAgICAgICAgSXQncyBhdmFpbGFi
bGUgdW5kZXIgYSBXZWJLaXQtY29tcGF0aWJsZSBCU0QgbGljZW5zZS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvX19pbml0X18ucHk6CisgICAgICAgICAtIGJpbmQgIm1lY2hhbml6ZSIg
dG8gYW4gYXV0b2luc3RhbGwgaW1wb3J0ZXIgd2hpY2ggd2lsbAorICAgICAgICAgICBhdXRvLWRv
d25sb2FkIG1lY2hhbml6ZSBpZiBuZWNlc3NhcnkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9hdXRvaW5zdGFsbC5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9idWd6
aWxsYS5weTogdXNlICJtZWNoYW5pemUiIGluc3RlYWQgb2Ygd2Via2l0X21lY2hhbml6ZQorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3RhdHVzYm90LnB5OiBkaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3dlYmtpdF9tZWNoYW5pemUucHk6IFJlbW92ZWQuCisKIDIwMTAtMDEt
MDQgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9fX2luaXRfXy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkK
aW5kZXggZWY2NWJlZS4uMmY3MTI2YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9fX2luaXRfXy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L19f
aW5pdF9fLnB5CkBAIC0xICsxLDYgQEAKICMgUmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2gg
dGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZSBmaWxlcworCitpbXBvcnQgYXV0b2luc3RhbGwKKwor
IyBMaXN0IG91ciB0aGlyZC1wYXJ0eSBsaWJyYXJ5IGRlcGVuZGVuY2llcyBoZXJlIGFuZCB3aGVy
ZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLgorYXV0b2luc3RhbGwuYmluZCgibWVjaGFuaXplIiwg
Imh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL20vbWVjaGFuaXplL21lY2hh
bml6ZS0wLjEuMTEuemlwIiwgIm1lY2hhbml6ZS0wLjEuMTEiKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9hdXRvaW5zdGFsbC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYXV0b2luc3RhbGwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjQxZWY3ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYXV0b2luc3RhbGwucHkKQEAgLTAsMCArMSwzMTkgQEAKKyMgQ29weXJpZ2h0IChjKSAy
MDA5LCBEYW5pZWwgS3JlY2ggQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMgCisjICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgCisjICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgCisjICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgdGhlIERhbmllbCBLcmVjaCBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorIyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworIiIiXAorcGFja2FnZSBsb2FkZXIgZm9yIGF1dG8gaW5zdGFsbGluZyBQeXRob24g
cGFja2FnZXMuCisKK0EgcGFja2FnZSBsb2FkZXIgaW4gdGhlIHNwaXJpdCBvZiBaZXJvIEluc3Rh
bGwgdGhhdCBjYW4gYmUgdXNlZCB0bworaW5qZWN0IGRlcGVuZGVuY2llcyBpbnRvIHRoZSBpbXBv
cnQgcHJvY2Vzcy4gCisKKworVG8gaW5zdGFsbDo6CisKKyAgICBlYXN5X2luc3RhbGwgLVUgYXV0
b2luc3RhbGwKKworICAgICAgb3IgCisKKyAgICBkb3dubG9hZCwgdW5wYWNrLCBweXRob24gc2V0
dXAucHkgaW5zdGFsbAorCisgICAgICBvciAKKworICAgIHRyeSB0aGUgYm9vdHN0cmFwIGxvYWRl
ci4gU2VlIGJlbG93LgorCisKK1RvIHVzZTo6CisKKyAgICAjIFlvdSBjYW4gYmluZCBhbnkgcGFj
a2FnZSBuYW1lIHRvIGEgVVJMIHBvaW50aW5nIHRvIHNvbWV0aGluZworICAgICMgdGhhdCBjYW4g
YmUgaW1wb3J0ZWQgdXNpbmcgdGhlIHppcGltcG9ydGVyLgorCisgICAgYXV0b2luc3RhbGwuYmlu
ZCgicHltYXJjIiwgImh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvMi41L3AvcHltYXJj
L3B5bWFyYy0yLjEtcHkyLjUuZWdnIikKKworICAgIGltcG9ydCBweW1hcmMKKworICAgIHByaW50
IHB5bWFyYy5fX3ZlcnNpb25fXywgcHltYXJjLl9fZmlsZV9fCisKKyAgICAKK0NoYW5nZWxvZzo6
CisKKy0gYWRkZWQgc3VwcG9ydCBmb3Igbm9uIHRvcCBsZXZlbCBwYWNrYWdlcy4KKy0gY2FjaGUg
ZmlsZXMgbm93IHVzZSBmaWxlbmFtZSBwYXJ0IGZyb20gVVJMLgorLSBhcHBsaWVkIHBhdGNoIGZy
b20gRXJpYyBTZWlkZWwgPGVzZWlkZWxAZ29vZ2xlLmNvbT4gdG8gYWRkIHN1cHBvcnQKK2ZvciBs
b2FkaW5nIG1vZHVsZXMgd2hlcmUgdGhlIG1vZHVsZSBpcyBub3QgYXQgdGhlIHJvb3Qgb2YgdGhl
IC56aXAKK2ZpbGUuCisKKworVE9ETzo6CisKKy0gYSBkZXNjcmlwdGlvbiBvZiB0aGUgaW50ZW5k
ZWQgdXNlIGNhc2UKKy0gYWRkcmVzcyBvdGhlciBpc3N1ZXMgcG9pbnRlZCBvdXQgaW46CisKKyAg
ICBodHRwOi8vbWFpbC5weXRob24ub3JnL3BpcGVybWFpbC9weXRob24tZGV2LzIwMDgtTWFyY2gv
MDc3OTI2Lmh0bWwKKworU2NyaWJibGVzOjoKKworcHVsbCB2cy4gcHVzaAordXNlciB2cy4gc3lz
dGVtCit3ZWIgdnMuIGZpbGVzeXN0ZW0KK2F1dG8gdnMuIG1hbnVhbAorCittYW5hZ2UgZGV2ZWxv
cG1lbnQgc2FuZGJveGVzCisKK29wdGlvbmFsIGludGVyZmFjZXMuLi4KKworICAgIGRlZiBnZXRf
ZGF0YShwYXRobmFtZSkgLT4gc3RyaW5nIHdpdGggZmlsZSBkYXRhLgorCisgICAgUmV0dXJuIHRo
ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCAncGF0aG5hbWUnLiBSYWlzZSBJT0Vycm9yIGlmCisgICAg
dGhlIGZpbGUgd2Fzbid0IGZvdW5kLiIpOworCisgICAgZGVmIGlzX3BhY2thZ2UsCisgICAgImlz
X3BhY2thZ2UoZnVsbG5hbWUpIC0+IGJvb2wuCisKKyAgICBSZXR1cm4gVHJ1ZSBpZiB0aGUgbW9k
dWxlIHNwZWNpZmllZCBieSBmdWxsbmFtZSBpcyBhIHBhY2thZ2UuCisgICAgUmFpc2UgWmlwSW1w
b3J0RXJyb3IgaXMgdGhlIG1vZHVsZSBjb3VsZG4ndCBiZSBmb3VuZC4iKTsKKworICAgIGRlZiBn
ZXRfY29kZSwKKyAgICAiZ2V0X2NvZGUoZnVsbG5hbWUpIC0+IGNvZGUgb2JqZWN0LgorCisgICAg
UmV0dXJuIHRoZSBjb2RlIG9iamVjdCBmb3IgdGhlIHNwZWNpZmllZCBtb2R1bGUuIFJhaXNlIFpp
cEltcG9ydEVycm9yCisgICAgaXMgdGhlIG1vZHVsZSBjb3VsZG4ndCBiZSBmb3VuZC4iKTsKKwor
ICAgIGRlZiBnZXRfc291cmNlLAorICAgICJnZXRfc291cmNlKGZ1bGxuYW1lKSAtPiBzb3VyY2Ug
c3RyaW5nLgorCisgICAgUmV0dXJuIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBt
b2R1bGUuIFJhaXNlIFppcEltcG9ydEVycm9yCisgICAgaXMgdGhlIG1vZHVsZSBjb3VsZG4ndCBi
ZSBmb3VuZCwgcmV0dXJuIE5vbmUgaWYgdGhlIGFyY2hpdmUgZG9lcworICAgIGNvbnRhaW4gdGhl
IG1vZHVsZSwgYnV0IGhhcyBubyBzb3VyY2UgZm9yIGl0LiIpOworCisKK0F1dG9pbnN0YWxsIGNh
biBhbHNvIGJlIGJvb3RzdHJhcGVkIHdpdGggdGhlIG5hc2NlbnQgcGFja2FnZSBsb2FkZXIKK2Jv
b3RzdHJhcCBtb2R1bGUuIEZvciBleGFtcGxlOjoKKworICAgICMgIG9yIHZpYSB0aGUgYm9vdHN0
cmFwCisgICAgIyBsb2FkZXIuCisKKyAgICB0cnk6CisgICAgICAgIF92ZXJzaW9uID0gIjAuMiIK
KyAgICAgICAgaW1wb3J0IGF1dG9pbnN0YWxsCisgICAgICAgIGlmIGF1dG9pbnN0YWxsLl9fdmVy
c2lvbl9fICE9IF92ZXJzaW9uOgorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIkEgZGlm
ZmVyZW50IHZlcnNpb24gdGhhbiBleHBlY3RlZCBmb3VuZC4iKQorICAgIGV4Y2VwdCBJbXBvcnRF
cnJvciwgZToKKyAgICAgICAgIyBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvc2FuZGJv
eC90cnVuay9ib290c3RyYXAvYm9vdHN0cmFwLnB5CisgICAgICAgIGltcG9ydCBib290c3RyYXAg
CisgICAgICAgIHB5cGkgPSAiaHR0cDovL3B5cGkucHl0aG9uLm9yZyIKKyAgICAgICAgZGlyID0g
InBhY2thZ2VzL3NvdXJjZS9hL2F1dG9pbnN0YWxsIgorICAgICAgICB1cmwgPSAiJXMvJXMvYXV0
b2luc3RhbGwtJXMudGFyLmd6IiAlIChweXBpLCBkaXIsIF92ZXJzaW9uKQorICAgICAgICBib290
c3RyYXAubWFpbigodXJsLCkpCisgICAgICAgIGltcG9ydCBhdXRvaW5zdGFsbAorCitSZWZlcmVu
Y2VzOjoKKworICBodHRwOi8vMGluc3RhbGwubmV0LworICBodHRwOi8vd3d3LnB5dGhvbi5vcmcv
ZGV2L3BlcHMvcGVwLTAzMDIvCisgIGh0dHA6Ly9zdm4ucHl0aG9uLm9yZy9wcm9qZWN0cy9zYW5k
Ym94L3RydW5rL2ltcG9ydF9pbl9weQorICBodHRwOi8vMGluc3RhbGwubmV0L2luamVjdG9yLWZp
bmQuaHRtbAorICBodHRwOi8vcm9zY2lkdXMuY29tL2Rlc2t0b3Avbm9kZS85MDMKKworIiIiCisK
K19fdmVyc2lvbl9fID0gIjAuMiIKK19fZG9jZm9ybWF0X18gPSAicmVzdHJ1Y3R1cmVkdGV4dCBl
biIKKworaW1wb3J0IG9zCitpbXBvcnQgbmV3CitpbXBvcnQgc3lzCitpbXBvcnQgdXJsbGliCitp
bXBvcnQgbG9nZ2luZworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgemlwaW1wb3J0CisKK19sb2dn
ZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitfaW1wb3J0ZXIgPSBOb25lCisK
K2RlZiBfZ2V0SW1wb3J0ZXIoKToKKyAgICBnbG9iYWwgX2ltcG9ydGVyCisgICAgaWYgX2ltcG9y
dGVyIGlzIE5vbmU6CisgICAgICAgIF9pbXBvcnRlciA9IEltcG9ydGVyKCkKKyAgICAgICAgc3lz
Lm1ldGFfcGF0aC5hcHBlbmQoX2ltcG9ydGVyKQorICAgIHJldHVybiBfaW1wb3J0ZXIKKworZGVm
IGJpbmQocGFja2FnZV9uYW1lLCB1cmwsIHppcF9zdWJwYXRoPU5vbmUpOgorICAgICIiImJpbmQg
YSB0b3AgbGV2ZWwgcGFja2FnZSBuYW1lIHRvIGEgVVJMLgorCisgICAgVGhlIHBhY2thZ2UgbmFt
ZSBzaG91bGQgYmUgYSBwYWNrYWdlIG5hbWUgYW5kIHRoZSB1cmwgc2hvdWxkIGJlIGEKKyAgICB1
cmwgdG8gc29tZXRoaW5nIHRoYXQgY2FuIGJlIGltcG9ydGVkIHVzaW5nIHRoZSB6aXBpbXBvcnRl
ci4KKworICAgIE9wdGlvbmFsIHppcF9zdWJwYXRoIHBhcmFtZXRlciBhbGxvd3Mgc2VhcmNoaW5n
IGZvciBtb2R1bGVzCisgICAgYmVsb3cgdGhlIHJvb3QgbGV2ZWwgb2YgdGhlIHppcCBmaWxlLgor
ICAgICIiIgorICAgIF9nZXRJbXBvcnRlcigpLmJpbmQocGFja2FnZV9uYW1lLCB1cmwsIHppcF9z
dWJwYXRoKQorCisKK2NsYXNzIENhY2hlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZGlyZWN0b3J5PU5vbmUpOgorICAgICAgICBzZWxmLmRpcmVjdG9yeSA9IGRpcmVjdG9yeSBv
ciAiLi9hdXRvaW5zdGFsbC5jYWNoZS5kLyIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYg
bm90IG9zLnBhdGguZXhpc3RzKHNlbGYuZGlyZWN0b3J5KToKKyAgICAgICAgICAgICAgICBfbG9n
Z2VyLmRlYnVnKCJDcmVhdGluZyBjYWNoZSBkaXJlY3RvcnkgJyVzJy4iICUgc2VsZi5kaXJlY3Rv
cnkpCisgICAgICAgICAgICAgICAgb3MubWtkaXIoc2VsZi5kaXJlY3RvcnkpCisgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGVycjoKKyAgICAgICAgICAgIF9sb2dnZXIuZXhjZXB0aW9uKGVycikK
KyAgICAgICAgICAgIHNlbGYuY2FjaGVfZGlyZWN0cnkgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAg
ICAgICAgX2xvZ2dlci5pbmZvKCJVc2luZyBjYWNoZSBkaXJlY3RvcnkgJyVzJy4iICUgc2VsZi5k
aXJlY3RvcnkpCisgICAgCisgICAgZGVmIGdldChzZWxmLCB1cmwpOgorICAgICAgICBfbG9nZ2Vy
LmluZm8oIkdldHRpbmcgJyVzJyBmcm9tIGNhY2hlLiIgJSB1cmwpCisgICAgICAgIGZpbGVuYW1l
ID0gdXJsLnJzcGxpdCgiLyIpWy0xXQorCisgICAgICAgICMgc28gdGhhdCBzb3VyY2UgdXJsIGlz
IHNpZ25pZmljYW50IGluIGRldGVybWluaW5nIGNhY2hlIGhpdHMKKyAgICAgICAgZCA9IG9zLnBh
dGguam9pbihzZWxmLmRpcmVjdG9yeSwgIiVzIiAlIGhhc2godXJsKSkKKyAgICAgICAgaWYgbm90
IG9zLnBhdGguZXhpc3RzKGQpOgorICAgICAgICAgICAgb3MubWtkaXIoZCkKKworICAgICAgICBm
aWxlbmFtZSA9IG9zLnBhdGguam9pbihkLCBmaWxlbmFtZSkgCisKKyAgICAgICAgaWYgb3MucGF0
aC5leGlzdHMoZmlsZW5hbWUpOgorICAgICAgICAgICAgX2xvZ2dlci5kZWJ1ZygiLi4uIGFscmVh
ZHkgY2FjaGVkIGluIGZpbGUgJyVzJy4iICUgZmlsZW5hbWUpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBfbG9nZ2VyLmRlYnVnKCIuLi4gbm90IGluIGNhY2hlLiBDYWNoaW5nIGluICclcycu
IiAlIGZpbGVuYW1lKQorICAgICAgICAgICAgc3RyZWFtID0gZmlsZShmaWxlbmFtZSwgIndiIikK
KyAgICAgICAgICAgIHNlbGYuZG93bmxvYWQodXJsLCBzdHJlYW0pCisgICAgICAgICAgICBzdHJl
YW0uY2xvc2UoKQorICAgICAgICByZXR1cm4gZmlsZW5hbWUKKworICAgIGRlZiBkb3dubG9hZChz
ZWxmLCB1cmwsIHN0cmVhbSk6CisgICAgICAgIF9sb2dnZXIuaW5mbygiRG93bmxvYWRpbmc6ICVz
IiAlIHVybCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmV0c3RyZWFtID0gdXJsbGliLnVy
bG9wZW4odXJsKQorICAgICAgICAgICAgY29kZSA9IDIwMAorICAgICAgICAgICAgaWYgaGFzYXR0
cihuZXRzdHJlYW0sICJnZXRjb2RlIik6CisgICAgICAgICAgICAgICAgY29kZSA9IG5ldHN0cmVh
bS5nZXRjb2RlKCkKKyAgICAgICAgICAgIGlmIG5vdCAyMDAgPD0gY29kZSA8IDMwMDoKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJIVFRQIEVycm9yIGNvZGUgJXMiICUgY29kZSkK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZXJyOgorICAgICAgICAgICAgX2xvZ2dlci5leGNl
cHRpb24oZXJyKQorCisgICAgICAgIEJVRlNJWkUgPSAyKioxMyAgIyA4S0IKKyAgICAgICAgc2l6
ZSA9IDAKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGRhdGEgPSBuZXRzdHJlYW0u
cmVhZChCVUZTSVpFKQorICAgICAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgIHN0cmVhbS53cml0ZShkYXRhKQorICAgICAgICAgICAgc2l6ZSAr
PSBsZW4oZGF0YSkKKyAgICAgICAgbmV0c3RyZWFtLmNsb3NlKCkKKyAgICAgICAgX2xvZ2dlci5p
bmZvKCJEb3dubG9hZGVkICVkIGJ5dGVzLiIgJSBzaXplKQorCisKK2NsYXNzIEltcG9ydGVyKG9i
amVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYucGFja2FnZXMg
PSB7fQorICAgICAgICBzZWxmLl9fY2FjaGUgPSBOb25lCisKKyAgICBkZWYgX19nZXRfc3RvcmUo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9fc3RvcmUKKyAgICBzdG9yZSA9IHByb3BlcnR5
KF9fZ2V0X3N0b3JlKQorCisgICAgZGVmIF9nZXRfY2FjaGUoc2VsZik6CisgICAgICAgIGlmIHNl
bGYuX19jYWNoZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fX2NhY2hlID0gQ2FjaGUoKQor
ICAgICAgICByZXR1cm4gc2VsZi5fX2NhY2hlCisgICAgZGVmIF9zZXRfY2FjaGUoc2VsZiwgY2Fj
aGUpOgorICAgICAgICBzZWxmLl9fY2FjaGUgPSBjYWNoZQorICAgIGNhY2hlID0gcHJvcGVydHko
X2dldF9jYWNoZSwgX3NldF9jYWNoZSkKKworICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBmdWxs
bmFtZSwgcGF0aD1Ob25lKToKKyAgICAgICAgIiIiLT4gc2VsZiBvciBOb25lLgorCisgICAgICAg
IFNlYXJjaCBmb3IgYSBtb2R1bGUgc3BlY2lmaWVkIGJ5ICdmdWxsbmFtZScuICdmdWxsbmFtZScg
bXVzdCBiZQorICAgICAgICB0aGUgZnVsbHkgcXVhbGlmaWVkIChkb3R0ZWQpIG1vZHVsZSBuYW1l
LiBJdCByZXR1cm5zIHRoZQorICAgICAgICB6aXBpbXBvcnRlciBpbnN0YW5jZSBpdHNlbGYgaWYg
dGhlIG1vZHVsZSB3YXMgZm91bmQsIG9yIE5vbmUgaWYKKyAgICAgICAgaXQgd2Fzbid0LiBUaGUg
b3B0aW9uYWwgJ3BhdGgnIGFyZ3VtZW50IGlzIGlnbm9yZWQgLS0gaXQncworICAgICAgICB0aGVy
ZSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBpbXBvcnRlciBwcm90b2NvbC4iKTsKKyAgICAg
ICAgIiIiCisgICAgICAgIF9sb2dnZXIuZGVidWcoImZpbmRfbW9kdWxlKCVzLCBwYXRoPSVzKSIg
JSAoZnVsbG5hbWUsIHBhdGgpKQorCisgICAgICAgIGlmIGZ1bGxuYW1lIGluIHNlbGYucGFja2Fn
ZXM6CisgICAgICAgICAgICAodXJsLCB6aXBfc3VicGF0aCkgPSBzZWxmLnBhY2thZ2VzW2Z1bGxu
YW1lXQorICAgICAgICAgICAgZmlsZW5hbWUgPSBzZWxmLmNhY2hlLmdldCh1cmwpCisgICAgICAg
ICAgICB6aXBfcGF0aCA9ICIlcy8lcyIgJSAoZmlsZW5hbWUsIHppcF9zdWJwYXRoKSBpZiB6aXBf
c3VicGF0aCBlbHNlIGZpbGVuYW1lCisgICAgICAgICAgICBfbG9nZ2VyLmRlYnVnKCJmdWxsbmFt
ZTogJXMgdXJsOiAlcyBwYXRoOiAlcyB6aXBfcGF0aDogJXMiICUgKGZ1bGxuYW1lLCB1cmwsIHBh
dGgsIHppcF9wYXRoKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBsb2FkZXIg
PSB6aXBpbXBvcnQuemlwaW1wb3J0ZXIoemlwX3BhdGgpCisgICAgICAgICAgICAgICAgX2xvZ2dl
ci5kZWJ1ZygicmV0dXJuaW5nOiAlcyIgJSBsb2FkZXIpCisgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIF9sb2dnZXIuZXhjZXB0aW9uKGUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIHJldHVybiBsb2FkZXIKKyAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgIGRlZiBiaW5kKHNlbGYsIHBhY2thZ2VfbmFtZSwgdXJsLCB6aXBf
c3VicGF0aCk6CisgICAgICAgIF9sb2dnZXIuaW5mbygiYmluZGluZzogJXMgLT4gJXMgc3VicGF0
aDogJXMiICUgKHBhY2thZ2VfbmFtZSwgdXJsLCB6aXBfc3VicGF0aCkpCisgICAgICAgIHNlbGYu
cGFja2FnZXNbcGFja2FnZV9uYW1lXSA9ICh1cmwsIHppcF9zdWJwYXRoKQorCisKK2lmIF9fbmFt
ZV9fPT0iX19tYWluX18iOgorICAgIGltcG9ydCBsb2dnaW5nCisgICAgI2xvZ2dpbmcuYmFzaWND
b25maWcoKQorICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKworICAgIGNvbnNvbGUg
PSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQorICAgIGNvbnNvbGUuc2V0TGV2ZWwobG9nZ2luZy5E
RUJVRykKKyAgICAjIHNldCBhIGZvcm1hdCB3aGljaCBpcyBzaW1wbGVyIGZvciBjb25zb2xlIHVz
ZQorICAgIGZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpLTEyczogJShsZXZl
bG5hbWUpLThzICUobWVzc2FnZSlzJykKKyAgICAjIHRlbGwgdGhlIGhhbmRsZXIgdG8gdXNlIHRo
aXMgZm9ybWF0CisgICAgY29uc29sZS5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQorICAgICMgYWRk
IHRoZSBoYW5kbGVyIHRvIHRoZSByb290IGxvZ2dlcgorICAgIGxvZ2dlci5hZGRIYW5kbGVyKGNv
bnNvbGUpCisgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuSU5GTykKKworICAgIGJpbmQoInB5
bWFyYyIsICJodHRwOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzIuNS9wL3B5bWFyYy9weW1h
cmMtMi4xLXB5Mi41LmVnZyIpCisKKyAgICBpbXBvcnQgcHltYXJjCisKKyAgICBwcmludCBweW1h
cmMuX192ZXJzaW9uX18sIHB5bWFyYy5fX2ZpbGVfXworCisgICAgYXNzZXJ0IHB5bWFyYy5fX3Zl
cnNpb25fXz09IjIuMSIKKworICAgIGQgPSBfZ2V0SW1wb3J0ZXIoKS5jYWNoZS5kaXJlY3RvcnkK
KyAgICBhc3NlcnQgZCBpbiBweW1hcmMuX19maWxlX18sICInJXMnIG5vdCBmb3VuZCBpbiBweW1h
cmMuX19maWxlX18gKCVzKSIgJSAoZCwgcHltYXJjLl9fZmlsZV9fKQorCisgICAgIyBDYW4gbm93
IGFsc28gYmluZCB0byBub24gdG9wIGxldmVsIHBhY2thZ2VzLiBUaGUgcGFja2FnZXMKKyAgICAj
IGxlYWRpbmcgdXAgdG8gdGhlIHBhY2thZ2UgYmVpbmcgYm91bmQgd2lsbCBuZWVkIHRvIGJlIGRl
ZmluZWQKKyAgICAjIGhvd2V2ZXIuCisgICAgIworICAgICMgYmluZCgicmRmLnBsdWdpbnMuc3Rv
cmVzLm1lbW9yeSIsIAorICAgICMgICAgICAiaHR0cDovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdl
cy8yLjUvci9yZGYucGx1Z2lucy5zdG9yZXMubWVtZW9yeS9yZGYucGx1Z2lucy5zdG9yZXMubWVt
b3J5LTAuOWEtcHkyLjUuZWdnIikKKyAgICAjCisgICAgIyBmcm9tIHJkZi5wbHVnaW5zLnN0b3Jl
cy5tZW1vcnkgaW1wb3J0IE1lbW9yeQorCisKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYnVnemlsbGEucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1
Z3ppbGxhLnB5CmluZGV4IGFiZjVmYzEuLjQ4YTY2OTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYnVnemlsbGEucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9idWd6aWxsYS5weQpAQCAtMzksMTEgKzM5LDExIEBAIGZyb20gd2Via2l0cHkud2Vi
a2l0X2xvZ2dpbmcgaW1wb3J0IGVycm9yLCBsb2cKIGZyb20gd2Via2l0cHkuY29tbWl0dGVycyBp
bXBvcnQgQ29tbWl0dGVyTGlzdAogZnJvbSB3ZWJraXRweS5jcmVkZW50aWFscyBpbXBvcnQgQ3Jl
ZGVudGlhbHMKIAotIyBXZWJLaXQgaW5jbHVkZXMgYSBidWlsdCBjb3B5IG9mIEJlYXV0aWZ1bFNv
dXAgaW4gU2NyaXB0cy9tb2R1bGVzCisjIFdlYktpdCBpbmNsdWRlcyBhIGJ1aWx0IGNvcHkgb2Yg
QmVhdXRpZnVsU291cCBpbiBTY3JpcHRzL3dlYmtpdHB5CiAjIHNvIHRoaXMgaW1wb3J0IHNob3Vs
ZCBhbHdheXMgc3VjY2VlZC4KIGZyb20gLkJlYXV0aWZ1bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNv
dXAsIFNvdXBTdHJhaW5lcgogCi1mcm9tIHdlYmtpdHB5LndlYmtpdF9tZWNoYW5pemUgaW1wb3J0
IEJyb3dzZXIKK2Zyb20gbWVjaGFuaXplIGltcG9ydCBCcm93c2VyCiAKIGRlZiBwYXJzZV9idWdf
aWQobWVzc2FnZSk6CiAgICAgbWF0Y2ggPSByZS5zZWFyY2goImh0dHBcOi8vd2Via2l0XC5vcmcv
Yi8oP1A8YnVnX2lkPlxkKykiLCBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdGF0dXNib3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0YXR1c2JvdC5weQppbmRleCAwMDE3N2E1Li5mZTMxODAyIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0YXR1c2JvdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0YXR1c2JvdC5weQpAQCAtMjksNyArMjksNyBAQAogIyBXZWJLaXQncyBQ
eXRob24gbW9kdWxlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBDb21taXQgUXVldWUgc3RhdHVz
IHBhZ2UuCiAKIGZyb20gd2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1wb3J0IGxvZwotZnJvbSB3
ZWJraXRweS53ZWJraXRfbWVjaGFuaXplIGltcG9ydCBCcm93c2VyCitmcm9tIG1lY2hhbml6ZSBp
bXBvcnQgQnJvd3NlcgogCiAjIFdlYktpdCBpbmNsdWRlcyBhIGJ1aWx0IGNvcHkgb2YgQmVhdXRp
ZnVsU291cCBpbiBTY3JpcHRzL3dlYmtpdHB5CiAjIHNvIHRoaXMgaW1wb3J0IHNob3VsZCBhbHdh
eXMgc3VjY2VlZC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2Vi
a2l0X21lY2hhbml6ZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2Via2l0X21l
Y2hhbml6ZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQyZDIzOS4uMDAwMDAw
MAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmtpdF9tZWNoYW5pemUucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyAKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIyAKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMKLSMg
QSBweXRob24gc2hpbSBmb3IgaW1wb3J0aW5nIG1lY2hhbml6ZS4KLQotIyBGSVhNRTogV2Ugc2hv
dWxkIHRyeSB0byBkb3dubG9hZCBhIGNvcHkgaW5zdGVhZCBvZiByZXF1aXJpbmcgcm9vdCBhY2Nl
c3MuCi10cnk6Ci0gICAgZnJvbSBtZWNoYW5pemUgaW1wb3J0IEJyb3dzZXIKLWV4Y2VwdCBJbXBv
cnRFcnJvciwgZToKLSAgICBwcmludCAiIiIKLW1lY2hhbml6ZSBpcyByZXF1aXJlZC4KLQotVG8g
aW5zdGFsbDoKLXN1ZG8gZWFzeV9pbnN0YWxsIG1lY2hhbml6ZQotCi1PciBmcm9tIHRoZSB3ZWI6
Ci1odHRwOi8vd3d3c2VhcmNoLnNvdXJjZWZvcmdlLm5ldC9tZWNoYW5pemUvCi0iIiIKLSAgICBl
eGl0KDEpCg==
</data>
<flag name="review"
          id="27902"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>