<?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>77551</bug_id>
          
          <creation_ts>2012-02-01 06:49:05 -0800</creation_ts>
          <short_desc>[GTK] Fix xrefs after installing API documentation</short_desc>
          <delta_ts>2012-02-06 01:23:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77094</dependson>
    
    <dependson>77542</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>hayato</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547057</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-01 06:49:05 -0800</bug_when>
    <thetext>gtk-doc does the right thing when you have the api documentation of the dependencies (glib, soup, gtk, etc.) installed in the same prefix you are installing webkit, but we need to provide the additional directories to scan for api docs installed in a different prefix. We can get the prefix of every package from the pkg-config file, pass the directories where the documentation might be installed for every dependency to gtkdoc-fixxref. That&apos;s enough to fix gtkdoc-fixxref warnings (assuming you have the docs intalled), but links are created with path relative to the current one, assuming all deps will be in the same prefix. So, after install the documentation we need to run gtkdoc-rebase to fix all possible invalid links (valid links are just kept of course).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547066</commentid>
    <comment_count>1</comment_count>
      <attachid>124947</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-01 06:59:19 -0800</bug_when>
    <thetext>Created attachment 124947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547101</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-01 08:43:44 -0800</bug_when>
    <thetext>I believe this is the patch for bug 77094.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547103</commentid>
    <comment_count>3</comment_count>
      <attachid>124957</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-01 08:49:51 -0800</bug_when>
    <thetext>Created attachment 124957
The correct patch

Sorry, I uploaded the wrong patch :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547602</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-01 20:37:59 -0800</bug_when>
    <thetext>It seems I wrongly canceled the review flag for the patch in 77551. I intended 77511.
Could you set review flag again if it was canceled? I am sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547684</commentid>
    <comment_count>5</comment_count>
      <attachid>124957</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-01 23:32:31 -0800</bug_when>
    <thetext>Comment on attachment 124957
The correct patch

No problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547686</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-01 23:38:28 -0800</bug_when>
    <thetext>Btw, Martin suggested to get the deps automatically from the pkg-config files, starting with the packages required by webkitgtk and walking recursively. That might work to find the packages, but every package can have more than one module and it can be installed with a name it&apos;s not possible to get automatically. For example: glib-2.0 installs gio, glib and gobject, gtk+2-0 installs gdk and gtk, but gtk-3.0 instal gtk3 and gdk3, libsoup-2.4 installs libsoup-2.4 with the same name than the package. The deps are just a few, so I think it&apos;s not a problem to add them manually. If we introduce a new one, gtkdoc-fixxref will show new warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549789</commentid>
    <comment_count>7</comment_count>
      <attachid>124957</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 00:37:00 -0800</bug_when>
    <thetext>Comment on attachment 124957
The correct patch

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

Nice stuff! I have just a few suggestions for moving things around.

&gt; Tools/GNUmakefile.am:328
&gt; +	$(srcdir)/Tools/gtk/generate-gtkdoc --rebase

I think this should happen automatically when --skip-html is not passed to generate-gtkdoc. Either that or you should add --skip-rebase to generate-gtkdoc and make sure to pass it in the build scripts.

&gt; Tools/gtk/common.py:90
&gt; +def xref_deps(xref_dep_packages):
&gt; +    def package_prefix(package):
&gt; +        process = subprocess.Popen([&apos;pkg-config&apos;, &apos;--variable=prefix&apos;, package],
&gt; +                                   stdout=subprocess.PIPE)
&gt; +        stdout = process.communicate()[0]
&gt; +        if process.returncode != 0:
&gt; +            return None
&gt; +        return stdout.strip()
&gt; +
&gt; +    deps = []

I think odds are low that we are ever going to use xref_deps in any other file. I would keep package_prefix here and just call it something like prefix_of_pkg_config_file. I&apos;d move xref_deps to generate-gtkdoc and call it get_gtkdoc_module_paths.

&gt; Tools/gtk/common.py:103
&gt; +def gtk_version(pkg_config_path):

Might want to name this to gtk_version_of_pkg_config_file.

&gt; Tools/gtk/generate-gtkdoc:106
&gt; +        &apos;xref_deps&apos; : common.xref_deps(xref_deps),

Do you mind changing this argument name to cross_reference_deps? I know it&apos;s a bit obtuse, but cross_reference seems a little clearer than xref here.

&gt; Tools/gtk/generate-gtkdoc:140
&gt; +    if &apos;--rebase&apos; not in sys.argv:
&gt; +        print &quot;Generating WebKit1 documentation...&quot;
&gt; +        saw_webkit1_warnings = generate_doc(pkg_config_path, get_webkit1_options(common.gtk_version(pkg_config_path)))
&gt; +    else:
&gt; +        print &quot;Rebasing WebKit1 documentation...&quot;
&gt; +        rebase_doc(pkg_config_path, get_webkit1_options(common.gtk_version(pkg_config_path)))

I think it makes sense to just get the options once here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549796</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-06 00:42:21 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 124957 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124957&amp;action=review
&gt; 
&gt; Nice stuff! I have just a few suggestions for moving things around.
&gt; 
&gt; &gt; Tools/GNUmakefile.am:328
&gt; &gt; +	$(srcdir)/Tools/gtk/generate-gtkdoc --rebase
&gt; 
&gt; I think this should happen automatically when --skip-html is not passed to generate-gtkdoc. Either that or you should add --skip-rebase to generate-gtkdoc and make sure to pass it in the build scripts.

I&apos;m not sure I get what you mean, you only want to rebase installed docs, so rebase has to be called once the docs has been installed.

&gt; &gt; Tools/gtk/common.py:90
&gt; &gt; +def xref_deps(xref_dep_packages):
&gt; &gt; +    def package_prefix(package):
&gt; &gt; +        process = subprocess.Popen([&apos;pkg-config&apos;, &apos;--variable=prefix&apos;, package],
&gt; &gt; +                                   stdout=subprocess.PIPE)
&gt; &gt; +        stdout = process.communicate()[0]
&gt; &gt; +        if process.returncode != 0:
&gt; &gt; +            return None
&gt; &gt; +        return stdout.strip()
&gt; &gt; +
&gt; &gt; +    deps = []
&gt; 
&gt; I think odds are low that we are ever going to use xref_deps in any other file. I would keep package_prefix here and just call it something like prefix_of_pkg_config_file. I&apos;d move xref_deps to generate-gtkdoc and call it get_gtkdoc_module_paths.

Ok

&gt; &gt; Tools/gtk/common.py:103
&gt; &gt; +def gtk_version(pkg_config_path):
&gt; 
&gt; Might want to name this to gtk_version_of_pkg_config_file.
&gt; 
&gt; &gt; Tools/gtk/generate-gtkdoc:106
&gt; &gt; +        &apos;xref_deps&apos; : common.xref_deps(xref_deps),
&gt; 
&gt; Do you mind changing this argument name to cross_reference_deps? I know it&apos;s a bit obtuse, but cross_reference seems a little clearer than xref here.

xref is pretty standard name, but I don&apos;t mind to rename it

&gt; &gt; Tools/gtk/generate-gtkdoc:140
&gt; &gt; +    if &apos;--rebase&apos; not in sys.argv:
&gt; &gt; +        print &quot;Generating WebKit1 documentation...&quot;
&gt; &gt; +        saw_webkit1_warnings = generate_doc(pkg_config_path, get_webkit1_options(common.gtk_version(pkg_config_path)))
&gt; &gt; +    else:
&gt; &gt; +        print &quot;Rebasing WebKit1 documentation...&quot;
&gt; &gt; +        rebase_doc(pkg_config_path, get_webkit1_options(common.gtk_version(pkg_config_path)))
&gt; 
&gt; I think it makes sense to just get the options once here.

it happens once</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549802</commentid>
    <comment_count>9</comment_count>
      <attachid>124957</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 00:49:55 -0800</bug_when>
    <thetext>Comment on attachment 124957
The correct patch

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

&gt;&gt;&gt; Tools/GNUmakefile.am:328
&gt;&gt;&gt; +	$(srcdir)/Tools/gtk/generate-gtkdoc --rebase
&gt;&gt; 
&gt;&gt; I think this should happen automatically when --skip-html is not passed to generate-gtkdoc. Either that or you should add --skip-rebase to generate-gtkdoc and make sure to pass it in the build scripts.
&gt; 
&gt; I&apos;m not sure I get what you mean, you only want to rebase installed docs, so rebase has to be called once the docs has been installed.

Ah, I understand now. I suggested a small rename below then.

&gt;&gt;&gt; Tools/gtk/generate-gtkdoc:140
&gt;&gt;&gt; +        rebase_doc(pkg_config_path, get_webkit1_options(common.gtk_version(pkg_config_path)))
&gt;&gt; 
&gt;&gt; I think it makes sense to just get the options once here.
&gt; 
&gt; it happens once

Sorry, I meant just to factor out the code that gets the options to one place.
options = get_webkit1_options(common.gtk_version(pkg_config_path)
if &apos;--rebase&apos; not in sys.argv:
    print &quot;Generating WebKit1 documentation...&quot;
    saw_webkit1_warnings = generate_doc(pkg_config_path, options)
else:
    print &quot;Rebasing WebKit1 documentation...&quot;
    rebase_doc(pkg_config_path, options)

&gt; Tools/gtk/gtkdoc.py:352
&gt; +    def rebase(self):

Perhaps call this rebase_installed_docs, just to avoid confusing dumb people like me. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549803</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-06 00:52:14 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 124957 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124957&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/GNUmakefile.am:328
&gt; &gt;&gt;&gt; +	$(srcdir)/Tools/gtk/generate-gtkdoc --rebase
&gt; &gt;&gt; 
&gt; &gt;&gt; I think this should happen automatically when --skip-html is not passed to generate-gtkdoc. Either that or you should add --skip-rebase to generate-gtkdoc and make sure to pass it in the build scripts.
&gt; &gt; 
&gt; &gt; I&apos;m not sure I get what you mean, you only want to rebase installed docs, so rebase has to be called once the docs has been installed.
&gt; 
&gt; Ah, I understand now. I suggested a small rename below then.
&gt; 
&gt; &gt;&gt;&gt; Tools/gtk/generate-gtkdoc:140
&gt; &gt;&gt;&gt; +        rebase_doc(pkg_config_path, get_webkit1_options(common.gtk_version(pkg_config_path)))
&gt; &gt;&gt; 
&gt; &gt;&gt; I think it makes sense to just get the options once here.
&gt; &gt; 
&gt; &gt; it happens once
&gt; 
&gt; Sorry, I meant just to factor out the code that gets the options to one place.
&gt; options = get_webkit1_options(common.gtk_version(pkg_config_path)
&gt; if &apos;--rebase&apos; not in sys.argv:
&gt;     print &quot;Generating WebKit1 documentation...&quot;
&gt;     saw_webkit1_warnings = generate_doc(pkg_config_path, options)
&gt; else:
&gt;     print &quot;Rebasing WebKit1 documentation...&quot;
&gt;     rebase_doc(pkg_config_path, options)

Ok

&gt; &gt; Tools/gtk/gtkdoc.py:352
&gt; &gt; +    def rebase(self):
&gt; 
&gt; Perhaps call this rebase_installed_docs, just to avoid confusing dumb people like me. :)

Ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549817</commentid>
    <comment_count>11</comment_count>
      <attachid>125593</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-06 01:17:17 -0800</bug_when>
    <thetext>Created attachment 125593
Updated patch according to review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549822</commentid>
    <comment_count>12</comment_count>
      <attachid>125593</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 01:19:29 -0800</bug_when>
    <thetext>Comment on attachment 125593
Updated patch according to review

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549827</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-06 01:23:30 -0800</bug_when>
    <thetext>Committed r106786: &lt;http://trac.webkit.org/changeset/106786&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124947</attachid>
            <date>2012-02-01 06:59:19 -0800</date>
            <delta_ts>2012-02-01 08:49:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>install-api-docs.diff</filename>
            <type>text/plain</type>
            <size>3233</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NjQz
YjAwLi4xMTExNTNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFQSSBkb2N1bWVudGF0aW9u
IGlzIG5vdCBpbnN0YWxsZWQgZXZlbiB3aGVuIGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtZ3RrLWRv
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwOTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBBZGQgaW5zdGFsbC1kYXRhLWxvY2FsIGFuZCB1bmluc3RhbGwtbG9jYWwgcnVs
ZXMKKyAgICAgICAgdG8gaW5zdGFsbC91bmluc3RhbGwgV2ViS2l0MSBhbmQgV2ViS2l0MiBBUEkg
ZG9jdW1lbnRhdGlvbi4KKwogMjAxMi0wMS0zMSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIGJhc2ljIERSVC9FZmwgaW1wbGVtZW50YXRp
b24gdG8gc3VwcG9ydCB2aWV3cG9ydCB0ZXN0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvR05VbWFrZWZp
bGUuYW0gYi9Ub29scy9HTlVtYWtlZmlsZS5hbQppbmRleCBkMDQ3ZjA4Li42NDQzMjkzIDEwMDY0
NAotLS0gYS9Ub29scy9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9HTlVtYWtlZmlsZS5hbQpA
QCAtMjgyLDYgKzI4Miw2OCBAQCBkb2MtbWFpbnRhaW5lci1jbGVhbi1sb2NhbDogY2xlYW4KIAlA
cm0gLXJmIERvY3VtZW50YXRpb24vd2Via2l0Z3RrIERvY3VtZW50YXRpb24vd2Via2l0Mmd0awog
CS1Acm1kaXIgRG9jdW1lbnRhdGlvbgogCitpbnN0YWxsLWRhdGEtbG9jYWw6CisJQGluc3RhbGxm
aWxlcz1gZWNobyAuL0RvY3VtZW50YXRpb24vd2Via2l0Z3RrL2h0bWwvKmA7IFwKKwlpZiB0ZXN0
ICIkJGluc3RhbGxmaWxlcyIgPSAnLi9Eb2N1bWVudGF0aW9uL3dlYmtpdGd0ay9odG1sLyonOyBc
CisJdGhlbiBlY2hvIDE+JjIgJ05vdGhpbmcgdG8gaW5zdGFsbCcgOyBcCisJZWxzZSBcCisJICBE
T0NfTU9EVUxFX1ZFUlNJT049YGNhdCAuL0RvY3VtZW50YXRpb24vd2Via2l0Z3RrL3ZlcnNpb24u
eG1sYDsgXAorCSAgaWYgdGVzdCAtbiAiJChET0NfTU9EVUxFX1ZFUlNJT04pIjsgdGhlbiBcCisJ
ICAgIGluc3RhbGxkaXI9IiQoREVTVERJUikkKEhUTUxfRElSKS93ZWJraXRndGstJChET0NfTU9E
VUxFX1ZFUlNJT04pIjsgXAorCSAgZWxzZSBcCisJICAgIGluc3RhbGxkaXI9IiQoREVTVERJUikk
KEhUTUxfRElSKS93ZWJraXRndGsiOyBcCisJICBmaTsgXAorCSAgJChta2luc3RhbGxkaXJzKSAk
JHtpbnN0YWxsZGlyfSA7IFwKKwkgIGZvciBpIGluICQkaW5zdGFsbGZpbGVzOyBkbyBcCisJICAg
IGVjaG8gJyAkKElOU1RBTExfREFUQSkgJyQkaSA7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICQk
aSAkJHtpbnN0YWxsZGlyfTsgXAorCSAgZG9uZTsgXAorCSAgaWYgdGVzdCAtbiAiJChET0NfTU9E
VUxFX1ZFUlNJT04pIjsgdGhlbiBcCisJICAgIG12IC1mICQke2luc3RhbGxkaXJ9L3dlYmtpdGd0
ay5kZXZoZWxwMiBcCisJICAgICAgJCR7aW5zdGFsbGRpcn0vd2Via2l0Z3RrLSQoRE9DX01PRFVM
RV9WRVJTSU9OKS5kZXZoZWxwMjsgXAorCSAgZmk7IFwKKwlmaQoraWYgRU5BQkxFX1dFQktJVDIK
KwlAaW5zdGFsbGZpbGVzPWBlY2hvIC4vRG9jdW1lbnRhdGlvbi93ZWJraXQyZ3RrL2h0bWwvKmA7
IFwKKwlpZiB0ZXN0ICIkJGluc3RhbGxmaWxlcyIgPSAnLi9Eb2N1bWVudGF0aW9uL3dlYmtpdDJn
dGsvaHRtbC8qJzsgXAorCXRoZW4gZWNobyAxPiYyICdOb3RoaW5nIHRvIGluc3RhbGwnIDsgXAor
CWVsc2UgXAorCSAgRE9DX01PRFVMRV9WRVJTSU9OPWBjYXQgLi9Eb2N1bWVudGF0aW9uL3dlYmtp
dDJndGsvdmVyc2lvbi54bWxgOyBcCisJICBpZiB0ZXN0IC1uICIkKERPQ19NT0RVTEVfVkVSU0lP
TikiOyB0aGVuIFwKKwkgICAgaW5zdGFsbGRpcj0iJChERVNURElSKSQoSFRNTF9ESVIpL3dlYmtp
dDJndGstJChET0NfTU9EVUxFX1ZFUlNJT04pIjsgXAorCSAgZWxzZSBcCisJICAgIGluc3RhbGxk
aXI9IiQoREVTVERJUikkKEhUTUxfRElSKS93ZWJraXQyZ3RrIjsgXAorCSAgZmk7IFwKKwkgICQo
bWtpbnN0YWxsZGlycykgJCR7aW5zdGFsbGRpcn0gOyBcCisJICBmb3IgaSBpbiAkJGluc3RhbGxm
aWxlczsgZG8gXAorCSAgICBlY2hvICcgJChJTlNUQUxMX0RBVEEpICckJGkgOyBcCisJICAgICQo
SU5TVEFMTF9EQVRBKSAkJGkgJCR7aW5zdGFsbGRpcn07IFwKKwkgIGRvbmU7IFwKKwkgIGlmIHRl
c3QgLW4gIiQoRE9DX01PRFVMRV9WRVJTSU9OKSI7IHRoZW4gXAorCSAgICBtdiAtZiAkJHtpbnN0
YWxsZGlyfS93ZWJraXQyZ3RrLmRldmhlbHAyIFwKKwkgICAgICAkJHtpbnN0YWxsZGlyfS93ZWJr
aXQyZ3RrLSQoRE9DX01PRFVMRV9WRVJTSU9OKS5kZXZoZWxwMjsgXAorCSAgZmk7IFwKKwlmaQor
ZW5kaWYKKwordW5pbnN0YWxsLWxvY2FsOgorCUBET0NfTU9EVUxFX1ZFUlNJT049YGNhdCAuL0Rv
Y3VtZW50YXRpb24vd2Via2l0Z3RrL3ZlcnNpb24ueG1sYDsgXAorCWlmIHRlc3QgLW4gIiQoRE9D
X01PRFVMRV9WRVJTSU9OKSI7IHRoZW4gXAorCSAgaW5zdGFsbGRpcj0iJChERVNURElSKSQoSFRN
TF9ESVIpL3dlYmtpdGd0ay0kKERPQ19NT0RVTEVfVkVSU0lPTikiOyBcCisJZWxzZSBcCisJICBp
bnN0YWxsZGlyPSIkKERFU1RESVIpJChIVE1MX0RJUikvd2Via2l0Z3RrIjsgXAorCWZpOyBcCisJ
cm0gLXJmICQke2luc3RhbGxkaXJ9CitpZiBFTkFCTEVfV0VCS0lUMgorCUBET0NfTU9EVUxFX1ZF
UlNJT049YGNhdCAuL0RvY3VtZW50YXRpb24vd2Via2l0Mmd0ay92ZXJzaW9uLnhtbGA7IFwKKwlp
ZiB0ZXN0IC1uICIkKERPQ19NT0RVTEVfVkVSU0lPTikiOyB0aGVuIFwKKwkgIGluc3RhbGxkaXI9
IiQoREVTVERJUikkKEhUTUxfRElSKS93ZWJraXQyZ3RrLSQoRE9DX01PRFVMRV9WRVJTSU9OKSI7
IFwKKwllbHNlIFwKKwkgIGluc3RhbGxkaXI9IiQoREVTVERJUikkKEhUTUxfRElSKS93ZWJraXQy
Z3RrIjsgXAorCWZpOyBcCisJcm0gLXJmICQke2luc3RhbGxkaXJ9CitlbmRpZgorCiBpZiBFTkFC
TEVfR1RLX0RPQwogYWxsOiBkb2NzLWJ1aWxkLnN0YW1wCiBlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124957</attachid>
            <date>2012-02-01 08:49:51 -0800</date>
            <delta_ts>2012-02-06 01:17:17 -0800</delta_ts>
            <desc>The correct patch</desc>
            <filename>api-doc-fix-xrefs.diff</filename>
            <type>text/plain</type>
            <size>9437</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NjQz
YjAwLi5jZTI1ZTgyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDItMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZpeCB4cmVmcyBhZnRlciBp
bnN0YWxsaW5nIEFQSSBkb2N1bWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IENhbGwgZ2VuZXJhdGUtZ3RrZG9j
IC0tcmViYXNlIGFmdGVyIGluc3RhbGxpbmcKKyAgICAgICAgYXBpIGRvY3MuCisgICAgICAgICog
Z3RrL2NvbW1vbi5weToKKyAgICAgICAgKHhyZWZfZGVwcyk6IEdldCBwYXRocyB3aGVyZSBBUEkg
ZG9jIGlzIGluc3RhbGxlZCBmb3IgdGhlCisgICAgICAgIGRlcGVuZGVuY2llcyBvZiB0aGUgZ2l2
ZW4gcGtnLWNvbmZpZyBmaWxlLgorICAgICAgICAoZ3RrX3ZlcnNpb24pOiBHZXQgdGhlIGd0ayB2
ZXJzaW9uIHJlcXVpcmVkIGJ5IHRoZSBnaXZlbgorICAgICAgICBwa2ctY29uZmlnIGZpbGUuCisg
ICAgICAgICogZ3RrL2dlbmVyYXRlLWd0a2RvYzogQWRkIC0tcmViYXNlIGNvbW1hbmQgbGluZSBv
cHRpb24gdG8gcmViYXNlCisgICAgICAgIGluc3RhbGxlZCBkb2N1bWVudGF0aW9uLgorICAgICAg
ICAoZ2V0X2NvbW1vbl94cmVmX2RlcHMpOiBHZXQgQVBJIGRvYyBkaXJlY3RvcmllcyBvZiBkZXBl
bmRlbmNpZXMKKyAgICAgICAgY29tbW9uIHRvIFdlYktpdDEgYW5kIFdlYktpdDIuCisgICAgICAg
IChnZXRfd2Via2l0Ml9vcHRpb25zKTogQWRkIHhyZWZfZGVwcyBvcHRpb24uCisgICAgICAgIChn
ZXRfd2Via2l0MV9vcHRpb25zKTogRGl0dG8uCisgICAgICAgIChyZWJhc2VfZG9jKTogSGVscGVy
IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGdlbmVyYXRvciBmb3IgdGhlIGdpdmVuCisgICAgICAgIHBr
Zy1jb25maWcgZmlsZSBhbmQgb3B0aW9ucyBhbmQgY2FsbCByZWJhc2UuCisgICAgICAgICogZ3Rr
L2d0a2RvYy5weToKKyAgICAgICAgKEdUS0RvYy5fX2luaXRfXyk6IEluaXRpYWxpemUgeHJlZl9k
ZXBzLgorICAgICAgICAoR1RLRG9jLl9ydW5fZ3RrZG9jX2ZpeHhyZWYpOiBBZGQgQVBJIGRvYyBk
aXJlY3RvcmllcyBvZgorICAgICAgICBkZXBlbmRlbmNpZXMuCisgICAgICAgIChHVEtEb2MucmVi
YXNlKTogQ2FsbCBndGtkb2MtcmViYXNlIHRvIGZpeCB4cmVmIGxpbmtzIG9mIGluc3RhbGxlZAor
ICAgICAgICBkb2N1bWVudGF0aW9uLgorICAgICAgICAoUGtnQ29uZmlnR1RLRG9jLl9faW5pdF9f
KTogR2V0IHRoZSBwcmVmaXggZnJvbSB0aGUgcGtnLWNvbmZpZworICAgICAgICBmaWxlLgorCiAy
MDEyLTAxLTMxICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXSBBZGQgYmFzaWMgRFJUL0VmbCBpbXBsZW1lbnRhdGlvbiB0byBzdXBwb3J0IHZpZXdw
b3J0IHRlc3QuCmRpZmYgLS1naXQgYS9Ub29scy9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL0dOVW1h
a2VmaWxlLmFtCmluZGV4IDY0NDMyOTMuLmJlN2I2MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCkBAIC0zMjUsNiArMzI1LDcgQEAg
aWYgRU5BQkxFX1dFQktJVDIKIAkgIGZpOyBcCiAJZmkKIGVuZGlmCisJJChzcmNkaXIpL1Rvb2xz
L2d0ay9nZW5lcmF0ZS1ndGtkb2MgLS1yZWJhc2UKIAogdW5pbnN0YWxsLWxvY2FsOgogCUBET0Nf
TU9EVUxFX1ZFUlNJT049YGNhdCAuL0RvY3VtZW50YXRpb24vd2Via2l0Z3RrL3ZlcnNpb24ueG1s
YDsgXApkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2NvbW1vbi5weSBiL1Rvb2xzL2d0ay9jb21tb24u
cHkKaW5kZXggNzk0MWUxMy4uZWNmZWFjZiAxMDA2NDQKLS0tIGEvVG9vbHMvZ3RrL2NvbW1vbi5w
eQorKysgYi9Ub29scy9ndGsvY29tbW9uLnB5CkBAIC03NiwzICs3NiwzNSBAQCBkZWYgbnVtYmVy
X29mX2NwdXMoKToKICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Blbihbc2NyaXB0X3BhdGgo
J251bS1jcHVzJyldLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQogICAgIHN0ZG91dCA9IHByb2Nl
c3MuY29tbXVuaWNhdGUoKVswXQogICAgIHJldHVybiBpbnQoc3Rkb3V0KQorCisKK2RlZiB4cmVm
X2RlcHMoeHJlZl9kZXBfcGFja2FnZXMpOgorICAgIGRlZiBwYWNrYWdlX3ByZWZpeChwYWNrYWdl
KToKKyAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWydwa2ctY29uZmlnJywgJy0t
dmFyaWFibGU9cHJlZml4JywgcGFja2FnZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgIHN0ZG91dCA9IHByb2Nlc3Mu
Y29tbXVuaWNhdGUoKVswXQorICAgICAgICBpZiBwcm9jZXNzLnJldHVybmNvZGUgIT0gMDoKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBzdGRvdXQuc3RyaXAoKQorCisg
ICAgZGVwcyA9IFtdCisgICAgaHRtbF9kaXIgPSBvcy5wYXRoLmpvaW4oJ3NoYXJlJywgJ2d0ay1k
b2MnLCAnaHRtbCcpCisKKyAgICBmb3IgcGFja2FnZSBpbiB4cmVmX2RlcF9wYWNrYWdlczoKKyAg
ICAgICAgcHJlZml4ID0gcGFja2FnZV9wcmVmaXgocGFja2FnZSkKKyAgICAgICAgaWYgcHJlZml4
IGlzIE5vbmU6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBmb3IgbW9kdWxlIGluIHhy
ZWZfZGVwX3BhY2thZ2VzW3BhY2thZ2VdOgorICAgICAgICAgICAgZGVwcy5hcHBlbmQob3MucGF0
aC5qb2luKHByZWZpeCwgaHRtbF9kaXIsIG1vZHVsZSkpCisKKyAgICByZXR1cm4gZGVwcworCisK
K2RlZiBndGtfdmVyc2lvbihwa2dfY29uZmlnX3BhdGgpOgorICAgIHByb2Nlc3MgPSBzdWJwcm9j
ZXNzLlBvcGVuKFsncGtnLWNvbmZpZycsIHBrZ19jb25maWdfcGF0aCwgJy0tcHJpbnQtcmVxdWly
ZXMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5Q
SVBFKQorICAgIHN0ZG91dCA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKVswXQorCisgICAgaWYgJ2d0
aystMy4wJyBpbiBzdGRvdXQ6CisgICAgICAgIHJldHVybiAzCisgICAgcmV0dXJuIDIKZGlmZiAt
LWdpdCBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MgYi9Ub29scy9ndGsvZ2VuZXJhdGUtZ3Rr
ZG9jCmluZGV4IDJiOGM2ZWEuLjAyMzIxZmEgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9nZW5lcmF0
ZS1ndGtkb2MKKysrIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwpAQCAtNDEsMTIgKzQxLDI0
IEBAIGRlZiBnZXRfY29tbW9uX29wdGlvbnMoKToKICAgICAgICAgJ2xpYnJhcnlfcGF0aCcgOiBj
b21tb24uYnVpbGRfcGF0aCgnLmxpYnMnKSwKICAgICB9CiAKK2RlZiBnZXRfY29tbW9uX3hyZWZf
ZGVwcygpOgorICAgIHJldHVybiB7CisgICAgICAgICdnbGliLTIuMCcgOiBbJ2dsaWInLCAnZ29i
amVjdCcsICdnaW8nXSwKKyAgICAgICAgJ2xpYnNvdXAtMi40JyA6IFsnbGlic291cC0yLjQnXSwK
KyAgICAgICAgJ2dkay1waXhidWYtMi4wJzogWydnZGstcGl4YnVmJ10KKyAgICB9CisKIGRlZiBn
ZXRfd2Via2l0Ml9vcHRpb25zKCk6CiAgICAgZGVmIGRlcml2ZWRfc291cmNlc19wYXRoKCphcmdz
KToKICAgICAgICAgcmV0dXJuIGNvbW1vbi5idWlsZF9wYXRoKCooKCdEZXJpdmVkU291cmNlcycs
ICdXZWJLaXQyJykgKyBhcmdzKSkKICAgICBkZWYgc3JjX3BhdGgoKmFyZ3MpOgogICAgICAgICBy
ZXR1cm4gY29tbW9uLnRvcF9sZXZlbF9wYXRoKCooKCdTb3VyY2UnLCAnV2ViS2l0MicsICdVSVBy
b2Nlc3MnLCAnQVBJJywgJ2d0aycpICsgYXJncykpCiAKKyAgICB4cmVmX2RlcHMgPSBnZXRfY29t
bW9uX3hyZWZfZGVwcygpLmNvcHkoKQorICAgIHhyZWZfZGVwcy51cGRhdGUoeworICAgICAgICAn
Z3RrKy0zLjAnIDogWydndGszJywgJ2dkazMnXQorICAgIH0pCisKICAgICBvcHRpb25zID0gZ2V0
X2NvbW1vbl9vcHRpb25zKCkuY29weSgpCiAgICAgb3B0aW9ucy51cGRhdGUoewogICAgICAgICAn
bW9kdWxlX25hbWUnIDogJ3dlYmtpdDJndGsnLApAQCAtNTgsNiArNzAsNyBAQCBkZWYgZ2V0X3dl
YmtpdDJfb3B0aW9ucygpOgogICAgICAgICAgICAgICAgICAgICcgLUknICsgZGVyaXZlZF9zb3Vy
Y2VzX3BhdGgoJ2luY2x1ZGUnKSArIFwKICAgICAgICAgICAgICAgICAgICAnIC1JJyArIGNvbW1v
bi50b3BfbGV2ZWxfcGF0aCgnU291cmNlJykgKyBcCiAgICAgICAgICAgICAgICAgICAgJyAtSScg
KyBzcmNfcGF0aCgpLAorICAgICAgICAneHJlZl9kZXBzJyA6IGNvbW1vbi54cmVmX2RlcHMoeHJl
Zl9kZXBzKSwKICAgICAgICAgJ2lnbm9yZWRfZmlsZXMnOiBnbG9iLmdsb2Ioc3JjX3BhdGgoJypQ
cml2YXRlLmgnKSkgKyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYi5nbG9iKHNyY19w
YXRoKCcqQ2xpZW50KicpKSArIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iLmdsb2Io
c3JjX3BhdGgoJ1dlYktpdFdlYlZpZXdCYXNlQWNjZXNzaWJsZS4qJykpICsgXApAQCAtNjUsMTAg
Kzc4LDIwIEBAIGRlZiBnZXRfd2Via2l0Ml9vcHRpb25zKCk6CiAgICAgfSkKICAgICByZXR1cm4g
b3B0aW9ucwogCi1kZWYgZ2V0X3dlYmtpdDFfb3B0aW9ucygpOgorZGVmIGdldF93ZWJraXQxX29w
dGlvbnMoZ3RrX3ZlcnNpb24pOgogICAgIGRlZiBzcmNfcGF0aCgqYXJncyk6CiAgICAgICAgIHJl
dHVybiBjb21tb24udG9wX2xldmVsX3BhdGgoKigoJ1NvdXJjZScsICdXZWJLaXQnLCAnZ3RrJykg
KyBhcmdzKSkKIAorICAgIHhyZWZfZGVwcyA9IGdldF9jb21tb25feHJlZl9kZXBzKCkuY29weSgp
CisgICAgaWYgZ3RrX3ZlcnNpb24gPT0gMzoKKyAgICAgICAgeHJlZl9kZXBzLnVwZGF0ZSh7Cisg
ICAgICAgICAgICAgICAgJ2d0aystMy4wJyA6IFsnZ3RrMycsICdnZGszJ10KKyAgICAgICAgfSkK
KyAgICBlbHNlOgorICAgICAgICB4cmVmX2RlcHMudXBkYXRlKHsKKyAgICAgICAgICAgICAgICAn
Z3RrKy0yLjAnIDogWydndGsnLCAnZ2RrJ10KKyAgICAgICAgfSkKKwogICAgIG9wdGlvbnMgPSBn
ZXRfY29tbW9uX29wdGlvbnMoKS5jb3B5KCkKICAgICBvcHRpb25zLnVwZGF0ZSh7CiAgICAgICAg
ICdtb2R1bGVfbmFtZScgOiAnd2Via2l0Z3RrJywKQEAgLTgwLDYgKzEwMyw3IEBAIGRlZiBnZXRf
d2Via2l0MV9vcHRpb25zKCk6CiAgICAgICAgICAgICAgICAgICAgJyAtSScgKyBzcmNfcGF0aCgp
ICsgXAogICAgICAgICAgICAgICAgICAgICcgLUknICsgY29tbW9uLnRvcF9sZXZlbF9wYXRoKCdT
b3VyY2UnKSArIFwKICAgICAgICAgICAgICAgICAgICAnIC1JJyArIGNvbW1vbi50b3BfbGV2ZWxf
cGF0aCgnU291cmNlJywgJ0phdmFTY3JpcHRDb3JlJywgJ0ZvcndhcmRpbmdIZWFkZXJzJyksCisg
ICAgICAgICd4cmVmX2RlcHMnIDogY29tbW9uLnhyZWZfZGVwcyh4cmVmX2RlcHMpLAogICAgICAg
ICAnaWdub3JlZF9maWxlcyc6IGdsb2IuZ2xvYihzcmNfcGF0aCgnd2Via2l0JywgJypwcml2YXRl
LionKSkKICAgICB9KQogICAgIHJldHVybiBvcHRpb25zCkBAIC04OSw2ICsxMTMsMTAgQEAgZGVm
IGdlbmVyYXRlX2RvYyhwa2dfY29uZmlnX3BhdGgsIG9wdGlvbnMpOgogICAgIGdlbmVyYXRvci5n
ZW5lcmF0ZShodG1sPSctLXNraXAtaHRtbCcgbm90IGluIHN5cy5hcmd2KQogICAgIHJldHVybiBn
ZW5lcmF0b3Iuc2F3X3dhcm5pbmdzCiAKK2RlZiByZWJhc2VfZG9jKHBrZ19jb25maWdfcGF0aCwg
b3B0aW9ucyk6CisgICAgZ2VuZXJhdG9yID0gZ3RrZG9jLlBrZ0NvbmZpZ0dUS0RvYyhwa2dfY29u
ZmlnX3BhdGgsIG9wdGlvbnMpCisgICAgZ2VuZXJhdG9yLnJlYmFzZSgpCisKIGNvbmZpZ3VyZV9s
b2dnaW5nKCkKIAogIyBXZSBuZWVkIHRvIGFkZCB0aGUgSmF2YVNjcmlwdENvcmUgYnVpbGQgZGly
ZWN0b3J5IHRvIHRoZSBQS0dfQ09ORklHX1BBVEgKQEAgLTEwNCwxMyArMTMyLDIxIEBAIHBrZ19j
b25maWdfcGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0JywgJ2d0aycs
ICd3ZWJraXRndGstMy4wLnBjCiBpZiBub3Qgb3MucGF0aC5leGlzdHMocGtnX2NvbmZpZ19wYXRo
KToKICAgICBwa2dfY29uZmlnX3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgnU291cmNlJywgJ1dl
YktpdCcsICdndGsnLCAnd2Via2l0Z3RrLTEuMC5wYycpCiBpZiBvcy5wYXRoLmV4aXN0cyhwa2df
Y29uZmlnX3BhdGgpOgotICAgIHByaW50ICJHZW5lcmF0aW5nIFdlYktpdDEgZG9jdW1lbnRhdGlv
bi4uLiIKLSAgICBzYXdfd2Via2l0MV93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhwa2dfY29uZmln
X3BhdGgsIGdldF93ZWJraXQxX29wdGlvbnMoKSkKKyAgICBpZiAnLS1yZWJhc2UnIG5vdCBpbiBz
eXMuYXJndjoKKyAgICAgICAgcHJpbnQgIkdlbmVyYXRpbmcgV2ViS2l0MSBkb2N1bWVudGF0aW9u
Li4uIgorICAgICAgICBzYXdfd2Via2l0MV93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhwa2dfY29u
ZmlnX3BhdGgsIGdldF93ZWJraXQxX29wdGlvbnMoY29tbW9uLmd0a192ZXJzaW9uKHBrZ19jb25m
aWdfcGF0aCkpKQorICAgIGVsc2U6CisgICAgICAgIHByaW50ICJSZWJhc2luZyBXZWJLaXQxIGRv
Y3VtZW50YXRpb24uLi4iCisgICAgICAgIHJlYmFzZV9kb2MocGtnX2NvbmZpZ19wYXRoLCBnZXRf
d2Via2l0MV9vcHRpb25zKGNvbW1vbi5ndGtfdmVyc2lvbihwa2dfY29uZmlnX3BhdGgpKSkKIAog
IyBXZWJLaXQyIG1pZ2h0IG5vdCBiZSBlbmFibGVkLCBzbyBjaGVjayBmb3IgdGhlIHBrZy1jb25m
aWcgZmlsZSBiZWZvcmUgYnVpbGRpbmcgZG9jdW1lbnRhdGlvbi4KIHBrZ19jb25maWdfcGF0aCA9
IGNvbW1vbi5idWlsZF9wYXRoKCdTb3VyY2UnLCAnV2ViS2l0MicsICd3ZWJraXQyZ3RrLTMuMC5w
YycpCiBpZiBvcy5wYXRoLmV4aXN0cyhwa2dfY29uZmlnX3BhdGgpOgotICAgIHByaW50ICJcbkdl
bmVyYXRpbmcgV2ViS2l0MiBkb2N1bWVudGF0aW9uLi4uIgotICAgIHNhd193ZWJraXQyX3dhcm5p
bmdzID0gZ2VuZXJhdGVfZG9jKHBrZ19jb25maWdfcGF0aCwgZ2V0X3dlYmtpdDJfb3B0aW9ucygp
KQorICAgIGlmICctLXJlYmFzZScgbm90IGluIHN5cy5hcmd2OgorICAgICAgICBwcmludCAiXG5H
ZW5lcmF0aW5nIFdlYktpdDIgZG9jdW1lbnRhdGlvbi4uLiIKKyAgICAgICAgc2F3X3dlYmtpdDJf
d2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MocGtnX2NvbmZpZ19wYXRoLCBnZXRfd2Via2l0Ml9vcHRp
b25zKCkpCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQgIlxuUmViYXNpbmcgV2ViS2l0MiBkb2N1
bWVudGF0aW9uLi4uIgorICAgICAgICByZWJhc2VfZG9jKHBrZ19jb25maWdfcGF0aCwgZ2V0X3dl
YmtpdDJfb3B0aW9ucygpKQogCiBzeXMuZXhpdChzYXdfd2Via2l0MV93YXJuaW5ncyBvciBzYXdf
d2Via2l0Ml93YXJuaW5ncykKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9ndGtkb2MucHkgYi9Ub29s
cy9ndGsvZ3RrZG9jLnB5CmluZGV4IDU4ZGUwZGEuLjk4NDhhOTAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L2d0ay9ndGtkb2MucHkKKysrIGIvVG9vbHMvZ3RrL2d0a2RvYy5weQpAQCAtOTUsNiArOTUsOSBA
QCBjbGFzcyBHVEtEb2Mob2JqZWN0KToKICAgICAgICAgc2VsZi5kb2NfZGlyID0gJycKICAgICAg
ICAgc2VsZi5tYWluX3NnbWxfZmlsZSA9ICcnCiAKKyAgICAgICAgIyBQYXJhbWV0ZXJzIHNwZWNp
ZmljIHRvIGd0a2RvYy1maXh4cmVmLgorICAgICAgICBzZWxmLnhyZWZfZGVwcyA9IFtdCisKICAg
ICAgICAgc2VsZi5pbnRlcmFjdGl2ZSA9IEZhbHNlCiAKICAgICAgICAgc2VsZi5sb2dnZXIgPSBs
b2dnaW5nLmdldExvZ2dlcignZ3RrZG9jJykKQEAgLTM0MCwxMSArMzQzLDE5IEBAIGNsYXNzIEdU
S0RvYyhvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9aHRtbF9kZXN0X2Rp
cikKIAogICAgIGRlZiBfcnVuX2d0a2RvY19maXh4cmVmKHNlbGYpOgotICAgICAgICBzZWxmLl9y
dW5fY29tbWFuZChbJ2d0a2RvYy1maXh4cmVmJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICctLW1vZHVsZS1kaXI9aHRtbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1odG1s
LWRpcj1odG1sJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1zZWxmLm91dHB1dF9k
aXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV93YXJuaW5ncz1UcnVlKQorICAg
ICAgICBhcmdzID0gWydndGtkb2MtZml4eHJlZicsCisgICAgICAgICAgICAgICAgJy0tbW9kdWxl
LWRpcj1odG1sJywKKyAgICAgICAgICAgICAgICAnLS1odG1sLWRpcj1odG1sJ10KKyAgICAgICAg
YXJncy5leHRlbmQoWyctLWV4dHJhLWRpcj0lcycgJSBleHRyYV9kaXIgZm9yIGV4dHJhX2RpciBp
biBzZWxmLnhyZWZfZGVwc10pCisgICAgICAgIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsIGN3ZD1z
ZWxmLm91dHB1dF9kaXIsIGlnbm9yZV93YXJuaW5ncz1UcnVlKQorCisgICAgZGVmIHJlYmFzZShz
ZWxmKToKKyAgICAgICAgaHRtbF9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5wcmVmaXgsICdzaGFy
ZScsICdndGstZG9jJywgJ2h0bWwnLCBzZWxmLm1vZHVsZV9uYW1lKQorICAgICAgICBhcmdzID0g
WydndGtkb2MtcmViYXNlJywKKyAgICAgICAgICAgICAgICAnLS1yZWxhdGl2ZScsCisgICAgICAg
ICAgICAgICAgJy0taHRtbC1kaXI9JXMnICUgaHRtbF9kaXJdCisgICAgICAgIGFyZ3MuZXh0ZW5k
KFsnLS1vdGhlci1kaXI9JXMnICUgZXh0cmFfZGlyIGZvciBleHRyYV9kaXIgaW4gc2VsZi54cmVm
X2RlcHNdKQorICAgICAgICBzZWxmLl9ydW5fY29tbWFuZChhcmdzLCBjd2Q9c2VsZi5vdXRwdXRf
ZGlyKQogCiAKIGNsYXNzIFBrZ0NvbmZpZ0dUS0RvYyhHVEtEb2MpOgpAQCAtMzc2LDMgKzM4Nyw2
IEBAIGNsYXNzIFBrZ0NvbmZpZ0dUS0RvYyhHVEtEb2MpOgogICAgICAgICBzZWxmLnZlcnNpb24g
PSBzZWxmLl9ydW5fY29tbWFuZChbJ3BrZy1jb25maWcnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGtnX2NvbmZpZ19wYXRoLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJy0tbW9kdmVyc2lvbiddLCBwcmludF9vdXRwdXQ9RmFs
c2UpCisgICAgICAgIHNlbGYucHJlZml4ID0gc2VsZi5fcnVuX2NvbW1hbmQoWydwa2ctY29uZmln
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGtnX2NvbmZpZ19w
YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS12YXJpYWJs
ZT1wcmVmaXgnXSwgcHJpbnRfb3V0cHV0PUZhbHNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125593</attachid>
            <date>2012-02-06 01:17:17 -0800</date>
            <delta_ts>2012-02-06 01:19:29 -0800</delta_ts>
            <desc>Updated patch according to review</desc>
            <filename>gtk-doc-rebase3.diff</filename>
            <type>text/plain</type>
            <size>10046</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyYTNj
OTYyLi42OTM1Y2RjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDItMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZpeCB4cmVmcyBhZnRlciBp
bnN0YWxsaW5nIEFQSSBkb2N1bWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IENhbGwgZ2VuZXJhdGUtZ3RrZG9j
IC0tcmViYXNlIGFmdGVyIGluc3RhbGxpbmcKKyAgICAgICAgYXBpIGRvY3MuCisgICAgICAgICog
Z3RrL2NvbW1vbi5weToKKyAgICAgICAgKHByZWZpeF9vZl9wa2dfY29uZmlnX2ZpbGUpOiBHZXQg
dGhlIHByZWZpeCB2YXJpYWJsZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgcGtnLWNvbmZpZyBmaWxl
LgorICAgICAgICAoZ3RrX3ZlcnNpb25fb2ZfcGtnX2NvbmZpZ19maWxlKTogR2V0IHRoZSBndGsg
dmVyc2lvbiByZXF1aXJlZCBieQorICAgICAgICB0aGUgZ2l2ZW4gcGtnLWNvbmZpZyBmaWxlLgor
ICAgICAgICAqIGd0ay9nZW5lcmF0ZS1ndGtkb2M6IEFkZCAtLXJlYmFzZSBjb21tYW5kIGxpbmUg
b3B0aW9uIHRvIHJlYmFzZQorICAgICAgICBpbnN0YWxsZWQgZG9jdW1lbnRhdGlvbi4KKyAgICAg
ICAgKGdldF9ndGtkb2NfbW9kdWxlX3BhdGhzKTogR2V0IHBhdGhzIHdoZXJlIEFQSSBkb2MgaXMg
aW5zdGFsbGVkCisgICAgICAgIGZvciB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBnaXZlbiBwa2ct
Y29uZmlnIGZpbGUuCisgICAgICAgIChnZXRfY29tbW9uX3hyZWZfZGVwcyk6IEdldCBBUEkgZG9j
IGRpcmVjdG9yaWVzIG9mIGRlcGVuZGVuY2llcworICAgICAgICBjb21tb24gdG8gV2ViS2l0MSBh
bmQgV2ViS2l0Mi4KKyAgICAgICAgKGdldF93ZWJraXQyX29wdGlvbnMpOiBBZGQgY3Jvc3NfcmVm
ZXJlbmNlX2RlcHMgb3B0aW9uLgorICAgICAgICAoZ2V0X3dlYmtpdDFfb3B0aW9ucyk6IERpdHRv
CisgICAgICAgIChyZWJhc2VfaW5zdGFsbGVkX2RvY3MpOiBIZWxwZXIgZnVuY3Rpb24gdG8gY3Jl
YXRlIGEgZ2VuZXJhdG9yIGZvcgorICAgICAgICB0aGUgZ2l2ZW4gcGtnLWNvbmZpZyBmaWxlIGFu
ZCBvcHRpb25zIGFuZCBjYWxsIHJlYmFzZV9pbnN0YWxsZWRfZG9jcy4KKyAgICAgICAgKiBndGsv
Z3RrZG9jLnB5OgorICAgICAgICAoR1RLRG9jLl9faW5pdF9fKTogSW5pdGlhbGl6ZSBjcm9zc19y
ZWZlcmVuY2VfZGVwcy4KKyAgICAgICAgKEdUS0RvYy5fcnVuX2d0a2RvY19maXh4cmVmKTogQWRk
IEFQSSBkb2MgZGlyZWN0b3JpZXMgb2YKKyAgICAgICAgZGVwZW5kZW5jaWVzLgorICAgICAgICAo
R1RLRG9jLnJlYmFzZV9pbnN0YWxsZWRfZG9jcyk6IENhbGwgZ3RrZG9jLXJlYmFzZSB0byBmaXgg
eHJlZgorICAgICAgICBsaW5rcyBvZiBpbnN0YWxsZWQgZG9jdW1lbnRhdGlvbi4KKyAgICAgICAg
KFBrZ0NvbmZpZ0dUS0RvYy5fX2luaXRfXyk6IEdldCB0aGUgcHJlZml4IGZyb20gdGhlIHBrZy1j
b25maWcKKyAgICAgICAgZmlsZS4KKwogMjAxMi0wMi0wNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDgwOTUyNT4gV2ViS2l0MuKA
mXMgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgYWx3
YXlzIHJldHVybnMgdHJ1ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvR05VbWFrZWZpbGUuYW0gYi9Ub29s
cy9HTlVtYWtlZmlsZS5hbQppbmRleCBhOTE5NjQ5Li5hNjc2YWJjIDEwMDY0NAotLS0gYS9Ub29s
cy9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9HTlVtYWtlZmlsZS5hbQpAQCAtMzI1LDYgKzMy
NSw3IEBAIGlmIEVOQUJMRV9XRUJLSVQyCiAJICBmaTsgXAogCWZpCiBlbmRpZgorCSQoc3JjZGly
KS9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jIC0tcmViYXNlCiAKIHVuaW5zdGFsbC1sb2NhbDoK
IAlARE9DX01PRFVMRV9WRVJTSU9OPWBjYXQgLi9Eb2N1bWVudGF0aW9uL3dlYmtpdGd0ay92ZXJz
aW9uLnhtbGA7IFwKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9jb21tb24ucHkgYi9Ub29scy9ndGsv
Y29tbW9uLnB5CmluZGV4IDc5NDFlMTMuLjg4Y2E3ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0ay9j
b21tb24ucHkKKysrIGIvVG9vbHMvZ3RrL2NvbW1vbi5weQpAQCAtNzYsMyArNzYsMjIgQEAgZGVm
IG51bWJlcl9vZl9jcHVzKCk6CiAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oW3Njcmlw
dF9wYXRoKCdudW0tY3B1cycpXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICBzdGRvdXQg
PSBwcm9jZXNzLmNvbW11bmljYXRlKClbMF0KICAgICByZXR1cm4gaW50KHN0ZG91dCkKKworCitk
ZWYgcHJlZml4X29mX3BrZ19jb25maWdfZmlsZShwYWNrYWdlKToKKyAgICBwcm9jZXNzID0gc3Vi
cHJvY2Vzcy5Qb3BlbihbJ3BrZy1jb25maWcnLCAnLS12YXJpYWJsZT1wcmVmaXgnLCBwYWNrYWdl
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3Mu
UElQRSkKKyAgICBzdGRvdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKClbMF0KKyAgICBpZiBwcm9j
ZXNzLnJldHVybmNvZGUgIT0gMDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gc3Rk
b3V0LnN0cmlwKCkKKworCitkZWYgZ3RrX3ZlcnNpb25fb2ZfcGtnX2NvbmZpZ19maWxlKHBrZ19j
b25maWdfcGF0aCk6CisgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWydwa2ctY29uZmln
JywgcGtnX2NvbmZpZ19wYXRoLCAnLS1wcmludC1yZXF1aXJlcyddLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCisgICAgc3Rkb3V0ID0gcHJv
Y2Vzcy5jb21tdW5pY2F0ZSgpWzBdCisKKyAgICBpZiAnZ3RrKy0zLjAnIGluIHN0ZG91dDoKKyAg
ICAgICAgcmV0dXJuIDMKKyAgICByZXR1cm4gMgpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2dlbmVy
YXRlLWd0a2RvYyBiL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKaW5kZXggMmI4YzZlYS4uMGU1
ODNmZSAxMDA3NTUKLS0tIGEvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYworKysgYi9Ub29scy9n
dGsvZ2VuZXJhdGUtZ3RrZG9jCkBAIC0zNCw2ICszNCwyMSBAQCBkZWYgY29uZmlndXJlX2xvZ2dp
bmcoKToKICAgICBlbHNlOgogICAgICAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihsb2dnaW5nLkZv
cm1hdHRlcignJShtZXNzYWdlKXMnKSkKIAorCitkZWYgZ2V0X2d0a2RvY19tb2R1bGVfcGF0aHMo
eHJlZl9kZXBfcGFja2FnZXMpOgorICAgIGRlcHMgPSBbXQorICAgIGh0bWxfZGlyID0gb3MucGF0
aC5qb2luKCdzaGFyZScsICdndGstZG9jJywgJ2h0bWwnKQorCisgICAgZm9yIHBhY2thZ2UgaW4g
eHJlZl9kZXBfcGFja2FnZXM6CisgICAgICAgIHByZWZpeCA9IGNvbW1vbi5wcmVmaXhfb2ZfcGtn
X2NvbmZpZ19maWxlKHBhY2thZ2UpCisgICAgICAgIGlmIHByZWZpeCBpcyBOb25lOgorICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgZm9yIG1vZHVsZSBpbiB4cmVmX2RlcF9wYWNrYWdlc1tw
YWNrYWdlXToKKyAgICAgICAgICAgIGRlcHMuYXBwZW5kKG9zLnBhdGguam9pbihwcmVmaXgsIGh0
bWxfZGlyLCBtb2R1bGUpKQorCisgICAgcmV0dXJuIGRlcHMKKworCiBkZWYgZ2V0X2NvbW1vbl9v
cHRpb25zKCk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgJ2RlY29yYXRvcic6ICdXRUJLSVRfQVBJ
JywKQEAgLTQxLDEyICs1NiwyNCBAQCBkZWYgZ2V0X2NvbW1vbl9vcHRpb25zKCk6CiAgICAgICAg
ICdsaWJyYXJ5X3BhdGgnIDogY29tbW9uLmJ1aWxkX3BhdGgoJy5saWJzJyksCiAgICAgfQogCitk
ZWYgZ2V0X2NvbW1vbl94cmVmX2RlcHMoKToKKyAgICByZXR1cm4geworICAgICAgICAnZ2xpYi0y
LjAnIDogWydnbGliJywgJ2dvYmplY3QnLCAnZ2lvJ10sCisgICAgICAgICdsaWJzb3VwLTIuNCcg
OiBbJ2xpYnNvdXAtMi40J10sCisgICAgICAgICdnZGstcGl4YnVmLTIuMCc6IFsnZ2RrLXBpeGJ1
ZiddCisgICAgfQorCiBkZWYgZ2V0X3dlYmtpdDJfb3B0aW9ucygpOgogICAgIGRlZiBkZXJpdmVk
X3NvdXJjZXNfcGF0aCgqYXJncyk6CiAgICAgICAgIHJldHVybiBjb21tb24uYnVpbGRfcGF0aCgq
KCgnRGVyaXZlZFNvdXJjZXMnLCAnV2ViS2l0MicpICsgYXJncykpCiAgICAgZGVmIHNyY19wYXRo
KCphcmdzKToKICAgICAgICAgcmV0dXJuIGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgqKCgnU291cmNl
JywgJ1dlYktpdDInLCAnVUlQcm9jZXNzJywgJ0FQSScsICdndGsnKSArIGFyZ3MpKQogCisgICAg
eHJlZl9kZXBzID0gZ2V0X2NvbW1vbl94cmVmX2RlcHMoKS5jb3B5KCkKKyAgICB4cmVmX2RlcHMu
dXBkYXRlKHsKKyAgICAgICAgJ2d0aystMy4wJyA6IFsnZ3RrMycsICdnZGszJ10KKyAgICB9KQor
CiAgICAgb3B0aW9ucyA9IGdldF9jb21tb25fb3B0aW9ucygpLmNvcHkoKQogICAgIG9wdGlvbnMu
dXBkYXRlKHsKICAgICAgICAgJ21vZHVsZV9uYW1lJyA6ICd3ZWJraXQyZ3RrJywKQEAgLTU4LDYg
Kzg1LDcgQEAgZGVmIGdldF93ZWJraXQyX29wdGlvbnMoKToKICAgICAgICAgICAgICAgICAgICAn
IC1JJyArIGRlcml2ZWRfc291cmNlc19wYXRoKCdpbmNsdWRlJykgKyBcCiAgICAgICAgICAgICAg
ICAgICAgJyAtSScgKyBjb21tb24udG9wX2xldmVsX3BhdGgoJ1NvdXJjZScpICsgXAogICAgICAg
ICAgICAgICAgICAgICcgLUknICsgc3JjX3BhdGgoKSwKKyAgICAgICAgJ2Nyb3NzX3JlZmVyZW5j
ZV9kZXBzJyA6IGdldF9ndGtkb2NfbW9kdWxlX3BhdGhzKHhyZWZfZGVwcyksCiAgICAgICAgICdp
Z25vcmVkX2ZpbGVzJzogZ2xvYi5nbG9iKHNyY19wYXRoKCcqUHJpdmF0ZS5oJykpICsgXAogICAg
ICAgICAgICAgICAgICAgICAgICAgIGdsb2IuZ2xvYihzcmNfcGF0aCgnKkNsaWVudConKSkgKyBc
CiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYi5nbG9iKHNyY19wYXRoKCdXZWJLaXRXZWJW
aWV3QmFzZUFjY2Vzc2libGUuKicpKSArIFwKQEAgLTY1LDEwICs5MywyMCBAQCBkZWYgZ2V0X3dl
YmtpdDJfb3B0aW9ucygpOgogICAgIH0pCiAgICAgcmV0dXJuIG9wdGlvbnMKIAotZGVmIGdldF93
ZWJraXQxX29wdGlvbnMoKToKK2RlZiBnZXRfd2Via2l0MV9vcHRpb25zKGd0a192ZXJzaW9uKToK
ICAgICBkZWYgc3JjX3BhdGgoKmFyZ3MpOgogICAgICAgICByZXR1cm4gY29tbW9uLnRvcF9sZXZl
bF9wYXRoKCooKCdTb3VyY2UnLCAnV2ViS2l0JywgJ2d0aycpICsgYXJncykpCiAKKyAgICB4cmVm
X2RlcHMgPSBnZXRfY29tbW9uX3hyZWZfZGVwcygpLmNvcHkoKQorICAgIGlmIGd0a192ZXJzaW9u
ID09IDM6CisgICAgICAgIHhyZWZfZGVwcy51cGRhdGUoeworICAgICAgICAgICAgICAgICdndGsr
LTMuMCcgOiBbJ2d0azMnLCAnZ2RrMyddCisgICAgICAgIH0pCisgICAgZWxzZToKKyAgICAgICAg
eHJlZl9kZXBzLnVwZGF0ZSh7CisgICAgICAgICAgICAgICAgJ2d0aystMi4wJyA6IFsnZ3RrJywg
J2dkayddCisgICAgICAgIH0pCisKICAgICBvcHRpb25zID0gZ2V0X2NvbW1vbl9vcHRpb25zKCku
Y29weSgpCiAgICAgb3B0aW9ucy51cGRhdGUoewogICAgICAgICAnbW9kdWxlX25hbWUnIDogJ3dl
YmtpdGd0aycsCkBAIC04MCw2ICsxMTgsNyBAQCBkZWYgZ2V0X3dlYmtpdDFfb3B0aW9ucygpOgog
ICAgICAgICAgICAgICAgICAgICcgLUknICsgc3JjX3BhdGgoKSArIFwKICAgICAgICAgICAgICAg
ICAgICAnIC1JJyArIGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnU291cmNlJykgKyBcCiAgICAgICAg
ICAgICAgICAgICAgJyAtSScgKyBjb21tb24udG9wX2xldmVsX3BhdGgoJ1NvdXJjZScsICdKYXZh
U2NyaXB0Q29yZScsICdGb3J3YXJkaW5nSGVhZGVycycpLAorICAgICAgICAnY3Jvc3NfcmVmZXJl
bmNlX2RlcHMnIDogZ2V0X2d0a2RvY19tb2R1bGVfcGF0aHMoeHJlZl9kZXBzKSwKICAgICAgICAg
J2lnbm9yZWRfZmlsZXMnOiBnbG9iLmdsb2Ioc3JjX3BhdGgoJ3dlYmtpdCcsICcqcHJpdmF0ZS4q
JykpCiAgICAgfSkKICAgICByZXR1cm4gb3B0aW9ucwpAQCAtODksNiArMTI4LDEwIEBAIGRlZiBn
ZW5lcmF0ZV9kb2MocGtnX2NvbmZpZ19wYXRoLCBvcHRpb25zKToKICAgICBnZW5lcmF0b3IuZ2Vu
ZXJhdGUoaHRtbD0nLS1za2lwLWh0bWwnIG5vdCBpbiBzeXMuYXJndikKICAgICByZXR1cm4gZ2Vu
ZXJhdG9yLnNhd193YXJuaW5ncwogCitkZWYgcmViYXNlX2luc3RhbGxlZF9kb2NzKHBrZ19jb25m
aWdfcGF0aCwgb3B0aW9ucyk6CisgICAgZ2VuZXJhdG9yID0gZ3RrZG9jLlBrZ0NvbmZpZ0dUS0Rv
Yyhwa2dfY29uZmlnX3BhdGgsIG9wdGlvbnMpCisgICAgZ2VuZXJhdG9yLnJlYmFzZV9pbnN0YWxs
ZWRfZG9jcygpCisKIGNvbmZpZ3VyZV9sb2dnaW5nKCkKIAogIyBXZSBuZWVkIHRvIGFkZCB0aGUg
SmF2YVNjcmlwdENvcmUgYnVpbGQgZGlyZWN0b3J5IHRvIHRoZSBQS0dfQ09ORklHX1BBVEgKQEAg
LTEwNCwxMyArMTQ3LDIzIEBAIHBrZ19jb25maWdfcGF0aCA9IGNvbW1vbi5idWlsZF9wYXRoKCdT
b3VyY2UnLCAnV2ViS2l0JywgJ2d0aycsICd3ZWJraXRndGstMy4wLnBjCiBpZiBub3Qgb3MucGF0
aC5leGlzdHMocGtnX2NvbmZpZ19wYXRoKToKICAgICBwa2dfY29uZmlnX3BhdGggPSBjb21tb24u
YnVpbGRfcGF0aCgnU291cmNlJywgJ1dlYktpdCcsICdndGsnLCAnd2Via2l0Z3RrLTEuMC5wYycp
CiBpZiBvcy5wYXRoLmV4aXN0cyhwa2dfY29uZmlnX3BhdGgpOgotICAgIHByaW50ICJHZW5lcmF0
aW5nIFdlYktpdDEgZG9jdW1lbnRhdGlvbi4uLiIKLSAgICBzYXdfd2Via2l0MV93YXJuaW5ncyA9
IGdlbmVyYXRlX2RvYyhwa2dfY29uZmlnX3BhdGgsIGdldF93ZWJraXQxX29wdGlvbnMoKSkKKyAg
ICBvcHRpb25zID0gZ2V0X3dlYmtpdDFfb3B0aW9ucyhjb21tb24uZ3RrX3ZlcnNpb25fb2ZfcGtn
X2NvbmZpZ19maWxlKHBrZ19jb25maWdfcGF0aCkpCisgICAgaWYgJy0tcmViYXNlJyBub3QgaW4g
c3lzLmFyZ3Y6CisgICAgICAgIHByaW50ICJHZW5lcmF0aW5nIFdlYktpdDEgZG9jdW1lbnRhdGlv
bi4uLiIKKyAgICAgICAgc2F3X3dlYmtpdDFfd2FybmluZ3MgPSBnZW5lcmF0ZV9kb2MocGtnX2Nv
bmZpZ19wYXRoLCBvcHRpb25zKQorICAgIGVsc2U6CisgICAgICAgIHByaW50ICJSZWJhc2luZyBX
ZWJLaXQxIGRvY3VtZW50YXRpb24uLi4iCisgICAgICAgIHJlYmFzZV9pbnN0YWxsZWRfZG9jcyhw
a2dfY29uZmlnX3BhdGgsIG9wdGlvbnMpCiAKICMgV2ViS2l0MiBtaWdodCBub3QgYmUgZW5hYmxl
ZCwgc28gY2hlY2sgZm9yIHRoZSBwa2ctY29uZmlnIGZpbGUgYmVmb3JlIGJ1aWxkaW5nIGRvY3Vt
ZW50YXRpb24uCiBwa2dfY29uZmlnX3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgnU291cmNlJywg
J1dlYktpdDInLCAnd2Via2l0Mmd0ay0zLjAucGMnKQogaWYgb3MucGF0aC5leGlzdHMocGtnX2Nv
bmZpZ19wYXRoKToKLSAgICBwcmludCAiXG5HZW5lcmF0aW5nIFdlYktpdDIgZG9jdW1lbnRhdGlv
bi4uLiIKLSAgICBzYXdfd2Via2l0Ml93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhwa2dfY29uZmln
X3BhdGgsIGdldF93ZWJraXQyX29wdGlvbnMoKSkKKyAgICBvcHRpb25zID0gZ2V0X3dlYmtpdDJf
b3B0aW9ucygpCisgICAgaWYgJy0tcmViYXNlJyBub3QgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHBy
aW50ICJcbkdlbmVyYXRpbmcgV2ViS2l0MiBkb2N1bWVudGF0aW9uLi4uIgorICAgICAgICBzYXdf
d2Via2l0Ml93YXJuaW5ncyA9IGdlbmVyYXRlX2RvYyhwa2dfY29uZmlnX3BhdGgsIG9wdGlvbnMp
CisgICAgZWxzZToKKyAgICAgICAgcHJpbnQgIlxuUmViYXNpbmcgV2ViS2l0MiBkb2N1bWVudGF0
aW9uLi4uIgorICAgICAgICByZWJhc2VfaW5zdGFsbGVkX2RvY3MocGtnX2NvbmZpZ19wYXRoLCBv
cHRpb25zKQogCiBzeXMuZXhpdChzYXdfd2Via2l0MV93YXJuaW5ncyBvciBzYXdfd2Via2l0Ml93
YXJuaW5ncykKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9ndGtkb2MucHkgYi9Ub29scy9ndGsvZ3Rr
ZG9jLnB5CmluZGV4IDU4ZGUwZGEuLjQ3NjcxNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0ay9ndGtk
b2MucHkKKysrIGIvVG9vbHMvZ3RrL2d0a2RvYy5weQpAQCAtOTUsNiArOTUsOSBAQCBjbGFzcyBH
VEtEb2Mob2JqZWN0KToKICAgICAgICAgc2VsZi5kb2NfZGlyID0gJycKICAgICAgICAgc2VsZi5t
YWluX3NnbWxfZmlsZSA9ICcnCiAKKyAgICAgICAgIyBQYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGd0
a2RvYy1maXh4cmVmLgorICAgICAgICBzZWxmLmNyb3NzX3JlZmVyZW5jZV9kZXBzID0gW10KKwog
ICAgICAgICBzZWxmLmludGVyYWN0aXZlID0gRmFsc2UKIAogICAgICAgICBzZWxmLmxvZ2dlciA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdndGtkb2MnKQpAQCAtMzQwLDExICszNDMsMTkgQEAgY2xhc3Mg
R1RLRG9jKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1odG1sX2Rlc3Rf
ZGlyKQogCiAgICAgZGVmIF9ydW5fZ3RrZG9jX2ZpeHhyZWYoc2VsZik6Ci0gICAgICAgIHNlbGYu
X3J1bl9jb21tYW5kKFsnZ3RrZG9jLWZpeHhyZWYnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJy0tbW9kdWxlLWRpcj1odG1sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWh0
bWwtZGlyPWh0bWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkPXNlbGYub3V0cHV0
X2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX3dhcm5pbmdzPVRydWUpCisg
ICAgICAgIGFyZ3MgPSBbJ2d0a2RvYy1maXh4cmVmJywKKyAgICAgICAgICAgICAgICAnLS1tb2R1
bGUtZGlyPWh0bWwnLAorICAgICAgICAgICAgICAgICctLWh0bWwtZGlyPWh0bWwnXQorICAgICAg
ICBhcmdzLmV4dGVuZChbJy0tZXh0cmEtZGlyPSVzJyAlIGV4dHJhX2RpciBmb3IgZXh0cmFfZGly
IGluIHNlbGYuY3Jvc3NfcmVmZXJlbmNlX2RlcHNdKQorICAgICAgICBzZWxmLl9ydW5fY29tbWFu
ZChhcmdzLCBjd2Q9c2VsZi5vdXRwdXRfZGlyLCBpZ25vcmVfd2FybmluZ3M9VHJ1ZSkKKworICAg
IGRlZiByZWJhc2VfaW5zdGFsbGVkX2RvY3Moc2VsZik6CisgICAgICAgIGh0bWxfZGlyID0gb3Mu
cGF0aC5qb2luKHNlbGYucHJlZml4LCAnc2hhcmUnLCAnZ3RrLWRvYycsICdodG1sJywgc2VsZi5t
b2R1bGVfbmFtZSkKKyAgICAgICAgYXJncyA9IFsnZ3RrZG9jLXJlYmFzZScsCisgICAgICAgICAg
ICAgICAgJy0tcmVsYXRpdmUnLAorICAgICAgICAgICAgICAgICctLWh0bWwtZGlyPSVzJyAlIGh0
bWxfZGlyXQorICAgICAgICBhcmdzLmV4dGVuZChbJy0tb3RoZXItZGlyPSVzJyAlIGV4dHJhX2Rp
ciBmb3IgZXh0cmFfZGlyIGluIHNlbGYuY3Jvc3NfcmVmZXJlbmNlX2RlcHNdKQorICAgICAgICBz
ZWxmLl9ydW5fY29tbWFuZChhcmdzLCBjd2Q9c2VsZi5vdXRwdXRfZGlyKQogCiAKIGNsYXNzIFBr
Z0NvbmZpZ0dUS0RvYyhHVEtEb2MpOgpAQCAtMzc2LDMgKzM4Nyw2IEBAIGNsYXNzIFBrZ0NvbmZp
Z0dUS0RvYyhHVEtEb2MpOgogICAgICAgICBzZWxmLnZlcnNpb24gPSBzZWxmLl9ydW5fY29tbWFu
ZChbJ3BrZy1jb25maWcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGtnX2NvbmZpZ19wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJy0tbW9kdmVyc2lvbiddLCBwcmludF9vdXRwdXQ9RmFsc2UpCisgICAgICAgIHNlbGYu
cHJlZml4ID0gc2VsZi5fcnVuX2NvbW1hbmQoWydwa2ctY29uZmlnJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGtnX2NvbmZpZ19wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS12YXJpYWJsZT1wcmVmaXgnXSwgcHJpbnRf
b3V0cHV0PUZhbHNlKQo=
</data>
<flag name="review"
          id="127124"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>